资源描述:
《CPLEX in Python 帕累托最优.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、TheWarehouseProblemTheWarehouseProblemisawell-knowoptimizationcasefoundinmanytextbooks.Theproblemconsists,givenasetofcandidatewarehouselocationsandasetofstorestodecidewhichwarehousetoopenandwhichwarehousewillserverwhichstore.InputDataDataisprovidedasfollows:Foreachwarehouse,wereq
2、uireatuple(name,capacity,fixed-cost),wherenameistheuniquenameofthewarehouse,capacityisthemaximumnumberofstoresitcansupplyandfixed_costisthecostincurredbyopeningthewarehouse.Foreachcouple(warehouse,store)asupply_costwhichestimatesthecostofsupplyingthisstorebythiswarehouse.Acompactwa
3、yofrepresentingthedataisaPythondictionary:foreachwarehousetuple,listallsupplycostsforallstores.BusinessDecisionsTheproblemconsistsindecidingwhichwarehousewillbeopenandforeachstore,bywhichwarehouseitwillbesupplied.BusinessConstraintsDecisionsmustsatisfythefollowing(simplified)busin
4、essconstraints:1.Unicity:eachstoreissuppliedbyoneuniquewarehouse2.Astorecanonlybesuppliedbyanopenwarehouse3.Capacity:thenumberofstoressuppliedbyawarehousemustbelessthanitscapacityBusinessObjectiveThegoalistominimizethetotalcostincurredbythedecisions,whichismadeoftwocosts:TheTotal
5、OpeningCostisthesumofopeningcostsrangingoverallopenwarehouses.TheTotalSupplyCostisthesumofsupplycostsforallthechosen(warehouse,store)pairsTobeginwith,let'sdefineasmallwarehousedataset:In [17]:WAREHOUSES={('Bonn',1,20):[20,28,74,2,46,42,1,10,93,47],('Bordeaux',4,35):[24,27,97,55,96
6、,22,5,73,35,65],('London',2,32):[11,82,71,73,59,29,73,13,63,55],('Paris',1,37):[25,83,96,69,83,67,59,43,85,71],('Rome',2,25):[30,74,70,61,54,59,56,96,46,95],('Brussels',2,28):[30,74,70,61,34,59,56,96,46,95]}print(WAREHOUSES)print("#candidatewarehouses=%d"%len(WAREHOUSES))print("#
7、storestosupply=%d"%len(list(WAREHOUSES.values())[0])){('London',2,32):[11,82,71,73,59,29,73,13,63,55],('Bordeaux',4,35):[24,27,97,55,96,22,5,73,35,65],('Paris',1,37):[25,83,96,69,83,67,59,43,85,71],('Bonn',1,20):[20,28,74,2,46,42,1,10,93,47],('Brussels',2,28):[30,74,70,61,34,59,5
8、6,96,46,95],('Rome',2,25):[30,74,70,61,5