Giter Club home page Giter Club logo

trip-optimizer's Introduction

Travel Time Optimization via Ant Colony and Genetic Evolution

In this project, I tackled the travel time optimization problem for taxi vehicles. This can be framed as the Traveling Salesman Problem, a well-known computer science problem. The objective is to find the shortest route that visits a set of locations. For this problem, optimization techniques are required to intelligently search the solution space and find near-optimal solutions. More specifically, I first used XGBoost model to predict travel times between every pair of pick-up and drop-off locations. Then, I used evolutionary algorithms, namely ant colony and genetic, to find the best travel itinerary for the vehicles in the data.

An accompanied blog post on Medium can be found at this link: Using Ant Colony and Genetic Evolution to Optimize Ride-Sharing Trip Duration

Dataset

The data is the NYC Taxi and Limousine Commission Trip Record data, already downloaded on Kaggle. I have the monthly data in the year 2016 for yellow taxi, green taxi, and for-hire vehicles. The dataset has close to 1.5 million trip records with 11 attributes.

trip-records

Requirements

  • python3
  • matplotlib
  • numpy
  • pandas
  • xgboost
  • geopy

Installation

$ python3 -m pip install xgboost
$ python3 -m pip install geopy

Usage

Data Visualization

$ python3 basicAnalysis.py
$ python3 sophisticatedAnalysis.py

Predictive Modeling

$ python3 XGBoost.py

Evolutionary Algorithms

$ python3 aco_main.py -h
usage: aco_main.py [-h] [--verbose] loc_count ant_count g alpha beta rho q

positional arguments:
  loc_count   number of locations (default is 15)
  ant_count   number of ants to use (default is 10)
  g           number of generations (default is 100)
  alpha       relative importance of pheromone (default is 1.0)
  beta        relative importance of heuristic information (default is 10.0)
  rho         pheromone residual coefficient (default is 0.5)
  q           pheromone intensity (default is 10.0)

optional arguments:
  -h, --help  show this help message and exit
  --verbose   print out each generation cost and best path
$ python3 genetic_evo_main.py -h
usage: genetic_evo_main.py [-h] [--verbose] loc_count n g m c

positional arguments:
  loc_count   number of locations (default is 15)
  n           population size (default is 10)
  g           number of generations (default is 100)
  m           mutation factor (default is 0.5)
  c           crossover rate (default is 0.7)

optional arguments:
  -h, --help  show this help message and exit
  --verbose   print out each generation cost and best path

Output

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.