• Aucun résultat trouvé

Construction et analyse des algorithmes exacts et exponentiels : énumération input-sensitive

N/A
N/A
Protected

Academic year: 2021

Partager "Construction et analyse des algorithmes exacts et exponentiels : énumération input-sensitive"

Copied!
118
0
0

Texte intégral

(1)

HAL Id: tel-02860933

https://hal.univ-lorraine.fr/tel-02860933

Submitted on 8 Jun 2020

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

exponentiels : énumération input-sensitive

Mohamed Yosri Sayadi

To cite this version:

Mohamed Yosri Sayadi. Construction et analyse des algorithmes exacts et exponentiels : énumération input-sensitive. Informatique [cs]. Université de Lorraine, 2019. Français. �NNT : 2019LORR0316�.

�tel-02860933�

(2)

AVERTISSEMENT

Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie.

Il est soumis à la propriété intellectuelle de l'auteur. Ceci implique une obligation de citation et de référencement lors de l’utilisation de ce document.

D'autre part, toute contrefaçon, plagiat, reproduction illicite encourt une poursuite pénale.

Contact : ddoc-theses-contact@univ-lorraine.fr

LIENS

Code de la Propriété Intellectuelle. articles L 122. 4

Code de la Propriété Intellectuelle. articles L 335.2- L 335.10 http://www.cfcopies.com/V2/leg/leg_droi.php

http://www.culture.gouv.fr/culture/infos-pratiques/droits/protection.htm

(3)

Construction et analyse des

algorithmes exacts et exponentiels :

´ enum´ eration input-sensitive

