Math 基于数量的不同供应商成本优化

Math 基于数量的不同供应商成本优化,math,linear-programming,solver,operations-research,Math,Linear Programming,Solver,Operations Research,我试图根据供应商的成本选择一种产品的最低成本 第一个限制是价格根据成本而变化,因此,对于第一个供应商,如果您购买1Bil Bil>Homebrewer(我不知道如何实现它,可能会将一个微不足道的数字加在成本中) 每个生产周期都有需求 我尝试使用二进制文件来排除每个供应商的一个价格,从而生成一个OR逻辑。例如:x1+x2=0,二进制 然而,我不能用二进制实现这个需求 如果有人能给我一些小费,请。 提前谢谢 注:我正在Gusek上学习LP,但我也安装了solverstudio Edit2: 我提出

我试图根据供应商的成本选择一种产品的最低成本

第一个限制是价格根据成本而变化,因此,对于第一个供应商,如果您购买1Bil Bil>Homebrewer(我不知道如何实现它,可能会将一个微不足道的数字加在成本中)

每个生产周期都有需求

我尝试使用二进制文件来排除每个供应商的一个价格,从而生成一个OR逻辑。例如:x1+x2=0,二进制

然而,我不能用二进制实现这个需求

如果有人能给我一些小费,请。 提前谢谢

注:我正在Gusek上学习LP,但我也安装了solverstudio

Edit2:

我提出了这个解决方案:

多亏了埃尔文,这个问题用行话解决了

@BIN( y1);
@BIN( y2);
@BIN( y3);
@BIN( y4);
@BIN( y5);
@BIN( y6);
@GIN( x1);
@GIN( x2);
@GIN( x3);
@GIN( x4);
@GIN( x5);
@GIN( x6);
!Desempate;
e1=0.001;
e2=0.001;
e3=0.002;
e4=0.002;
e5=0.003;
e6=0.003;
!FO;
!Sum(ci*xi*yi);
MIN = ((107+e1)*x1*y1)+((90+e2)*x2*y2)+((100+e3)*x3*y4)+((96+e4)*x4*y4)+((105+e5)*x5*y5)+((90+e6)*x6*y6);

!s.t.;
!Demand, it is a variable that is changed during production;
x1*y1+x2*y2+x3*y3+x4*y4+x5*y5+x6*y6=5;
!Just one supplier is chosen;
y1+y2+y3+y4+y5+y6=1;
!Intervals;
x1>=1*y1;
x1<5*y1;
x2>=5*y2;
x3>=1*y3;
x3<4*y3;
x4>=4*y4;
x5>=1*y5;
x5>5*y5;
x6>=5*y6;
@BIN(y1);
@垃圾桶(y2);
@BIN(y3);
@BIN(y4);
@BIN(y5);
@BIN(y6);
@GIN(x1);
@杜松子酒(x2);
@杜松子酒(x3);
@杜松子酒(x4);
@杜松子酒(x5);
@杜松子酒(x6);
!脱缰;
e1=0.001;
e2=0.001;
e3=0.002;
e4=0.002;
e5=0.003;
e6=0.003;
!法罗群岛;
!总和(ci*xi*yi);
最小值=((107+e1)*x1*y1)+((90+e2)*x2*y2)+((100+e3)*x3*y4)+((96+e4)*x4*y4)+((105+e5)*x5*y5)+((90+e6)*x6*y6);
!s、 t。;
!需求,是生产过程中发生变化的变量;
x1*y1+x2*y2+x3*y3+x4*y4+x5*y5+x6*y6=5;
!只选择一个供应商;
y1+y2+y3+y4+y5+y6=1;
!间隔;
x1>=1*y1;
x1=5*y2;
x3>=1*y3;
x3=4*y4;
x5>=1*y5;
x5>5*y5;
x6>=5*y6;

嗯,这个程序很混乱,但它只是为了学习,使用公式可以进行一般编程并解决更大的问题。

这通常是使用分段线性函数建模的。这可以通过SOS2变量或二进制变量来实现。使用了什么二进制技术?谢谢你的提示,我正在研究分段线性函数,这是我所需要的使其工作MIP解算器使用分支和边界。Gusek不是一个解算器,只是一个编辑器。GLPK不允许非线性目标(或任何非线性目标)。相信GLPK也不支持SOS2变量。可以用二进制变量模拟SOS2集。见H.P.Williams,“数学规划中的模型构建”,Wiley,