Python教程

美赛python学习d5--线性规划

本文主要是介绍美赛python学习d5--线性规划,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

线性规划

线性规划的目的

确定多变量线性函数在变量满足线性约束条件下的最优值
线性规划模型需要确定的三个要素

  1. 决策变量
  2. 目标函数:决策者希望对其优化的指标,是决策变量的线性函数
  3. 约束条件:决策变量取值的限制范围

线性规划的一般模型

在这里插入图片描述

线性规划模型最优解的情况

  1. 有唯一最优解
  2. 有无穷多个最优解
  3. 无可行解
  4. 有可行解但目标函数非空

线性规划的python 求解

运用scipy.optimize模块中的linprog函数求解

  1. 将线性规划问题化为scipy中线性规划模型的标准型
    注意标准型中都是最小值,若原来要求最大值也需要将表达式取反求最小
    在这里插入图片描述
    在这里插入图片描述

  2. 实例
    在这里插入图片描述
    在这里插入图片描述

  • python zip函数
    zip函数将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组
    在这里插入图片描述

灵敏度分析

在上述线性规划求解问题中我们假设 a i j a_{ij} aij​, b i b_i bi​, c j c_j cj​是常数,是固定不变的,但是在实际问题中,由于生产工艺的变化,这些参数往往是预测值或估计值,经常会有少许的变化,由此我们可以考虑由于参数变化导致的现行最优解的变化,讨论将这些参数的变化限制在什么范围内,原最优解仍然是最优的。

整数规划

在实际问题中,决策变量代表产品的件数,箱数,人员的个数等整数量时,变量只有取整数才有意义,因此有必要在规划模型中增加这些决策变量为整数的限制

标准指派问题的模型及求解

在这里插入图片描述
在这里插入图片描述

装箱问题

在这里插入图片描述
在这里插入图片描述

非线性规划问题

非线性规划问题与线性规划问题的区别在于,非线性规划可能的目标函数和约束条件可能不都是线性的
非线性规划问题可以有约束条件也可以没有约束条件,非线性规划的一般模型描述如下
在这里插入图片描述

  1. 用scipy.optimize模块的minimize函数求解
这篇关于美赛python学习d5--线性规划的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!