SupplyChainModeling

Installation

SupplyChainModeling can be installed using the Julia package manager. From the Julia REPL, type ] to enter the Pkg REPL mode and run

pkg> add SupplyChainModeling

API

SupplyChainModeling.add_demand!Method
add_demand!(supply_chain, customer, product, demand::Array{Float64, 1}; service_level=1.0)

Adds customer demand for a product. The demand is specified for each time period.

The keyword arguments are:

  • service_level: indicates how many lost sales are allowed as a ratio of demand. No demand can be lost if the service level is 1.0 and all demand can be lost if the service level is 0.0.
  • sales_price: the sales price of a unit of product.
  • lost_sales_cost: the cost of losing the sales of a unit of product.
source
SupplyChainModeling.add_product!Method
add_product!(plant::Plant, product::Product; bill_of_material::Dict{Product, Float64}, unit_cost, maximum_throughput)

Indicates that a plant can produce a product.

The keyword arguments are:

  • bill_of_material: the amount of other product needed to produce one unit of the product. This dictionary can be empty if there are no other products needed.
  • unit_cost: the cost of producing one unit of product.
  • maximum_throughput: the maximum amount of product that can be produced in a time period.
  • time: the production lead time.
source
SupplyChainModeling.add_product!Method
add_product!(storage::Storage, product; initial_inventory::Real=0, 
                                        unit_handling_cost::Real=0,
                                        unit_holding_cost::Real=0, 
                                        maximum_throughput::Float64=Inf, 
                                        additional_stock_cover::Real=0.0)

Indicates that a storage can store a product.

The keyword arguments are: - initial_inventory: the amount of product initially at the storage location - unit_handling_cost: : the cost of handling a unit of product at the storage location - unit_holding_cost: the cost of holding a unit of product at the storage location per period - maximum_throughput: the maximum number of units of product that can be sent per period

source
SupplyChainModeling.add_product!Method
add_product!(supplier::Supplier, product::Product; unit_cost::Float64, maximum_throughput::Float64)

Indicates that a supplier can provide a product.

The keyword arguments are:

  • unit_cost: the cost per unit of the product from this supplier.
  • maximum_throughput: the maximum number of units that can be provided in each time period.
source