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