数学建模--线性规划方法的Python实现

这篇具有很好参考价值的文章主要介绍了数学建模--线性规划方法的Python实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

  1.算法求解问题

  2.算法求解思路

  3.算法求解代码

  4.算法求解结果


 1.算法求解问题

求min z=2x1+3x2+x3
s.t:
   x1+4x2+2x3>=8
   3x1+2x2>=6
   x1,x2,x3>=0

  2.算法求解思路

关键函数解释如下:
#利用linprogl函数来解决
'''
def linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
            bounds=None, method='interior-point', callback=None,
            options=None, x0=None)
求解方式有如下:
LINPROG_METHODS = ['simplex', 'revised simplex', 'interior-point', 'highs', 'highs-ds', 'highs-ipm']
'''

具体解决步骤如下:
#1.分别表示出C,A,B矩阵和bounds即可
#2.A是s.t条件的系数矩阵,而且需要改写成小于等于的形式
#3.B是s.t条件的数值矩阵,而且需要改写成小于等于的形式
#4.bounds表示的是x1,x3,x2的取值范围
#5.调用linprog函数计算结果即可

  3.算法求解代码

#Linear Programming Problem 1:
#利用linprogl函数来解决
'''
def linprog(c, A_ub=None, b_ub=None, A_eq=None, b_eq=None,
            bounds=None, method='interior-point', callback=None,
            options=None, x0=None)
求解方式有如下:
LINPROG_METHODS = ['simplex', 'revised simplex', 'interior-point', 'highs', 'highs-ds', 'highs-ipm']
'''

"""
求min z=2x1+3x2+x3
s.t:
   x1+4x2+2x3>=8
   3x1+2x2>=6
   x1,x2,x3>=0
"""
#导入函数和库
import numpy as np
from scipy.optimize import linprog

#分别表示出C,A,B矩阵和bounds即可
C=np.array([2,3,1])#C是2x1+3x2+x3的系数矩阵
#A是s.t条件的系数矩阵,而且需要改写成小于等于的形式
#B是s.t条件的数值矩阵,而且需要改写成小于等于的形式
A=np.array([[-1,-4,-2],[-3,-2,0]])
B=np.array([-8,-6])
#bounds表示的是x1,x3,x2的取值范围
#调用函数计算结果即可
ans=linprog(C,A_ub=A,b_ub=B,method='highs',bounds=((0,None),(0,None),(0,None)))
print(ans)

  4.算法求解结果

  算法的求解结果如下所示:
        message: Optimization terminated successfully. (HiGHS Status 7: Optimal)
        success: True(求解结果)
         status: 0
            fun: 7.0(最优值)
              x: [ 8.000e-01  1.800e+00  0.000e+00](对应的值向量)
            nit: 3(迭代次数)
          lower:  residual: [ 8.000e-01  1.800e+00  0.000e+00]
                 marginals: [ 0.000e+00  0.000e+00  0.000e+00]
          upper:  residual: [       inf        inf        inf]
                 marginals: [ 0.000e+00  0.000e+00  0.000e+00]
          eqlin:  residual: []
                 marginals: []
        ineqlin:  residual: [ 0.000e+00  0.000e+00]
                 marginals: [-5.000e-01 -5.000e-01]
 mip_node_count: 0
 mip_dual_bound: 0.0
        mip_gap: 0.0

  文章来源地址https://www.toymoban.com/news/detail-698720.html

