• Aucun résultat trouvé

3.4 Approximation

3.4.4 Inapproximabilité

Non seulement le problème duVoyageur de commerceest difficile à résoudre, mais en plus il est difficile à approximer. On va voir en effet qu’aucun algorithme

polyno-3.4. APPROXIMATION 107

Fig. 5 Results of shrinking blob method over ten runs on each of 20 randomly generated datasets of 20 points compared to exact results from the Concorde TSP solver. Mean tour length indicated bydark circles, standard deviation indicated byerror bars, minimal TSP tour by TSP solver indicated bylighter diamonds

Fig. 6 Construction of TSP tour by shrinking blob includes the transformation between Convex Hull and Concave Hull. aInitial Convex Hull of dataset 16 (shown by points connected by path) is deformed to a concave shape by the shrinking blob. The stepwise construction of the tour is indicated by adding acircledpoint as each

new city is discovered,b–kAs the blob continues to shrink new points are included (circled) further reducing the area of the Concave Hull,lwhen shrinkage stops the set of encompassed points is a tour of the TSP

Computation of the travelling salesman problem

123 Figure3.22 – Simulation du calcul par un blob rétrécissant, consistant à ap-pliquer des insertions minimum à partir de l’enveloppe convexe. Illustration empruntée à [JA14].[Exercice. Montrez que l’heuristique du blob rétrécissant ne peut avoir de croisement.]

mial22(et donc pas seulement l’algorithme glouton !) ne peut approximer à un facteur constant le problème du Voyageur de commerce dans toute sa généralité, sauf si les classes de complexité P et NP sont égales23, problème notablement difficile à 1 M$.

Pour le voir on peut transformer une instance d’un problème réputé difficile en une instance duVoyageur de commercede sorte que la tournée optimale (et même une ap-proximation) donne une solution au problème difficile initial. Cela s’appelle une réduc-tion. On va utiliser un problème de la classe NP-complet. Ce sont des problèmes de NP qui sont réputés difficiles : on ne connaît pas d’algorithme de complexité polynomiale mais on arrive pas à démontrer qu’il n’y en a pas. Donc sauf si P=NP, on ne peut pas trouver un algorithme efficace pour leVoyageur de commercecar sinon il permettrait de résoudre un problème réputé difficile (et même tous ceux qui s’y réduisent).

Le problème difficile (NP-complet) que l’on va considérer est celui du Cycle

Ha-22. C’est-à-dire de complexité en temps et/ou en espace polynomial.

23. P est l’ensemble des problèmes possédant un algorithme déterministe de complexité en temps po-lynomial, alors que NP est celui des problèmes possédant un algorithme non-déterministe de complexité en temps polynomial.

108 CHAPITRE 3. VOYAGEUR DE COMMERCE miltonien, un problème proche du problèmeChemin Hamiltonienrencontré au para-graphe1.5.3, consistant à déterminer si le graphe possède un cycle, dit hamiltonien24, passant une et une seule fois par chacun de ses sommets (cf. figure3.23).

Figure3.23 – Un graphe avec et un graphe sans aucun cycle hamiltonien.

Parenthèse. Cycle Hamiltonienpeut servir à gagner au jeu « Snake » : un serpent doit manger un maximum de pommes dans une grille donné et il grandit à chaque pomme man-gée. Le serpent ne doit pas se manger lui-même, les pommes apparaissant une par une au hasard à chaque pomme mangée (il y a des variantes). En suivant un cycle hamiltonien pré-déterminé de la grille il est possible d’obtenir le score maximum, obtenu lorsque le serpent occupe toute la grille. Voir figure3.24.

Figure3.24 – Le jeu de genre «Snakes».

On va construire une instance du Voyageur de commerce à partir d’un graphe H donné ànsommets. L’ensemble des points est VH =V(H) et la distancedH définie par (voir la figure3.25) :

dH(vi, vj) =

