资源

食品制造1(mpex01)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:mpex01*//*标题:食品制造1(mpex01)*//*产品:或*//*系统:所有*//*关键字:或*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考编号:*//*MISC:数学规划示例01*//*示例手册*//*                                                             *//***************************************************************/数据成本数据;输入veg1-veg2-oil1-oil3;数据线;110  120  130  110  115130  130  110   90  115110 140 130 100 95120  110  120  120  125100  120  150  110  10590  100  140   80  135;数据硬度数据;输入油$硬度;数据线;蔬菜8.8蔬菜2 6.1油1 2.0油2 4.2油3 5.0;%让收入per_ton=150;%设veg_ub=200;%让非eg_ub=250;%让store_ub=1000;%设storage_cost_per_ton=5;%设硬度lb=3;%设硬度ub=6;%设init_storage=500;过程操作模型;设置OILS;num硬度{OILS};将数据hardness_data读入OILS=[油]硬度;印刷硬度;设置PERIODS;num成本{油,周期};将数据cost_data读入PERIODS=[_N_]{OILS中的油}<成本[油,N_]=col(油)>;印刷成本;/*每个时期要购买的原油吨数*/var购买{油,周期}>=0;var使用{OILS,周期}>=0;impvar制造{period in PERIODS}=总和{oil in OILS}使用[oil,period];num last_period=最大{周期中的周期}周期;var存储{OILS,PERIODS联合{0}}>=0<=&Store_ub;对于{OILS中的油}do;fix Store[oil,0]=&init_storage;fix存储[oil,last_period]=&init_storage;结束;设置VEG={OILS中的油:substr(oil,1,3)=“VEG”};设置NONVEG=OILS diff VEG;impvar收入=sum{PERIODS in PERIODS}&revenue_per_ton*制造[period];impvar原始成本=总和{OILS中的石油,周期中的周期}成本[石油,周期]*购买[石油,期限];impvar存储成本=总和{OILS中的油,周期中的周期}&storage_cost_per_ton*存储[oil,period];最大利润=收入-原始成本-存储成本;con Veg_ub_con{周期中的周期}:总和{VEG中的油}使用[oil,period]<=&VEG_ub;con Nonveg_ub_con{周期中的周期}:sum{NONVEG中的oil}使用[oil,period]<=&noneg_ub;con Flow_balance_con{油中的油,周期}:储存[油,周期-1]+购买[油,期限]=使用[油,周期]+储存[油,期限];con硬度_ub_con{周期中的周期}:总和{OILS中的油}硬度[oil]*使用[oil,period]>=&hardness_lb*制造[period];con硬度_lb_con{周期中的周期}:总和{OILS中的油}硬度[oil]*使用[oil,period]<=&hardness_ub*制造[period];扩张;num硬度_sol{周期中的周期}=(总和{OILS中的油}硬度[oil]*使用[oil,period].sol)/制造商[period].sol;解决;打印购买使用商店制造硬度_sol;从[oil period]Buy Use Store创建数据sol_data1;从[period]Manufacture创建数据sol_data2;用lp/算法=ps求解;打印购买使用商店制造硬度_sol;用lp/algorithm=ip求解;打印购买使用商店制造硬度_sol;用lp/algorithm=ns求解;打印购买使用商店制造硬度_sol;退出;