evo-comp

A genetic algorithmic approach to the pickup delivery problem

https://github.com/connoralittle/evo-comp

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A genetic algorithmic approach to the pickup delivery problem

Basic Info
  • Host: GitHub
  • Owner: connoralittle
  • Language: Python
  • Default Branch: main
  • Size: 42.1 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created over 4 years ago · Last pushed about 4 years ago
Metadata Files
Readme Citation

README.md

Evo-Comp

A genetic algorithmic approach to the pickup delivery problem

The figs folder is to store images and graphs.

n100, and n1000 are the datasets. They include their own readmes to explain their layout. They come from https://data.mendeley.com/datasets/wr2ct4r22f/2. Other datasets are not uploaded due to size constraints and I didn't utilize them.

Results contains text files of all data needed to know solutions after a given run. Typically I run each trial 5 times and average the results. Each line containts [populations over time, average fitness, evaluations, time to 0 hard constraint violations]. evaluations contain [num vehicles, total distance, hardconstraintpenalizations, routes, objective value].

There are 3 main files that need to be run All of the files contain code that can be run but aside from the 3 listed below it was only for testing purposes. For example the code in fitness.py under if name == "main" can be ignored as its just various tests

main.py: This runs the genetic algorithm and saves the results to a file. The main function deals with all aspects of this. If you want to make changes to the evolutionary algorithm you can pass parameters or alter the main directly. The recommended format is to run each trial 5 times. To run alter the parameters in the main and run the file. Keep track of what you name your results to access them later

Ortool.py An implementation of the capacitated vehicle routing problem with time windows and pickup and delivery Uses Google's Ortools To run Or-tools implementation simply choose the dataset you want and run

reading_data.py This honestly should have been a ipynb This file reads in the data from results and analyzes it creates graphs and data

to use this file pick the data file you want
read the data into a records list
and graph data extracted from the list
just running it will graph most of the graphs that I used.
I changed things as needed to make the graphs

fitness.py: implements fitness algorithm intialization.py: implements intializations algorithms mutation.py: implements mutation algorithms offspringmutation.py: implements offspring selection algorithms parentselection.py: implements parent selection algorithms read_data.py: reads data into a class for ease of use utils.py: wraps the genetic algorithm into a parallel safe version xover.py: implements crossover algorithm

Owner

  • Login: connoralittle
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Little"
  given-names: "Connor"
title: "Evo-Comp"
version: 1.0.0
date-released: 2021-12-13
url: "https://github.com/connoralittle/Evo-Comp"

GitHub Events

Total
Last Year