Il me semble étrange que le TSP nie la possibilité de villes répétées. Le but de ce vendeur itinérant est d'aller le plus vite possible et de visiter toutes les villes, non? Que se passe-t-il s'il est plus rapide de traverser une ville dans laquelle vous êtes déjà allé?
terminology
traveling-salesman
danmcardle
la source
la source
Réponses:
Peu importe comment vous le définissez, c'est juste une façon de modéliser un problème réel. Dans TSP, vous n'avez qu'un ensemble de villes et le coût du voyage entre chaque paire d'entre elles. Cela n'exclut pas la possibilité que, dans la situation réelle que vous modélisez, la meilleure route entre B et C puisse passer par A. Si c'était le cas alors, oui, la route modélisée comme ABCA dans TSP peut très bien implique vraiment de traverser A un temps supplémentaire sur le chemin de B à C, mais de tels détails sont abstraits dans le modèle TSP.
la source
Je conviens que la contrainte semble étrange et, pour de nombreuses situations pratiques, elle n'est pas pertinente. Comme l'a souligné David dans sa réponse, si vous pouvez modifier vous-même la modélisation, cela n'a pas vraiment d'importance. Mais étant donné une instance non modifiable, cela fera une différence, car le TSP général avec cette contrainte n'est pas approximable dans un facteur constant, tandis que le relâchement de la contrainte de visite unique semble le rendre approximable dans le facteur 2 (même s'il n'est pas métrique ). Sauf si je manque quelque chose, par des arguments standard, vous pouvez d'abord construire un arbre couvrant minimum (de coût disons ), puis visiter cet arbre avec la technique de tournée euler. De toute évidence, le coût total de votre visite est alors de 2 c (deux fois chaque bord). Par contradiction, s'il existait une tournée de coût inférieur àc 2 c , alors cette tournée pourrait être utilisée pour déduire un MST de coût inférieur à c , ce qui est une contradiction.c c
la source
Étant donné toute tournée avec répétitions, vous pouvez proposer une visite plus courte qui ne répète aucune ville. Par exemple, considérons une visite guidée de la forme qui visite A deux fois. Vous pouvez prendre un raccourci lors de votre deuxième visite à A , allant directement de X à Y : ⋯ → A → ⋯ → X → Y → ⋯ .
Il est peut - être que le plus court chemin de à Y passe par A , mais qui est déjà encapsulé dans le bord X → Y . Vous pouvez penser à une mention A non comme « en passant par » A mais plutôt « arrêter à » A . Vous devez seulement vous arrêter à A une fois, bien que vous puissiez passer par A plusieurs fois.X Oui UNE X→ Y UNE UNE UNE UNE UNE
Les algorithmes réels pour TSP pourraient avoir cette étape de "prise de raccourcis", par exemple l'algorithme de Christofides. Voir par exemple cette description ou ce compte plus court .
la source
Il n'y a pas de réponse générale à cela, sauf que "les gens ne sont pas stupides". Ils appliqueront la solution appropriée à leur situation. Les gens se préoccupent rarement du problème du vendeur itinérant lui-même. Eveb dans le cas classique, un vendeur du monde réel serait plus préoccupé par le problème de maximiser ses revenus sur une période de temps donnée dans un ensemble spécifique de contraintes. Dans ce cas du problème, la distance totale parcourue n'est que l'un des nombreux facteurs différents permettant de trouver la réponse optimale.
la source
Si les répétitions sont autorisées, alors vous allez simplement examiner toutes les connexions X -> A -> Y, et si cela est plus court que X -> Y, vous remplacez la longueur de X -> Y par la longueur de X -> A -> Y, et résoudre le problème résultant avec l'algorithme standard. Je pense que vous devez répéter le processus de remplacement jusqu'à ce qu'il n'y ait aucun changement, car si vous trouvez une connexion plus courte X -> Y, cela pourrait signifier que maintenant X -> Y -> Z est plus court que X -> Y.
Gardez une trace des connexions que vous avez modifiées, passez par les connexions dans la solution, et si la solution contient X -> Y, vous la remplacez par X -> A -> Y.
PS. Je pense que mon idée est excellente, mais je ne suis pas très sûr pour le moment qu'elle soit correcte. Parce que X -> A -> Y au lieu de X -> Y n'est pas seulement un raccourci, il couvre également la ville A.
la source