businessman

C2-ALGO-05 : Théorie des graphes, le voyageur de commerce#

Objectifs pédagogiques#

  • connaître le problème du voyageur de commerce (TSP)

  • appliquer un algorithme glouton sur un graphe exemple du TSP

Le problème du Voyageur de commerce#

Le problème du voyageur de commerce, ou traveling salesman problem (TSP) peut se définir ainsi pour les états-unis :

TSP

Le problème du voyageur de commerce se définit de la façon suivante. Etant donné un ensemble de villes, un voyageur de commerce (ou un commis voyageur) doit trouver le chemin le plus court passant par toutes les villes une seule fois.

En terme de graphes, chaque ville est un sommet du graphe, chaque arête étant un chemin entre deux villes. Le graphe n’est pas forcément totalement connecté, c’est-à-dire que tous les sommets sont reliés à tous les sommets.

Complexité du problème#

Il n’existe aucun algorithme qui permet de résoudre le TSP sans calculer toutes les solutions possibles. C’est donc un problème très difficile dont la complexité est \(\mathcal O (N!)\)

Exemple sur le graphe des états-unis#

Sur la carte des états-unis continentaux (Mainland en anglais), c’est-à-dire les états encadrés à l’est par l’Océan Atlantique, le golfe du Mexique au sud-est, l’Océan Pacifique à l’ouest et le Canada au Nord, il y a 48 états. Les 2 restants sont les Îles Hawaï et l’Alaska.

Données :

  • \(48\) sommets complètement reliés (routes, trains, avions)

  • Nombre de chemins possibles : \(48 ! = 12413915592536072670862289047373375038521486354677760000000000\), soit \(1.2 * 10^{61}\)

Par hypothèse, imaginons qu’un ordinateur soit capable de calculer \(10^9\) soit un milliard de chemins par seconde et que nous mettions tous les ordinateurs de la planète sur le calcul du voyageur de commerce sur les 48 capitales des états américains. On estime le nombre total d’ordinateurs dans le monde entre \(5\) et \(10\) milliards. Prenons la valeur supérieure soit \(10^{10}\) (10 milliards)

  • \(10^9\) milliards de chemins par seconde

  • \(31536000\) secondes par année, donc \(3.1 * 10^{17}\) chemins calculé par ordinateur chaque année

  • \(10^{10}\) ordinateurs dans le monde (en 2023)

  • \(3.1 * 10^{27}\) chemins calculés chaque année par tous les ordinateurs de la planète

  • Tous les chemins seront calculés après \(10^{44}\) années

  • L’âge de l’Univers est estimé à \(1.4 * 10^{10}\) (14 milliards d’années)

Exercice 1 : Le voyageur de commerce (TSP)#

Depuis Lausanne, quel est le meilleur itinéraire qui passe par : Neuchâtel, Bâle, Zürich et Sion ?

exo7

Comment procéder ?#

Voici la matrice d’adjacence :

Lausanne

Nauchâtel

Zürich

Sion

Bâle

Lausanne

0

73

233

96

200

Neuchâtel

73

0

171

169

142

Zürich

233

171

0

261

87

Sion

96

169

261

0

215

Bâle

200

142

87

215

0

Si on calcule tous les itinéraires possibles :

  • Avec 4 candidates comme première étape, 3 comme seconde, 2 comme troisième et une dernière : \(4! = 24\) possibilités

  • Mais tout est à double : donc 12

  • Avec 12 villes : \(\frac{12 !}{2} = 239500800\) : 240 millions !

  • Complexité du TSP : \(\mathcal O (N!)\)

  • Pas d’autre solution

Algorithme glouton : “Greedy algorithms”#

Un algorithme glouton est un algorothme qui choisi :

  1. Appliquer une solution localement valable

  2. Mesurer le résultat

il permet d’approcher une solution à un problème complexe mais pas de trouver la solution optimale

Changer d’approche#

glouton

  • Proposition : prendre le prochain plus court chemin vers une ville non visitée

  • Lausanne-Neuchâtel-Bâle-Zurich-Sion-Lausanne = 659km

  • C’est bien ?

  • Accessoirement ce chemin emprunte les 4 chemins les plus courts possibles entre 2 villes…

tab

Gagnant improbable

  1. Lausanne-Sion

  2. Sion-Bâle

  3. Bâle-Zurich

  4. Zurich-Neuchâtel

  5. Neuchâtel-Lausanne

Est-ce une bonne solution ?

  • 2e meilleur

  • 17km de plus que le meilleur

  • 346 de moins que le pire !

  • En fait, oui c’est pas mal, mais c’était pas évident de le savoir

Exercice 2 : Simulateur TSP online#

Vous pouvez simuler le TSP sur le site suivant