Coder Social home page Coder Social logo

tlabarta / gale-shapley-multilayer Goto Github PK

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

This respository contains an extension to the Gale-Shapley algorithm. The extension was presented in the paper "Safety, Stability, and Efficiency of Taxi Rides" authored by Martin Aleksandrov and Tobias Labarta, and accepted for publication at the 22nd EPIA Conference on Artificial Intelligence, 5-8 September 2023, Horta, Portugal.

License: Apache License 2.0

Python 7.21% Jupyter Notebook 92.79%
gale-shapley gale-shapley-algorithm stable-marriage stable-marriage-problem vehicle-routing-problem gale-shapley-extension

gale-shapley-multilayer's Introduction

Gale-Shapley Extension for two layers of preferences

This respository contains an extension to the Gale-Shapley algorithm. The extension was presented in the paper "Safety, Stability, and Efficiency of Taxi Rides" authored by Martin Aleksandrov and Tobias Labarta, and accepted for publication at the 22nd EPIA Conference on Artificial Intelligence, 5-8 September 2023, Horta, Portugal.

The graphic below shows the code architecture. Required packages can be found in requirements.txt.

Architecture

main: Calls the benchmark and runtime procedures.

benchmark: For first part of the experiment, investigating efficiency and stability of extended Gale-Shapley algorithm. Defines the parameter n for which benchmarks of n drivers and passengers shall be created using the methods from utilities.py. Finally matches the benchmarks using matching.py and calculates performance indicators with methods from utilities.py. Exports the results as .csv. Below is more documentation regarding the benchmark experiment.

runtime: For second part of the experiment, investigating runtime of extended Gale-Shapley for an increasing set of drivers and passengers.

matching: Contains procedures for executing the matching, calling utility methods for calculating performance indicators and returning the results.

utilities: Contains methods for creating ETA, profit and gender preferences. Also contains methods for matching, calculating blocking pairs and calculating other performance indicators.

Analysis.ipynb: Jupyter Notebook that analyzes the benchmark and run time results and creates plots based on the data.

Benchmark experiment

Benchmark Experiment

Columns in the generated data files

Results

gale-shapley-multilayer's People

Contributors

tlabarta avatar

Watchers

 avatar

Forkers

martofena

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.