pedrojfs17 / FEUP-PLR

FEUP - Programação em Lógica com Restrições

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

FEUP - Programação em Lógica com Restrições

License:MIT License


Languages

Language:Python 40.8%Language:Jupyter Notebook 31.3%Language:Prolog 27.8%