From 8d7b4d502722b48451410a8c2d835e88c3b00e2f Mon Sep 17 00:00:00 2001 From: Samir Saci Date: Tue, 2 Nov 2021 17:37:14 +0100 Subject: [PATCH] update readme --- README.md | 32 +++++++++++++++----------------- static/img/launch_streamlit.PNG | Bin 0 -> 2663 bytes 2 files changed, 15 insertions(+), 17 deletions(-) create mode 100644 static/img/launch_streamlit.PNG diff --git a/README.md b/README.md index 8d06824..e6f378f 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,9 @@ In a **Distribution Center (DC)**, walking time from one location to another dur I have published a series of articles that propose an approach to design a model to simulate the impact of several picking processes and routing methods to find optimal order picking by using the **Single Picker Routing Problem (SPRP)** for a two-dimensional warehouse model (axis-x, axis-y). SPRP is a specific application of the general **Traveling Salesman Problem (TSP)** answering the question: -| โ€œGiven a list of storage locations and the distances between each pair of locations, what is the shortest possible route that visits each storage location and returns to the depot ?โ€ +> โ€œGiven a list of storage locations and the distances between each pair of locations, what is the shortest possible route that visits each storage location and returns to the depot ?โ€ -SPRP is used to determine the minimum route in the picking process to prepare one or several orders. - -This repo is containing a ready-to-use **Streamlit App** designed for **Logistics Engineers** to test these different strategies by only uplooading their own dataset of order line records. +This repo is containing a ready-to-use **Streamlit App** designed for **Logistics Engineers** to test these different strategies by only uplooading their own dataset of order lines records. ### Understand the theory behind ๐Ÿ“œ - Improve Warehouse Productivity using Order Batching with Python - [Medium Article](https://towardsdatascience.com/optimizing-warehouse-operations-with-python-part-1-83d02d001845) @@ -21,9 +19,9 @@ This repo is containing a ready-to-use **Streamlit App** designed for **Logistic - Design Pathfinding Algorithm using Google AI to Improve Warehouse Productivity - [Medium Article](https://towardsdatascience.com/optimizing-warehouse-operations-with-python-part-3-google-ai-for-sprp-308c258cb66f) -# Picking Route Optimization to reduce Walking Distance ๐Ÿšถโ€โ™‚๏ธ +# Picking Route Optimization ๐Ÿšถโ€โ™‚๏ธ -## **Initial Step: Prepare order lines datasets with Warehouse Layout Information** +## ๐Ÿ’พ**Initial: prepare order lines datasets with picking locations** Based on your **actual warehouse layout**, storage locations are mapped with **2-D (x, y) coordinates** that will be used to measure walking distance. @@ -39,10 +37,10 @@ Every storage location must be linked to a Reference using Master Data. (For ins Order lines can be extracted from your WMS Database, this table should be joined with the Master Data table to link every order line to a storage location and its (x, y) coordinate in your warehouse. Extra tables can be added to include more parameters in your model like (Destination, Delivery lead time, Special Packing, ..). -## **Experiment 1: What is the impact of wave picking in the total walking distance?** +## ๐Ÿงช**Experiment 1: Inmpact of wave picking in the pickers walking distance?** _For more information and details about calculation: [Medium Article](https://towardsdatascience.com/optimizing-warehouse-operations-with-python-part-1-83d02d001845)_ -### Problem Statement +### โœ”๏ธ Problem Statement For this study, we will use the example of E-Commerce type DC where items are stored in 4 level shelves. These shelves are organized in multiple rows (Row#: 1 โ€ฆ n) and aisles (Aisle#: A1 โ€ฆ A_n). @@ -63,7 +61,7 @@ Scenario 1, the worst in terms of productivity, can be easily optimized because - Zones: orders have picking locations in a common zone - Single-line Orders: items_picked/walking_distance efficiency is very low -### Simulation +### ๐Ÿ“Š Simulation In the article I have built a set of functions needed to run different scenarios and simulate the pickers walking distance. @@ -105,7 +103,7 @@ This function will be used to create your picking route from a set of orders to - Input: order lines data frame (df_orderlines) and wave number (waveID) - Output: list of locations i(xi, yi) included in your picking route -### **Results and Next Steps** +### โ˜‘๏ธ**Results and Next Steps** After setting up all necessary functions to measure picking distance, we can now test our picking route strategy with picking order lines. @@ -122,7 +120,7 @@ To estimate the impact of wave picking strategy on your productivity, we will ru

-## **Experiment 2 - What is the impact of grouping orders by spatial clusters of picking locations?** +## ๐Ÿงฎ**Experiment 2 - What is the impact of grouping orders by spatial clusters of picking locations?** _For more information and details about calculation: [Medium Article](https://towardsdatascience.com/optimizing-warehouse-operations-with-python-part-2-clustering-with-scipy-for-waves-creation-9b7c7dd49a84)_ @@ -130,7 +128,7 @@ _For more information and details about calculation: [Medium Article](https://to

-### **Idea: Picking Locations Clusters** ### +### ๐Ÿ’ก**Idea: Picking Locations Clusters** ### Group picking locations by clusters to reduce the walking distance for each picking route. _(Example: the maximum walking distance between two locations is <15 m)_ @@ -155,7 +153,7 @@ _Grouping orders in cluster within n meters of walking distance_ _Grouping multi-line orders in cluster (using centroids of picking locations) within n meters of walking distance_ -### **Model Simulation** ### +### ๐Ÿ **Model Simulation** ### #### **Methodology** @@ -218,11 +216,11 @@ Because the ressources provided by Streamlit cloud or Heroku are limited, I woul ### Run the application - streamlit run segmentation.py + streamlit run app.py --server.address 0.0.0.0 ### Click on the Network URL in the shell

