Skip to content

Commit

Permalink
Add landing page link
Browse files Browse the repository at this point in the history
  • Loading branch information
dbbnicole committed Aug 17, 2023
1 parent 02cbcca commit b4821bb
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 19 deletions.
16 changes: 8 additions & 8 deletions 01_Introduction_And_Setup.py
Original file line number Diff line number Diff line change
@@ -1,29 +1,29 @@
# Databricks notebook source
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization. For more information about this solution accelerator, visit https://www.databricks.com/solutions/accelerators/supply-chain-distribution-optimization.

# COMMAND ----------

# MAGIC %md
# MAGIC # Introduction
# MAGIC
# MAGIC
# MAGIC
# MAGIC
# MAGIC **Situation**:
# MAGIC The situation that we model is that of a manufacturer of power tools. The manufacturer operates 3 plants and delivers a set of 30 product SKUs to 5 distribution centers. Each distribution center is assigned to a set of between 40 and 60 hardware stores. All these parameters are treated as variables such that the pattern of the code may be scaled (see later). Each store has a demand series for each of the products.
# MAGIC
# MAGIC
# MAGIC
# MAGIC
# MAGIC **The following are given**:
# MAGIC - the demand series for each product in each hardware store
# MAGIC - a mapping table that uniquely assigns each distribution center to a hardware store. This is a simplification as it is possible that one hardware store obtains products from different distribution centers.
# MAGIC - a table that assigns the costs of shipping a product from each manufacturing plant to each distribution center
# MAGIC - a table of the maximum quantities of product that can be produced and shipped from each plant to each of the distribution centers
# MAGIC
# MAGIC
# MAGIC
# MAGIC
# MAGIC **We proceed in 2 steps**:
# MAGIC - *Demand Forecasting*: The demand forecast is first estimated one week ahead. Aggregation yields the demand for each distribution center:
# MAGIC - For the demand series for each product within each store we generate a one-week-ahead forecast
# MAGIC - For the distribution center, we derive next week's estimated demand for each product
# MAGIC - *Minimization of transportation costs*: From the cost and constraints tables of producing by and shipping from a plant to a distribution center we derive cost-optimal transportation.
# MAGIC
# MAGIC
# MAGIC <img src="https://raw.githubusercontent.com/databricks-industry-solutions/supply-chain-optimization/main/pictures/Plant_DistributionCenter_Store_Prouct_2.png" width=70%>

# COMMAND ----------
Expand Down
8 changes: 4 additions & 4 deletions 02_Fine_Grained_Demand_Forecasting.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Databricks notebook source
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization. For more information about this solution accelerator, visit https://www.databricks.com/solutions/accelerators/supply-chain-distribution-optimization.

# COMMAND ----------

Expand All @@ -10,9 +10,9 @@

# MAGIC %md
# MAGIC *Prerequisite: Make sure to run 01_Introduction_And_Setup before running this notebook.*
# MAGIC
# MAGIC
# MAGIC In this notebook we execute one-week-ahead forecast to estimate next week's demand for each store and product. We then aggregate on a distribution center level for each product.
# MAGIC
# MAGIC
# MAGIC Key highlights for this notebook:
# MAGIC - Use Databricks' collaborative and interactive notebook environment to find an appropriate time series mdoel
# MAGIC - Use Pandas UDFs (user-defined functions) to take your single-node data science code, and distribute it across multiple nodes
Expand Down Expand Up @@ -179,7 +179,7 @@ def one_step_ahead_forecast(pdf: pd.DataFrame) -> pd.DataFrame:

# MAGIC %md
# MAGIC &copy; 2023 Databricks, Inc. All rights reserved. The source in this notebook is provided subject to the Databricks License [https://databricks.com/db-license-source]. All included or referenced third party libraries are subject to the licenses set forth below.
# MAGIC
# MAGIC
# MAGIC | library | description | license | source |
# MAGIC |----------------------------------------|-------------------------|------------|-----------------------------------------------------|
# MAGIC | pulp | A python Linear Programming API | https://github.com/coin-or/pulp/blob/master/LICENSE | https://github.com/coin-or/pulp |
Expand Down
14 changes: 7 additions & 7 deletions 03_Optimize_Transportation.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Databricks notebook source
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization
# MAGIC %md This notebook is available at https://github.com/databricks-industry-solutions/supply-chain-optimization. For more information about this solution accelerator, visit https://www.databricks.com/solutions/accelerators/supply-chain-distribution-optimization.

# COMMAND ----------

Expand All @@ -10,20 +10,20 @@

# MAGIC %md
# MAGIC *Prerequisite: Make sure to run 02_Fine_Grained_Demand_Forecasting before running this notebook.*
# MAGIC
# MAGIC
# MAGIC In this notebook we solve the LP to optimize transport costs when shipping products from the plants to the distribution centers. Furthermore, we show how to scale to hundreds of thousands of products.
# MAGIC
# MAGIC
# MAGIC Key highlights for this notebook:
# MAGIC - Use Databricks' collaborative and interactive notebook environment to find optimization procedure
# MAGIC - Pandas UDFs (user-defined functions) can take your single-node data science code, and distribute it across multiple nodes
# MAGIC
# MAGIC
# MAGIC More precisely we solve the following optimzation problem for each product.
# MAGIC
# MAGIC
# MAGIC *Mathematical goal:*
# MAGIC We have a set of manufacturing plants that distribute products to a set of distribution centers. The goal is to minimize overall shipment costs, i.e. we minimize w.r.t. quantities: <br/>
# MAGIC cost_of_plant_1_to_distribution_center_1 * quantity_shipped_of_plant_1_to_distribution_center_1 <br/> \+ … \+ <br/>
# MAGIC cost_of_plant_1_to_distribution_center_n * quantity_shipped_of_plant_n_to_distribution_center_m
# MAGIC
# MAGIC
# MAGIC *Mathematical constraints:*
# MAGIC - Quantities shipped must be zero or positive integers
# MAGIC - The sum of products shipped from one manufacturing plant does not exceed its maximum supply
Expand Down Expand Up @@ -260,7 +260,7 @@ def transport_optimization(pdf: pd.DataFrame) -> pd.DataFrame:

# MAGIC %md
# MAGIC &copy; 2023 Databricks, Inc. All rights reserved. The source in this notebook is provided subject to the Databricks License [https://databricks.com/db-license-source]. All included or referenced third party libraries are subject to the licenses set forth below.
# MAGIC
# MAGIC
# MAGIC | library | description | license | source |
# MAGIC |----------------------------------------|-------------------------|------------|-----------------------------------------------------|
# MAGIC | pulp | A python Linear Programming API | https://github.com/coin-or/pulp/blob/master/LICENSE | https://github.com/coin-or/pulp |
Expand Down

0 comments on commit b4821bb

Please sign in to comment.