CM3 B Flashcards
Qu’est-ce qu’une contrainte globale ?
Une classe de contraintes définie par une fonction booléenne qui prend un nombre non-borné de variables
À quoi servent les contraintes globales ?
À exprimer de façon compacte certaines propriétés d’un problème
Peut-on utiliser l’algorithme classique d’arc-cohérence sur un réseau avec des contraintes globables ?
Oui, mais leur complexité est O(dn) avec n = |X| et d = max(|D(xi)|
Comment faire de la propagation sur les contraintes globables de façon efficace ?
En utilisant des propagateurs ad hoc spécifiques aux contraintes
Quel problème pose l’idée d’utiliser des propagateurs ad hoc ?
Il y a plus de 400 contraintes globales, donc on ne peut pas faire un propagateur pour chacune d’elles
Pourquoi faire de la décomposition sur les contraintes globales ?
Pour éviter de faire un propagateur ad hoc par contrainte
Qu’est-ce qu’une décomposition simple ?
Soit G une contrainte globable et c(X) = (X, DX, {c}) une instance de celle-ci, la décomposition simple de G est δG(c) = (X, DX, C) où C = {c1, c2, …} et tout ci de C porte sur un nombre limité de variables, et sol(c) = sol(δG(c))
Qu’est-ce qu’une décomposition ?
Soit G une contrainte globable et c(X) = (X, DX, {c}) une instance de celle-ci, la décomposition de G est δG(c) = (X ∪ Y, DX + DY, C) où
- C = {c1, c2, …} et tout ci de C porte sur un nombre limité de variables
- sol(c) = sol(δG(c))[X]
- |Y| + |DY| est molynomial en |X| + |DX|
Quand est-ce qu’une décomposition préserve l’arc-cohérence ?
δG préserve l’arc-cohérence si et seulement si pour toute instance c(X) = (X, DX, {c}) de G et tout domaine D’X ⊆ DX, D’AC(c) = D’AC(δG(c))[X]
Qu’est-ce qu’une contrainte globable AC-décomposable ?
Une contrainte globable qui a une décomposition qui préserve l’arc-cohérence
Exemple de contrainte AC-décomposable
At-Least-p-v(X1, …, Xn)
Exemple de contrainte non AC-décomposable
AllDiff(X1, …, Xn)
Définition du problème checkerG
Soit G une contrainte globale, alors :
- Instance : (X(c), D, {c}) où c est une instance de G
- Question : Est-ce qu’il existe un tuple τ ∈ DX(c) tel que c(τ) ?
Lien entre le problème checkerG et l’arc-cohérence
Si checkerG est NPC, l’arc-cohérence est NP-dure pour G
Lien entre le problème checkerG et l’AC-décomposabilité
Si checkerG est NPC, il n’existe pas d’AC-décomposition pour G