- +

> -> Enjoy! @@ -239,7 +237,7 @@ This Streamlit Web Application has been designed for **Supply Chain Engineers** In/df_lines.csv - You can build your own dataset following the step of ('Initial Step') above -## Experiment 1 +## ๐Ÿ”ฌ Experiment 1

@@ -263,7 +261,7 @@ Click the button to start the calculations ๐Ÿ’ก This is the same graph with the one presented in the article -## Experiment 2 +## ๐Ÿงช Experiment 2

diff --git a/static/img/launch_streamlit.PNG b/static/img/launch_streamlit.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b854e5a54da3451c9b4562eae646899734420387 GIT binary patch literal 2663 zcmb7`dsNcd7RP@*Y$~V6)H2IQTxYIhVrq_#IRwGu09z^y_W7MV3^!zc<%8kbf(e3o0X0JwQiHP{?Rmiy0P6CL z*Q1OK{;un1LNNevAob(fGJOST&6XZsJ&cs*+f7w8TO@QMY?>QI)( z13kocX7SVrND)iB`a1|$-ReAQ2ZO=P0U#@|G;j;>dU&`T0Dg#%M*_eJ7Z)%995ypE z0f5ig~exOXFGa#tr2SuuC}=0zrNU`K8bWeMk}A2v=Y)T4+P(*M5v(A&cgpXrPf2dh zZipTAkVlf_TP6r>FvPToFcH4;sHK3mLYws91QBF$ty<-mDI>&?1VNERJ~j6wFI|=g zO5B*D#~_b=CcTK)IUMe$KM+hh_l3zGM@oM@P7<76U$ecb3LlIkArc;T!0h0>5L~lO zW%QG2v;0*HDQ%)h;jzZ+b1$Cyg$IUDi7+`U6Anwh)5+|FByfRu9MiAt!nmLAdZTo5 zop59Jy`uVDevHq0sRlmwNCqOX)nzyd#qsuH%K9PbsaF!U?m(O{U+aKa&%y@~V{J0X z@>eHuM_Lzt71Y!TEuCdYCAv47&NEmDu{D49+V>umq(&R2gvaT3&7J88$DLh>F!IuL zb$8+FDR4NSC3VscO}$#^Q_*5#D^M(W9-D6O$3~BLstBC-N2k74c;-(z{MnI%TNJt~ z)j`-!b#-yE-sz4j{GMzZzsRwq$EzR^^sGfn)wa0T_M)I)q~XXR6KcLqX3sbxX3B3P z$FXFEyUfTHTMLSek?JU6h=Y?~viv)Ao*V|3_C+?VwA`6nqxlwIh0hY~XtZ&fFX+n} zD+O~=-oG}&W!lIl2CT(W9R2oiyK=Fw0}eHC@}6X?7@2Q7t4w+G^@>o9ZHFV2&W6M} zp3?CVF+Fv>M7vp!^nj+38g5y0XCn*4P(Hu9(r}+T#<6F|@_9&8+gam-k9e8g*;uw( zY76ai(X@jvtj5M_xaLKmVjelrDi6eC4Lmg`{If>V@AWCBICe`5S5DX z2Za|g7i>VajC?yM6v&bfj~1NAD5ExZ_dFy`h%D4Ktqc7L1!VPrN6LLHRXCrBSvuEC z3?pVN<1_f}=cr={44yl^I-Pg18$>@$|Z-V4(qSAp-NU zl)M!k3)GjP#SE<`DmKbf`J6j06%a|?UaNi=<~Azp1)p5tCAzIH?MLU>hfJMEf(ftuFMl308jk$2O$FNM8+EI+zQY(N|F;6N4C(Edcl4Ljb^p{W>pBOxO| zL47=cVW&ew6%Mw!wE7XmH?j;;KBt;L%qU=PyT9?IDJe=pIsChKh+;p`3r<2pB!>0dO7@qAY-}}<5t%*#W zBdCrz=BmPUSDr71$yl`Ec7Z!Cli$o1FOJpaWL`{}H?+HcbCfmiT$A9SjG})>>y;G{ zz?Ylu6JsE3W1SMwgy;AL>kj5d_KDuCQPYafUtO|o7yF{lqeQ3^5^l}zr6cD(8MhATMc6Z^DI2Iu z2*xb!H;Z`W^&KWo8x^HmnbF~bMi=nXk%2p(vYh|VUH+-*pN*6!eQ0aEsTB2zXWrZ^ zTL(+$T~nq3fKl5L$i~iT#FH@nbjPY#?Tmp5rYBJudQf2`arMKlm%>eD!!)K<1!*=$ z80p1>g@rwNpyae?r$U{Ro_kb$b6x7jz?;WjT5ZY&(e)=Ne}*zWiIEbME$qU#?DW8^;=^Af8;}FYchOeahi z-IgO(G}0D?ZWNltEzVB8;?vIWj2|2w z>mZiblC^x|PrRfg8k@Z%D-B~yVgx-7V!4+Iend*TFLZYg#+dq>c2zuVjGbT(XB?+O zQB}e5lHSGeZb7TC9hV&b&<=FP9_yzWHK`|)2YQ=Dqs8WM{68ftMp zgSSgWf^)!Bj2R`hGTr`HF_OR_nI=N33qrFarqOH5M}pg;lOSd$uV?C80DpwZ!)D!Z>uY~L_&MeHTIz_#ZK&JrX-G@>H$9lT z!R2d}Pc7xJhQ~FDvxXw$oBA_sEJ7|^4SEGH|9L-k(KQTy zxf#r!;=JXgeL?18z*%1&YV*&R)RW71*VD{Gj9P3CvMqc~k}qI4v9TiW&id06+