Simplifiez votre flux de travail : Recherchez miniwebtool.
Ajouter
Page d'accueil > Mathématiques > Opérations mathématiques avancées > Solveur du Voyageur de Commerce (TSP)
 

Solveur du Voyageur de Commerce (TSP)

Trouvez le trajet le plus court qui visite chaque ville exactement une fois et revient au point de départ. Programmation dynamique exacte (Held-Karp) pour les petits cas et heuristiques du plus proche voisin + 2-opt pour les plus grands. Accepte des coordonnées ou une matrice de distance et génère un tour SVG animé.

Solveur du Voyageur de Commerce (TSP)
Lignes de coordonnées : A, 10, 20 ou 10 20. Rangées de matrice : 0 10 15 20 — une ligne par rangée, carrée, non négative. Max 40 villes.
Étiquettes séparées par des virgules ou des espaces, une par ligne de matrice. Par défaut A, B, C… si omis.

Embed Solveur du Voyageur de Commerce (TSP) Widget

Solveur du Voyageur de Commerce (TSP)

Le Solveur du Voyageur de Commerce TSP est un calculateur pratique et éducatif pour le classique problème du voyageur de commerce (TSP) : étant donné un ensemble de villes et de distances par paires, trouver le parcours le plus court possible qui visite chaque ville exactement une fois et revient au point de départ. Ce solveur accepte soit des coordonnées planes, soit une matrice de distance personnalisée, sélectionne automatiquement le meilleur algorithme en fonction de la taille du problème et affiche le parcours résultant sous forme de carte SVG animée.

Qu'est-ce que le problème du voyageur de commerce ?

Formellement, étant donné un graphe complet pondéré G = (V, E) avec un ensemble de sommets V = {1, 2, ..., n} et des poids d'arêtes d(i, j), le TSP recherche une permutation π des sommets qui minimise :

minimiser Σi=1n-1 d(π(i), π(i+1)) + d(π(n), π(1))

Le dernier terme ferme la boucle. Le TSP est l'un des problèmes les plus anciens et les plus étudiés en optimisation combinatoire — il est NP-difficile dans le cas général, ce qui signifie qu'aucun algorithme connu ne résout toutes les instances en temps polynomial. Malgré cela, il apparaît dans d'innombrables applications du monde réel : logistique des véhicules, perçage de PCB, séquençage d'ADN, itinéraires de préparation de commandes en entrepôt, programmes d'observation astronomique et même distribution postale rurale.

Comment fonctionne ce solveur

Programmation dynamique de Held–Karp (Exacte)

