我有兴趣编写一个应用程序,可以确定如何在可容纳10人的桌子上安排2-10人的小组。可能会有大约15个桌子和140个人。我不想打破任何一群人。
这似乎是一个常见的问题,我想知道是否有人对我应该从哪里开始寻找解决方案有任何建议。任何链接或建议表示赞赏。
答案 0 :(得分:15)
答案 1 :(得分:1)
这只是标准“Knapsack problem”
的变体答案 2 :(得分:0)
当我们在学校遇到这个问题时,我们解决了它作为TSP问题。
答案 3 :(得分:0)
这是bin packing problem,这是NP-Hard(找到最佳答案并不容易,而且检查答案是否最好也不容易。)
人群是一个单独的对象,其中volume =该组中的人数。表格是10号的箱子。
有一些近似算法,应该很容易找到,知道你应该谷歌进行装箱。
然而,你的问题很轻松(在某些方面),因为你有10个表 - 也就是说,你并没有试图让人们适应最少数量的表。如果10个表是OPTIMAL解决方案,您将无法找到解决方案(如果它甚至存在),但如果最佳值是7或8,那么找到解决方案将很容易。这一切都取决于小组的分布。