具有非相邻单元约束的Excel解算器?

具有非相邻单元约束的Excel解算器?,excel,solver,Excel,Solver,我是一个Excel solver的新手,只是在读了一本数据科学书籍后才了解它。我想更熟悉这个工具,所以我一直在尝试解决不同的问题。我被困在一个虽然,我甚至不知道是否有可能使用解算器?基本上,我需要检查的约束是两个单元格是否相邻 我的问题是:我有一堆装着不同数量弹珠的袋子。我想最大限度地增加我捡袋子时得到的弹珠数量,但它们不能相邻 这是我在电子表格中看到的: 值=袋子中的大理石数量 Choose=是否选择行李(二进制) 违规=(选择*行李编号)的行李1-(选择*行李编号)的行李2 如果我拿起两

我是一个Excel solver的新手,只是在读了一本数据科学书籍后才了解它。我想更熟悉这个工具,所以我一直在尝试解决不同的问题。我被困在一个虽然,我甚至不知道是否有可能使用解算器?基本上,我需要检查的约束是两个单元格是否相邻

我的问题是:我有一堆装着不同数量弹珠的袋子。我想最大限度地增加我捡袋子时得到的弹珠数量,但它们不能相邻

这是我在电子表格中看到的:

  • 值=袋子中的大理石数量
  • Choose=是否选择行李(二进制)
  • 违规=(选择*行李编号)的行李1-(选择*行李编号)的行李2
如果我拿起两个相邻的行李,违例将=-1

+------------+----+----+----+---+---+-------------+
| Bag Number | 1  | 2  | 3  | 4 | 5 | Total Value |
+------------+----+----+----+---+---+-------------+
| Value      | 10 | 20 | 30 | 40| 50|          150|
| Choose     |  0 |  0 |  0 | 0 | 0 |            0|
| Violation  |  0 |  0 |  0 | 0 |   |             |
+------------+----+----+----+---+---+-------------+
最佳解决方案:

+------------+----+----+----+---+---+-------------+
| Bag Number | 1  | 2  | 3  | 4 | 5 | Total Value |
+------------+----+----+----+---+---+-------------+
| Value      | 10 | 20 | 30 | 40| 50|          150|
| Choose     |  1 |  0 |  1 | 0 | 1 |           90|
| Violation  |  1 | -3 |  3 |-5 |   |             |
+------------+----+----+----+---+---+-------------+
我尝试了几种解释的组合:

  • 在“选择”行上放置二进制约束

  • 违规>=0且违规是的,问题是适定的

    我建议用另一种方法来表示邻接约束。特别是,我将使用以下内容:

    choose_1 + choose_2 <= 1
    choose_2 + choose_3 <= 1
    choose_3 + choose_4 <= 1
    choose_4 + choose_5 <= 1
    

    choose_1+choose_2哇,太棒了!非常好的解释和感谢的链接!