在 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(对所有来源重复此操作)
感谢您的帮助。
我正在尝试解决具有约束的运输问题的变体,这使我能够指定卡车从特定源到特定目的地的供应量。
例如:
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(对所有来源重复此操作)
感谢您的帮助。