La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?

Présentations similaires


Présentation au sujet: "8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?"— Transcription de la présentation:

1 8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?

2 8INF8062 Relation entre les classes de fonctions BPP P ZPP PP ZPP*

3 8INF8063 Relation entre les classes de problèmes de décision BPP P RP ZPP co-RP PP NP NP co-NP co-NP

4 8INF8064 Quelques problèmes (1) HC: Cycle hamiltonien dans un graphe –DFC: graphe dirigé –TSP: problème du comis voyageur CLIQUE: Trouver un ensemble maximal M de noeuds dans un graphe tels que chaque paires de noeuds dans M sont reliées par une arête. –INDEPENDENT SET: Trouver un ensemble maximal M de noeuds dans un graphe tels que aucune paire de noeuds dans M n'est reliée par une arête. –VERTEX COVER: Trouver un ensemble minimal de noeuds dans un graphe tel que toute arête est adjacente à au moins un de ces noeuds. a-CHAMPIONSHIP: Déterminer à un moment donner de la saison si notre équipe à des chances d'emporter la coupe: le gagnant à ba points et le perdant a (a-b) points.

5 8INF8065 Quelques problèmes (2) SAT: Satisfaisabilité: Déterminer s'il existe une affectation des n variable booléenne permettant de satisfaire une formule logique en forme normale conjonctive. –3-SAT: 3 littéraux par clause –MAX-SAT: maximiser le nombre de clauses satisfaisables. BINPACKING: Mettre n objets de poids divers dans des cases de capacité b –PARTITION: Partitionner une suite de nombres en deux ensembles d'égales valeurs. 2-DM: Problème du mariage dans un graphe biparti NETWORK FLOW: Maximiser le flot entre un noeud a et un noeud b dans un graphe dirigé où chaque arc possède une capacité maximale.

6 8INF8066 Objectif On veut définir une relation A T B signifiant que B est au moins aussi difficile que A Réduction de Turing: A T B

7 8INF8067 Réduction de Turing A T B : S'il existe un algorithme E P pour P qui utilise un algorithme E Q pour Q et qui possède les propriétés suivantes: Le temps de E P (si on ne compte pas les appels à E Q ) est borné par un polynôme p(n) Le nombre d'appels à E Q est borné par un polynôme q(n) La longueur des entrées des appels à E Q est bornée par un polynôme r(n) Le temps de E P est: t P (n) p(n) + q(n) + t Q (r(n))

8 8INF8068 Problèmes équivalents Deux problèmes A et B sont Turing- équivalents si A T B et B T A. Notation: A T B FAIT: Si B P et A T B alors A P Remarque: Même chose pour BPP et ZPP

9 8INF8069 Propriétés de la réduction de Turing Transitivité: P T Q et Q T R P T R Réfexibilité: P T P Symétrie: P T Q Q T P

10 8INF80610 Problèmes algorithmiques Problèmes d'optimisation: –Ex: Produire un cycle hamiltonien de longueur minimal dans un graphe Problème d'évaluation: –Ex. Donner la longueur du plus petit cycle hamiltonien dans un graphe Problème de décision: –Existe-t-il un cycle hamiltonien de longueur plus peit ou égal à k?

11 8INF80611 Réduction entre variantes d'un problème Pour la plupart des problèmes A on a: A DEC T A EVAL T A OPT Il est facile de voir: –A DEC T A EVAL –A EVAL T A OPT

12 8INF80612 A EVAL T A DEC Trouver une borne B tel que la valeur de n'importe quelle solution est entre –B et B (souvent entre 0 et B). Exemple: –BINPACKING: n nombres en entrée B=n –CLIQUE: n noeuds B=n –MAX-SAT: n clauses B=n Recherche dychotomique: O(lg B) appels à un algorithme pour A DEC

13 8INF80613 A OPT T A EVAL On appelle d'abord un algorithme pour A EVAL afin d'obtenir une valeur optimal w opt. On construit progressivement une solution en vérifiant si elle est prometteuse à l'aide d'un appel à l'algorithme pour A EVAL et de w opt. Exemple: MAX-SAT –On cherche à satisfaire une formule f(x 1,..., x n ). –On essaie avec x 1 =1 : on remplace les clauses contenant x 1 par la clause 1 et on enlève x 1 de toutes les clauses (une clause vide n'est jamais satisfaisable). –On appelle l'algorithme d'évaluation avec la nouvelle formule g(x 2,..., x n ) qui nous retourne w –Si w=w opt alors on continue avec x 1 =1 sinon avec x 1 =0. Nombre maximal d'appels à l'algorithme d'évaluation = n+1

