最详细!非线性整数规划模型(LINGO代码实现)

您所在的位置:网站首页 整数规划问题lingo 最详细!非线性整数规划模型(LINGO代码实现)

最详细!非线性整数规划模型(LINGO代码实现)

2023-10-17 01:30| 来源: 网络整理| 查看: 265

非线性整数规划模型LINGO

image-20210402204031614

讲解分析:

第一步:确定决策变量

问题是确定调运方案,使得总运输费用最小。

而总运输费用=货物运量*货物单价,题目给了货物单价了,我们求货物运量即可,这里的货物运量则是我们的决策变量。

第二步:确定目标函数和约束条件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GEXUdKMb-1630571232120)(https://note.youdao.com/yws/public/resource/e8cbb6012bc3f5462b8a78019d0972ad/xmlnote/DDAEA06B69D14793A398098FE1419CC2/12)]

上图第一行就是我们的目标函数,下面三行是我们的约束条件,在满足约束条件的前提下,软件会不断遍历Xij所有可能的值,然后z也会根据Xij的变化而产生不同的值,这个时候用一个min函数取所有可能值当中的最小值,即可。

第三步:用LINGO代码实现 model: title 最少运费问题; sets: !集合的定义,WH是集合的名字,W1..W6是集合的长度,一般写成1..6,相当于创建了一个能放六个元素的容器WH,是抽象的,是虚无的,是一种声明,告诉我们“:”后面的变量是一个什么类型的变量,显然,后面的AI是一个确确实实有六个数的数组,是具体的,是实在的。 WH/W1..W6/:AI; !集合的名称、集合内的成员、集合的属性(可以看成是与改集合有关的变量或常量,相当与数组); VD/V1..V8/:DJ; links(WH,VD):C,X; !以WH和VD为基础,衍生集合。相当于把两个向量结合在一起,形成一个二维数组,有行和列,C和X这两个变量是实在的具体的二维数组,只不过后面C我们赋值了,X是通过系统根据约束条件和目标函数自己赋值的; endsets data: !数据段; AI=60,55,51,43,41,52; DJ=35,37,22,32,41,32,43,38; C=6,2,6,7,4,2,5,9 4,9,5,3,8,5,8,2 5,2,1,9,7,4,3,3 7,6,7,3,9,2,7,1 2,3,9,5,7,2,6,5 5,5,2,2,8,1,4,3; enddata min=@sum(links(I,J):c(i,j)*x(i,j)); !目标函数.links我们上线提到了,是一个6X8的集合名; @for(WH(i):@sum(VD(j):x(i,j))


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3