【发布时间】:2017-09-12 18:50:38
【问题描述】:
我正在寻找一种方法,通过从每个组都包含选项的大型数据集中为每个组选择一个选项来最小化具有多个约束的成本。该数据集由大约 100 个组组成,每个组有 200 个选项。
以下是优化条件列表、数据示例以及结果应该是什么。在小数据集上,我只是遍历了所有组合,但对于实际的大数据集,这将花费很长时间。我研究了 SciPy Optimize Minimize,但这似乎不合适。是否存在可用于找到最低成本的优化框架?如果没有,用 Python 解决它的好方法是什么?
条件
- 每组只有一个选项
- 最小化总成本
- A 的总和必须小于 10
- B 之和必须小于 12
数据集
+-------+--------+-----+-----+-------+
| Group | Option | A | B | Costs |
+-------+--------+-----+-----+-------+
| 1 | 1 | 10 | 0 | 10 |
| 1 | 2 | 0 | 0 | 21 |
| 1 | 3 | 0 | 7 | 15 |
| 2 | 1 | 8 | 0 | 8 |
| 2 | 2 | 0 | 0 | 34 |
| 2 | 3 | 0 | 5 | 18 |
| 3 | 1 | 9 | 0 | 9 |
| 3 | 2 | 0 | 0 | 20 |
| 3 | 3 | 0 | 6 | 7 |
+-------+--------+-----+-----+-------+
结果
+-------+--------+
| Group | Option |
+-------+--------+
| 1 | 1 |
| 2 | 3 |
| 3 | 3 |
+-------+--------+
Total costs: 35
Sum A: 10
Sum B: 11
【问题讨论】:
-
你的python是否以任何方式使用SQL?
-
欢迎来到 StackOverflow。请阅读How to Ask,并附上您尝试过的详细信息,并更具体地说明您的问题/问题是什么。
-
@JacobIRR 是的,数据集存储在 MariaDB 数据库中。
-
@Antimony 谢谢你的建议。我已经编辑了我的帖子,希望现在更清楚。
-
@roganjosh 我添加了我的问题,我将研究组合优化。谢谢你的建议。
标签: python optimization constraints minimization