使用 Google OR-Tools 为市场建模

Modelling a market place using Google OR-Tools

我正在尝试为一个包含多种商品的市场建模,多个卖家和买家为一种或多种商品提供价格。例如,卖 6 个苹果的卖家可以将 2 个卖给出价最高的买家,将 4 个卖给出价稍差的买家。市场也需要支持有条件的报价,即我想卖4个苹果,但前提是我能买2个梨。

我现在使用 Google OR-Tools 对此进行了一些建模,但我能找到的最接近的解决方法是使用 CP-SAT,但是如何建模对我来说并不是很明显有条件录取。

像这样模拟市场的最佳方式是什么?

你应该看看:

https://github.com/google/or-tools/blob/stable/ortools/sat/doc/channeling.md

主要思想是您可以将布尔文字附加到变量的某些属性。 然后您可以使用标准布尔逻辑将这些文字 link 组合在一起。