什么样的算法最适合优化歌剧院的座位分配?
What kind of algorithm is well suited for optimizing seat allocation in opera house?
所以我有一个有 10 行和 10 列座位的歌剧院(总计:100)。每个座位都分配了一个偏好值 Aij。如果该组未在同一行获得座位,则偏好值减半。例如:如果歌剧院预订5人,顶排只能容纳2人,下排只能容纳3人,那么每个座位的偏好值实际上减半。共有 n 个预订 'n' > 100 个座位。最大化客户偏好(n * Aij)的最佳方法是什么。如果可以通过线性规划来完成,方程式应该如何。
我认为将其建模为 MIP 并非易事。
我尝试使用主二进制变量 x(i,j,g,r)
,其中 (i,j)
是分配给组 g
的座位的行和列。集合r
是{singlerow,multiplerows}
表示该组是否坐在同一排。
不确定这是否是一个特别好的公式,但它似乎有效。以下是我使用的方程式:
我假设有许多组 g
,每个组都有一个大小。一个团体获得它需要的所有席位,或者它没有获得任何席位。
我怀疑约束编程方法可能更容易。
结论:可以用MIP公式来完成,但是有点麻烦。
所以我有一个有 10 行和 10 列座位的歌剧院(总计:100)。每个座位都分配了一个偏好值 Aij。如果该组未在同一行获得座位,则偏好值减半。例如:如果歌剧院预订5人,顶排只能容纳2人,下排只能容纳3人,那么每个座位的偏好值实际上减半。共有 n 个预订 'n' > 100 个座位。最大化客户偏好(n * Aij)的最佳方法是什么。如果可以通过线性规划来完成,方程式应该如何。
我认为将其建模为 MIP 并非易事。
我尝试使用主二进制变量 x(i,j,g,r)
,其中 (i,j)
是分配给组 g
的座位的行和列。集合r
是{singlerow,multiplerows}
表示该组是否坐在同一排。
不确定这是否是一个特别好的公式,但它似乎有效。以下是我使用的方程式:
我假设有许多组 g
,每个组都有一个大小。一个团体获得它需要的所有席位,或者它没有获得任何席位。
我怀疑约束编程方法可能更容易。
结论:可以用MIP公式来完成,但是有点麻烦。