( 1 sivivjE(H) n2 sinon

La paire (VH, dH) est une instance particulière duVoyageur de commerce.

Considérons une α-approximation du Voyageur de commerce, un algorithme noté A, où α est une constante < n. Alors25 A(VH, dH)< n2 si et seulement si H possède un cycle hamiltonien.

En effet, siHpossède un cycle hamiltonien, l’algorithme d’approximation devra ren-voyer une tournée de longueur au plusαnpuisque la longueur optimale est dans ce cas

24. Du nom de celui même qui a introduit le problème duVoyageur de commerce.

25. On rappelle queA(I) est la valeur de la solution pour l’instanceI renvoyée par l’algorithmeA, ici une longueur de tournée, cf. le paragraphe3.4.2.

3.4. APPROXIMATION 109

n2= 81 1

Figure3.25 – Construction d’une instance (VH, dH) pour l’approximation du Voyageur de commerce à partir d’une instanceH du problèmeCycle Ha-miltonienqui est NP-complet. IciH est une grille 3×3. Les arêtes deH sont valuées 1, les autresn2.

n. Cette longueurαn < n2 par hypothèse surα. Et siH ne possède pas de cycle hamilto-nien, la tournée renvoyée parAcontiendra au moins une paire de points visités consécu-tivementvi, vi+1ne correspondant pas à une arête deH, donc avecdH(vi, vi+1) =n2> αn.

Dit autrement, étant donnée une α-approximation A pour le Voyageur de com-merce, on pourrait en déduire l’algorithme suivant pour résoudreCycle Hamiltonien:

AlgorithmeCycleHamiltonien(H)

1. TransformerH en une instance (VH, dH) duVoyageur de commerce. 2. Renvoyer le booléen (A(VH, dH)< n2), oùn=|V(H)|.

On a donc réduit le problème du Cycle Hamiltonien à celui de l’approximation du Voyageur de commerce, c’est-à-dire qu’on peut résoudre Cycle Hamiltonien à l’aide d’uneα-approximation pourVoyageur de commerce, et ce en temps polynomial puisque chacune des deux étapes de l’algorithme CycleHamiltonien prend un temps polynomial. Pour la première, cela prend un tempsO(n2), et pour la deuxième c’est po-lynomial par définition deA. OrCycle Hamiltonienest réputé difficile : il ne possède pas d’algorithme polynomial, sauf si P=NP. Il suit, sous l’hypothèse que P,NP, que l’al-gorithmeAn’est pas une α-approximation : soitA n’est pas polynomial, soit le facteur d’approximation est> α. Le problème duVoyageur de commerceest inapproximable, sauf si P=NP.

Parenthèse. Le problèmeCycle Hamiltonien est difficile même si le graphe est le sous-graphe induit d’une grille, c’est-à-dire obtenu par la suppression de sommets d’une grille (cf.

figure3.26). Cependant il est polynomial si la sous-grille n’a pas de trous, c’est-à-dire que les sommets qui ne sont pas sur le bord de la face extérieure sont tous de degré 4 (cf. [UL97]).

Une réduction qui fait un seul appel à l’algorithme cible (comme l’algorithme A ci-dessus) est appelée Karp-reduction, alors qu’une réduction qui en ferait plusieurs est appelée Turing-reduction.

Les problèmes Cycle Hamiltonienet Chemin Hamiltoniensont aussi difficiles l’un que l’autre, à un temps polynomial près. On peut le voir grâce à un autre type de réduction

110 CHAPITRE 3. VOYAGEUR DE COMMERCE

Figure 3.26 – Sous-graphe induit d’une grille15×25. Possède-t-elle un cycle Hamiltonien ? Un chemin Hamiltonien ?

(Turing-reduction), comme celles-ci :

• Si on sait résoudreCycle Hamiltonien, alors on sait résoudre Chemin Hamilto-nien, à un temps polynomial près. En effet, pour chaque paire de sommets(x, y)deH, notonsHx,y le grapheH plus l’arête xy. Alors H possède un chemin hamiltonien si et seulement si Hx,y possède un cycle hamiltonien pour une certaine paire(x, y).

[Question. Pourquoi ?] Il suffit donc de tester |V(H)2 |

fois une procédure de détection de cycle hamiltonien pour résoudre Chemin Hamiltonien. En fait, on pourrait ne faire que1 + |V(H)2 |− |E(H)|tests, avec un premier test surH, puis dans le cas négatif

|V(H)| 2

− |E(H)|tests supplémentaires pour les pairesx, yqui ne sont pas des arêtes de H.

• Si on sait résoudreChemin Hamiltonien, alors on sait résoudre Cycle Hamilto-nien, à un temps polynomial près. En effet, pour chaque arêtexydeH, notonsHx,y0 le graphe obtenu à partir de H en supprimant l’arêtexy et en ajoutant deux som-mets de degré un,x0 ety0, connectés àxetyrespectivement. AlorsH possède un cycle hamiltonien si et seulement siHx,y0 possède un chemin hamiltonien pour une certaine arêtexy.[Question. Pourquoi ?]Il suffit donc de tester|E(H)|fois une procédure de détection de chemin hamiltonien pour résoudreCycle Hamiltonien.

On pourrait arguer que la réduction précédente produit une instance duVoyageur de commerce qui ne satisfait pas l’inégalité triangulaire. Cela ne prouve en rien, par exemple, qu’il n’y a pas d’algorithme efficace dans le cas du TSP métrique. En fait, il a été démontré dans [Kar15] que le TSP métrique ne peut être approché (en temps polynomial) à un facteur < 1 + 1/122, sauf si les classes P et NP sont confondues, ce qui est < 1%. À titre de comparaison, le meilleur algorithme d’approximation connu pour le TSP métrique a un facteur d’approximation de 1.5 (voir le paragraphe3.4.8), soit 50% de l’optimal. Cela laisse donc une grande marge d’amélioration. Des résultats d’inapproximabilité sont aussi donnés dans [Kar15] pour les variantes TSP asymétrique et TSP graphique mais qui restent en dessous des 2%.

3.4. APPROXIMATION 111