我正在研究一个优化问题,但我坚持使用矩阵来计算距离

时间:2018-10-18 15:18:16

标签: mathematical-optimization

这个项目是关于编写一个lineair程序的,该程序将同一组的人并排放置在飞机上,而我被困在程序上 我们有一个包含6列和29个原始数据的矩阵。每个(i,j,k)代表(client,col,raw),每个客户都属于某个组K 但是因为这是一个三维问题,所以我不知道该怎么写

1 个答案:

答案 0 :(得分:0)

如果我们有二进制变量:

x(p,r,s) = 1 if passenger p is sitting in row r, seat s
           0 otherwise

然后我们可以最大化:

max sum  x(p1,r,s)*x(p2,r,s+1)

其中,总和是同一组中的所有(p1,p2),以及所有行和位。这是非凸的,但是您可以线性化乘积(这是二进制变量的乘积)。这导致:

max sum y(p1,p2,r,s)
y(p1,p2,r,s) <= x(p1,r,s)
y(p1,p2,r,s) <= x(p2,r,s+1)
0 <= y(p1,p2,r,s) <= 1

可能“行”需要定义为彼此相邻的座位,即具有一个过道:

 (r1,s1)(r1,s2)(r1,s3)     (r2,s1)(r2,s2)(r2,s3)
 (r3,s1)(r3,s2)(r3,s3)     (r4,s1)(r4,s2)(r4,s3)

当然,您需要添加标准的“分配”约束(每个座位只能坐一次,每个乘客都可以坐下)。