Skip to content

This repository hosts a Jupyter Notebook on which a Constraint Satisfaction Problem is used to solve a specific Scheduling Problem. Here the algorithm helps the used construct a school timetable based on specific restrictions. Every code block is followed by an explanation!

License

Notifications You must be signed in to change notification settings

andre1araujo/CSP-for-School-Timetables

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project 01 - CSP for creating school timetables

Image

For this project, the challenge is to define schedules for classes at a school, satisfying a set of requirements. This problem demonstrates one of the many real applications of CSP's and here we will be encouraged to apply the concepts covered in class. In order to develop an algorithm capable of reaching a solution for the schedules, the library used was python-constraint, due to its simplicity and speed of processing. To install it, simply run the following PIP command: pip install python-constraint

The requirements to execute this project are as follows:

  1. Code editor: A code editor such as Vs Code, Visual Studio or Pycharm are some examples that can be used. The only requirement is support for Python and Jupyter Notebook;
  2. Python: Obviously the project was carried out in Python, according to the CSP library. The required version is not clear but Python 3.9 works as expected;
  3. Jupyter Notebook: Jupyter is a platform that allows you to combine code cells and Markdown text cells in a file. It allows you to organize programs with more readable explanations, which is why it has a lot of academic value. Programs like VS Code allow you to install the jupyter extension.

In the end, the user should have learned the following knowledge:

  • What is a CSP;
  • How to apply a binary CSP to a real problem;
  • Basic notions of Python;

⚠️ NOTE - If you notice, the images on the notebook are in portuguese. We are sorry for the inconveniance but it should be still easy to understand the graphics. In any case, if really needed, jut contact us or leave a comment and we will do the translation! Thank you!


This work was authored by:

  • David Rodrigues ✅
  • André Araújo ✅

Supervised by:

  • Professor Joaquim Silva ✅

If you have any doubts or questions:

About

This repository hosts a Jupyter Notebook on which a Constraint Satisfaction Problem is used to solve a specific Scheduling Problem. Here the algorithm helps the used construct a school timetable based on specific restrictions. Every code block is followed by an explanation!

Topics

Resources

License

Stars

Watchers

Forks