线性规划模型
线性规划算是数学建模中最基础的模型了,其典型特征就是线性和有限资源,即在一组线性约束条件下,求解一个线性目标函数的最大值或最小值问题:
其中x 是决策变量向量,c 是目标函数系数向量,a 和 b 分别是约束系数矩阵和右侧常数向量。因为比较简单,以下内容都会简写。
1.基础实例
以下是基于python的实现:
# 创建问题实例,最大化目标函数
prob = LpProblem("生产计划问题", LpMaximize)# 定义决策变量
x1 = LpVariable("产品A", lowBound=0) # x1 >= 0
x2 = LpVariable("产品B", lowBound=0) # x2 >= 0# 设置目标函数
prob += 4 * x1 + 3 * x2, "总利润"# 添加约束条件
prob += 2 * x1 + x2 <= 10, "机器时间约束1"
prob += x1 + x2 <= 8, "机器时间约束2"
prob += x2 <= 7, "机器时间约束3"# 求解问题
prob.solve()# 输出结果
print("状态:", "最优" if prob.status == 1 else "未找到最优解")
print(f"产品A生产数量: {x1.value():.2f} 单位")
print(f"产品B生产数量: {x2.value():.2f} 单位")
print(f"最大利润: {prob.objective.value():.2f} 元")
2.可转化的线性规划模型
多任务转化
又要使收益大又要使风险小,显然是一个多任务。那么就把它化成单任务,比如引入一个预期值,这个值是收益与风险的比值,在不同预期值下求收益最大的情况进行对比;又或者是将二者做差,再求该表达式最值(注意二者单位系数转换)
3.总结
线性规划的模型很好判断,在有限资源(即约束条件)下求极值,且所求的函数极值是一个线性表达式,这时找好决策变量和约束条件就可以求解了。