|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ce tableau définit un graphe, qu'il s'agite de colorier, c'est à dire attribuer à chaque sommet une couleur de façon que deux sommets liés par une arête (c'est à dire dans ntre cas deux itinéraires incompatibles) soient de couleur différente. Nous utiliserons pour cela une heuristique gloutonne, qui consiste à colorier avec une couleur tant qu'on peut avant d'utiliser une autre couleur. On obtient dans ce cas une coloration en 4 couleurs.
étape |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
En revenant maintenant au problème, il est possible d'affiner notre solution en la complétant sans la remettre en question. Noter les itinéraires qui peuvent être dans plusieurs classes: ils pourront circuler pendant plusieurs cycles de nos feux de trafic. Ainsi BA, DC et ED peuvent circuler tout le temps, EA est compatible avec les classes 3 et 4 et AD est compatible avec la classe 3. Est ce que la coloration trouvée est minimale? On peut essayer de répondre à cette question en remarquant qu'une k-clique (graphe à k sommets 2 à 2 connectés) nécessite k couleurs. Donc si notre graphe contient une 4-clique, il faut 4 couleurs pour le colorier et notre solution est minimale.
Explicitation de l'algorithme:
Puis on va chercher à expliciter, en choisissant une représentation de nos données, c'est à dire en définissant un type de données abstrait, la ligne 3, puis les lignes 2 et 5 de notre algorithme.
On désire organiser un tournoi entre 6 équipess de football: Castelnau, Jacou, Lunel, Montpellier, Nimes, Pézenas. Chaque équipe ne peut faire qu'un match par semaine, et 2 équipes ont déjà joué des matches: Castelnau contre Montpellier et Pézenas, et Montpellier contre Lunel et Nimes.
En s'inspirant de l'exemple du carrefour, trouver un algorithme pour résoudre ce problème. Le tournoi doit durer le moins de semaines possible. On commencera par abstraire le problème sous forme d'un graphe où chaque sommet représente un match à jouer: que doivent représenter les arêtes pour que le problème se ramène à une coloration de graphe? Examiner le cas de tournoi symétrique ou non.
Les algorithmes ne sont pas faits que pour les ordinateurs, mais peuvent être appliqués à des instruments aussi étranges que la balance Roberval, par exemple.
On dispose d'une balance Roberval et d'un tas de N=1000 pièces de monnaie, dont une est fausse et pèse plus lourd que les autres. Il est demandé de la trouver en faisant le moins d'opérations possibles. Donner une estimation du nombre d'opérations nécessaires en fonction de la taille N du tas. Une balance Roberval possède 2 plateaux, et indique si ce que l'on a mis sur les plateaux a le même poids ou non. Comment adapter l'algorithme si l'on ne sait pas si la fausse pièce est plus lourde ou plus légère?