Pour les petites instances (jusqu'à 12 villes), le solveur calcule le parcours prouvé optimal à l'aide de l'algorithme Held–Karp, publié indépendamment par Richard Bellman et Michael Held & Richard Karp en 1962. La récurrence clé, où C(S, j) est le chemin le plus court du sommet 1 au sommet j visitant exactement le sous-ensemble S :

C(S, j) = mink ∈ S \ {j} [ C(S \ {j}, k) + d(k, j) ]

Le coût du parcours optimal est alors minj [C({1,...,n}, j) + d(j, 1)]. Held–Karp s'exécute en temps O(2n · n²) et en mémoire O(2n · n) — une amélioration énorme par rapport à la force brute n!, mais toujours exponentielle. Au-delà d'environ 20 villes, l'empreinte mémoire devient impraticable.

Plus proche voisin + 2-opt (Heuristique)

Pour les instances plus grandes, le solveur utilise une heuristique en deux étapes. Tout d'abord, le Plus proche voisin construit un parcours rapide en marchant avidement vers la ville non visitée la plus proche à partir de chaque sommet de départ. Le solveur essaie plusieurs sommets de départ et garde le meilleur parcours. Ensuite, la recherche locale 2-opt améliore le parcours en supprimant itérativement deux arêtes et en reconnectant les deux chemins résultants de la seule autre manière possible :

Avant : ... a — b ... c — d ... Après l'échange 2-opt : ... a — c ... b — d ... Si d(a,c) + d(b,d) < d(a,b) + d(c,d) → accepter l'échange, inverser le sous-parcours b..c

Géométriquement, le 2-opt élimine chaque « croisement » dans le parcours : deux segments qui se croisent peuvent toujours être décroisés pour une longueur totale plus courte. L'algorithme s'arrête à un optimum local où aucun échange unique n'aide, appelé parcours 2-optimal. Sur des instances euclidiennes réalistes, le 2-opt trouve généralement des parcours à moins de 2–5 % de l'optimum réel en quelques millisecondes.

Formats d'entrée

Mode Coordonnées (x, y)

Une ville par ligne. Chaque ligne est étiquette, x, y — l'étiquette est facultative. Le solveur calcule automatiquement les distances euclidiennes et visualise les villes à leurs positions réelles.

A, 10, 20 B, 40, 70 C, 75, 30 Paris : 2.35, 48.86 10 20 ← étiqueté auto C1

Mode Matrice de distance

Une matrice carrée n × n de distances non négatives, une rangée par ligne, les valeurs étant séparées par des espaces ou des virgules. Les matrices peuvent être symétriques ou asymétriques — les matrices asymétriques modélisent les rues à sens unique, les prix des vols avec une disponibilité variable et les trajets dépendant du vent. Fournissez éventuellement des étiquettes dans le champ Étiquettes de matrice.

0 10 15 20 10 0 35 25 15 35 0 30 20 25 30 0

Comparaison des algorithmes

Algorithme Complexité temporelle Mémoire Qualité du résultat Taille pratique
Force brute O(n!) O(n) Optimal n ≤ 10
DP de Held–Karp O(2n · n²) O(2n · n) Optimal n ≤ 20
Plus proche voisin O(n²) O(n) ~25 % de moins que l'optimal n ≤ milliers
PPV + 2-opt O(n² · passes) O(n) ~2–5 % de moins que l'optimal n ≤ centaines

Comment utiliser ce solveur

  1. Choisissez un mode de saisie. Coordonnées si vos villes ont des positions (x, y) significatives ; Matrice de distance si vos coûts sont non euclidiens ou asymétriques.
  2. Collez ou tapez vos données. Une ville ou une rangée par ligne. Cliquez sur un bouton d'exemple rapide au-dessus du formulaire pour pré-remplir un exemple valide.
  3. Choisissez l'algorithme. Laissez sur Auto pour le bon réglage par défaut : Held–Karp lorsque l'instance est assez petite pour une optimalité prouvée, PPV + 2-opt sinon. Forcez un algorithme spécifique si vous souhaitez comparer.
  4. Choisissez fermé ou ouvert. Un parcours fermé revient au départ — le TSP traditionnel. Le mode chemin ouvert résout le problème connexe du chemin hamiltonien où le voyageur finit dans une ville différente.
  5. Cliquez sur Résoudre. La page de résultats affiche la longueur totale du parcours, un SVG animé de l'itinéraire (cliquez sur « Rejouer l'animation » pour le revoir), la séquence complète des villes, un détail par arête et la matrice de distance avec les arêtes du parcours mises en évidence.

Exemple pratique

Considérons cinq villes — un rectangle plus un sommet : A (0, 0), B (4, 0), C (4, 3), D (0, 3), E (2, 5). Le solveur renvoie :

Applications dans le monde réel

Foire aux questions

Qu'est-ce que le problème du voyageur de commerce ?

Le problème du voyageur de commerce (TSP) consiste à trouver le parcours le plus court possible qui visite chaque ville exactement une fois et revient à la ville de départ. C'est l'un des problèmes les plus célèbres en optimisation combinatoire et il est NP-difficile dans le cas général, ce qui signifie qu'aucun algorithme connu ne résout toutes les instances en temps polynomial.

Qu'est-ce que l'algorithme de Held–Karp ?

Held–Karp est un algorithme de programmation dynamique qui résout le TSP exactement en temps O(2n · n²) et en mémoire O(2n · n). Il est considérablement plus rapide que la force brute (n factoriel) mais reste exponentiel, donc en pratique il n'est utilisé que pour des instances allant jusqu'à environ 20 villes. Ce solveur utilise Held–Karp lorsqu'il y a 12 villes ou moins.

Qu'est-ce que le 2-opt et pourquoi est-il utilisé ?

