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

Post on 04-Apr-2015

110 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

8INF806 1

8INF806

Conception et analyse des algorithmes

Comment comparer deux problèmes?

8INF806 2

Relation entre les classes de fonctions

BPP

P

ZPP

PP

ZPP*

8INF806 3

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

BPP

P

RP

ZPP

co-RP

PP

NP

NPco-NP

co-NP

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.

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.

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

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

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

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

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?

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

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

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

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

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

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

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)

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.

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.

8INF806 20

PARTITION ≤T BINPACKING

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

• Seulement 2 cases avec capacité

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

• 1 seul appel à BINPACKING

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.

8INF806 22

Autres réductions

• 2-DM ≤T NETWORK FLOW

• a-championship ≤T NETWORK FLOW

• 3-SAT ≤T CLIQUE

• 3-SAT ≤T DHC

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

top related