在 Google OR 工具中实施 OR 约束?

Implementing an OR constraint in Google OR-tools?

我正在尝试解决具有约束的运输问题的变体,这使我能够指定卡车从特定源到特定目的地的供应量。

例如:

Source S1 has a supply of 40.
Source S2 has a supply of 40.
Source S3 has a supply of 20.
Destination D1 has a a demand of 40.

我希望能够让两个供应商满足 D1 的需求,每个供应商交付 20 个。

在约束形式中,我认为这将是:

S1D1 = 0 OR 20
S2D1 = 0 OR 20
S3D1 = 0 or 20

S1D1 + S2D1 + S3D1 = 40

但我不知道如何在 Google OR 工具中实现 OR 约束。 我想我必须看看混合整数整数求解器,但我找不到任何可以解决我的问题的示例或文档。

欧文你是对的。

我使用了混合整数求解器并使用了以下约束。

约束条件:

变量是一个整数,介于 0 和 1 之间(因此它是 1 或 0)。

20 S1D1 + 20 S2D1 + 20 S3D1 = 40

这是一个简化的例子,在我的问题中我实际上有更多的目的地。 为确保源提供的数量不超过它所提供的数量,使用了以下约束(使用 2 个目的地作为示例,目的地 2 的需求为一次源提供的 40):

20 S1D1 + 40 S1D2 <= 40(对所有来源重复此操作)

感谢您的帮助。