Skip to content

karlalucic/constraint-solving

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Constraint Solving - Course Projects

This repository contains projects and assignments completed for the Constraint Solving (B-KUL-H02A3A) course at KU Leuven.

Course Overview

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.

Projects

1. CPMpy Modelling Project

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

Prerequisites

  • Python 3.x
  • Virtual environment (recommended)
  • Basic knowledge of:
    • Constraint programming concepts
    • Object-oriented programming
    • Artificial intelligence fundamentals

Setup

# 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 networkx

Repository Structure

constraint-solving/
    README.md
    CPMpy-modelling-project/
        main.ipynb
        project.py
    [future projects...]

Academic Integrity

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.

License

This repository is for educational purposes. Please respect academic integrity guidelines if you are currently enrolled in this course.

Contact

For questions about this repository, please open an issue or contact me through GitHub.


KU Leuven | Faculty of Engineering Science | Department of Computer Science

About

This repository contains projects and assignments completed for the Constraint Solving course at KU Leuven.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published