lingo解非线性规划
- 格式:ppt
- 大小:1.51 MB
- 文档页数:138


⾮线性整数规划模型(LINGO代码实现)⾮线性整数规划模型LINGO讲解分析:第⼀步:确定决策变量问题是确定调运⽅案,使得总运输费⽤最⼩。
⽽总运输费⽤=货物运量*货物单价,题⽬给了货物单价了,我们求货物运量即可,这⾥的货物运量则是我们的决策变量。
第⼆步:确定⽬标函数和约束条件上图第⼀⾏就是我们的⽬标函数,下⾯三⾏是我们的约束条件,在满⾜约束条件的前提下,软件会不断遍历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是通过系统根据约束条件和⽬标函数⾃⼰赋值的;endsetsdata:!数据段;AI=60,55,51,43,41,52;DJ=35,37,22,32,41,32,43,38;C=6,2,6,7,4,2,5,94,9,5,3,8,5,8,25,2,1,9,7,4,3,37,6,7,3,9,2,7,12,3,9,5,7,2,6,55,5,2,2,8,1,4,3;enddatamin=@sum(links(I,J):c(i,j)*x(i,j)); !⽬标函数.links我们上线提到了,是⼀个6X8的集合名;@for(WH(i):@sum(VD(j):x(i,j))<=AI(I));!约束条件.@for⼀出,你就要知道这⼀⾏写的就是约束条件了;@for(vd(j):@sum(WH(i):x(i,j))=DJ(j));!约束条件.;end。