资源

工厂规划2(mpex04)

/***************************************************************//*                                                             *//*S A S S A M P L E L I B R A R Y*//*                                                             *//*名称:mpex04*//*标题:工厂规划2(mpex04)*//*产品:或*//*系统:所有*//*程序:OPTMODEL*//*数据:*//*                                                             *//*支持:更新:*//*参考:*//*MISC:数学规划示例04*//*示例手册*//*                                                             *//***************************************************************/数据product_data;输入产品$利润;数据线;产品1 10产品2 6产品3 8产品4 4产品5 11产品6 9产品7 3;数据需求数据;输入prod1-prod7;数据线;500 1000 300 300  800 200 100600  500 200   0  400 300 150300  600   0   0  500 400 100200  300 400 500  200   0 1000  100 500 100 1000 300   0500  500 100 300 1100 500  60;数据机器类型产品数据;输入machine_type$prod1-prod7;数据线;研磨机0.5 0.7 0 0 0.3 0.2 0.5v钻孔0.1 0.2 0 0.3 0 0.6 0h钻孔0.2 0 0.8 0 0 0.6镗床0.05 0.03 0 0.07 0.1 0 0.08刨床0 0 0.01 0 0.05 0 0.05;%设store_ub=100;%设storage_cost_per_unit=0.5;%设final_storage=50;%设num_hours_per_period=24*2*8;数据机器类型数据;输入machine_type$num_machines-nummachines_needing_maintenance;数据线;研磨机4 2v钻孔2 2h钻孔3 3钻孔机1 1刨床1 1;过程操作模型;设置产品;num利润{产品};将数据product_data读入PRODUCTS=[product]利润;设置PERIODS;num需求{产品,周期};将数据demand_data读入PERIODS=[_N_]{产品中的产品}<demand[产品,N_]=col(产品)>;设置MACHINE_TYPES;num个机器{MACHINE_TYPES};num num_machines_needing_maintenance{MACHINE_TYPES};将数据machine_type_data读取到machine_TYPES=[机器类型]num_machines_nummachines_needing_maintenance;num production_time{产品,机器类型};将数据machine_type_product_data读取到[机器类型]{产品中的产品}<production_time[product,machine_type]=col(product)>;var品牌{产品,周期}>=0;var销售{PRODUCTS中的产品,PERIODS}中的周期>=0<=需求[产品,周期];num last_period=最大{周期中的周期}周期;var存储{产品,周期}>=0<=&Store_ub;用于{PRODUCTS}中的产品fix Store[product,last_period]=&final_storage;impvar存储成本=总和{PRODUCTS中的乘积,PERIODS中的周期}&storage_cost_per_unit*存储[product,period];最大总利润=总和{PRODUCTS中的乘积,PERIODS中的周期}利润[产品]*销售[产品,期限]-存储成本;var NumMachinesDown{MACHINE_TYPES,PERIODS}>=0整数;con Machine_hours_con{Machine_TYPES中的Machine_type,PERIODS}中的句点:总和{产品中的产品}production_time[产品,机器类型]*品牌[产品,周期]<=&num_hours_per_period(每个周期)*(num_machines[机器类型]-NumMachinesDown[机器类型,句点]);con Maintenance_con{machine_TYPES}中的machine_type:sum{周期中的周期}NumMachinesDown[machine_type,period]=num_machines_needing_maintenance[机器类型];con Flow_balance_con{产品中的产品,周期中的周期}:(如果周期中的周期为-1,则存储[产品,周期-1],否则为0)+品牌[产品,周期]=销售[产品,周期]+门店[产品,时段];解决;打印Make best4。卖得最好。存储最佳4。;打印NumMachinesDown best4。;从[product period]Make Sell Store创建数据sol_data1;从[machine_type period]NumMachinesDown创建数据sol_data2;退出;