Résoudre l'algorithme Christofides de l'algorithme classique TSP

Algorithme Christofides

Jusqu'à présent, il existe d'innombrables algorithmes heuristiques pour résoudre les problèmes TSP, mais il existe très peu d'algorithmes capables de garantir l'écart entre la solution optimale obtenue par l'algorithme et la solution optimale réelle

Cet article commencera par le pseudocode de l'algorithme Christofides et expliquera son processus etCalcul du ratio approximatif

pseudocode

1. Construire l'arbre couvrant minimum T du graphique

Arbre couvrant : un graphe connecté contenant n-1 arêtes reliant n points dans le graphe G.

Arbre couvrant minimum : arbre couvrant ayant la plus petite longueur totale.
Insérer la description de l'image ici

2. O est un ensemble de sommets avec un nombre impair de degrés sur l'arbre couvrant minimum T, alors il y a un nombre pair de sommets dans O

Degré : le nombre d'arêtes connectées à un sommet. (Les sommets de degrés impairs sont marqués en bleu)
Insérer la description de l'image ici

Pourquoi dit-on qu’il y a un nombre pair de sommets dans O (c’est-à-dire que le nombre de sommets de degrés impairs est pair) ?
(1) Les deux extrémités d’une arête compteront pour un degré, c’est-à-dire qu’une arête a deux degrés, donc le degré total est le double du nombre d’arêtes, ce qui est un nombre pair.

(2) Le degré des sommets du graphique est soit un nombre impair, soit un nombre pair, donc soustraire les degrés de tous les sommets de degré pair du degré total correspond au degré total des sommets de degré impair. les nombres pairs doivent être un nombre pair. La formule est la suivante.

Insérer la description de l'image ici

(3) Puisque le degré de chaque sommet de degré impair est un nombre impair, son nombre doit être un nombre pair.

3. Construisez la correspondance complète minimale M de l'ensemble de points O sur le graphique complet d'origine.

Graphique complet : un graphe complet est un graphe simple non orienté dans lequel chaque paire de sommets différents est reliée par exactement une arête.

La correspondance (ou ensemble d'arêtes indépendantes) signifie que deux arêtes de ce graphe n'ont pas de sommets communs et que chaque sommet est connecté à au plus une arête.

Une correspondance exacte est une correspondance qui inclut tous les sommets du graphe G.

La correspondance exacte minimale est la correspondance exacte avec la plus petite longueur totale des bords de connexion.

La correspondance exacte minimale de l’ensemble O est la suivante :
Insérer la description de l'image ici

4. Fusionnez les ensembles d'arêtes de M et T pour construire un graphe lourd J, qui satisfera que chaque sommet a un degré pair.

Pourquoi chaque sommet est-il de degré pair ?
(1) Les sommets de degré pair sur l'arbre couvrant minimum n'ont pas changé et sont toujours de degré pair.

(2) Les sommets avec des degrés impairs sur l'arbre couvrant minimum sont attachés à leur propre correspondance complète minimale, et chaque point de la correspondance complète minimale ne connecte qu'une seule arête, c'est-à-dire que le degré n'augmente que de 1 et le nombre impair plus 1 devient un nombre pair.

Le schéma de principe du syndicat est le suivant :
Insérer la description de l'image ici

5. J peut former un circuit d'Euler E.

Circuit d'Euler : traverse toutes les arêtes du graphique à partir du point de départ et revient au point de départ, et ne passe chaque arête qu'une seule fois.

Un graphe non orienté a un cycle d'Euler si et seulement si le degré de tous les sommets du graphe est pair et que le graphe est un graphe connexe.

A partir du point 1, son circuit d'Euler est le suivant :
Insérer la description de l'image ici

6. Transformez le graphe obtenu à l'étape précédente en un cycle hamiltonien H : sautez simplement les sommets répétés dans le circuit d'Euler à l'étape précédente (cette étape est aussi appelée raccourci)

Cycle hamiltonien : itinéraire qui part d'un point et passe par tous les autres nœuds une seule fois pour finalement revenir au point de départ.

Sauter certains sommets répétés donne le cycle hamiltonien suivant :
Insérer la description de l'image ici

rapport approximatif

D’après l’explication du pseudocode dans la partie précédente, le processus de résolution peut être simplement exprimé comme suit :

Insérer la description de l'image ici
Supposons que le TSP de l'image originaleL'itinéraire optimal est I, sa longueur est L(I). La route TSP optimale H calculée par l'algorithme de Christofides (le cycle hamiltonien obtenu dans la dernière étape du pseudocode), la longueur de la route est L(H), la longueur totale des arêtes de l'arbre couvrant minimum T lors du calcul est L( T), et le degré impair. La longueur totale de la correspondance complète minimale M de l'ensemble de sommets O est L(M).

(1) La longueur du circuit Euler E : L(E)=L(T)+L(M), la longueur du circuit hamiltonien H : L(H)<L(E) ;

(2) La longueur minimale de l'arbre couvrant L(T)<=L(I), car le chemin optimal est un arbre couvrant sans une arête, et il est certainement impossible d'être plus petit que la longueur minimale de l'arbre couvrant ;

(3) Le chemin le plus court I1 de l'ensemble de sommets de degré impair O peut être composé de deux schémas de correspondance complets, comme le montre la figure ci-dessous, où le bleu est la correspondance complète minimale M, le bord vert représente un autre schéma de correspondance complet. , et la longueur totale des deux correspondances est L (I1), il y a : L(M)<=0,5L(I1).

Insérer la description de l'image ici
(4) Étant donné que l'ensemble de points O ne contient qu'une partie des points du graphe du problème d'origine, sa longueur de ligne TSP optimale ne sera certainement pas plus grande que celle du problème d'origine, c'est-à-dire L(I1)<=L(I ), d'après (3) Alors il y a : L(M)<=0,5L(I1)<=0,5L(I).

Pour résumer, L(H)<L(E)=L(T)+L(M)<=L(I)+0.5L(I)=1.5L(I). La solution optimale obtenue par cet algorithme est le même que Le rapport d'approximation maximum de la solution optimale réelle est de 1,5.

Les références

1. Description de l'algorithme Christofides par l'Encyclopédie Baidu .

2、https://www.dazhuanlan.com/2020/01/21/5e270a6ee6798/ .

3. Explication détaillée du théorème de la poignée de main dans la théorie des graphes .

おすすめ

転載: blog.csdn.net/meiyoushui_/article/details/114949295