Problèmes de décision et problèmes de calcul version du 21 novembre 2016 41
6 — PROBLÈMES DE DÉCISION ET PROBLÈMES DE CALCUL
§6.1 - Problème de décision et problème de calcul associés.
6.1 Beaucoup de problèmes de décision posent une question sur l’existence d’un objet particulier.
Il n’est pas nécessaire pour résoudre un tel problème de produire cet objet.
Voir l’exemple de 2-SAT résolu via une question structurelle sur un graphe orienté associé (chapitre 4).
– Inversement, il y a des situations où on a besoin non seulement de savoir si un tel objet existe,
mais aussi de le connaître en détails.
Par exemple, dans le cas de SAT, on peut avoir besoin, si la famille de clauses peut être satisfaite, de savoir quelles
valeurs on peut affecter aux variables pour effectivement satisfaire toutes les clauses.
– Ainsi, dans la plupart des situations, un problème de calcul et un problème de décision peuvent
être naturellement associés.
6.2 Exemple. – Le problème de décision précède le problème du calcul.
Dans le cas du problème de décision 2-SAT, le problème de calcul associé est
V2-SAT Entrée : nIN,Fformule en nvariables, sous forme f.n.c. avec clauses de degré 2.
Question : Trouver, si elle existe, vfonction de vérité satisfaisant F.
6.3 Exemple. – Le problème du calcul précède le problème de décision.
Un problème de calcul ne provient pas nécessairement du raffinement d’un problème de décision. Par exemple :
CFC Entrées : nIN,Ggraphe orienté d’ordre net sun sommet
Question : Quelle est la composante fortement connexe de s?
Dans un graphe orienté, il est naturel de se demander quelle est la composante fortement connexe d’un sommet
particulier.
Le problème de calcul, ici, consiste à calculer une fonction.
L’image, par cette fonction, d’un sommet du graphe, est sa composante fortement connexe ; i.e. l’ensemble des
sommets qui sont sur un même circuit que le sommet considéré. Donc le problème de décision suivant est associé
au problème CFC.
CIRCUIT Entrées : nINn, Ggraphe orienté d’ordre net s, t deux sommets
Question : Y a-t-il dans Gun circuit passant par set t?
6.4 Exemple.
On a vu que si on sait résoudre efficacement CFC alors on sait résoudre efficacement 2-SAT.
Mais il suffit de savoir résoudre rapidement le problème de décision CIRCUIT pour savoir résoudre rapidement
2-SAT. Car l’algorithme Donnée Fformule sous f.n.c. avec clauses de degré 2
Algo 1 - Calculer le graphe d’implications GFde F.
2 - Pour chaque variable xde F, tester CIRCUIT(GF,x,¯x)
si oui écrire non et fin.
3 - Écrire oui et fin.
résout efficacement 2-SAT en faisant appel à un algorithme rapide résolvant CIRCUIT.
6.5 Remarques. – Attention, cet algorithme n’est pas une réduction, et ce n’est pas une preuve
du fait que 2-SAT6PCIRCUIT.
Mais la relation 2-SAT6PCIRCUIT est vérifiée puisque 2-SAT est dans P(proposition 2 page 38)
6.6 Exemple (suite).
Dans le cas d’une réponse positive, l’algorithme décrit ci-dessus ne fournit pas de fonction de vérité qui satisfait F.
Pour en trouver une, on avait eu besoin de calculer les composantes fortement connexes de GF,i.e. de résoudre
CFC.
Le problème de calcul V2-SAT, associé au problème de décision 2-SAT, peut donc être résolu (efficacement) si on
sait résoudre (efficacement) CFC.
Ainsi, pour les problèmes de décision : CIRCUIT permet de résoudre 2-SAT.
pour les problèmes de calcul : CFC permet de résoudre V2-SAT.
42 Complexité Algorithmique – B. Mariou – Automne 2016 version du 21 novembre 2016
§6.2 - Résoudre le problème de décision et le problème de calcul associés.
6.7 Exemples.
IRésoudre V2-SAT permet évidemment de résoudre 2SAT.
IMais aussi CFC permet de résoudre CIRCUIT, grâce à l’algorithme suivant :
Données Ggraphe orienté, s, t des sommets.
Algo 1 - Calculer Cla composante fortement connexe de s: résoudre CF C(G, s)
2 - tester si tC. si tCécrire oui et fin.
si t /Cécrire non et fin.
6.8 Le problème de calcul est, a priori plus difficile que le problème de décision associé, mais le
problème de décision permet, en général, de résoudre le problème de calcul associé.
6.9 Exemples.
IRésolution de CFC qui utilise une solution de CIRCUIT
Données Ggraphe orienté, sun sommet
Algo 1 - C← {s}
2 - Pour tout tG,t6=s
lancer CIRCUIT(G, s, t).
si la réponse est oui, alors CC∪ {t}.
IDe même, on peut trouver une résolution de VSAT à partir d’une solution de SAT :
Donnée Fformule sous forme f.n.c.
Algo 1 - Tester si Fest satisfaisable : ? SAT(F) ?
si non écrire non et fin
2 - S= ensemble des clauses de F
3 - Considérer les variables de F:x1, x2,...,xn
4 - Pour 16i6n, choisir entre v(xi)=0et v(xi)=1de la façon suivante :
pour essayer v(xi)=1, on fabrique un ensemble Tde clauses à partir de S
- toute clause de Scontenant xiest éliminée
- dans toute clause avec xiet sans xi, on supprime xi
- les autres clauses sont conservées
remarque : xin’est pas une variable de T
tester si Test satisfaisable ? SAT(T) ?
si oui on garde v(xi)=1et ST
si non on prend v(xi)=0et Sest modifié ainsi
- les clauses avec xisont éliminées
- dans chaque clause avec xiet sans xi, on enlève xi
- on garde les autres clauses.
Dans le cas où Fest satisfaisble, à chaque étape, Sest modifié de sorte que le nouvel ensemble a une variable de
moins que le précédent et il est encore satisfaisable.
6.10 On n’a pas vu ici des réductions, ni des réductions polynomiales, au sens strict. Mais dans
chaque exemple, si le temps calcul de l’algorithme connu est T(n), alors le temps de calcul de
l’algorithme fabriqué est de l’ordre de nT (n). En particulier, si T(n)est borné par un polynome,
alors nT (n)aussi.
§6.3 - Exemples.
Dans les exemples suivants, on peut appliquer des raisonnements similaires pour montrer que le
problème de décision permet de résoudre la problème de calcul associé, avec un temps de calcul
comparable.
6.11 Le problème SAT concerne la satisfaisabilité d’une forme normale conjonctive F. Le problème de calcul
associé vSAT demande de fournir une fonction de vérité qui satisfait F, s’il en existe.
6.12 De même, au problème de coloration en kcouleurs, k-COL, est associé le problème de calcul k-COLc, qui
demande de fournir une k-coloration du graphe, s’il en existe.
6.13 De même, au problème du mariage en mdimensions, m-MAR, est associé le problème m-MARcqui demande
de trouver un appariement maximal lorsqu’il en existe un.
La classe N P version du 21 novembre 2016 43
6.14 Le problème suivant est un problème de décision très classique.
HAMILTON Entrées : nentier naturel, Ggraphe non orienté d’ordre n
Question : Existe-t-il, dans G, un cycle hamiltonien i.e. qui passe exactement
une fois par chaque sommet ?
Le problème de calcul qui lui est naturellement associé, HAMILTONcdemande qu’on fournisse un cycle hamiltonien,
s’il en existe un.
6.15 Exemple typique de problème d’optimisation (cas particulier de calcul) :
ENS INDEPmax Entrées : nentier naturel, Ggraphe non orienté d’ordre n.
Question : Trouver un ensemble de sommets indépendants, i.e. sans arête,
de taille maximale.
Le problème de décison associé doit comporter un paramètre supplémentaire :
ENS INDEP Entrées : nentier naturel, Ggraphe non orienté d’ ordre net k6n
Question : Existe-t-il un ensemble de ksommets indépendants ?
On peut encore résoudre facilement le problème de calcul si on a des algorithmes rapides résolvant les problèmes de
décision associés (exercices ci-dessous).
§6.4 - Exercices.
Exercice 50 Expliquez en détail, comme cela a été fait en cours (page 42), comment un algorithme résolvant le
problème de décision SAT peut être utilisé pour fabriquer un algorithme résolvant le problème de calcul VSAT.
Exprimez la complexité de l’algorithme de calcul en fonction de celle de l’algorithme de décision.
Exercice 51 Inspirez-vous de l’exercice précédent pour imaginer comment on peut utiliser un algorithme résol-
vant le problème de décision m-MAR pour fabriquer un algorithme résolvant le problème de calcul m-MARc(voir
page 42).
Exercice 52 On veut obtenir un résultat analogue pour les problèmes HAMILTON (décision) et HAMILTONc
(calcul), relatifs aux circuits hamiltoniens dans un graphe non orienté (voir ci-dessus).
On imagine qu’on a un algorithme Apermettant de déterminer si un graphe est hamiltonien ou pas (i.e. s’il a un
circuit hamiltonien) et on voudrait l’utiliser pour construire un algorithme qui trouve un chemin hamiltonien, quand
il y en a un.
On considère un graphe fini, non orienté, et un de ses sommets v. Toute la difficulté est de déterminer où se situe v
dans le parcours hamiltonien i.e. quel sommet le précède et quel sommet lui succède, ou encore par quelle arête on
peut arriver à vet par quelle arête on peut repartir de v.
a) Considérons deux voisins w0,w1de v. Considérons le graphe obtenu en supprimant toutes les arêtes portés par
vsauf (v, w0)et (v, w1), qu’on appelle G[w0vw1].
Montrez que si G[w0vw1]est hamiltonien alors Gaussi et Ga un circuit hamiltonien passant par les arêtes (w0, v)
et (v, w1).
b) Réciproquement, montrez que si Gest hamiltonien alors il existe deux voisins w06=w1de vtels que G[w0vw1]
est aussi hamiltonien.
c) Si on choisit un sommet de départ v0, montrez comment on peut trouver un circuit hamiltonien (s’il en existe
un), en devinant la liste de parcours des sommets, de proche en proche, grâce à l’algorithme de décision A.
Décrivez un algorithme B, qui utilise des appels à A, pour fabriquer, quand il en existe, un circuit hamiltonien.
Quelle est la complexité de Ben fonction de celle de A.
Exercice 53 On se fixe le même objectif pour ENS INDEPmax (trouver un sous-graphe indépendant de taille
maximale) grâce à un algorithme Arésolvant le problème de décision ENS INDEP (existence d’un sous-graphe
indépendant de taille kfixée, voir ci-dessus).
a) Soit Gun graphe non orienté et fini. Montrez que, par itération de A, on peut déterminer la taille maximale K
d’un sous-graphe indépendant de G.
b) Soit vun sommet de Get kIN. Appelons G\vle graphe obtenu en supprimant dans Gle sommet vet tous
ses voisins, ainsi que les arêtes qu’ils portent.
Montrez que vappartient à un sous-graphe indépendant d’ordre kde Gssi G\va sous-graphe indépendant d’ordre
k1.
c) Proposez un algorithme B, utilisant des appels à A, et permettant de construire, sommet par sommet, un sous-
graphe de Gindépendant et de taille maximale. Évaluez la complexité de Bpar rapport à celle de A.
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !