CSP Fork (PIA) License: LGPL v3

cmake Coveralls Documentation Status

CSP is a library containing an implementation of a CSP solver whose content has been partially generated using copilot. The latter is a backtracking algorithm that solves a CSP by assigning values to variables from their domains and checking if the assignment is consistent.

For the course Imperative Programming - Avancé, after all lessons and exams, we’re assigned to fork this library made by our teacher that solves Constraint Satisfaction Problems (CSPs). The goal of this project, in teams of up to 6 students, is to upgrade the backtracking algorithm with a forward checking and to implement heuristics to order variables and values. We also have to benchmark and compare our modifications by solving Sudoku and N-Queens puzzles.

So, the GitHub repository contains the work of the G team for this assignment and has its ReadTheDocs documentation.

> Version: v2.0.0

> Deadline: Friday, May 23, 2025 at 23:00 (Completed on time on 27 May)

Performances

Content/Screenshot/NQueens_Benchmark.png Content/Screenshot/Sudoku_Benchmark.png

Documentation

Technician installation guide

Soon …

Developer preparation guide

Clone the repository and run the following in your preferred CLI:

cmake -S . -B out

Next, move into out and should be about to build, test and btest our project. For more advanced checks, please refer to cmake/ packages.

License

PIA CSP (Library and benchmarking program)

Copyright © 2025 - G team

These programs is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

These last are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License and the GNU Lesser General Public License along with the programs (Links: GNU GPL v3 & GNU LGPL v3. If not, see https://www.gnu.org/licenses/.

Developers

> χristoφe Демко (Former Developer & Our Teacher)

> Xibitol (Project Leader & DevOps Engineer & Developer)

> Valentin GEGADEN (Developer)

> nandeee_753 (Developer)

> Ryan Heuvel (Developer)

> Adrien Gueguen (Developer & Benchmarker)

> LeGoblin (QA Tester)