【发布时间】:2021-04-05 00:37:01
【问题描述】:
我正在尝试在我的解决方案中包含相称性。 .dat 如下:
Farms = {Rice,Barns,Snyder};
Crops = {Corn,Wheat,SoyBeans};
UsableLand = [400,600,300];
Water = [600,800,375];
MaximumQuota = [600,500,325];
WaterConsumption = [3,2,1];
Profit = [1000,750,250];
我的 .mod 目前构建如下:
{string} Farms = ...;
{string} Crops = ...;
int UsableLand[Farms]=...;
int Water[Farms]=...;
int MaximumQuota[Crops]=...;
int WaterConsumption[Crops]=...;
int Profit[Crops]=...;
constraint LandAcre[Farms];
constraint WaterAcre[Farms];
constraint CropLimit[Crops];
constraint Propotionality[Crops][Farms];
dvar float+ ProductionAmount[Crops][Farms];
maximize
sum(i in Crops)
sum(j in Farms)
Profit[i]*ProductionAmount[i][j];
subject to {
forall(j in Farms)
LandAcre[j]:
sum(i in Crops) ProductionAmount[i][j] <= UsableLand[j];
forall(j in Farms)
WaterAcre[j]:
sum(i in Crops) WaterConsumption[i] * ProductionAmount[i][j] <= Water[j];
forall(i in Crops)
CropLimit[i]:
sum(j in Farms) ProductionAmount[i][j] <= MaximumQuota[i];
我的问题是如何将比例性纳入约束条件。我是否添加诸如:
forall(j in Farms)
Proportionality [j]:
sum(i in Crops) ProductionAmount[i][j] / UsableLand[j] == ProductionAmount[i][j] / UsableLand[j];
非常感谢任何指导!
【问题讨论】:
标签: linear-programming cplex ilog