我很快就要结婚了,正忙着安排座位,我遇到了一些常见的问题:X和Y必须坐在一起,但是A和B不能彼此站立等等。
我正在处理的数字并不多(所以手动选项会很好),但作为一个古怪的劝说者,我想知道是否有任何软件可以为我做到这一点?
如果没有完全匹配,我应该寻找什么(问题空间,书籍,参考代码)来调整我的目的?
发布于 2008-10-08 18:41:15
http://www.perfecttableplan.com/
我相信这是一个家伙,通常张贴在Joel上的软件。
不过从来没试过。希望能帮上忙。
发布于 2008-10-08 22:20:26
我是PerfectTablePlan的开发人员。我在这里发文章,还有Joel的软件业务。;0)
组合问题,如座位分配,在算法上是相当棘手的。事实上是NP-硬。在60个座位上容纳60名客人的方式是60!(60阶乘),这比已知宇宙中的原子数目还要多。
PerfectTablePlan允许您指定A必须坐在B的旁边,但绝不接近C。它使用遗传算法自动分配席位。这在实践中非常有效--它通常会在几秒钟内为100位客人找到一个不错的解决方案。你可能需要为1000+客人煮杯咖啡。在实践中,为了应付当地习俗和家庭政治的变幻莫测,通常也需要进行一些拖放式的微调(鲍勃叔叔有点耳聋,我们最好把他放在最上面的桌子附近)。
您可以更多地了解遗传算法这里。
自动座位分配只是创造一个好的座位计划的一小部分。有关详细信息,请参阅PerfectTablePlan 巡演和提示页面。
发布于 2008-10-08 18:40:43
尝试使用GLPK对此进行建模。整数线性规划能够将约束引入到具有多种可能结果的基于图的问题中.
https://stackoverflow.com/questions/184195
复制相似问题