Skip to content

Repository to be used to simplify explanation sequences.

Notifications You must be signed in to change notification settings

ML-KULeuven/SimplifySeq

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published