04.01.2015 Views

Élément 5 - Université de Mons

Élément 5 - Université de Mons

Élément 5 - Université de Mons

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

dossier : Les systèmes complexes / L’ordinateur à la rescousse<br />

Par contre, calculer une solution (plutôt que d’en<br />

vérifier une) s’avère être une tâche bien plus<br />

ardue. Montrons-le d’abord sur le puzzle <strong>de</strong> 4<br />

pièces. Un algorithme naïf consiste à essayer<br />

tous les placements possibles sur la grille <strong>de</strong>s<br />

différentes pièces. Afin d’évaluer la complexité <strong>de</strong><br />

cet algorithme, comptons le nombre <strong>de</strong> possibilités.<br />

Nous avons 4 façons <strong>de</strong> placer la première<br />

pièce choisie sur la grille vi<strong>de</strong>. Il reste ensuite 3<br />

façons pour placer la secon<strong>de</strong> pièce, 2 pour la<br />

troisième pièce, et une seule pour la <strong>de</strong>rnière<br />

pièce. A priori, nous avons donc 4×3×2×1 =<br />

24 (noté 4!) possibilités pour remplir la grille.<br />

Mais attention, ce calcul ne tient pas compte<br />

<strong>de</strong>s différentes rotations <strong>de</strong>s pièces. En effet, une<br />

fois son emplacement choisi, une pièce peut y<br />

être placée <strong>de</strong> 4 façons différentes. Le nombre<br />

total <strong>de</strong> placements est donc <strong>de</strong> 24×4 4 = 6144.<br />

Dans le pire <strong>de</strong>s cas, l’algorithme <strong>de</strong>vra tous les<br />

essayer avant <strong>de</strong> trouver une solution au puzzle<br />

(obtenue par le <strong>de</strong>rnier placement testé). Enfin,<br />

comme on l’a vu auparavant, vérifier qu’un placement<br />

est correct nécessite 4 comparaisons <strong>de</strong><br />

couleurs <strong>de</strong> triangles. Ainsi dans la pire situation,<br />

l’algorithme naïf proposé effectue 6144×4 =<br />

24576 étapes <strong>de</strong> calcul.<br />

A ce jour, aucun algorithme polynomial permettant<br />

<strong>de</strong> résoudre le problème <strong>de</strong> puzzle n’est<br />

connu. L’algorithme naïf présenté pour 4 pièces<br />

peut être généralisé au cas <strong>de</strong> N = n 2 pièces,<br />

le nombre d’étapes <strong>de</strong> calcul étant alors égal à<br />

N!×4 N ×2n×(n-1) dans le pire <strong>de</strong>s cas. Il s’agit<br />

d’un algorithme <strong>de</strong> complexité exponentielle.<br />

Pour mieux comprendre son comportement<br />

catastrophique, quelques exemples <strong>de</strong> temps<br />

d’exécution sont donnés sur la Figure 5 (avec<br />

d’autres temps d’exécution donnés à titre <strong>de</strong><br />

comparaison). Des algorithmes plus subtils ont<br />

été élaborés pour résoudre le problème <strong>de</strong> puzzle,<br />

mais aucun n’est polynomial. Ce problème est<br />

connu pour être parmi « les plus difficiles » <strong>de</strong> la<br />

classe NP ; on dit qu’il est NP-complet. Trouver un<br />

algorithme polynomial semble assez improbable<br />

au vu <strong>de</strong> la question .<br />

Envisageons maintenant une variante du problème<br />

<strong>de</strong> puzzle, appelée problème <strong>de</strong> pavage<br />

du plan. Ce problème diffère du problème <strong>de</strong><br />

puzzle en trois points : le plan (infini) tout entier<br />

doit être recouvert plutôt qu’une grille (finie) ;<br />

on dispose d’un nombre fini <strong>de</strong> pièces, et d’une<br />

infinité <strong>de</strong> copies d’entre elles ; les pièces ne<br />

peuvent pas subir <strong>de</strong> rotation. Résoudre le problème<br />

<strong>de</strong> pavage du plan consiste à déterminer<br />

Fig. 5 : Exemples <strong>de</strong> temps d’exécution<br />

Algorithme naïf pour le puzzle 2 × 2<br />

Tri par insertion <strong>de</strong> 1000 cartes<br />

Tri gourmand <strong>de</strong> 20 cartes<br />

Tri par insertion <strong>de</strong> 100000 cartes<br />

Algorithme naïf pour le puzzle 3 × 3<br />

Une journée (24 heures)<br />

Tri gourmand <strong>de</strong> 50 cartes<br />

Temps écoulé <strong>de</strong>puis la disparition <strong>de</strong>s dinosaures<br />

Algorithme naïf pour le puzzle 4 × 4<br />

Âge <strong>de</strong> l’univers<br />

Tri gourmand <strong>de</strong> 100 cartes<br />

Algorithme naïf pour le puzzle 5 × 5<br />

si, étant donné un nombre fini <strong>de</strong> pièces, il est<br />

possible ou non <strong>de</strong> recouvrir le plan tout entier.<br />

Un exemple <strong>de</strong> pièces avec lesquelles le pavage<br />

est possible est donné sur la Figure 6, où seulement<br />

une portion finie du plan est pavée (mais<br />

cette portion va pouvoir s’étendre à l’infini).<br />

Un autre exemple pour lequel le pavage est<br />

impossible est donné sur la Figure 7.<br />

Ce problème est en fait bien plus compliqué<br />

que le problème <strong>de</strong> puzzle. En effet, on peut<br />

démontrer mathématiquement qu’il n’existe<br />

aucun algorithme qui étant donné un ensemble<br />

<strong>de</strong> pièces, soit capable <strong>de</strong> résoudre le problème<br />

<strong>de</strong> pavage du plan, ce quels que soient le temps et<br />

les ressources disponibles. Un tel problème est dit<br />

indécidable. Le fait qu’il n’existe pas d’algorithme<br />

n’est pas lié à une insuffisance technologique ou<br />

à un manque <strong>de</strong> connaissance actuelle. Cette<br />

limite constitue une barrière théorique « infranchissable<br />

» Ce type <strong>de</strong> résultat peut paraître<br />

surprenant, mais peut être rendu formel et tout à<br />

fait rigoureux grâce à la théorie <strong>de</strong> la calculabilité.<br />

Cela fait beaucoup <strong>de</strong> mauvaises nouvelles !<br />

Ce n’est pas tout à fait vrai ... Revenons aux<br />

problèmes difficiles mais décidables, comme le<br />

problème <strong>de</strong> puzzle. Ceux-ci sont très nombreux<br />

et possè<strong>de</strong>nt quantité d’applications concrètes.<br />

C’est le cas <strong>de</strong> beaucoup <strong>de</strong> problèmes d’optimisation,<br />

où l’on s’intéresse à rechercher une<br />

solution optimale parmi toutes les solutions<br />

possibles. Par exemple, étant donné n villes et<br />

les distances entre celles-ci, le problème du<br />

voyageur <strong>de</strong> commerce consiste à trouver un<br />

Fig. 6 : Pavage possible<br />

Fig. 7 : Pavage impossible<br />

0, 00002 sec.<br />

0, 001 sec.<br />

0, 001 sec.<br />

10 sec.<br />

(1, 1).10 3 sec.<br />

(8, 6).10 4 sec.<br />

(1, 1).10 6 sec.<br />

(8, 5).10 13 sec.<br />

(2, 1).10 15 sec.<br />

(1, 9).10 16 sec.<br />

(1, 2).10 21 sec.<br />

(6, 9).10 32 sec.<br />

34 élément

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!