In this project a Decision Optimization (DO) is used to improve the inventory management of protective masks in a network of warehouses and agencies.
To perform the DO experiment we use these input data tables:
-
Mask : each type of mask as an id, and a unit weight (used for computing transportation costs).
Note: For simplicity only one type of mask (FFP2) is considered here.
-
Period : The inventory is managed for a planning horizon corresponding to a set of periods
-
Agency : Masks are distributed by agencies. Agencies receive masks from warehouses.
-
AgencyRequest : for each period, an agency forecasts the demand for masks and defines the target inventory expected at the end of the period
-
AgencyInitialInventory : each agency defines its initial inventory at the start of the first period
-
Warehouse : Main inventory of masks is managed at some warehouses. A warehouse receives masks from factories and provides masks to agencies.
-
WarehouseTargetInventory : for each period, a warehouse specifies the target inventory expected at the end of the period
-
WarehouseInitialInventory : each warehouse defines its initial inventory at the start of the first period
-
Factory : Masks are delivered to warehouses by factories
-
FactoryOffer : For each period, a factory defines its capacity of mask delivery and the unit price of these masks
-
FactoryWarehouseTransportCost : This table defines the unit cost to transport masks between each factory and each warehouse. In order to avoid too small deliveries, it also define a minimum cost of transportation.
-
PlanParameters : It collects useful global settings for planning, as the first and the last period
The project contains a DO experiment named InventoryOptimization with 3 scenarios. In this project, all scenarios share the same intent, that is a high level prescriptive rule specifying the main decisions we want to take.
Decide inventory of Masks at Warehouses and Agencies on each Periods and decide orders to Factories.
Each scenario is defined by a set of prescriptive rules - objectives and constraints - , some settings and a data schema defining data structure and also semantic logic derived from the rules.
Prescriptive rules prefixed by (Implicit rule)
are rules that are automatically added as required by other rules. They cannot be removed or disabled directly, e.g. :
(Implicit rule) No Masks lost in inventory at Warehouse
Defines general prescriptive rules aka objectives and constraints without taking into account costs
Created from Base scenario - no cost
, this scenario adds some cost objective and constraints
Created from With costs and min transport
, this scenario adds minimum cost for transportation, limiting small deliveries
Each scenario has already been solved. The solutions can be seen as a set of tables in the Explore solution
section
and with visual charts in Vizualization
section.
Create new scenarios from an existing one to capture additional constraints and objectives with the Modeling Assistant or to play with the weight of each objective.
As an OR expert you can also export the Python Notebook associated to a scenario and extends it, should you want to test some advanced constraints, objectives or solving strategies.