Math 变利率混合整数规划

Math 变利率混合整数规划,math,optimization,mathematical-optimization,linear-programming,integer-programming,Math,Optimization,Mathematical Optimization,Linear Programming,Integer Programming,我目前一直坚持一个MIP计划,利率I是基于为住房计划a生产的单元数量。如果计划a的房屋销售数量是所有四种类型中最高的,那么I=1。如果A计划出售的房屋数量是第二高的,那么i=2,依此类推,直到i=4。利率基本上是2i%。不确定如何添加约束,以表示A计划房屋的位置,并在目标函数中实现正确的利率。目标函数使总利润最大化(例如50000A+40000B+70000C+80000D)。关于如何使用二进制变量表示位置有什么想法吗?一种方法是,使用置换矩阵p(i,j)。即 sets i = {A,B,

我目前一直坚持一个MIP计划,利率I是基于为住房计划a生产的单元数量。如果计划a的房屋销售数量是所有四种类型中最高的,那么I=1。如果A计划出售的房屋数量是第二高的,那么i=2,依此类推,直到i=4。利率基本上是2i%。不确定如何添加约束,以表示A计划房屋的位置,并在目标函数中实现正确的利率。目标函数使总利润最大化(例如50000A+40000B+70000C+80000D)。关于如何使用二进制变量表示位置有什么想法吗?

一种方法是,使用置换矩阵
p(i,j)
。即

sets 
  i = {A,B,C,D}
  j = {1,2,3,4}

binary variable p(i,j)

# assignment constraints
sum(i,p(i,j))=1
sum(j,p(i,j))=1

# quantities sold
x(j) = sum(i, p(i,j)*x(i))
x(j) >= x(j+1)

# interest rate
r(i) = sum(j, p(i,j)*r(j))
r(j) = 2*j/100
不幸的是,表达式
p(i,j)*x(i)
是非线性的。通过一些努力,我们可以按如下方式修复此问题:

sets 
  i = {A,B,C,D}
  j = {1,2,3,4}

binary variable p(i,j)
positive variable q(i,j)

# assignment constraints
sum(i,p(i,j))=1
sum(j,p(i,j))=1

# quantities sold
x(j) = sum(i, q(i,j))
x(j) >= x(j+1)

# linearization of q(i,j) = p(i,j)*x(i)
q(i,j) <= p(i,j)*xup(i)
x(i) - xup(i)*(1-p(i,j)) <= q(i,j) <= x(i)

' interest rate
r(i) = 2*sum(j, p(i,j)*j)/100
集合
i={A,B,C,D}
j={1,2,3,4}
二元变量p(i,j)
正变量q(i,j)
#分配约束
和(i,p(i,j))=1
和(j,p(i,j))=1
#销售量
x(j)=和(i,q(i,j))
x(j)>=x(j+1)
#q(i,j)=p(i,j)*x(i)的线性化

q(i,j)请用一个你如何尝试解决问题的例子来编辑你的问题。但出售数量下的第一个约束不是非线性的,因为你将置换矩阵乘以x(i)[你也在求解的数量]?该死,你是对的。可以很容易地线性化,但这使得这件事相当复杂。我一直在试图弄清楚,但似乎有点难以线性化排序约束,因为数量和二进制变量都是未知的。有什么想法吗?