1using LotSizingDataModel.Core.Relationships;
2using LotSizingDataModel.Instance;
18 LotSizingInstance instance,
21 ArgumentNullException.ThrowIfNull(instance);
22 ArgumentNullException.ThrowIfNull(options);
24 return instance.SupplyChain.Inventories.Any(
26 inventory.InitialInventoryDecisionMode ==
27 InitialInventoryDecisionMode.VariableDecision);
31 LotSizingInstance instance,
34 CancellationToken cancellationToken)
36 foreach (Inventory inventory
in instance.SupplyChain.Inventories)
38 cancellationToken.ThrowIfCancellationRequested();
40 if (inventory.InitialInventoryDecisionMode !=
41 InitialInventoryDecisionMode.VariableDecision)
46 if (inventory.InitialInventory != 0.0)
48 throw new InvalidOperationException(
49 "A variable initial-inventory decision cannot coexist " +
50 "with a non-zero fixed InitialInventory value.");
55 $
"I0_i{inventory.ItemId}_w{inventory.Warehouse.ReferenceId}",
57 double.PositiveInfinity,
58 "Inventory available before period 1.");
61 return ValueTask.CompletedTask;
Provides the shared state required while constructing a solver-independent mathematical model.
static string Create(Inventory inventory)
Provides the canonical mathematical domain-key categories used to identify lot-sizing decision famili...
const string InitialInventory