PuLP的set partition示例似乎做了太多工作?

时间:2018-07-06 20:29:18

标签: mathematical-optimization linear-programming pulp julia-jump

我正在尝试解决一个非常类似于此处示例的问题: https://pythonhosted.org/PuLP/CaseStudies/a_set_partitioning_problem.html

这使用称为PuLP的优化框架为婚礼上的客人分配座位。

为了提供一些背景信息,我有N位客人,T个桌子和每个桌子最多S个座位。我有一个成本矩阵(N乘N),该矩阵代表每个客人想和另一个客人坐下多少。

在第一个代码部分中,他们正在创建所有可能表的列表:

possible_tables = [tuple(c) for c in pulp.allcombinations(guests, max_table_size)]

这对我来说没有意义。我没想到候选表的生成不会在算法之外完成。

这与仅进行N choose K生成候选者,使用成本矩阵对生成的表进行评分并选择最佳表有很大区别吗?

我不仅限于使用PuLP。我看过cvxpy,jump,mini-zinc等。当所选集合的元素之间存在这种相互作用时,我只是在如何制定目标和约束方面遇到麻烦(就好像在敲打麻袋问题中的项目令人讨厌一样)或彼此相爱!)

0 个答案:

没有答案