第五天:整数规划(integer programming)

本文详细介绍了整数规划的基本概念,特别是0-1整数规划的应用,并通过实例展示了如何使用Lingo软件求解。涵盖了指派问题的标准形式,数学模型构建,以及如何利用Lingo的gin和bin函数实现整数和0-1约束。最后通过实际案例解析了如何在商业成本优化中运用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

·整数规划的简单介绍

·整数规划的Lingo求解

1.Lingo的简单使用

2.求解0-1整数规划问题

 ·指派问题的标准形式及其数学模型


·整数规划的简单介绍

根据决策变量是否完全为整数将整数规划划分为纯整数规划和混合整数规划,根据整数规划中的决策变量是否完全为0-1时可以将整数规划再次划分为纯0-1整数规划,混合0-1整数规划。

·整数规划的Lingo求解

在求解整数规划方面,Lingo更胜一筹,因此在这里采用了Lingo求解

Lingo只需在最后对决策变量使用@GIN函数就能对解进行整数限制,使用@BIN函数就能对解进行0-1限制。

1.Lingo的简单使用

例:

min(x_1+2*x_2+3*x_3)

-2*x_1+x_2+x_3<=9

-3*x_1+x_2+2*x_3>=4

4*x_1-2*x_2-3*x_3=-6

x_1<=0

x_2>=0

Lingo求解:

sets:
n/1..2/:x;
endsets
max = 3*x(1)-x(2);
3*x(1)-2*x(2)<=3;
5*x(1)+4*x(2)>=10;
2*x(1)+x(2)<=5;
@for(n:@gin(x));
end

代码分析:

Lingo程序大致由三部分sets,data,min/max组成

其中sets是设置变量的个数,如例1:n/1..2/:x;   表示设置一个n类型向量,其中向量名词为x,向量中元素个数为2。

data为数据集,对设置的变量进行赋值,当语句较多的时候使用。

min/max为目标函数段,其包括目标函数及其约束条件。

其中for循环意义不变多讲,gin函数是将决策变量约束为整数,bin函数将决策变量约束为0-1

运行结果:

 运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值