Le 2-opt est une heuristique de recherche locale qui supprime à plusieurs reprises deux arêtes du parcours actuel et reconnecte les deux chemins résultants de l'autre manière possible. Lorsque le nouveau parcours est plus court, l'échange est conservé. Le 2-opt s'exécute en temps polynomial par itération et trouve systématiquement des parcours à quelques points de pourcentage de l'optimal, c'est pourquoi c'est l'heuristique classique par excellence pour les instances TSP plus larges.

Quand dois-je utiliser des coordonnées par rapport à une matrice de distance ?

Utilisez les coordonnées lorsque vos villes se situent dans un plan avec des distances en ligne droite — par exemple des points sur une carte, des emplacements d'entrepôts ou des trous de perçage sur un circuit imprimé. Utilisez une matrice de distance lorsque le coût par paire n'est pas euclidien — par exemple les prix des vols, les temps de trajet avec trafic, les distances routières à sens unique ou les coûts asymétriques. Le mode matrice accepte toutes les distances non négatives, même asymétriques.

La solution 2-opt est-elle optimale ?

Non, le 2-opt renvoie un parcours 2-optimal, ce qui signifie qu'aucune paire d'arêtes unique ne peut être échangée pour produire un itinéraire plus court. Il s'agit d'un optimum local et généralement à quelques points de pourcentage de l'optimum global sur des instances bien structurées, mais il n'est pas garanti qu'il soit le meilleur globalement. Pour un parcours prouvé optimal sur de petites instances, choisissez Held–Karp.

Cet outil prend-il en charge les matrices de distance asymétriques ?

Oui. En mode Matrice de distance, vous pouvez saisir n'importe quelle matrice carrée non négative, y compris asymétrique où D[i][j] diffère de D[j][i]. Held–Karp et 2-opt gèrent tous deux correctement les matrices asymétriques. Ceci est utile pour les problèmes de routage réels avec des rues à sens unique, du trafic ou des coûts de vol dépendants du vent.

Lectures complémentaires

Citez ce contenu, cette page ou cet outil comme suit :

"Solveur du Voyageur de Commerce (TSP)" sur https://MiniWebtool.com/fr/solveur-du-voyageur-de-commerce-tsp/ de MiniWebtool, https://MiniWebtool.com/

par l'équipe miniwebtool. Mis à jour : 21 avr. 2026

Vous pouvez également essayer notre Résolveur Mathématique IA GPT pour résoudre vos problèmes mathématiques grâce à des questions-réponses en langage naturel.

Autres outils connexes:

Opérations mathématiques avancées:

Outils en vedette:

