CMS C Flashcards
Qu’est-ce que l’hypergraphe d’un réseau de contraintes N = (X, D, C) ?
C’est l’hypergraphe dont les sommets sont les variables du réseaux et les arêtes correspondent à la portée des contraintes
Qu’est-ce que CSP({H}, -) où {H} est une famille d’hypergraphes ?
C’est l’ensemble des CSP restreint aux instances dont l’hypergraphe est dans H
Propriété de la famille des hypergraphes qui sont des arbres
- Si pour toute variable x, pour toute valeur v ∈ Dom(x) et pour tout voisin y de x, il existe v’ ∈ Dom(y) tel que (x ← v, y ← v’) est cohérent, une solution existe toujours pour le CSP
- Il est polynomial de vérifier la condition précédente
- CSP({H}, -) est polynomial si {H} est la famille des hypergraphes qui sont des arbres
Qu’est-ce qu’une décomposition arborescente ?
Soit H un hypergraphe, une décomposition arborescente de H est le couple (T, (Bt)t∈V(T)) tel que
- T est un arbre
- Tout sac de Bt est un sous-ensemble de sommets de H
- Toute arête de H est entièrement contenue dans au moins un des sacs
- Pout tout sommet de H, les sacs qui le contiennent forment un sous-arbre connexe de T
Quelle propriété sur la décomposition arborescente de l’hypergraphe d’un CSP nous permet de savoir si ce dernier est polynomial ?
Soit une instance I de CSP et soit une décomposition arborescente de H(I), s’il est polynomial d’énumérer toutes les affectations possibles pour chaque sac, alors I peut être résolue en temps polynomial
Comment résoudre un CSP pour lequel il est possible d’énumérer polynomialement toutes les affectations possibles de chaque sac de la décomposition arborescente ?
- Énumérer les affectations possibles pour chaque sac
- Bottom-up : pour chaque sac en partant des feuilles, supprimer toutes les affectations qui ne peuvent pas être étendues à tous ses enfants
- Renvoyer OUI si et seulement si il y a au moins une affectation restante à la racine
Algorithme de résolution par la décomposition arborescente (entrée, sortie, algorithme)
- Entrée : Réseau N, décomposition arborescente de H(N) (T, (Bt)t∈V(T))
- Sortie : Booléen
- Solve(N, (T, (Bt)t∈V(T))) :
- Pour tout t ∈ V(T) des feuilles vers la racine :
- St = {τ : Bt → D | τ est cohérente}
- Pour chaque tc ∈ V(T) enfant de t :
- St = {τ ∈ St | ∃ τc ∈ Stc, τ ∪ τc est cohérent}
- r = racine(T)
- Renvoyer Sr != ∅
- Pour tout t ∈ V(T) des feuilles vers la racine :
Largeur d’une décomposition arborescente
La largeur de (T, (Bt)t∈V(T)) est max{|Bt| - 1 | t ∈ V(T)}
Largeure arborescente d’un hypergraphe
La largeur arborscente d’un hypergraphe H est la largeur minimale d’une décomposition arborescente de H
(Pour la trouver, il faut construire la décomposition avec les plus petits sacs possible et regarder la taille du plus grand des sacs - 1)
Lien entre la largeur arborescente et la complexité d’un CSP
CSP({H}, -) est un temps polynomial si {H} a une largeur arborescente bornée
Comme résoudre un CSP à largeur arboresente bornée ?
- En construisant sa décomposition arborescente optimale (polynomiale) puis en appliquant l’algorithme Solve
- En établissant la (k+1) cohérence forte, où k est la largeur arborescente
Quel défaut a la largeur arborescente ?
Certains hypergraphes trivialement polynomiaux ont une largeur arborescente non-bornée
Qu’est-ce qu’un ensemble de variable k-couvert ?
Un ensemble de variables X’ ⊆ X est k-couvert s’il existe un ensemble de k arêtes e1, …, ek telles que X’ ⊆ e1, …, ek
Nombre d’affectations cohérentes d’un sous-ensemble de variables k-couvert
Si X’ est k-couvert par des contraintes avec au plus t tuples, alors X’ a au plus tk affectations cohérentes
C-width d’une décomposition arborescente
La c-width de (T, (Bt)t∈V(T)) est le plus petit k tel que chaque sac de Bt est k-couvert