GithubHelp home page GithubHelp logo

ayushyadav9 / multi-depot-package-allocation Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 2.51 MB

Cost effective solution to allocate shipments to their nearest service centres.

License: MIT License

Python 100.00%
google-or-tools python

multi-depot-package-allocation's Introduction

Geo Intelligence


Logo

Team: Disruptors

Xpressathon 2022 : Challenge 2

Theme: Geo Intelligence

Team Members: Sushil Adwe | Chirag Hegde | Ayush Yadav

Indian Institute of Technology, Guwahati


Problem Statement

Provide a cost effective solution to allocate shipments to their nearest service centres. Each service centre has a defined delivery capacity.Lesser the distance of delivery location from service centre, more the cost effectiveness. Eg:

10,000 shipments to be delivered to end customers by 5 service centres in a city. 3 Service centres have a delivery capacity of 2000 shipments per day and 2 service centres have delivery capacity of 3000 shipments per day.

Factors to consider:

◉ Shipments have different dimensions and volumetric weight.
◉ Shipment delivery location can be equidistant from 2 service centers.
◉ Service centers use two wheelers for deliveries.



Our Solution Google Collab

Last mile delivery refers to the last leg of supply chain operations. A product's journey from a warehouse to the doorstep of the end-customer. This last step of the delivery process is most critical and should be optimized for a better user experience and dramatic reduction in operating costs.
We are proposing a Mixed Integer Programming (MIP) model for allocating shipments to the nearest service centers while keeping in mind the capacity constraints.
Further we formulate a Greedy heuristic and compare the performance of both the solutions.

MIP model :

Let number of warehouses be n and the number of shipments be m
cij be the cost of delivering a shipment from the ith Warehouse to the jth Shipment location



Heuristic Greedy model :

◉ Initially assign each shipment to its nearest service center irrespective of the capacity of the service center.
◉ Repeat the following steps until the number of shipments allocated to each service center is less than it’s capacity.
Traverse over each service center and for each service center that has been over-loaded:

  • Find the number of overloaded shipments = n.
  • For each shipment assigned to this service center, we find the least possible additional cost that will be incurred
    if this shipment is allocated to another service center.
  • We transfer n shipments with the least transfer costs to their next nearest neighbour service center.



Screenshots


Allocation for Low density of Shipments


Allocation for High density of Shipments


Final Routes returned by the algorithm



Tech Stack used


Installation

Below are the steps to clone the repository and setting up the app in local.

Prerequisites

  • Python must be installed on your computer
  1. Clone the Repository

    git clone https://github.com/soul0101/Multi-Depot-Package-Allocation.git
  2. Install Python packages that are used

    pip install -r requirements.txt
  3. Run main.py file

    python main.py


multi-depot-package-allocation's People

Contributors

ayushyadav9 avatar marioouu avatar soul0101 avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.