Calculatrice de Compatibilité AmoureuseConvertisseur cm en pieds et poucesCalculateur du Jour de l'Année - Quel jour de l'année sommes-nous aujourd'hui ?Calculateur de Signe Solaire, Lunaire et Ascendant 🌞🌙✨recherche-d-adresse-MACconvertisseur ppm en pourcentageGénérateur de Carte de Crédit Aléatoirecalculatrice-des-exposants-haute-précisionConvertisseur de Pieds et Pouces en CentimètresGénérateur d'Action ou Vérité AléatoireGénérateur de Cartes à Jouer AléatoireConvertisseur de Pourcentage en PPMGénérateur de mots aléatoires en anglaisExtracteur d'Images de VidéoSélecteur de Films AléatoireCalculateur d'âgeConvertisseur HEX en CMJNConvertisseur de Temps en DécimalConvertisseur FPSCalculateur de Note FinaleCalculateur de pas en distanceCompteur de lignesConvertisseur de décimales en tempsGénérateur de chaînes aléatoiresCalculateur d'écart-typeCalculatrice d'escalierCalculateur d'intérêts simplesSélecteur de Nom AléatoireCalculatrice du Nombre d'ÂmeRecherche d'Identifiant InstagramGénérateur de mots mêlésCalculatrice de MédianeConvertisseur de taille de fichierGénérateur de Code MorseConvertisseur de Fraction en Pourcentagecalculatrice-de-hba1cGénérateur de points à relierCalculateur de nombres angéliquesGénérateur de patron de cône à platStatistiques de Chaîne YouTubeVérificateur de Nom d’Utilisateur sur les Réseaux SociauxRandomiseur de listeConvertisseur de chiffres romains👙 Calculateur de Taille de Soutien-GorgeGénérateur d'heure aléatoireCalculateur de percentile de taille📅 Calculatrice de DateCalculatrice de numéro de nomGénérateur de numéros de loterieLanceur de DésGénérateur de lettres aléatoiresGénérateur aléatoire d'animauxParaphraseur IACalculatrice de Circonférence d'EllipseCalculateur de BarbecueConvertisseur de Tailles de VêtementsCalculatrice HexadécimaleTrier les NombresGénérateur de cartes de bingo🔍 Vérificateur de PlagiatConvertisseur d'AngleConvertisseur d'adresse IP en binaireBoule Magique 8Suppresseur de Caractères InvisiblesCalculateur de Coût de CarburantGénérateur de Couleurs AléatoiresListe des Années BissextilesLanceur de PièceCalculatrice de DuréeGénérateur de Coordonnées AléatoiresGénérateur de personnage RPG aléatoireCalculateur de TangenteFormateur de TexteCalculateur de Numéro MaîtreCalculatrice de Comparaison de FractionsCalculateur de Conversion d'Échelle de Maquette🖱️ Compteur de ClicsGénérateur de repas aléatoireTrier les lignes par ordre alphabétiqueCalculatrice de test du khi-deuxCalculatrice BinaireAnalyseur de compatibilité zodiacale avancéSupprimer les sauts de ligneCalculateur de Retour de SaturneCalculateur de temps de refroidissement de bièreGénérateur d'adresse MACRecherche d'identifiant FacebookGénérateur de Nonogrammes (Picross)Calculatrice de Rectangle d'OrCréateur de mots croisésCalculatrice du théorème de PythagoreCalculateur d'ArctangenteGénérateur de tableau de tournoi aléatoireGénérateur de Super-pouvoir AléatoireSupprimer des accents du texteCalculatrice de pourcentage d'erreurCalculatrice de CombinaisonConversion de kg en lbsConvertisseur de Livres en KilogrammesFusionner des vidéosConvertisseur de Notation Scientifique en DécimalGénérateur d'Anniversaire AléatoireGénérateur de Date AléatoireGénérateur de LabyrinthesCalculatrice de Formule QuadratiqueCalculateur de Déficit CaloriqueCalculateur de morphologieCalculateur de Probabilité de DésCalculatrice du Ratio par Rapport au PourcentageGénérateur d'adresses fictives aléatoiresDiviseur AudioPivoter la vidéoCalculateur de Décibels (dB)Convertisseur Binaire en HexadécimalCalculateur de Percentile de Croissance du BébéCalculatrice du coefficient de variationDiviseur d'image📅 Calculateur de Différence entre Dates💧 Calculateur de Point de RoséeCalculateur de Salaire aux ToilettesCalculatrice d'Intervalle de ConfianceCalculatrice CAGRGénérateur de Fréquence Sonore AléatoireSélecteur AléatoireValidateur XMLCalculatrice RectangulaireConvertisseur Octal en HexadécimalCalculateur de Chute LibreCompteur de Syllabesconvertisseur de mot à numéro de téléphoneConvertisseur HTML en texteCréateur de Boîte à MoustachesHumaniseur de Texte IACalculateur de Taille de PneusConvertisseur de pouces en cmConvertisseur Décimal en BinaireCalculateur de rythme de natationGrapheur de Courbes ParamétriquesCalculateur d'autonomie de batterieCalculateur de carrésCalculateur de Temps de LectureCalculatrice d'Écart-Type RelatifCalculatrice de baseCalculatrice de ProportionCalculatrice du Nombre d'ExpressionGénérateur d'IMEI AléatoireCalculateur d’Aire de Polygone IrrégulierCalculateur de sous-réseau IPCalculateur de Taille d'Impression et Résolution (DPI/PPI)Calculatrice de la diminution en pourcentageCalculatrice de la Moyenne GéométriqueCréateur d'HistogrammesGénérateur de Distribution GaussienneTexte InverséCalculateur d’Équation de DroiteGénérateur de clé WPA en ligneCalculateur de filCalculateur de Point d’ÉbullitionConvertisseur Décimal en BCDGénérateur d'anagrammesGénérateur de mots mélangésSimulateur de Portes LogiquesSupprimer les espacesCalculateur de SinusCalculateur nutritionnel de recettesCalculatrice de FacteursCalculatrice du nombre de chemin de vieCalculatrice de QuartilesCalculateur de DensitéCalculateur de Jours OuvrablesCalculateur de proportions de recettesCalculateur de Taille d'EffetCalculatrice du Taux de Croissance en PourcentageCalculateur de Revenus TwitchCalculatrice ModuloConvertisseur CM en PoucesConvertisseur d'adresse IP en hexadécimal🎰 Calculateur de Pity GachaCalculatrice d'IntégraleGraphique du Système d'InéquationsCalculateur de pente et de niveauCalculer les jours entre deux datesGénérateur d’acronymesGénérateur de Groupes AléatoiresCalculateur de Notes🎲 Calculateur de Probabilité de LootConvertisseur de vitesseRecadreur VidéoCalculateur d'hydratation de pâteCalculateur d'intervalle de confiance pour proportionDétecteur de contenu IAGénérateur Pierre Papier CiseauxLooper MP3Randomiser les Lignes de TexteAléatoire des Noms en LigneCalculateur de Revenus TikTokCalculatrice de d de CohenCalculatrice OctaleCréateur de Nuage de PointsMinuteur de Postures de YogaCalculateur de SWOLF de NatationPrédicteur de temps de courseCalculateur de Puissance de Frappe de BoxeCalculateur de Points de RugbyCalculateur de Run Rate de CricketCalculateur de xG (Buts Attendus) au FootballCompteur de Score de TennisCalculateur du Score de Wells (TVP/EP)Calculateur de l'Échelle de Coma de GlasgowCalculateur de Score APGARCalculateur de FFMICalculateur de Course de 12 Minutes de CooperCalculateur du Test de Marche d'un Mile (Rockport)Calculateur de Masse Maigre à ForceCalculateur de Ratio Glucides-InsulineCalculateur de Facteur de Sensibilité à l'InsulineConvertisseur de Calendrier HébraïqueConvertisseur de calendrier hégirienConvertisseur de Calendrier LunaireCalculateur d’Âge dans les CulturesCalculateur de il y a combien de tempsCalculateur Combien de Temps AvantGénérateur de schémas de datesCalculateur de Date MédianeAjouter des Jours Ouvrables à une DateAnalyseur de Fréquence des MotsAnalyseur de variance de longueur de phrasesÉditeur de Lisibilité Style HemingwayConvertisseur de Prononciation IPAOutil de Chiffre de VigenèreOutil de Chiffre AtbashEncodeur et décodeur ROT13Visionneuse et Suppresseur de Données EXIFTraducteur Pig LatinGénérateur de BackronymesVérificateur de pangrammesVérificateur de lipogrammeTraceur d’image en SVGConvertisseur d'Image en Art ASCIIGénérateur de schéma JSONPlayground TypeScriptCompilateur Less vers CSSCompilateur SCSS en CSSConvertisseur SVG en React/JSXGénérateur de chaînes de requêteAnalyseur URLValidateur et Décodeur UUIDRéférence des codes de statut HTTPGénérateur de Commandes cURLGénérateur de triangle de SierpinskiTraceur de surface 3DTraceur d'équations polairesGénérateur d'Ensemble de JuliaExplorateur de l'Ensemble de MandelbrotGénérateur de fractales L-SystemGénérateur de triangulation de DelaunayGénérateur de diagramme de VoronoiGénérateur de SpirographeGénérateur de PavagesCalculateur de Capabilité de Processus Six SigmaGénérateur de Diagrammes de ParetoCalculateur de NPS (Net Promoter Score)Calculateur de Rétention par CohorteCalculateur de Taux d'AttritionCalculateur de Coût d'Acquisition Client (CAC)Calculateur de Valeur Vie Client (CLV)Calculateur de taux de conversionCalculateur de Taille d'Échantillon pour Test A/BCalculateur de Signification de Test A/BCalculateur d'Équation des LentillesCalculateur de Champ Magnétique d'un FilCalculateur de Champ ÉlectriqueCalculateur de la Loi de CoulombCalculateur de la loi de SnellCalculateur de Moment d'InertieCalculateur de vitesse angulaireCalculateur de Force CentripèteCalculateur de Période d'un PenduleCalculateur de Constante de RessortCalculateur d’Effet DopplerCalculateur du Ratio de SortinoCalculateur du Ratio de TreynorCalculateur de Bêta d'ActionCalculateur de Titres du Trésor Protégés Contre l'Inflation (TIPS)Calculateur de Recalcul HypothécaireCalculateur de Taux à TermeCalculateur de Duration Obligataire (Macaulay et Modifiée)Calculateur de Convexité des ObligationsCalculateur de Rente Indexée FixeCalculateur de Rente VariableCalculateur de Prêt Hypothécaire InverséCalculateur de Versement de RenteSimulateur de Boulier SorobanMultiplication Paysanne RusseCalculatrice de Trucs de Mathématiques VédiquesCalculatrice de Multiplication ÉgyptienneCalculateur de Mathématiques en Chiffres RomainsEntraîneur de Calcul MentalQuiz des Tables de MultiplicationVisualiseur de Retenue et d'EmpruntGénérateur de Décomposition NumériqueSolveur de Problèmes de PiècesCalculateur du Triangle Distance-Vitesse-TempsRésolveur de Problèmes de Taux de TravailRésolveur de Problèmes de MélangeSolveur de Problèmes d’ÂgeSolveur de Problèmes de Rencontre de TrainsCalculateur d’HydratationCalculateur d'Allure en CaloriesCalculateur de Posologie MédicamenteuseCalculateur de Calories de l'AlcoolCalculateur de Recomposition CorporelleGénérateur de Sujets de Débat AléatoiresGénérateur de Noms Aléatoires de Chats et ChiensGénérateur de Versets Bibliques AléatoiresGénérateur de Problèmes de Mathématiques AléatoiresGénérateur de Paragraphes AléatoiresGénérateur de Phrases Aléatoires en AnglaisCalculateur de Gravier, Sable et Terre VégétaleCalculateur de Poids d'AcierCalculateur de Couple de Serrage de BoulonCalculateur de Débit en TuyauterieCalculateur de Charge de PoutreConvertisseur Dollar OrCalculateur de Probabilité d'OptionsCalculateur de Fractionnement d'ActionsCalculateur ESPPCalculateur de Pénalité de Retard sur FactureCalculateur de Taux Horaire pour FreelancesCalculateur de Location vs AchatRépartiteur de Pourboire AvancéGénérateur de Liste de BagagesCalculateur de Décalage HoraireCalculateur de Budget de VoyageCalculateur de Distance de VolCalculateur de Perte de ChaleurCalculateur de Coût de Production ÉlectriqueCalculateur de Consommation d'EauCalculateur de Coût Énergétique des AppareilsCalculateur d'Audit Énergétique DomestiqueCalculateur de ROI SolaireCalculateur de Panneaux SolairesCalculateur de Compost (Rapport C:N)Calculateur de Fertilisant pour PelouseCalculateur de Dates de GelCalculateur de Terre pour Bac Potager SurélevéCalculateur d’Engrais NPKCalculateur de Taux de Germination des GrainesCalculateur de Bitrate VidéoTranspositeur de Tonalité MusicaleCompteur de BPM par TapotementEstimateur de Taille de Fichier PhotoCalculateur de Mégapixels vers Taille d'ImpressionCalculateur de Facteur de RecadrageCalculateur du Triangle d'ExpositionCalculateur de Capacité de Remorquage du VéhiculeCalculateur de Leasing AutomobileCalculateur 0–60 et Quart de MileCalculateur de Temps de Charge VECalculateur d’Autonomie VECalculateur de Distance 3DCalculateur de ToreCalculateur de Tronc de CôneCalculateur de Polygone RégulierIdentificateur de Section ConiqueCalculateur d'HyperboleCalculateur de Division LongueCompteur de Caractères Twitter/XSélecteur de commentaires YouTubeExtracteur de tags YouTubeTéléchargeur de miniatures YouTubeEstimateur de revenus YouTube