ML-KULeuven / SimplifySeq

Repository to be used to simplify explanation sequences.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SimplifySeq

This repostitory accompanies the following paper published at CP23:

Bleukx, Ignace, et al. "Simplifying Step-wise Explanation Sequences." 29th International Conference on Principles and Practice of Constraint Programming (CP 2023). Schloss Dagstuhl-Leibniz-Zentrum für Informatik, 2023.

And provides algorithms to generate and post-process step-wise explanations sequences. An explanation sequence explains a target set of literals by propagating small subsets of constraints. Each step in such a sequence takes as input literals derived in previous steps, and the constraints to be propagated. The output of a step is a new set of literals.

The repository is organised as follows:

.
├── __init__.py                 
├── algorithms
|   ├── backward.py         # Algorithms for post-processing sequences
|   ├── datastructurs.py    # Datastructures used in algorithms and propagators
|   ├── forward.py          # Algorithms for sequence construction
|   ├── propagate.py        # Algorithms for (fully) propagating constraints
|   ├── subset.py           # Algortihms for finding unsatisfiable subsets of constraints
├── datasets.py   
|   ├── debug                # Unsatisfiable CSP's by introducing a modelling mistake in a CSP
|   ├── jobshop              # Jobshop-instances based on Trailmark
|   ├── sudoku               # Unsatisfiable Sudoku instances based on QQWING tool
├── tests                         # Unit tests to test all implemented algorithms

By creating and post-processing sequences with algorithms in the following order, resulting sequences will satisfy desirable properties such as Atomicity, Sparsity, Pertinence and Non-redundancy. More information about these properties can be found in the paper.

  1. Greedy construct
  2. Deletion-based filtering
  3. Relaxation-based filtering

To use this repository, you need the following packages:

  • CPMpy: a constraint modelling languages in which all of the algorithms are implemented
  • Exact: a ILP-like solver which provides statefull propagation. This allows for efficient repeated propagation of (sets of) constraints.
pip install cpmpy exact

About

Repository to be used to simplify explanation sequences.


Languages

Language:Python 89.4%Language:Jupyter Notebook 10.6%