Giter Club home page Giter Club logo

xbreu / mobility-meeting-scheduler Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 3.16 MB

Meeting scheduler for groups of people in mobilities at different places. It includes the analysis of flights and lodging prices to return the better date and place for everyone to travel together.

License: MIT License

Python 40.84% Prolog 27.82% Jupyter Notebook 31.34%
programming feup feup-plr knowledge-engineering constraint-programming or-tools cplex sicstus-prolog

mobility-meeting-scheduler's Introduction

Mobility Meeting Scheduler

Usage

SICStus

To run the SICStus program, execute the following command in the root directory of the project:

</path/to/sicstus> -l source/sicstus/main.pl --goal "<run_predicate>."

run_predicate is one of:

  1. run('/path/to/input/folder');
  2. run('/path/to/input/folder', SearchParameters);
  3. run('/path/to/input/folder', SearchParameters, Statistics).

The parameters for the predicates are:

  • SearchParameters is a list of parameters for labelling of the clpfd library, which means it can include:
    • One of [leftmost (default), min, max, ff, ffc];
    • One of [step (default), enum, bisect];
    • One of [up (default), down];
    • Running the first command is equivalent of running the second with [min, bisect, down].
  • Statistics is one of false, fd or all.
    • Running the second command is equivalent of running the third one with false.

In the input folder the program will expect two files:

  • flights.json;
  • students.json.

To test it with our input files and default search parameters, run:

</path/to/sicstus> -l source/sicstus/main.pl --goal "run('data/new')."

And, to execute it with the same files, fd statistics and [min, step, up] as the search parameters run:

</path/to/sicstus> -l source/sicstus/main.pl --goal "run('data/new', [min], fd)."

OR-Tools

To run the OR-Tools version of the program you first need to install OR-Tools on your computer

Then just use the following command on the "or-tools" folder:

python main.py

To run the other implementation of a solution to this problem just use the same command but in the "old" sub-folder.

DOcplex

To run the DOcplext version of the program, execute the Jupyter Notebook on source/cplex/model.ipynb.

Context

This project was made by Alexandre Abreu, Pedro Seixas and Xavier Pisco for the Constraint logic programming course at FEUP in 2021/2022.

mobility-meeting-scheduler's People

Contributors

pedrojfs17 avatar xavier-pisco avatar xbreu avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

pedrojfs17

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.