计算机学院张亚玲西安科技大学Lingo计算机学院张亚玲数学规划软件计算机学院张亚玲西安科技大学某公司有6个建筑工地,位置坐标为(ai,bi)(单位:公里),水泥日用量di(单位:吨)假设:料场和工地之间有直线道路(1)现有2料场,位于A(5,1),B(2,7),记(xj,yj),j=1,2,日储量ej各有20吨。制定每天的供应计划:即从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。i123456a28.750.55.7537.25b30.754.7556.57.75d1.25547611例选址问题决策目标约束计算机学院张亚玲西安科技大学解:决策变量:料场j到工地i的运量——cij——12维线性规划模型?lingo——表达式?26221/2112161min[()()].,1,...,6,1,20,1,...,6,1,2ijjijijiijijijjiijcxaybstcdicejcij目标:吨公里约束:需求供应计算机学院张亚玲西安科技大学建筑工地位置坐标(ai,bi)、水泥日用量di:对每个建筑工地(6个)都有一个对应的值都是一个由6个元素组成的数组——是已知的料场位置坐标(xj,yj)、日储量ej对每个料场(2个)都有一个对应的值都是一个由2个元素组成的数组——目前是已知的料场到建筑工地的供应计划cij对每个料场与建筑工地之间(6×2)都有一个对应的值是一个6×2个元素组成的矩阵——是未知数LINDO无数组,每个变量输入——麻烦(1)Lingo的集合Set——下标集合——100个工地?1、Lingo的集合Set及其属性计算机学院张亚玲西安科技大学(2)集合Set及其属性定义数组下标集合demand/1..6/———表示6个建筑工地a,b,d称为该集合的属性———表示坐标(ai,bi)、水泥日用量di定义数组下标集合supply/1..2/———表示6个建筑工地该集合的属性x,y,e———表示坐标(xj,yj)、日储量ej定义数组下标集合link(demand,supply)———表示6×2个料场到建筑工地的连接该集合的属性c———表示每个料场与建筑工地之间供应计划cij1到6的整数计算机学院张亚玲西安科技大学建立下标集合(3)Lingo建模语言——集合段数据段需求点的位置供需量sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddata赋值需求供应连接LINGO建模语言也称为矩阵生成器(MATRIXGENERATOR)。类似DEMAND和SUPPLY直接把元素列举出来的集合,称为基本集合(primaryset),而把LINK这种基于其它集合而派生出来的二维或多维集合称为派生集合(derivedset)。由于是DEMAND和SUPPLY生成了派生集合LINK,所以DEMAND和SUPPLY称为LINK的父集合。计算机学院张亚玲西安科技大学建立下标集合例3选址问题需求点的位置供需量sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddata赋值需求供应连接基本集合派生集合626152514241323122211211212121654321654321654321,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,cccccccccccceeyyxxddddddbbbbbbaaaaaa计算机学院张亚玲西安科技大学目标:吨公里例3选址问题26221/211min[()()]ijjijijicxaybmin=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsets计算机学院张亚玲西安科技大学约束:非负.0,1,...,6,1,2ijstcij@for(demand(i):@sum(supply(j):c(i,j))=d(i););@for(supply(j):@sum(demand(i):c(i,j))=e(j););2161.,1,...,6,1,2ijijijjistcdicej约束:需求供应OK计算机学院张亚玲西安科技大学目标与约束段MODEL:TitleLocationProblem;sets:demand/1..6/:a,b,d;supply/1..2/:x,y,e;link(demand,supply):c;endsetsdata:a=1.25,8.75,0.5,5.75,3,7.25;b=1.25,0.75,4.75,5,6.5,7.75;d=3,5,4,7,6,11;e=20,20;x,y=5,1,2,7;enddatainit:endinitmin=@sum(link(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^(1/2));@for(demand(i):@sum(supply(j):c(i,j))=d(i););@for(supply(j):@sum(demand(i):c(i,j))=e(j););END集合段数据段初始段供应约束需求需求点的位置供需量供应初始点目标需求约束连接结果:总吨公里数为136.2定义集合输入数据使用集合计算机学院张亚玲西安科技大学(2)改建两个新料场需要确定新料场位置(xj,yj)和运量cij,使总吨公里数最小。例1选址问题——进一步讨论作业练习计算机学院张亚玲西安科技大学作业练习2、使用集合循环函数求解105111015151max()100200:()150,0ijijijiijjiiiijaxyxystxyxy1051256710()464750ija其中