数学建模_规划类问题_优化与控制【线性规划】【整数规划】

数学建模题型与知识框架总览

题型:

1.数据处理  2.关联与分析 3.分类与判别  4.评价与决策  5.预测与预报  6.优化与控制

优化与控制:

通过数学模型和算法,寻找最优解的过程

知识框架:

1.线性规划 2.整数规划 3.动态规划 4.非线性规划 5.多目标规划 6.启发式算法

线性规划

判断

目标函数和约束条件均为线性函数--------------所有变量都是一次方

处理方法

1、lindo
(1)打开lindo

                        

(2)步骤
  • 输入目标函数,使用 MAX 或 MIN 关键字开始。
  • 输入约束条件,使用 ST 或 SUBJECT TO 关键字开始。
  • 每个约束条件单独一行,使用 <=>=, 或 = 表示不等式类型。
  • 最后,使用 END 关键字结束模型输入。

(3)查看结果

点击小靶子运行求解

点击“是”,进行敏感性分析

查看指标

  • 最优解信息
LP OPTIMUM FOUND AT STEP      2

线性规划的最优解在算法在两次迭代后找到。表明问题相对简单或模型结构良好。

  • 目标函数值
OBJECTIVE FUNCTION VALUE
1)      26.00000

最优解的目标函数值为26.00000。

  • 决策变量值和减少成本
VARIABLE        VALUE          REDUCED COST
X1         2.000000          0.000000
X2         4.000000          0.000000
X1,X2         0.000000          0.000000

X1 的最优值为2.000000,其减少成本为0.000000,表示在当前最优解下,X1 的目标函数系数变化不会影响最优解。

X2 的最优值为4.000000,其减少成本同样为0.000000,表明X2 的目标函数系数变化也不会影响最优解。

X1,X2 的值为0.000000,可能是非基变量或辅助变量,其减少成本为0.000000,表示这些变量在最优解中不起作用。

  • 约束条件的松弛或剩余及对偶价格
ROW   SLACK OR SURPLUS     DUAL PRICES
2)         0.000000          2.333333
3)         0.000000          0.333333
4)         0.000000          0.000000

第2个约束条件的松弛变量值为0.000000,表明这个约束是紧约束,其对偶价格为2.333333,表示如果该约束的右端值增加1个单位,目标函数值将增加2.333333。

第3个约束条件的松弛变量值为0.000000,也是紧约束,其对偶价格为0.333333,表示如果该约束的右端值增加1个单位,目标函数值将增加0.333333。

第4个约束条件的松弛变量值为0.000000,其对偶价格为0.000000,可能表示这个约束不是紧约束,或者它是一个冗余约束。

  • 迭代次数
NO. ITERATIONS=       0

迭代次数为0,这可能表明问题非常简单,或者使用了特定的算法(如单纯形法)在找到最优解之前没有进行任何迭代。

  • 目标函数系数的范围
OBJ COEFFICIENT RANGES
VARIABLE         CURRENT        ALLOWABLE        ALLOWABLE
               COEF          INCREASE         DECREASE
X1        3.000000         7.000000         0.500000
X2        5.000000         1.000000         3.500000
X1,X2        0.000000         0.000000         INFINITY

X1 的当前系数为3.000000,系数可以增加至7.000000而不改变最优解,可以减少至0.500000而不改变最优解。

X2 的当前系数为5.000000,系数可以增加至1.000000而不改变最优解,可以减少至3.500000而不改变最优解。

X1,X2 的当前系数为0.000000,系数可以无限减少而不影响最优解。

  • 约束条件右端值的范围
RIGHTHAND SIDE RANGES
ROW         CURRENT        ALLOWABLE        ALLOWABLE
           RHS          INCREASE         DECREASE
2       10.000000         6.000000         6.000000
3        8.000000        12.000000         3.000000
4        0.000000         0.000000         INFINITY

第2个约束条件的当前右端值为10.000000,可以增加至16.000000而不改变最优解,可以减少至4.000000而不改变最优解。

第3个约束条件的当前右端值为8.000000,可以增加至20.000000而不改变最优解,可以减少至5.000000而不改变最优解。

第4个约束条件的当前右端值为0.000000,可以增加至0.000000而不改变最优解,可以减少至0.000000而不改变最优解。

整数规划

判断

是将部分或全部决策变量限制为整数的规划问题

处理:

1、python

构建模型:
import pulp

# 创建LP最小化问题
prob = pulp.LpProblem("Integer Programming Problem", pulp.LpMaximize)

# 定义变量,变量x1,x2,下界为零,整数
x1 = pulp.LpVariable('x1', lowBound=0, cat='Integer')  # Non-negative integer variable
x2 = pulp.LpVariable('x2', lowBound=0, cat='Integer')  # Non-negative integer variable

# Objective function
prob += 3 * x1 + 5 * x2

# Constraints
prob += x1 + 2 * x2 <= 10
prob += 2 * x1 + x2 <= 8

# Solve the problem
prob.solve()

# Print the results
print("Status:", pulp.LpStatus[prob.status])
print("Optimal values:")
print("x1 =", pulp.value(x1))
print("x2 =", pulp.value(x2))
print("Optimal objective value:", pulp.value(prob.objective))
查看结果:

技巧

1、目标函数整体加“+”“-”号可调整目标为求“最大”或“最小”

2、约束条件有“与”“或”关系时可以用0-1模型转换表达逻辑关系

3、对于条件至多有一个参与,或只能参与一个的条件,可以用累加分别小于1和累加等于1(将累加的数作为系数便可达到选择目的)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值