CM3 B Flashcards

1
Q

Qu’est-ce qu’une contrainte globale ?

A

Une classe de contraintes définie par une fonction booléenne qui prend un nombre non-borné de variables

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

À quoi servent les contraintes globales ?

A

À exprimer de façon compacte certaines propriétés d’un problème

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Peut-on utiliser l’algorithme classique d’arc-cohérence sur un réseau avec des contraintes globables ?

A

Oui, mais leur complexité est O(dn) avec n = |X| et d = max(|D(xi)|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Comment faire de la propagation sur les contraintes globables de façon efficace ?

A

En utilisant des propagateurs ad hoc spécifiques aux contraintes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quel problème pose l’idée d’utiliser des propagateurs ad hoc ?

A

Il y a plus de 400 contraintes globales, donc on ne peut pas faire un propagateur pour chacune d’elles

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Pourquoi faire de la décomposition sur les contraintes globales ?

A

Pour éviter de faire un propagateur ad hoc par contrainte

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qu’est-ce qu’une décomposition simple ?

A

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))

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce qu’une décomposition ?

A

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|

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quand est-ce qu’une décomposition préserve l’arc-cohérence ?

A

δ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’ACG(c))[X]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qu’est-ce qu’une contrainte globable AC-décomposable ?

A

Une contrainte globable qui a une décomposition qui préserve l’arc-cohérence

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Exemple de contrainte AC-décomposable

A

At-Least-p-v(X1, …, Xn)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Exemple de contrainte non AC-décomposable

A

AllDiff(X1, …, Xn)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Définition du problème checkerG

A

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(τ) ?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Lien entre le problème checkerG et l’arc-cohérence

A

Si checkerG est NPC, l’arc-cohérence est NP-dure pour G

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Lien entre le problème checkerG et l’AC-décomposabilité

A

Si checkerG est NPC, il n’existe pas d’AC-décomposition pour G

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Que faire pour les contraines non AC-décomposables ?

A

On peut leur appliquer une cohénrence plus faible : la bound-cohérence

17
Q

Comment obtenir la définition de la boun-cohérence à partir de celle de l’arc-cohérence ?

A

En relaxant la définition d’un tuple support : dans la BC, un tuple support est τ tel que τ ∈ c(X) ∧ ∀ xi ∈ X, min(xi) ≤ τ[xi] ≤ max(xi)

18
Q

Qu’est-ce qu’un graphe d’incidence ?

A

Pour (X, D, C) un réseau, le graphe d’incidence est GN = (X ∪ C, E) avec E = {(x, c) | c ∈ C, x ∈ portée(c)}

19
Q

Qu’est-ce qu’un réseau Berge-acyclique ?

A

Un réseau dont le graphe d’incidence est acyclique

20
Q

Que sait-on d’un réseau si celui-ci est Berge-acyclique ?

A

Toutes les valeurs de son AC-décomposition appartiennent à une solution

21
Q

Lien entre l’AC-décomposabilité et la Berge-acyclicité

A

Si une décomposition d’une contrainte globable est Berge-acyclique, alors c’est une AC-décomposition

22
Q

Lien entre l’AC-décomposabilité et l’existence d’un circuit monotone booléen

A

S’il n’existe pas de circuit booléen monotone de taille polynomiale pour une fonction booléenne G, alors il n’existe aucune décomposition en formule normale clausifiée qui calcule l’AC et il n’existe aucune AC-décomposition pour G

23
Q

Qu’est-ce qu’un circuit booléen monotone ?

A

Un circuit booléen qui n’utilise que des opérateurs ∨et ∧

24
Q

Quels sont les trois cas possibles pour les contraintes globables vis-à-vis de l’AC-décomposition ?

A
  • L’AC peut être NP-dure sur la contrainte, il faut alors appliquer une cohérence plus faible (BC)
  • L’AC peut être AC-décomposable, il faut alors décomposer
  • Si la contrainte n’est dans aucun des deux cas (il est polynomial d’appliquer AC, mais il n’y a pas d’AC-décomposition), il faut construire un algorithme ad hoc
25
Q

Comment appliquer l’AC sur AllDifferent (NPC) ?

A
  • Tracer le graphe des valeurs avec une source qui domine les variables et un puits qui domine les valeurs
  • Calculer le flow max
  • Calculer le graphe résiduel
  • Calculer les composantes fortement connexes des deux graphes superposés
  • Supprimer les arêtes isolées et les valeurs associées dans les domaines
26
Q

Quand est-ce que les solveurs SAT ne peuvent pas simuler les solveurs CP ?

A

Lorsqu’il y a des contraintes non-décomposables