Conception et analyse des algorithmes - PowerPoint PPT Presentation

1 / 23
About This Presentation
Title:

Conception et analyse des algorithmes

Description:

BINPACKING: Mettre n objets de poids divers dans des cases de capacit b ... On choisit deux objets que l'on colle ensemble pour en faire un seul (le poids ... – PowerPoint PPT presentation

Number of Views:50
Avg rating:3.0/5.0
Slides: 24
Provided by: francois52
Category:

less

Transcript and Presenter's Notes

Title: Conception et analyse des algorithmes


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

2
Relation entre les classes de fonctions
PP
BPP
ZPP
ZPP
P
3
Relation entre les classes de problèmes de
décision
PP
BPP
NP
co-NP
RP
co-RP
ZPP
NP?co-NP
P
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 à ba points et
    le perdant a (a-b) points.

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.

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

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

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

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

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?

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

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 ? Bn
  • CLIQUE n noeuds ? Bn
  • MAX-SAT n clauses ? Bn
  • Recherche dychotomique O(lg B) appels à un
    algorithme pour ADEC

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 x11 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 wwopt alors on continue avec x11 sinon avec
    x10.
  • Nombre maximal d'appels à l'algorithme
    d'évaluation n1

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 wwopt 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 n1

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 wwopt 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
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
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 1in, 1j3
  • (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)

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.

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 k1 on remplace la clause par (z1 ? z1 ? z1)
  • Si k2 on remplace la clause par (z1 ? z2 ? z2)
  • Si kgt3 on remplace la clause par
  • (z1 ? z2 ? y1) ? (y1 ? z3 ? y2) ? ? ? (yk-1 ?
    zk-1 ? zk)
  • où les yi sont de nouvelle variables.

20
PARTITION T BINPACKING
  • n nombres x1, x2, ..., xn
  • Seulement 2 cases avec capacité
  • ? (x1 x2 ... xn) / 2 ?
  • 1 seul appel à BINPACKING

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.

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

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
Write a Comment
User Comments (0)
About PowerShow.com