14 8INF80614 CLIQUE OPT T CLIQUE EVAL Exemple: MAX-CLIQUE: –On appelle l'algorithme d'évaluation qui retourne la valeur w opt –On choisi un noeud n et on l'enlève du graphe pour obtenir un nouveau graphe G' –On appelle à nouveau l'algorithme d'évaluation sur G' qui retourne la valeur w –Si w=w opt alors il existe une clique qui ne contient pas n et on peut enlever n de G. –On continue avec un autre noeud. Nombre maximal d'appels à l'algorithme d'évaluation = n+1

15 8INF80615 BINPACKING OPT T BINPACKING EVAL Exemple: BINPACKING –On appelle l'algorithme d'évaluation qui retourne la valeur w opt –On choisit deux objets que l'on colle ensemble pour en faire un seul (le poids est la somme des deux objets initiaux). –On appelle à nouveau l'algorithme d'évaluation qui retourne la valeur w –Si w=w opt alors on conserve les deux objets collés. –On poursuit de la même manière Remarque: –En réalité on travaille avec des ensembles d'objets (initialement on n'a que des singletons). –On ne choisit jamais deux ensembles contenant deux objets que l'on a déjà tenté de coller puique l'on sait que cela ne mène pas à la solution optimale. –Nombre maximal d'appels à l'algorithme d'évaluation = n(n-1)/2

16 8INF80616 Réduction entre problèmes de même type Le résultats prédédents indique que l'on peut se concentrer sur les problèmes de décision. Nous allons montrer: –DHC T HC –SAT T 3-SAT –PARTITION T BINPACKING –CLIQUE T INDEPENDENT SET (ANTI-CLIQUE) T VERTEX COVER

17 8INF80617 DHC T HC HC T DHC: Par définition DHC T HC: –G=(V,E) où V = {v 1, v 2,..., v n } –G'=(V',E') où V' = {v i,j | 1in, 1j3} –(v i,1, v i,2 ), (v i,2, v i,3 ) E' pour tout i –Si (v i, v j ) E alors (v i,3, v j,1 ) E' –Si (v k, v i ) E alors (v k,3, v i,1 ) E' La direction d'un arc adjacent à v i se réflète par l'endroit où l'arête correspondante est reliée dans le chemin (v i,1, v i,2, v i,3 )

18 8INF80618 DHC T HC Si G contient un cycle hamiltonien: (v 1, v 2,..., v n, v 1 ) G' contient aussi un cycle hamiltonien: (v 1,1, v 1,2, v 1,3, v 2,1, v 2,2, v 2,3,..., v n,1, v n,2, v n,3, v 1,1 ) Si G' contient un cycle hamiltonien alors –SPDG supposons que le cycle commence à v 1,1 –Puisque les noeuds v i,2 ont exactement deux arêtes adjacentes alors ces deux arêtes doivent faire parti du cycle. –Le cycle doit donc contenir le segment (v 1,1, v 1,,2, v 1,3 ) –Les 3 noeuds suivants doivent être de la forme: (v k,1, v k,,2, v k,3 ) –Etc.

19 8INF80619 SAT T 3-SAT 3-SAT T SAT puisque 3-SAT est une restriction de SAT. SAT T 3-SAT –Chaque clause de SAT est de la forme (z 1 z 2 z k ) où z i {x 1, x 1, x 2, x 2,..., x n, x n } –Si k=1 on remplace la clause par (z 1 z 1 z 1 ) –Si k=2 on remplace la clause par (z 1 z 2 z 2 ) –Si k>3 on remplace la clause par: (z 1 z 2 y 1 ) (y 1 z 3 y 2 ) (y k-1 z k-1 z k ) où les y i sont de nouvelle variables.

20 8INF80620 PARTITION T BINPACKING n nombres x 1, x 2,..., x n Seulement 2 cases avec capacité (x 1 + x 2 +... + x n ) / 2 1 seul appel à BINPACKING

21 8INF80621 CLIQUE T INDEPENDENT SET T VERTEX COVER Graphe G = (V,E) et G' = (V,E) G possède une clique de k noeuds ssi G' possède une anti-clique de k noeuds. G possède une anti-clique de k noeuds ssi les (n-k) noeuds restant couvrent toutes les arêtes de E.

22 8INF80622 Autres réductions 2-DM T NETWORK FLOW a-championship T NETWORK FLOW 3-SAT T CLIQUE 3-SAT T DHC

23 8INF80623 Réduction polynomiale Permet une classification plus fine pour les problèmes de décision. Permet de rester à l'intérieur des classes de complexité qui ne sont pas fermée sous la complémentation (e.g. RP, co-RP, NP, co-NP) Déf. Un langage L A * se réduit polynomialement à un langage L B A * s'il existe une fonction f: * * calculable en temps polynomiale telle que: w L A f(w) L B pour tout w *. On utilise la notation L A p L B et L A p L B


Télécharger ppt "8INF8061 Conception et analyse des algorithmes Comment comparer deux problèmes?"

Présentations similaires


Annonces Google