This repository contains projects and assignments completed for the Constraint Solving (B-KUL-H02A3A) course at KU Leuven.
Constraint Solving is a master's level course focusing on the fundamentals and advanced techniques of constraint programming and combinatorial optimization. The course provides both theoretical foundations and practical experience in modeling and solving complex combinatorial problems.
- Directory:
CPMpy-modelling-project/ - Main File:
main.ipynb
A constraint programming project implementing POSIX-style Access Control Lists (ACLs) using the CPMpy library. The project models file permissions, ownership, directory structures, and security constraints in a Unix-based file system.
Key Features:
- Boolean and integer decision variables for users, files, and permissions
- Directory tree structure modeling with connectivity constraints
- Permission inheritance and security rules
- Protected files with special access control
- Optimization objective to minimize granted permissions
Technologies: Python, CPMpy, Jupyter Notebook
- Python 3.x
- Virtual environment (recommended)
- Basic knowledge of:
- Constraint programming concepts
- Object-oriented programming
- Artificial intelligence fundamentals
# Create a virtual environment
python3 -m venv myenv
source myenv/bin/activate # On Windows: myenv\Scripts\activate
# Install dependencies (example for CPMpy project)
pip install cpmpy matplotlib networkxconstraint-solving/
README.md
CPMpy-modelling-project/
main.ipynb
project.py
[future projects...]
All projects in this repository are completed in accordance with KU Leuven's academic integrity policies. These solutions are shared for portfolio purposes and should not be copied for academic submissions.
This repository is for educational purposes. Please respect academic integrity guidelines if you are currently enrolled in this course.
For questions about this repository, please open an issue or contact me through GitHub.
KU Leuven | Faculty of Engineering Science | Department of Computer Science