资源

分散(mpex10)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:mpex10*//*标题:分散(mpex10)*//*产品:或*//*系统:所有*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考:*//*MISC:数学编程示例10*//*示例手册*//*                                                             *//***************************************************************/数据部门_数据;输入部门$@@;数据线;A、B、C、D、E;data city_data;输入城市$;数据线;布里斯托尔布赖顿伦敦;数据效益数据;输入城市$A B C D E;数据线;布里斯托尔10 15 10 20 5布莱顿10 20 15 15;数据comm_data;输入i$j$comm;数据线;甲乙0.0甲丙1.0A D 1.5型A E 0.0B C 1.4类B D 1.2版B E 0.0C D 0.0分C E 2.0版D E 0.7(直径0.7);数据成本数据;输入i$j$成本;数据线;布里斯托尔-布里斯托尔5布里斯托尔·布莱顿14布里斯托尔伦敦13布莱顿-布莱顿5伦敦布莱顿9伦敦伦敦10;%设max_num_depts=3;过程操作模型;设置<str>DEPTS;将数据dept_data读入DEPTS=[dept];设置城市;将数据city_data读入CITIES=[城市];num benefit{DEPTS,CITIES}init 0;将数据benefit_data读入[城市]{DEPTS}中的部门<福利[部门,城市]=col(部门)>;印刷效益;num命令{DEPTS,DEPTS}初始化。;将数据comm_data读入[ij]comm;对于DEPTS中的{i,DEPTS}中的j do;如果i=j,则comm[i,j]=0;否则,如果comm[i,j]=。则comm[i,j]=comm[j,i];结束;打印通信;num成本{CITIES,CITIES}init。;将数据cost_data读入[ij]cost;对于城市中的{i,城市中的j:成本[i,j]=.}cost[i,j]=成本[j,i];印刷成本;var分配{DEPTS,CITIES}二进制;在DEPTS中设置IJKL={i,在CITIES中设置j,在DEPTS中设置k,在CITES中设置l:i<k};var乘积{IJKL}二进制;impvar总收益=DEPTS中的总和{i,CITIES中的j}收益[i,j]*分配[i,j];impvar总成本=IJKL}comm[i,k]*成本[j,l]*乘积[i,j,k,l]中的总和{;max NetBenefit=总收益-总成本;con Assign_dept{DEPTS}中的部门:sum{CITIES中的城市}赋值[dept,city]=1;基数{城市中的城市}:sum{DEPTS}分配[dept,city]<=&max_num_DEPTS;IJKL}中的con Product_def{<i,j,k,l>:赋值[i,j]+赋值[k,l]-1<=乘积[i,j,k,l];IJKL}中的con产品_def2{乘积[i,j,k,l]<=赋值[i,j];IJKL}中的con Product_def3{i,j,k,l>:乘积[i,j,k,l]<=赋值[k,1];解决;打印TotalBenefit TotalCost;打印分配;删除Product_def Product_def2 Product_def3;con Product_def4{i在DEPTS中,k在DEPTS中,l在CITIES中:i<k}:IJKL}乘积[i,j,k,l]中的sum{<(i),j,(k),(l)>=赋值[k,l];con Product_def5{在DEPTS中为k,在DEPTS中为i,在CITIES中为j:i<k}:IJKL}积[i,j,k,l]=赋值[i,j]中的和{<(i),(j),(k),l>;解决;打印TotalBenefit TotalCost;打印分配;退出;