TH` ESE

pr´esent´ee et soutenue publiquement le 04 novembre 2019 pour l’obtention du

Doctorat de l’Universit´e de Lorraine

(mention informatique) par

Mohamed Yosri Sayadi

Composition du jury

Pr´esidents : Hoai An LE THI

Rapporteurs : Bruno ESCOFFIER Professeur des Universit´es, Sorbonne Universit´e

Lhouari NOURINE Professeur des Universit´es, Universit´e Clermont Auvergne

Examinateurs : Hoai An LE THI Professeur des Universit´es, Universit´e de Lorraine Micha¨el RAO Charg´e de Recherche CNRS, ENS de Lyon

❉✐r❡❝t❡✉r ❞❡ ❚❤ès❡ ✿ Lo¨ıc COLSON Professeur des Universit´es, Universit´e de Lorraine

Laboratoire de G´enie Informatique, de Production et de Maintenance - EA 3096

(4)
(5)

..نوصقان رثكأ نوكن نا عيطتسن لا

" يكرتلا دمحم "

(6)
(7)

Table des matières v

Liste des figures vii

Liste des tableaux ix

1 Introduction 1

1.1 Graphes. . . . 2

1.2 Quelques problèmes . . . . 10

1.3 Complexité . . . . 11

1.4 Algorithmes . . . . 11

1.5 Les algorithmes exponentiels exacts . . . . 15

1.6 Enumération. . . . 19

1.7 Enumération des stables maximaux . . . . 20

1.8 Problèmes étudiés . . . . 21

2 Enumération des ensembles dominants minimaux 23 2.1 Etat de l’art . . . . 24

2.2 Notre contribution . . . . 27

2.3 Conclusion . . . . 41

3 Enumération des ensembles irredondants maximaux 43 3.1 Etat de l’art . . . . 44

3.2 Les irredondants maximaux versus les dominants minimaux . . . . 45

3.3 Les cographes . . . . 46

3.4 Les graphes cordaux . . . . 47

3.5 Les forêts . . . . 58

3.6 Les graphes d’intervalles . . . . 61

3.7 Conclusion . . . . 68

4 Enumération des ensembles connexes minimaux 71 4.1 Etat de l’art . . . . 72

4.2 Les dominants connexes minimaux dans les bipartis convexes . . . . 74

4.3 Les ensembles tropicaux connexes minimaux . . . . 82

4.4 Conclusion . . . . 90

5 Résumé et conclusion 93 5.1 Résumé . . . . 97

5.2 Summary . . . . 98

6 Bibliographie 99

(8)
(9)

1.1 Un graphe biparti . . . . 3

1.2 Un graphe biparti complet . . . . 4

1.3 Un griffe . . . . 4

1.4 Un graphe biparti convexe. . . . 5

1.5 Un graphe cordal et son arbre de cliques . . . . 5

1.6 Un graphe d’intervalles . . . . 6

1.7 Un graphe de permutation . . . . 7

1.8 Un graphe chaine . . . . 8

1.9 Un diagramme de classes de graphes . . . . 9

1.10 Des différents temps d’exécution . . . . 12

2.1 La borne inférieure des ensembles dominants minimaux . . . . 25

3.1 Un ensemble irredondant maximal non dominant . . . . 44

4.1 La borne inférieure des ensembles dominants connexes minimaux . . . . . 72

4.5 La borne inférieure des ensembles dominants connexes minimaux dans les graphes bipartis convexes . . . . 81

4.6 La borne inférieure des ensembles tropicaux connexes minimaux . . . . 83

4.7 La borne inférieure des ensembles tropicaux connexes minimaux dans les graphes scindés . . . . 85

4.8 Un graphe bloc . . . . 87

(10)
(11)

2.1 Un survol sur l’énumération des ensembles dominants minimaux . . . . 42 3.1 Un survol sur l’énumération des ensembles irredondants maximaux . . . . 69 4.1 Un survol sur l’énumération des ensembles dominants connexes minimaux 91 4.2 Un survol sur l’énumération des ensembles tropicaux connexes minimaux. 91

(12)
(13)

Introduction

« For every polynomial-time algorithm you have, there is an exponential algorithm that I would rather run »

Alan Perlis, the first Turing Award winner

Sommaire

1.1 Graphes. . . . 2

1.1.1 Notions de graphes . . . . 2

1.1.2 Sous-ensembles de sommets . . . . 2

1.1.3 Les classes de graphes . . . . 3

1.2 Quelques problèmes . . . 10

1.2.1 Décision . . . . 10

1.2.2 Optimisation . . . . 10

1.2.3 Enumération . . . . 10

1.2.4 Dénombrement . . . . 10

1.3 Complexité. . . 11

1.4 Algorithmes . . . 11

1.4.1 Les notations asymptotiques :O,,ΘetO . . . . 12

1.4.2 Classification suivant le temps d’exécution. . . . 12

1.4.3 P=NP? . . . . 12

1.4.4 Méthodes de résolution . . . . 13

1.5 Les algorithmes exponentiels exacts. . . 15

1.5.1 Brancher et réduire . . . . 15

1.5.2 Arbre de recherche et Temps d’exécution . . . . 16

1.5.3 Exemple . . . . 17

1.5.4 Mesurer pour Conquérir . . . . 17

1.6 Enumération . . . 19

1.6.1 Output-sensitive . . . . 19

1.6.2 Input-sensitive . . . . 19

1.7 Enumération des stables maximaux . . . 20

1.8 Problèmes étudiés . . . 21

(14)

1.1 Graphes

1.1.1 Notions de graphes

Soit V un ensemble fini de sommets. Soit P(V) l’ensemble des parties de l’ensemble V, c’est-à-dire l’ensemble des sous-ensembles de V, et soit P2(V) l’ensemble des parties de cardinalité 2 de V.

Le graphe G=(V, E) est un graphe simple non orienté si EP2(V). On appelle E l’en- semble des arêtes de G. On désigne parnle nombre de sommets|V|, et parmle nombre des arêtes|E|. Un graphe G est non trivial s’il a au moins une arête.

Le degré d’un sommetv, notéd eg(v), est le nombre d’arêtes reliantv. Un sommet de degré 0 est dit isolé, alors qu’un sommet de degré 1 est dit pendant. On désigne parδ(G) et∆(G), respectivement le degré minimum et maximum d’un graphe G.

Dans le cas d’un graphe coloré, on désigne parcol(v) la couleur du sommetvV.

Deux sommets d’un graphe sont adjacents ou voisins s’il existe une arête qui les re- lie. On désigne par N(v) l’ensemble des sommets adjacents à v, et par N[v] l’ensemble N(v){v}.

Soit S un ensemble de sommets. On désigne par N(S), l’ensemble v∈SN(v) et N[S]=SN(S). Un sommetuest un voisin privé du sommetv, par rapport à S, siuN[v] maisuN[S \ {v}].

Une séquence de sommets (v0,v1, . . . ,vl) est un chemin de v0 àvl, notév0vl, de longueurl dans G sivi−1viE pouri =1, 2 . . . ,l. Un chemin (v0,v1, . . . ,vl) est un cycle si v0vlE. Une corde d’un chemin (cycle) est une arête entre deux sommets non consécu- tifs du chemin (cycle). La distance entre deux sommetsu etv est la longueur minimale d’un cheminuv.

Un graphe G0=(V0, E0) est un sous-graphe de G si V0V et E0E. Un sous-graphe G0=(V0, E0) est un sous-graphe induit de G si E0={uv:uvE} etu,vV0. On désigne par G[S] le sous-graphe induit de G par S.

S’il existe un chemin pour toute paire de sommets, on dit que le graphe est connexe.

Une composante connexe est un sous-graphe connexe maximal. on notec(G) le nombre de composantes connexes dans G. Un sommet v est un point d’articulation de G si c(G \v)>c(G). Une arêtee d’un graphe G est un pont sic(G \e)>c(G).

Un graphe den sommets est dit complet, noté Kn, si chaque paire de sommets dis- tincts est reliée par une arête. On appelle un sous-graphe complet de G une clique. Ré- ciproquement, un ensemble stable ou « independent set » est un sous-ensemble de V où les sommets sont deux à deux non adjacents. On désigne parw(G) la taille de la clique de cardinalité maximale du graphe G.

Noter bien qu’on désigne, tout au long de cette thèse, parl’inclusion au sens large et parl’inclusion au sens strict.

1.1.2 Sous-ensembles de sommets

Dans cette section, on cite quelques définitions de sous-ensembles de sommets par- ticuliers.

Définition 1. Stable maximal

SoitG=(V, E)un graphe etSVun stable deG. L’ensembleSest un stable maximal s’il n’existe aucun autre stableS0Vtel queSS0.

Définition 2. Ensemble dominant minimal

(15)

SoitG=(V, E)un graphe. Un ensemble de sommetsDVest un ensemble dominant de Gsi pour tout vV, v N[D]. On dit queDest minimal s’il n’existe aucun autre ensemble dominantD0Vtel queD0D.

Définition 3. Ensemble dominant connexe minimal

SoitG=(V, E)un graphe. Un ensemble de sommetsDV est un ensemble dominant connexe deGsiDest un ensemble dominant etG[D]est connexe. L’ensembleDest minimal s’il n’existe aucun autre ensemble dominant connexeD0Vtel queD0D.

Définition 4. Ensemble dominant total minimal

SoitG=(V, E)un graphe. Un ensemble de sommetsDV est un ensemble dominant total deGsi pour tout v V, vN(D). L’ensembleDest minimal s’il n’existe aucun autre ensemble dominant totalD0Vtel queD0D.

Définition 5. Ensemble irredondant maximal

SoitG=(V, E)un graphe. Un ensemble de sommetsSV est un ensemble irredondant si pour tout vS, v a un voisin privé dansG. L’ensembleSest maximal s’il n’existe aucun autre ensemble irredondantS0tel queSS0.

Définition 6([20]). Ensemble tropical connexe minimal

SoitG=(V, E)un graphe où ses sommets sont colorés. Un ensembleSVest dit tropical s’il contient toutes les couleurs du graphe. Il est dit tropical connexe minimal si l’ensemble Sest de plus connexe et minimal.

1.1.3 Les classes de graphes

Plusieurs classes de graphes sont distinguées dans la littérature par leurs structures et leurs propriétés caractéristiques qui peuvent nous aider à améliorer certains algorithmes.

Dans cette section, on cite quelques classes de graphes et on donne un diagramme qui permet d’illustrer les différentes relations entre eux.

Les cheminsPnet les cyclesCn

On désigne par Pn(Cn) un chemin (cycle) sans corde avecnsommets.

Les graphes sans triangles

Un graphe sans triangle est un graphe qui ne contient pas de C3. Bipartis

Un graphe G =(V, E) est un graphe biparti s’il existe deux ensembles de sommets U, W V tel que V = UW et U, V sont deux stables. On désigne un tel graphe par G=(U, W, E).

FIGURE1.1 – Un graphe biparti

(16)

Bipartis Complets

Un graphe biparti G=(U, W, E) est dit complet si chaque sommet de U est adjacent à tous les sommets de W. Un graphe biparti complet est noté K|U|,|W|.

FIGURE1.2 – Un graphe biparti complet

Sans griffes

Un graphe G=(V, E) est dit sans griffe s’il n’a pas un K1,3comme un sous graphe induit.

FIGURE1.3 – Un griffe

Cobipartis

Un graphe G=(K1, K2, E) est dit cobiparti si l’ensemble de ses sommets V peut être partitionné en deux cliques K1etk2.

Bipartis cordaux

Un graphe biparti cordal G=(U, W, E) est un graphe biparti où chaque cycle de lon- gueur au moins 6 possède une corde.

Bipartis convexes

Un graphe biparti G=(U, W, E) est convexe s’il existe un ordre sur les sommets W tel que pour tout sommetuU, ses adjacents N(u) sont consécutifs dans W. Les adjacents d’un sommetuU peuvent être répresentés par un intervalle Iu, appelé l’intervalle adja- cent deu. Par conséquent, les adjacents des sommets U peuvent être répresentés par un ensemble des intervalles noté I(U).

SansPn

Un graphe G=(V, E) est dit sans Pns’il ne contient pas le chemin induit Pn. Cographes

Un graphe sans P4est dit cographe.

(17)

I1

I2 I5

I4 I6

U 1 2 3 4 5 6

W w1 w2 w3 w4 w5 w6 w7

I(U)

FIGURE1.4 – Un graphe biparti convexe

Cordaux

Dans la littérature, les graphes cordaux sont appelés aussi « triangulated », « rigid- circuit », « perfect elimination graphs ». . . Un graphe G est cordal si chaque cycle dans G de longueur au moins 4 possède au moins une corde [36]. On dit qu’un sommetxest sim- plicial si N[x] forme une clique. Chaque graphe cordal non complet possède au moins deux simpliciaux non adjacents (DIRAC[21]). On peut associer à chaque graphe cordal, un arbre de cliques.

1

2 3

4 5 6

7 8

Un graphe cordal

245 235 231

36

678

Son arbre de cliques

FIGURE1.5 – Un graphe cordal et son arbre de cliques

Récemment ABU-KHZAM et HEGGERNES[1] ont prouvé des nouvelles propriétés im- portantes sur les simpliciaux d’un graphe cordal.

Définition 7. Si u et v sont deux simpliciaux adjacents alorsN[u]=N[v]. On dit, dans ce cas, que u et v sont deux simpliciaux jumeaux.

Définition 8([1]). Soit v un sommet non simplicial dans un graphe cordalGqui a exacte- ment un unique adjacent simplicial u. Si v est simplicial dans le grapheGu, alors on dit que v est un semi-simplicial dansG.

Dans la figure1.5, le sommet « 5 » est un sommet non simplicial dans G et le som- met « 4 » est son unique adjacent simplicial. Comme le sommet « 5 » est simplicial dans G{« 4 »}, alors il est un semi-simplicial dans G.

Observation 1 ([1]). Soit v un sommet semi-simplicial dans un graphe cordal G et u son adjacent simplicial de degré au moins 2, alors N[V] N[W] pour tout sommet wN(u)N(v).

(18)

Théorème 1([1]). SoitGun graphe cordal non trivial, alors il existe une paire de sommets u et v satisfaisant au moins l’une de ces trois assertions suivantes :

1. Les deux sommets u et v sont deux simpliciaux tel queN(u)N(v)6= ;. 2. Les deux sommets u et v sont deux simpliciaux jumeaux.

3. Le sommet u est simplicial, v son adjacent semi-simplicial et le degré de v dansGest au moins 2.

Corollaire 1([1]). SoitGun graphe cordal non trivial sans simpliciaux jumeaux, tous les simpliciaux sont de degré 1, et tous deux sommets de degré 1 n’ont pas un voisin commun.

Alors au moins l’une de ces deux assertions suivantes est satisfaisante :

1. Il existe deux simpliciaux u,u0 et respectivement v,v0 sont ses deux distincts semi- simpliciaux tel queN[v]N[v0]6= ;.

2. Il existe trois sommets u,v et w tel que u est un simplicial dans G, v son semi- simplicial adajcent, et w N(v)est un simplicial dansGv et de degré au moins 2 dansGu.

Ces propriétés précédentes proposés par Faisal N.Abu-Khzam et Pinar Heggernes sont très importantes du point de vue algorithmique, en plus ils concernent une classe de graphes importante, les graphes cordaux. Durant cette thèse on va proposer un théorème légèrement différent du théorème1et du corollaire1mais qui est plus compact et plus fort.

Intervalles

Un graphe d’intervalles G=(V, E) est présenté par un ensemble d’intervalles dans le- quel chaque sommet correspond à un intervalle de la droite réelle. Deux sommets sont adjacents dans le graphe G si et seulement si leurs intervalles correspondants ont une intersection non vide.

3

1 2

4 5 6

3

1

2 4

6

5

FIGURE1.6 – Un graphe d’intervalles

Les graphes scindés

Un graphe G=(K, I, E) est dit scindé ou « split » si l’ensemble de ses sommets V peut être partitionné en une clique K et un stable I.

(19)

Biconnexes

Un graphe est dit biconnexe s’il est connexe et s’il ne contient pas des points d’articu- lation.

Blocs [38]

Un bloc d’un graphe est soit un sous-graphe biconnexe maximal, soit un pont, soit un sommet isolé [50]. Un graphe est dit bloc si et seulement si chaque bloc est une clique.

Deux blocs distincts dans un graphe bloc ont au plus un sommet en commun. Les graphes blocs sont des graphes cordaux.

Forêts

Une forêt est un graphe sans cycles. Remarquons qu’une forêt est un graphe cordal.

Arbres

Un arbre est une forêt connexe. Un sommet dans un arbre est dit une feuille s’il est de degré 1. Un arbre a au moins deux feuilles (conséquence immédiate du théorème de DIRAC[21]).

Les graphes de permutation

On dit que G=(V, E) est un graphe de permutation s’il existe deux permutationsσ etπ de l’ensemble de sommets V telles quex y E(G) si et seulement si σ(x)<σ(y) et π(x)>π(y).

1

2 3

4

1 4 2 3

1 4

2 3

π

σ

FIGURE1.7 – Un graphe de permutation

Les seuils

On dit que G=(V, E) est un graphe à seuil (threshold graph) s’il existe un sommetvV tel que :

— Le sommetvest soit isolé soit universel (un sommet adjacent à tous les autres som- mets du graphe G).

— Le sous-graphe de G induit par V \ {v} est un graphe à seuil.

Les seuils ont été introduits pour la première fois par CHVÁTALet HAMMER[14].

Les trivialement parfaits

Ce sont les cographes qui sont aussi des graphes d’intervalles [45]. Donc ils sont une sous-classe des graphes cordaux. Alors un graphe trivialement parfait est un graphe sans P4et sans C4.

(20)

Les chaines

Un graphe biparti G=(U, W, E) est dit chaine s’il existe un ordreσU=<u1,u2, . . . ,uk>

de ses sommets U tel que N(ui) N(ui+1) pour tout i {1, . . . ,k1}, ainsi qu’un ordre σW =< w1,w2, . . . ,wl > de ses sommets W tel que N(wj) N(wj+1) pour tout

j{1, . . . ,l1}.

U

u1 u2 u3 u4

W

w1 w2 w3 w4

FIGURE1.8 – Un graphe chaine

Les fortement cordaux

Un graphe cordal est dit fortement cordal si chaque cycle C de longueur paire supé- rieure ou égale à 6 possède une cordex ytelle que la distance entrexetyest impaire dans le cycle C.

Les distance-héréditaires

Un graphe G est distance-héréditaire si la distance entre deux sommets quelconques d’un sous-graphe de G induit connexe est égale à la distance entre ces deux sommets dans G [42].

(21)

Graphes Sans griffes

Cobipartis

Bipartis

Chaines Bipartis cordaux Bipartis convexes

Sans astéroïde triples Sans P6 Cordaux Distance-héréditaires

Cographes

Fortement cordaux

Scindés

Seuils

Intervalles Bloc

Arbres

Chemins Trivialement parfaits

Sous-Classe Classe

Légende Héritage

FIGURE1.9 – Un diagramme de classes de graphes

(22)

1.2 Quelques problèmes

Une solution qui satisfait certains critères est dite réalisable. Un stable maximal (Dé- finition :1) est un sous-ensemble de sommets mais qui satisfait les conditions de stabilité et de maximalité. Le nombre de solutions réalisables est parfois exponentiel, on dit dans ce cas que notre problème est combinatoire. En fait l’ensemble de stables maximaux, par exemple, peut atteindre 3n/3, ce qui est démontré par MOONet MOSER[55].

Démonstration. Soit G=(V, E) un graphe constitué par union dekC3. Chaqueième com- posante est désigné par Tipour touti{1, . . .k}. Le graphe G an=3ksommets. Soit SV est un stable maximal de G si et seulement si |STi| =1 pour touti {1, . . .k}. Donc le nombre de stables maximaux dans G est 3k=3n/3.

Ce nombre exponentiel des solutions réalisables est l’origine de la diversité de la na- ture des problèmes combinatoires (décision, optimisation, dénombrement, énumération).

1.2.1 Décision

Un problème de décision est un problème qui nécessite une réponse soit par « oui » soit par « non ».

EXEMPLE: ENSEMBLESTABLE

entrée: Un graphe G=(V, E) et un entierkN.

question: Existe-t-il un ensemble SV tel que S est un ensemble stable de taille k?

1.2.2 Optimisation

Un problème d’optimisation consiste à trouver la meilleure solution réalisable satis- faisant certains critères. La meilleure solution est appelée la solution optimale. La solu- tion optimale est la solution qui réalise le maximum du profit ou qui minimise au maxi- mum le coût.

EXEMPLE: ENSEMBLESTABLE MAXIMUM

entrée: Un graphe G=(V, E).

question: Chercher un ensemble S V de taille maximum tel que S est un en- semble stable ?

1.2.3 Enumération

Un problème d’énumération consiste à énumérer explicitement tous les solutions réa- lisables possibles.

EXEMPLE: ENUMÉRATION DES ENSEMBLES STABLES MAXIMAUX

entrée: Un graphe G=(V, E).

question: Lister tous les ensembles stables maximaux de G

1.2.4 Dénombrement

L’objectif d’un problème de dénombrement est de compter le nombre de solutions possibles satisfaisant certains critères sans les énumérer.

(23)

EXEMPLE: DÉNOMBREMENT DES ENSEMBLES STABLES MAXIMAUX

entrée: Un graphe G=(V, E).

question: Quel est le nombre exact des ensembles stables maximaux dans G ? L’énumération des tous les ensembles réalisables d’un problème donne immédiate- ment la solution optimale et le nombre exact de tous les solutions. Donc on peut réduire les problèmes d’optimisation et de dénombrement aux problèmes d’énumération. Cela prouve que les problèmes d’énumération sont plus difficiles. Donc il y a des niveaux hié- rarchiques des problèmes selon leur difficultés. C’est ce qui nous conduit à parler, dans la section suivante, de la notion de complexité.

1.3 Complexité

Afin d’étudier la complexité de certains problèmes, plusieurs classes sont définies : Définition 9. On dit que le problèmeΠest au moins aussi difficile qu’un problèmeΠ0s’il existe un algorithme en temps polynomial pour transformer les entrées du problème Π0 en entrées du problèmeΠde sorte que ce dernier produit la même sortie que le problème d’origine.

Définition 10([11]). La classe P est l’ensemble des problèmes de décision pour lesquels, pour toute instance de tout problème, on peut déterminer par un algorithme polynomial si la réponse est « oui » ou « non ».

Définition 11([11]). La classeNPest l’ensemble des problèmes de décision pour lesquels, pour toute instance de tout problème, on peut vérifier par un algorithme polynomial appli- qué à un « certificat succint » (i.e. un certificat de taille polynomiale par rapport à la taille de l’instance) que la réponse est « oui » si et seulement si l’instance est positive.

Définition 12([11]). Un problème de décision est ditNP-complet s’il est dans la classeNP et s’il est au moins aussi difficile que tout problème de la classeNP.

En 1971, COOK[15] a montré le premier problème NP-complet qui a été le problème SAT. Puis, KARP [49] a montré, par réduction polynomiale (voir définition 9), 21 pro- blèmes NP-complets. Et depuis le nombre de problèmes NP-complets n’a cessé de croitre.

Définition 13([11]). Un problème est ditNP-difficile s’il est au moins aussi difficile qu’un problèmeNP-complet.

La résolution de ces problèmes se fait par des algorithmes plus ou moins « efficaces », selon leur complexité.

1.4 Algorithmes

Un algorithme est un ensemble d’instructions qui prend en entrée une instance des données et permet de produire une ou plusieurs solutions du problème correspondant en sortie. Un seul problème peut avoir plusieurs algorithmes qui le résolvent mais qui se dif- fèrent par leur temps d’exécution. Et l’objectif toujours est de concevoir des algorithmes avec un temps d’exécution aussi court que possible. Notons bien que certains problèmes n’admettent aucun algorithme qui les résout, on dit dans ce cas que le problème (de dé- cision) est non calculable (non décidable). Afin d’analyser le temps d’exécution d’un al- gorithme, on rappelle quelques notations.

(24)

1.4.1 Les notations asymptotiques :O,Ω,ΘetO

Les notations asymptotiques permettent d’évaluer le temps d’éxécution d’un algo- rithme. On désigne par T(n) le temps d’exécution maximal d’un algorithme pour une ins- tance de donnée de taillen, et par f(n) une fonction donnée.

La notationO

Soitc etn0 deux constantes positives. Si pour toutn n0on a T(n)c.f(n), on dit alors que T(n) est enO(f(n)).

La notation

Soitc etn0 deux constantes positives. Si pour toutn n0on a T(n)c.f(n), on dit alors que T(n) est enΩ(f(n)).

La notationΘ

Si une fonction T(n) est à la fois en O(f(n)) et enΩ(f(n)), on dit que T(n) est en Θ(f(n)).

A ces notations popularisés par Donald Knuth, on ajoute la définition deO. La notationO

On dit qu’un temps d’exécution T(n) est enO(f(n)), si T(n) estO(f(n).pol y(n)).

Le temps d’exécution au pire cas, exprimé par un O, permet de classifier les algo- rithmes.

1.4.2 Classification suivant le temps d’exécution

Soit T(n) un temps d’exécution pour une instance de donnée de taille n. On peut dire que l’algorithme est logarithmique, linéaire, polynomial ou exponentiel si T(n) est enO(l og(n)),O(n),O(nd) pour un certain entier positifd, ouO(cn) pour un certain réel c>1 respectivement.

|

l og ar i t hmi que O(l og(n))

| l i neai r e´

O(n)

| pol ynomi al

O(nd)

| exponent i el

O(cn)

T(n)

FIGURE1.10 – Des différents temps d’exécution

Tout au long de ce manuscrit, on va adopter 4 chiffres après la virgule comme une précision pour le réelcdes algorithmes exponentiels enO(cn).

1.4.3 P=NP?

Le problème si P=NP ou P6=NP reste « non résolu » jusqu’à nos jours. Et si P6=NP, qui est très probable, un problème qui est dans NP et non dans P n’admet pas un algo- rithme polynomial pour le résoudre. La non existence des algorithmes polynomiaux pour résoudre les problèmes NP-difficile, n’empêche pas d’avoir plusieurs approches pour les attaquer.

(25)

1.4.4 Méthodes de résolution

Il existe plusieurs méthodes et approches pour attaquer les problèmes NP-difficile :

Les algorithmes d’approximation

Un algorithme approximatif est un algorithme qui permet de trouver une solution ap- prochée du problème mais avec une garantie sur la qualité de la solution fournie par rap- port à la solution optimale.

D’une façon formelle, soit S une solution optimale d’une instance d’un problème de minimisation, soit S une solution fournie par l’algorithme approximatif, on dit que l’algorithme est d’approximation de facteur f >1 si pour toute instance de donnée la solution fournie Sf.S.

Un schéma d’approximation est un algorithme qui prend en arguments une instance du problème et un paramètre²>0, et qui retourne une solution approximative de facteur (1+²).

Si le temps d’exécution de l’algorithme se fait, en plus, en temps polynomial, on dit que l’algorithme est un PTAS « Polynomial-Time Approximation Scheme ».

Les heuristiques

Ces sont des algorithmes qui permettent de trouver rapidement des solutions appro- chées mais en revanche, sans garantie sur la solution fournie. La qualité d’une heuristique est estimée par des méthodes purement expérimentales, au contraire d’un algorithme d’approximation dont la qualité est estimée par son facteur d’approximation.

Les algorithmes paramétrés

Ces sont des algorithmes exacts dont l’analyse de temps d’exécution dépend non pas seulement de la taille d’entrée mais en plus d’un paramètrek.

L’objectif des algorithmes paramétrés d’une part est d’étudier les différents paramètres qui mettent en cause qu’un problème est NP-complet. Et d’autre part de trouver un « bon paramètre » pour attaquer le problème. Et la « cerise sur le gâteau » de trouver un algo- rithme FPT.

Définition 14. Un problème paramétré est ditFPTsi on peut le résoudre en temps f(k).nc tel que n est la taille d’instance du problème, f(k)dépend seulement de k et c ne dépend pas de k.

Afin de citer un algorithme FPT, on définit tout d’abord le problème couverture par sommets.

COUVERTURE PARSOMMETS

entrée: Un graphe G=(V, E) et un entierk≤ |V|.

question: Existe-t-il un ensemble SV de taille au plusktel que pour toute arête uvE au moinsuouv est dans S ?

On donne maintenant l’algorithme FPT qui résout le problème de couverture par

(26)

sommets.

Algorithme 1 :couverture(G,K)

Données :Un graphe G=(V, E) et un entierk≤ |V| Résultat :« oui » ou « non »

Sélectionner un sommetvde degré maximum sid eg(v)1alors

sik≥ |E|alors retourner« oui » sinon

retourner« non » fin

fin

sid eg(v)2alors

retournercouverture(G \ {v},k1) retournercouverture(G \ N[v],k− |N(v)|) fin

Soit S V une couverture par sommets. L’idée de l’algorithme est de brancher sur le sommet v de degré maximum. Si (G) est au plus 1 alors toutes les couvertures par sommets contiennent|E|sommets. Sinon on a deux cas : soitvS, soitvS.

— Le sommetvS :

Dans ce cas afin de couvrir tous les arêtes qui relientv, on a N(v)S d’où l’appel récursifCOUVERTURE(G \ N[v],k− |N(v)|).

— Le sommetvS :

Dans ce cas tous les arêtes qui relientv sont couverts, donc on peut supprimer le sommetvet décrémenterkpar 1. D’où l’appel récursifCOUVERTURE(G \ {v},k1).

On peut simuler l’exécution de cet algorithme par un arbre d’un hauteur borné park. Et chaque noeud non feuille a au plus 2 fils. Alors le nombre maximum des noeuds dans cet arbre est 2k+1, et pour chaque noeud on fait un calcul en temps polynomial en fonction de n. D’où le temps d’exécution de l’algorithme estO(2k.pol y(n)). C’est un algorithme FPT puisque f(k)=2kdans ce cas et qui dépend seulement dek.

Restriction des instances d’entrée

On restreint les instances d’entrée à certaines classes particulières. Dans les algo- rithmes de graphes, par exemple, on restreint l’entrée sur des graphes qui ont des bonnes propriétés algorithmiques comme les graphes cordaux, les graphes planaires, les graphes de permutation, les graphes d’intervalles . . . . Et on exploite dans l’algorithme les diffé- rents propriétés du graphe en espérant d’améliorer le temps d’exécution.

Les méthodes précédentes sont basées sur des algorithmes déterministes. On dit qu’un algorithme est déterministe s’il produit toujours le même résultat pour une même entrée.

On définit maintenant un algorithme non déterministe qu’on appelle un algorithme randomisé ou probabiliste.

Les algorithmes randomisés

Un algorithme randomisé, ou probabiliste, est un algorithme non déterministe qui utilise un générateur de nombres aléatoires dans ses instructions afin de trouver rapi- dement une solution. Cette solution est exacte dans les algorithmes randomisés de type

(27)

« Las Vegas » et approchée dans les algorithmes randomisés de type « Monte Carlo ».

Durant cette thèse on va s’intéreser uniquement aux algorithmes exponentiels exacts.

1.5 Les algorithmes exponentiels exacts

Malgré leurs temps exponentiel, les algorithmes exponentiels exacts sont inévitables vu que P =NP est improbable. Industriellement parlant, les solutions exactes de pro- blèmes NP-difficile sont parfois demandées. C’est qui est bien possible pour les instances d’entrée de taille modérée et même préférable dans certaines situations.

«For every polynomial time algorithm you have, there is an exponential algo- rithm that I would rather run.»

– Alan Perlis – Et du côté théorique, la construction et l’analyse de ces algorithmes permettent de mieux comprendre la complexite de cette classe de problèmes. Ces techniques ont reçu des grands intérêts qui sont couronnés par la publication de l’ouvrage « Exact Exponential Algorithms » par Fedor V. Fomin et Dieter Kratsch [25]. Cet ouvrage de référence a consa- cré un chapitre entier pour chaque paradigme des algorithmes exponentiels exacts :

— Programmation dynamique.

— Brancher et réduire.

— Mesurer pour Conquérir.

— Inclusion-exclusion.

— etc . . .

On va détailler par la suite les deux paradigmes « Brancher et réduire » et « Mesurer pour Conquérir » qui sont utilisés dans cette thèse.

1.5.1 Brancher et réduire

« Brancher et réduire » est une technique principale et fondamentale pour la concep- tion des algorithmes exponentiels exacts. Elle se cache souvent dans les publications sous différents noms comme « branching », « DPLL », « search tree », « backtracking ». . .

Cette popularité est due à sa facilité d’implémentation et l’espace mémoire requis pour son exécution qui est seulement polynomial.

Les algorithmes « brancher et réduire » sont des algorithmes récursifs constitués par deux types d’instructions qu’on appelle « règle de réduction » et « règle de branchement ».

Règle de réduction

Une régle de réduction est utilisée pour simplifier l’instance du problème en une autre, ou pour arrêter l’exécution de l’algorithme, et/ou pour afficher une solution.

Règle de branchement

Une règle de branchement permet de résoudre une instance du problème par des ap- pels récursifs à deux ou plusieurs instances de plus petites tailles. Typiquement les règles de branchement et réduction ne nécessitent qu’un temps polynomial.

(28)

Grâce à cette récursivité, les algorithmes « brancher et réduire » sont faciles à les prou- ver par récurrence. Mais ce n’est pas toujours le cas pour l’analyse du temps d’exécution.

1.5.2 Arbre de recherche et Temps d’exécution

On peut simuler l’exécution d’un algorithme « brancher et réduire » par un arbre de recherche enraciné où la racine correspond à l’instance d’entrée initiale du problème. Et chaque fils d’un noeud correspond à un appel récursif par une règle de branchement de l’instance de ce noeud. Noter bien, qu’on n’assigne pas un fils à un noeud si on applique une régle de réduction à l’instance correspond à ce noeud.

Le temps d’exécution d’un algorithme « brancher et réduire » est calculé à partir du nombre de noeuds de son arbre de recherche. Mais comme le nombre de noeuds d’un arbre de recherche avec l feuilles est au plus 2l1 alors il suffit de borner le nombre maximum de feuilles. Afin de compter ce dernier nombre, on associe une mesureµ(I) à chaque intance I du problème.

Pour chaque règle de branchementbde l’instanceµ(I) qui fait appel àr2 instances I1, I2, . . . , Ir de tailles respectivementµ(I)t1,µ(I)t2, . . . ,µ(I)tr tel queµ(Ii)µ(I)ti

pour toutei {1..r}, on appelleb=(t1,t2, . . . ,tr) un vecteur de branchement de cette règle.

Soit T(s) le nombre maximum de feuilles d’un arbre de recherche associé à une ins- tance du problème I de tailleµ(I)=soù on applique une unique règle de branchementb.

On a :

T(s)T(st1)+T(st2)+. . .+T(str) (1.1) Il suffit de résoudre l’équation :

T(s)=T(st1)+T(st2)+. . .+T(str) (1.2) Comme la solution est de la formeαsalors :

xs=xst1+xst2+. . .+xstr (1.3) On appelle l’unique solution réelle positiveαde l’équation, le facteur de branchement de la règleb=(t1,t2, . . . ,tr) et on le désigne parτ(t1,t2, . . . ,tr). Dans la théorie il faut ré- soudre le polynôme par l’une de méthodes de l’analyse numérique comme la méthode de Newton-Raphson. Mais dans la pratique, ce n’est pas difficile de calculerτ(t1,t2, . . . ,tr) si on utilise un logiciel comme Matlab ou un site comme WolframAlpha.

Dans un algorithme « brancher et réduire » il existe en général plusieurs règles de bran- chement, dans ce cas on prend le pire cas, c’est-à-dire le facteur de branchementαle plus grand. Et on déduit que le temps d’exécution de l’algorithme estOs).

Remarques :

— Siµ(I) =s <n, on peut déduire directement que le temps d’exécution de l’algo- rithme estO(αn).

— Siαest un réel arrondi, alors on peut éliminer le polynôme et déduire que le temps d’exécution estOn).

Références

Documents relatifs

Le problème d’ensemble stable dominant est polynomial sur les graphes sans P 4 , mais si l’on a un graphe avec un P 4 induit, et que l’on sait que le graphe est sans P 4 + sP 1

Par exemple, il est aujourd’hui bien connu qu’un simple algorithme glouton permet de résoudre le problème Domination en temps linéaire sur les arbres [GJ79], alors que ce

Dans cet article, nous proposons des algorithmes d’éclatement proximal pour échantillonner à partir de distributions dont les densités ne sont pas nécessairement lisses

o Refais ces tests pour savoir comment agissent les 5 autres filtres usuels (rouge, bleu, jaune, magenta, cyan).. Pourquoi le monde apparaît-il vert si on le regarde à travers

1) Écrire les deux ensembles en extension..

[1] J.-M. Stockmeyer, Spectral gaps in graphene antidot lattices. Stockmeyer, Resolvent Convergence to Dirac Operators on Planar Domains. Zalczer, Localization for gapped

Nous dirons dans cette Thèse qu’un algorithme est plus efficace qu’un autre si, pour résoudre le même problème et dans les mêmes contraintes d’espace mémoire, son

Implantez chaque algorithme sous langage Python afin de le tester sur des exemples, 3.. Ecrire en langage libre et en langage Python un algorithme du calcul du PGCD