当前位置: 首页 > news >正文

求解线性规划模型最优解

在这里插入图片描述

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
既然选择了远方,当不负青春,砥砺前行!


在这里插入图片描述
求解线性规划模型已经有比较成熟的算法。对一般的线性规划模型,常用的解法有图解法、单纯形法等;虽然针对线性规划的理论算法已经比较完善,但是当需要求解的模型的决策变量和约束条件数量比较多时,手工求解模型是十分繁杂甚至不可能的,通常需要借助计算机软件来实现。

目前,求解数学规划模型的常用软件有Python、LINGO、MATLAB等多种软件,本种的数学规划模型使用Python软件求解。

求解线性规划模型可以使用Python的cvxpy库。
cvxpy库与MATLAB中cvx工具库类似,用于求解凸优化问题。cvx与cvxpy都是由加州理工学院的Stephen Boyd教授课题组开发。cvx是用于MATLAB的库,cvxpy是用于Python的库。下载、安装及学习地址如下:
cvx: http://cvxr.com/cvx/; cvxpy: http://www.cvxpy.org/

max⁡z=70x1+50x2+60x3,s.t.{2x1+4x2+3x3≤150,3x1+x2+5x3≤160,7x1+3x2+5x3≤200,xi≥0,i=1,2,3.\begin{aligned} \max z &= 70x_1 + 50x_2 + 60x_3, \\ \text{s.t.} \quad & \left\{ \begin{array}{l} 2x_1 + 4x_2 + 3x_3 \leq 150, \\ 3x_1 + x_2 + 5x_3 \leq 160, \\ 7x_1 + 3x_2 + 5x_3 \leq 200, \\ x_i \geq 0, i = 1, 2, 3. \end{array} \right. \end{aligned}maxzs.t.=70x1+50x2+60x3,2x1+4x2+3x3150,3x1+x2+5x3160,7x1+3x2+5x3200,xi0,i=1,2,3.

目标函数的最优值为 z=2590.9091z = 2590.9091z=2590.9091

解 利用Python程序,求得最优解为

x1=15.9091,x2=29.5455,x3=0,x_1 = 15.9091, x_2 = 29.5455, x_3 = 0,x1=15.9091,x2=29.5455,x3=0,

计算的Python程序如下:

import cvxpy as cp
from numpy import array# 定义目标向量
c = array([70, 50, 60])
# 定义约束矩阵
a = array([[2, 4, 3], [3, 1, 5], [7, 3, 5]])
# 定义约束条件的右边向量
b = array([150, 160, 200])
# 定义三个决策变量
x = cp.Variable(3, pos=True)
# 构造目标函数
obj = cp.Maximize(c @ x)
# 构造约束条件
constraints = [a @ x <= b]
prob = cp.Problem(obj, constraints)
# 求解问题
prob.solve(solver='GLPK_MI')
print('最优解为:', x.value)
print('最优值为:', prob.value)
http://www.lryc.cn/news/586937.html

相关文章:

  • 跨域中间件通俗理解
  • 【QT】使用QSS进行界面美化
  • 005_提示工程与工具使用
  • 用Python实现一个Windows计算器练习
  • 011_视觉能力与图像处理
  • sklearn study notes[1]
  • Linux内核高效之道:Slab分配器与task_struct缓存管理
  • 基于Leaflet调用天地图在线API的多层级地名检索实战
  • Matlab批量转换1km降水数据为tiff格式
  • Java性能优化权威指南-JVM概述和监控调优
  • [特殊字符] Python自动化办公 | 3步实现Excel数据清洗与可视化,效率提升300%
  • 技术实现、行业变革及可视化呈现角度,系统性解析AI技术(特别是模型训练平台)
  • C++每日刷题day2025.7.13
  • 查看ubuntu磁盘占用方法
  • 日记-生活随想
  • 单例模式:确保全局唯一实例
  • 芯片相关必备
  • 第三章-提示词-解锁Prompt提示词工程核销逻辑,开启高效AI交互(10/36)
  • 如何成为 PostgreSQL 中级专家
  • 图形处理算法分类、应用场景及技术解析
  • Web应用性能优化之数据库查询实战指南
  • C/C++数据结构之多维数组
  • MySQL实操:将Word表格数据导入MySQL表
  • 导入 SciPy 的 io 模块
  • 基于Springboot+UniApp+Ai实现模拟面试小工具三:后端项目基础框架搭建上
  • 在人工智能自动化编程时代:AI驱动开发和传统软件开发的分析对比
  • ECU(电子控制单元)是什么?
  • Hashtable 与 HashMap 的区别笔记
  • LeetCode|Day9|976. 三角形的最大周长|Python刷题笔记
  • 代码部落 20250629 CSP-S复赛 模拟赛