到了这里,关于数学建模--线性规划方法的Python实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【数学建模】Python+Gurobi求解非线性规划模型

    目录 1 概述 2 算例  2.1 算例 2.2 参数设置 2.3 Python代码实现 2.4 求解结果 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。 参考:(非线性规划Python)计及动态约束及节能减排环保要求的经济调度 2.1 算例 2.2 参数设置 求解NLP/非凸问题时,

    2024年02月09日
    浏览(47)
  • 数学建模整理-线性规划、整数规划、非线性规划

    在人们的生产实践中,经常会遇到如何利用现有资源来安排生产,以取得最大经济 效益的问题。若目标函数及约束条件均为线性函数,则称为线性规划(Linear Programming 简记 LP)。 可行解 :满足约束条件的解。 可行预 :所有可行解构成的集合称为问题的可行域,记为R。 图解法

    2024年02月06日
    浏览(41)
  • 数学建模——线性规划

    目录 基本概念 模型求解和应用 基于求解器的求解方法 基于问题的求解方法 其他  运筹学的一个重要分支是数学规划,线性规划是数学规划的一个重要的分支。 变量称为 决策变量 ,规划的目标称为 目标函数 ,限制条件称为 约束条件 ,s.t.是“受约束于”的意思。 建立线

    2024年01月18日
    浏览(45)
  • 【数学建模】线性规划

    1.1线性规划的实例与定义 1.2线性规划的Matlab标准形式 线性规划的目标函数可以是求最大值,也可以是求最小值,约束条件的不等号可以是小于号也可以是大于号。为了避免这种形式多样性带来的不便,Matlab中规定线性规划的标准形式为 其中c和x为n维列向量,A,Aeq为适当维数

    2024年02月09日
    浏览(44)
  • 数学建模——线性规划类

    [x,y]=linprog(c,A,b,Aeq,beq,lb,ub) 例如: max需要加负号变成min、=需要加负号变成= matlab (1)基于求解器 (2)基于问题 con中根据符号分类 python (1)绝对值 (2)min(max(q*x)) (见风投案例模型二) 【0】题目描述 【1】模型一 模型一:设定风险度的最大接受值,在不太冒险的情况下

    2024年02月13日
    浏览(45)
  • 数学建模(二)线性规划

    课程推荐:6 线性规划模型基本原理与编程实现_哔哩哔哩_bilibili 目录 一、线性规划的实例与定义 1.1 线性规划的实例 1.2 线性规划的定义 1.3 最优解 1.4 线性规划的Mathlab标准形式 1.5 使用linprog函数 二、线性规划模型建模实战与代码 2.1 问题提出 2.2 基本假设 2.3 模型的分析与建

    2024年02月12日
    浏览(42)
  • 数学建模十大算法03—线性规划、整数规划、非线性规划、多目标规划

    一、线性规划(Linear Programming,LP) 1.1 引例 在人们的生产实践中,经常会遇到 如何利用现有资源来安排生产,以取得最大经济效益的问题。 此类问题构成了运筹学的一个重要分支一数学规划,而 线性规划(Linear Programming, LP) 则是数学规划的一个重要分支。 简而言之,线

    2024年02月13日
    浏览(46)
  • 数学建模| 线性规划(Matlab)

    线性规划:约束条件和目标函数都是线性的。简单点说,所有的决策变量在目标函数和约束条件中都是一次方。 Matlab函数: 参数解释: func 表示目标函数。 A 表示不等式约束条件系数矩阵,b 表示不等式约束条件常数矩阵。 Aeq 表示等式约束条件系数矩阵,beq 表示等式约束条

    2024年02月07日
    浏览(44)
  • 数学建模——非线性规划

    目录 基本概念 凸规划 判别定理 二次规划模型 非线性规划的求解 无约束极值问题 有约束极值问题 基于求解器的解法 基于问题的求解 其他 非线性规划:描述目标函数或约束条件条件的数学表达式中,至少有一个是非线性函数。 记是n维欧式空间中的一个点(n维向量),,

    2024年02月06日
    浏览(44)
  • 数学建模【非线性规划】

    一、非线性规划简介 通过分析问题判断是用线性规划还是非线性规划 线性规划:模型中所有的变量都是一次方 非线性规划:模型中至少一个变量是非线性 非线性规划在形式上与线性规划非常类似,但在数学上求解却困难很多 线性规划有通用的求解准确解的方法(单纯形法

    2024年02月19日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包