C : 线性规划例题求解

Submit Page   TestData   Time Limit: 1 Sec     Memory Limit: 128 Mb     Submitted: 93     Solved: 49    


Description

求解下述线性规划模型的最优值min �1�1+�2�2+�3�3�.�. �11�1+�12�2+�13�3≤�1>0�21�1+�22�2+�23�3≤�2>0�31�1+�32�2+�33�3≤�3>0�1,�2,�3≥0

Input

依次输入�1�2�3�11�12�13�1�21�22�23�2�31�32�33�3

Output

目标函数最优值,保留小数点后两位有效数字。若无最优解,输出“No solution”。

Sample

#0
Input

Copy

1 -2 0
1 -1 0 1
-2 1 0 4
1 1 1 10
Output

Copy

-14.00

Hint

#include <iostream>
#include <cmath>
#include "stdio.h"
using namespace std;
#define M 10000
double kernel[110][310];
int m = 0, n = 0, t = 0;
void input()
{// cin >> n;// cin >> m;m = 3;n = 3;int i, j;// 初始化核心向量for (i = 0; i <= m + 1; i++)for (j = 0; j <= n + m + m; j++)kernel[i][j] = 0;for (i = 1; i <= n; i++)cin >> kernel[0][i];for (i = 1; i <= m; i++){// cout<<"    不等式"<<i<<"  ";for (j = 1; j <= n + 2; j++){if (j == n + 1){kernel[i][j] = 1;}else{cin >> kernel[i][j];}}}for (i = 1; i <= m; i++){kernel[i][0] = kernel[i][n + 2];kernel[i][n + 2] = 0;}t = 1;if (t == -1)for (i = 1; i <= n; i++)kernel[0][i] = (-1) * kernel[0][i];for (i = 1; i <= m; i++){kernel[i][n + i] = kernel[i][n + 1];if (i != 1)kernel[i][n + 1] = 0;}
}// 算法函数
void comput()
{int i, j, flag, temp1, temp2, h, k = 0, temp3[100];double a, b[110], temp, temp4[110], temp5[110], f = 0, aa, d, c;for (i = 1; i <= m; i++)temp3[i] = 0.0000;for (i = 0; i < 11; i++){temp4[i] = 0.000;temp5[i] = 0.0000;}for (i = 1; i <= m; i++){if (kernel[i][n + i] == -1){kernel[i][n + m + i] = 1;kernel[0][n + m + i] = M;temp3[i] = n + m + i;}elsetemp3[i] = n + i;}for (i = 1; i <= m; i++)temp4[i] = kernel[0][temp3[i]];do{for (i = 1; i <= n + m + m; i++){a = 0;for (j = 1; j <= m; j++)a += kernel[j][i] * temp4[j];kernel[m + 1][i] = kernel[0][i] - a;}for (i = 1; i <= n + m + m; i++){if (kernel[m + 1][i] >= 0)flag = 1;else{flag = -1;break;}}if (flag == 1){for (i = 1; i <= m; i++){if (temp3[i] <= n + m)temp1 = 1;else{temp1 = -1;break;}}if (temp1 == 1){// cout << " 此线性规划的最优解存在!" << endl << endl << "  最优解为:" << endl << endl << "     ";for (i = 1; i <= m; i++)temp5[temp3[i]] = kernel[i][0];for (i = 1; i <= n; i++)f += t * kernel[0][i] * temp5[i];for (i = 1; i <= n; i++){// cout << "x" << i << " = " << temp5[i];// if (i != n)// cout << ", ";}// cout << " ;" << endl << endl << "     最优目标函数值f= " << f << endl << endl;printf("%.2f\n", f);return;}else{// cout << " 此线性规划无解" << endl << endl;cout<<"No solution"<<endl;return;}}if (flag == -1){temp = 100000;for (i = 1; i <= n + m + m; i++)if (kernel[m + 1][i] < temp){temp = kernel[m + 1][i];h = i;}for (i = 1; i <= m; i++){if (kernel[i][h] <= 0)temp2 = 1;else{temp2 = -1;break;}}}if (temp2 == 1){cout<<"No solution"<<endl;// cout << "此线性规划无约束";return;}if (temp2 == -1){c = 100000;for (i = 1; i <= m; i++){if (kernel[i][h] != 0)b[i] = kernel[i][0] / kernel[i][h];if (kernel[i][h] == 0)b[i] = 100000;if (b[i] < 0)b[i] = 100000;if (b[i] < c){c = b[i];k = i;}}temp3[k] = h;temp4[k] = kernel[0][h];d = kernel[k][h];for (i = 0; i <= n + m + m; i++)kernel[k][i] = kernel[k][i] / d;for (i = 1; i <= m; i++){if (i == k)continue;aa = kernel[i][h];for (j = 0; j <= n + m + m; j++)kernel[i][j] = kernel[i][j] - aa * kernel[k][j];}}} while (1);return;
}int main()
{input();for (int i = 1; i < n; i++){for (int j = 1; j < m + 2; j++){// cout<<kernel[i][j]<<" ";}// cout<<endl;}comput();// int a = 0;// scanf("%d", &a);// cout<<f<<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/37373.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python项目开发实战,火车票分析助手,案例教程编程实例课程详解

一、项目背景与意义 火车票作为人们出行的重要交通工具之一,其购票难、查询繁琐等问题一直困扰着广大乘客。为了解决这些问题,我们开发了一款火车票分析助手,利用Python的强大数据处理能力和丰富的库资源,帮助用户更高效地查询和分析火车票信息。本项目旨在提高用户的购票体…

Spring Cloud LoadBalancer基础入门与应用实践

官网地址&#xff1a;https://docs.spring.io/spring-cloud-commons/reference/spring-cloud-commons/loadbalancer.html 【1】概述 Spring Cloud LoadBalancer是由SpringCloud官方提供的一个开源的、简单易用的客户端负载均衡器&#xff0c;它包含在SpringCloud-commons中用…

【Python第三方包】爬虫前言(request包)

文章目录 前言安装发送请求Response对象常用函数总结前言 在Python编程中,我们经常需要从互联网上获取或发送数据。这就涉及到了网络编程,而在网络编程中,我们常常需要使用到HTTP请求。Python的requests库就是一个非常强大的工具,它可以帮助我们轻松地发送HTTP请求。 req…

前端vue使用onlyoffice控件实现word在线编辑、预览(仅列出前端部分需要做的工作,不包含后端部分)

简介 ONLYOFFICE 文档 是一个开源办公套件&#xff0c;包括文本文档、电子表格、演示文稿和可填写表单的编辑器。 它提供以下功能&#xff1a; 创建、编辑和查看文本文档、电子表格、演示文稿和可填写表单&#xff1b; 与其他队友实时协作处理文件。 基于这个控件&#xff0c;…

通过window.scrollTo实现丝滑跳转到页面的某个位置

原理 通过计算对应id的组件距离页面顶部的距离&#xff0c;来使用window.scrollTo丝滑跳转到该位置 代码如下&#xff1a; <div id"test1"></div> <div id"test2"></div> <div id"test3"></div><butt…

PySide(PyQt),event.pos() 和 event.position()的区别

在 PySide6 中&#xff0c;event.pos() 和 event.position() 在处理鼠标事件时有所不同&#xff1a; event.pos(): event.pos() 返回的是鼠标指针相对于接收事件的小部件&#xff08;widget&#xff09;的局部坐标。这意味着它返回的是鼠标在接收事件的窗口或部件内的坐标位置。…

基于Java毕业生生活用品出售网站的设计和实现(源码+LW+调试文档+讲解等)

&#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者&#xff0c;博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f31f;文末获取源码数据库&#x1f31f; 感兴趣的可以先收藏起来&#xff0c;…

【算能全国产AI盒子】基于BM1688CV186AH+FPGA智能物联工作站,支持差异化泛AI视觉产品定制

在数据呈现指数级增长的今天&#xff0c;越来越多的领域和细分场景对实时、高效的数据处理和分析的需求日益增长&#xff0c;对智能算力的需求也不断增强。为应对新的市场趋势&#xff0c;凭借自身的硬件研发优势&#xff0c;携手算能相继推出了基于BM1684的边缘计算盒子&#…

Spring Boot中的日志管理最佳实践

Spring Boot中的日志管理最佳实践 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来探讨一下在Spring Boot应用中如何有效管理日志&#xff0c;确保系统…

C4D快捷键整合所有快捷键

C4D快捷键整合所有快捷键 快捷键常用快捷键主菜单建模材质管理器物体管理器图片浏览器结构管理器浏览器编辑器动画模块属性管理器Body Paint 3D时间线视窗Mocca 小技巧 快捷键 常用快捷键 作用快捷键备注裁切时间线ALT【 】最大化显示所限物体0最大化显示场景所有物体H物体属…

解读防水防腐保温二级资质:为何社保需缴纳X月以上?

解读防水防腐保温二级资质中关于社保需缴纳X月以上的要求&#xff0c;可以从以下几个方面进行&#xff1a; 一、社保缴纳的重要性 稳定雇佣关系的体现&#xff1a;社保缴纳是企业与员工之间稳定雇佣关系的直接体现&#xff0c;它展示了企业对员工的长期承诺和责任感。员工权益…

esp32使用TFT_eSPI库,系统双闪,指针溢出的问题

问题描述 使用TFT_eSPI烧录进esp32c3之后&#xff0c;开发板灯双闪&#xff0c;串口输出指针越界的错误。 问题原因 不小心点到了更新&#xff0c;把esp32的库给更新了。 问题解决 把esp32的库改到2.0.9版本。

Spring Boot与Redis集成的最佳实践

Spring Boot与Redis集成的最佳实践 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将探讨如何在Spring Boot应用中实现与Redis的集成&#xff0c;以及一…

c++ std::forward 笔记

请您查看如下代码块&#xff0c;这样方便复制过去直接运行 int x 5; q_forward w1(x); // 使用左值构造 q_forward w2(10); // 使用右值构造 w2.wrapper_func(); /*** std::forward<>() 向前的&#xff0c;前进的&#xff1b;* 通常与模板和右值引用&#xff08;r…

MySQL3(多表联查 子查询 流程控制函数,语句 Sql 执行顺序 学生选课表练习)

目录 一、多表联查 1. 等值查询和非等值查询 等值查询 --- 主外键相等 ​编辑非等值查询 2. 连接查询 ​编辑 内连接 ​编辑 左外连接 ​编辑 右外连接 3. UNION 二、子查询 1. where 型子查询&#xff1a; 2. from型子查询: 3. exists型子查询: 4. any, some…

如何使用PHP Curl类库编写高效的爬虫程序?

如何使用php curl类库编写高效的爬虫程序&#xff1f; 摘要&#xff1a;爬虫程序可以用于从网页中获取数据&#xff0c;以实现各种场景下的自动化处理。本文将介绍如何使用PHP Curl类库编写高效的爬虫程序&#xff0c;并提供相关的代码示例。 导语&#xff1a;随着互联网普及…

ArrayList学习

1.2.1 构造方法 方法名说明public ArrayList()创建一个空的集合对象 1.2.2 成员方法 方法名说明public boolean add(E e)将指定的元素追加到此集合的末尾public boolean remove(E e)删除指定元素,返回值表示是否删除成功public E remove(int index)删除指定索引处的元素&…

PVE更新 报错过程解决

Proxmox 报错提示 E: Failed to fetch https://enterprise.proxmox.com/debian/ceph-quincy/dists/bookworm/InRelease 401 Unauthorized E: The repository https://enterprise.proxmox.com/debian/ceph-quincy bookworm InRelease is not signed.Proxmox 报错提示 Tempor…

笔记本重装系统怎么操作? windows电脑重装系统,超实用的四种方法

重新安装操作系统是维护计算机性能和确保系统稳定运行的重要步骤。对于 Windows 笔记本用户而言&#xff0c;熟悉重装系统的方法可以帮助他们解决各种问题&#xff0c;从提高系统速度到修复软件故障。然而具体来讲&#xff0c;笔记本重装系统怎么操作呢&#xff1f;接下来&…

input的23种属性

button 定义可点击的按钮&#xff08;通常与 JavaScript 一起使用来启动脚本&#xff09;。 checkbox 定义复选框。 color 定义拾色器。 date 定义 date 控件&#xff08;包括年、月、日&#xff0c;不包括时间&#xff09;。 datetime 定义 date 和 time 控件&…