8inf8061 conception et analyse des algorithmes comment comparer deux problèmes?

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

Upload: nicole-louis

Post on 04-Apr-2015

110 views

Category:

Documents


3 download

TRANSCRIPT

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

8INF806 1

8INF806

Conception et analyse des algorithmes

Comment comparer deux problèmes?

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

8INF806 2

Relation entre les classes de fonctions

BPP

P

ZPP

PP

ZPP*

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

8INF806 3

Relation entre les classes de problèmes de décision

BPP

P

RP

ZPP

co-RP

PP

NP

NPco-NP

co-NP

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

8INF806 4

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 à b≤a points et le perdant a (a-b) points.

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

8INF806 5

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.

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

8INF806 6

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

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

8INF806 7

Réduction de Turing

A ≤T B : S'il existe un algorithme EP pour P qui utilise un algorithme EQ pour Q et qui possède les propriétés suivantes:

• Le temps de EP (si on ne compte pas les appels à EQ) est borné par un polynôme p(n)

• Le nombre d'appels à EQ est borné par un polynôme q(n)

• La longueur des entrées des appels à EQ est bornée par un polynôme r(n)

Le temps de EP est:

tP(n) ≤ p(n) + q(n) + tQ(r(n))

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

8INF806 8

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

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

8INF806 9

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

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

8INF806 10

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?

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

8INF806 11

Réduction entre variantes d'un problème

Pour la plupart des problèmes A on a:

ADEC T AEVAL T AOPT

Il est facile de voir:

– ADEC ≤T AEVAL

– AEVAL ≤T AOPT

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

8INF806 12

AEVAL ≤T ADEC

• 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 ADEC

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

8INF806 13

AOPT ≤T AEVAL

• On appelle d'abord un algorithme pour AEVAL afin d'obtenir une valeur optimal wopt.

• On construit progressivement une solution en vérifiant si elle est prometteuse à l'aide d'un appel à l'algorithme pour AEVAL et de wopt.

• Exemple: MAX-SAT

– On cherche à satisfaire une formule f(x1, ..., xn).

– On essaie avec x1=1 : on remplace les clauses contenant x1 par la clause 1 et on enlève x1 de toutes les clauses (une clause vide n'est jamais satisfaisable).

– On appelle l'algorithme d'évaluation avec la nouvelle formule g(x2, ..., xn) qui nous retourne w

– Si w=wopt alors on continue avec x1=1 sinon avec x1=0.

• Nombre maximal d'appels à l'algorithme d'évaluation = n+1

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

8INF806 14

CLIQUEOPT ≤T CLIQUEEVAL

• Exemple: MAX-CLIQUE:

– On appelle l'algorithme d'évaluation qui retourne la valeur wopt

– 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=wopt 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

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

8INF806 15

BINPACKINGOPT ≤T BINPACKINGEVAL

• Exemple: BINPACKING

– On appelle l'algorithme d'évaluation qui retourne la valeur wopt

– 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=wopt 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

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

8INF806 16

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

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

8INF806 17

DHC T HC

• HC ≤T DHC: Par définition

• DHC ≤T HC:

– G=(V,E) où V = {v1, v2, ... , vn}

– G'=(V',E') où V' = {vi,j | 1≤i≤n, 1≤j≤3}

– (vi,1, vi,2), (vi,2, vi,3) E' pour tout i

– Si (vi, vj) E alors (vi,3, vj,1) E'

– Si (vk, vi) E alors (vk,3, vi,1) E'

• La direction d'un arc adjacent à vi se réflète par l'endroit où l'arête correspondante est reliée dans le chemin

(vi,1, vi,2, vi,3)

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

8INF806 18

DHC T HC

• Si G contient un cycle hamiltonien: (v1, v2, ... , vn, v1)

G' contient aussi un cycle hamiltonien:

(v1,1 , v1,2 , v1,3 , v2,1 , v2,2 , v2,3 , ..., vn,1 , vn,2 , vn,3 , v1,1)

• Si G' contient un cycle hamiltonien alors

– SPDG supposons que le cycle commence à v1,1

– Puisque les noeuds vi,2 ont exactement deux arêtes adjacentes alors ces deux arêtes doivent faire parti du cycle.

– Le cycle doit donc contenir le segment (v1,1 , v1,,2 , v1,3)

– Les 3 noeuds suivants doivent être de la forme: (vk,1 , vk,,2 , vk,3)

– Etc.

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

8INF806 19

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 (z1 z2 zk) où zi {x1, x1, x2, x2, ... , xn, xn}

– Si k=1 on remplace la clause par (z1 z1 z1)

– Si k=2 on remplace la clause par (z1 z2 z2)

– Si k>3 on remplace la clause par:

(z1 z2 y1) (y1 z3 y2) (yk-1 zk-1 zk)

où les yi sont de nouvelle variables.

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

8INF806 20

PARTITION ≤T BINPACKING

• n nombres x1, x2, ..., xn

• Seulement 2 cases avec capacité

(x1 + x2 + ... + xn) / 2

• 1 seul appel à BINPACKING

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

8INF806 21

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.

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

8INF806 22

Autres réductions

• 2-DM ≤T NETWORK FLOW

• a-championship ≤T NETWORK FLOW

• 3-SAT ≤T CLIQUE

• 3-SAT ≤T DHC

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

8INF806 23

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 LA * se réduit polynomialement à un langage LB A* s'il existe une fonction f: * * calculable en temps polynomiale telle que:

w LA f(w) LB

pour tout w *.

• On utilise la notation LA ≤p LB et LA p LB