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 ?Convertisseur de Pieds et Pouces en Centimètresconvertisseur ppm en pourcentageConvertisseur de Pourcentage en PPMrecherche-d-adresse-MACExtracteur d'Images de VidéoGénérateur de Carte de Crédit AléatoireGénérateur d'Action ou Vérité AléatoireGénérateur de Couleurs AléatoiresCompteur de lignesCalculateur de Signe Solaire, Lunaire et Ascendant 🌞🌙✨Convertisseur de Temps en DécimalGénérateur de mots aléatoires en anglaisGénérateur de chaînes aléatoiresSélecteur de Nom AléatoireCalculatrice de MédianeCalculatrice de DuréeCalculatrice de SommeConvertisseur de décimales en tempsSélecteur de Films AléatoireCalculateur d'âgeParaphraseur IACalculateur de pas en distancecalculatrice-des-exposants-haute-précisionCalculatrice HexadécimaleGénérateur de numéros de loterieConvertisseur d'adresse IP en binaireGénérateur de Super-pouvoir AléatoireCalculatrice du Nombre d'ÂmeCalculatrice d'escalierSupprimer des accents du texteTrier les NombresRandomiseur de listeCalculateur de nombres angéliquesTrier les lignes par ordre alphabétiqueGénérateur de Cartes à Jouer AléatoireGénérateur de points à relier📅 Calculateur de Différence entre DatesConvertisseur de taille de fichierGénérateur de cartes de bingoCalculateur d'écart-typeConvertisseur de chiffres romainsGénérateur de lettres aléatoiresGénérateur de mots mêlésLanceur de PièceConvertisseur FPSSuppresseur de Caractères Invisibles📅 Calculatrice de DateCalculateur de Conversion d'Échelle de MaquetteConvertisseur de Livres en KilogrammesCalculatrice de test du khi-deuxCalculatrice OctaleCalculatrice de nombre de chiffresConvertisseur HEX en CMJNRecherche d'identifiant FacebookFormateur de TexteDiviseur AudioCalculatrice d'Écart-Type RelatifGénérateur aléatoire d'animauxCalculatrice de Formule QuadratiqueCalculateur de Déficit CaloriqueGénérateur de tableau de tournoi aléatoireCalculatrice d'Intervalle de ConfianceCalculatrice ModuloGénérateur de patron de cône à platListe des Années BissextilesCalculateur de pente et de niveauGénérateur de Pays AléatoireCalculateur de percentile de tailleGénérateur de LabyrinthesRecherche d'Identifiant InstagramGénérateur d'adresse MACGénérateur de Code MorseCalculateur de VitesseCalculateur de Numéro MaîtreGénérateur d'Anniversaire AléatoireSupprimer les espacesConvertisseur de Fraction en PourcentageFusionner des vidéosGénérateur de repas aléatoireGénérateur d'heure aléatoireGénérateur d'objet aléatoireGénérateur d'IMEI Aléatoirecalculatrice-de-hba1cCalculatrice CAGRGénérateur d'adresses fictives aléatoiresCréateur de Nuage de Points👙 Calculateur de Taille de Soutien-GorgeSupprimer les sauts de ligneCalculateur d'ArctangenteCalculateur de TangenteCalculateur de courbureCalculatrice du Pourcentage d'AugmentationCalculatrice de Rectangle d'OrConvertisseur Décimal en BinaireCalculatrice de numérologieCalculatrice du Nombre d'Expression🔍 Vérificateur de PlagiatVérificateur de Chemin HamiltonienSolveur du Voyageur de Commerce (TSP)Solveur de Programmation LinéaireCalculateur d'Inclusion-ExclusionSolveur de Relations de RécurrenceCalculateur de Matrice d'AdjacenceCalculateur de Tri TopologiqueCalculateur de Coloration de GraphesSimulateur de Portes LogiquesSolveur de Tableau de Karnaugh (K-Map)Simplificateur d'Algèbre de BooleCalculateur de Fonction de PartitionCalculateur de Racine NumériqueVérificateur de Nombre de FibonacciCalculateur de Fractions ÉgyptiennesCalculateur de Fonction de MöbiusVérificateur de la Conjecture de GoldbachVérificateur de Nombre Premier de MersenneChercheur de Nombres Premiers JumeauxVérificateur de Nombres AmiablesVérificateur de Nombre ParfaitCalculateur d'Exponentiation ModulaireCalculateur de Permutations avec RépétitionCalculateur de Taille d'EffetCalculateur de Risque RelatifCalculateur de Rapport des CotesCalculateur de Tableau de ContingenceCalculateur du Test Exact de FisherCalculateur de Corrélation de Rang de SpearmanCalculateur de Distribution BêtaCalculateur de Distribution de WeibullCalculateur de Distribution ExponentielleCalculateur de Distribution GéométriqueCalculateur de Distribution Binomiale NégativeCalculateur de Distribution HypergéométriqueCalculateur de Test F et Distribution FCalculateur du Théorème de BayesCalculateur de Polynôme CaractéristiqueCalculateur de Puissance de MatriceCalculateur de Décomposition de CholeskyCalculateur de Décomposition QRCalculateur de Diagonalisation de MatriceCalculateur Règle de CramerCalculateur d’Espace ColonneCalculateur d’Espace NulCalculateur d'Angle Entre VecteursCalculateur de Vecteur UnitaireCalculateur de Norme de VecteurCalculateur de Produit VectorielCalculateur de Produit ScalaireCalculateur de Multiplication de MatricesCalculateur de Matrice InverseCalculateur RREF (Forme Échelonnée Réduite)Calculateur de la Méthode de NewtonCalculateur de Matrice JacobienneCalculateur d'Intégrale de SurfaceCalculateur d'Intégrale CurviligneCalculateur de RotationnelCalculateur de DivergenceCalculateur de Gradient MultivariableCalculateur d'Optimisation de CalculSolveur de Taux LiésCalculateur de Taux de Variation InstantanéCalculateur de Taux de Variation MoyenCalculateur de Somme de Séries InfiniesCalculateur de Test de Convergence de SériesCalculateur de Séries EntièresCalculateur de Série de MaclaurinCalculateur Règle de l'HôpitalCalculateur d'Intégrale ImpropreCalculateur de la Règle de SimpsonCalculateur de la Règle du TrapèzeCalculateur de Somme de RiemannGrapheur de Courbes ParamétriquesCalculateur de Surface de RévolutionCalculateur de Volume de RévolutionCalculateur de Distance en Géométrie des CoordonnéesCalculateur Formule de HéronCalculateur de Tangente à un CercleCalculateur de Bissectrice d'AngleCalculateur de Cercle Inscrit (Incercle)Calculateur de Cercle CirconscritCalculateur de Distance du Grand CercleCalculateur de Distance 3DCalculateur de ToreCalculateur de Tronc de CôneCalculateur d’Aire de Polygone IrrégulierCalculateur de Polygone RégulierIdentificateur de Section ConiqueCalculateur d'HyperboleCalculateur de ParaboleCalculateur de Développement du Binôme de NewtonGénérateur du Triangle de PascalCalculateur de Notation Produit (Notation Pi)Calculateur de Notation Sigma (Sommation)Calculateur du Théorème des Racines RationnellesCalculateur de la Règle des Signes de DescartesCalculateur de Droites Parallèles et PerpendiculairesCalculateur d’Équation de DroiteConvertisseur Forme Standard vers Forme Pente-OrdonnéeCalculateur de Forme Point-PenteRésolveur de Système d'Équations Non LinéairesSolveur d'Équations RationnellesRésolveur d'Équations LittéralesSolveur d'Équations TrigonométriquesRésolveur d'Équations ExponentiellesSolveur d'Équations LogarithmiquesCalculateur d'Équation QuartiqueSolveur d’Équation CubiqueCalculateur d'EstimationConvertisseur Nombre en FractionGénérateur de Comptage par SautsCalculateur de Prix UnitaireCalculateur de Plafond et PlancherCalculateur de Valeur AbsolueChercheur de Motifs NumériquesGénérateur de Tableau de Valeur de PositionCalculateur d'Ordre des Opérations (PEMDAS)Calculateur d'Addition et Soustraction PoséeCalculateur de Multiplication LongueGénérateur de Tables de Multiplication🎮 Convertisseur de Monnaie de Jeu🎲 Calculateur de Probabilité de Loot🎰 Calculateur de Pity Gacha⚔️ Calculateur de DPS🎮 Convertisseur de Sensibilité de Jeux❄️ Calculateur de Jour de Neige🚚 Estimateur de Coût de Déménagement📷 OCR / Image en Texte📈 Créateur de Graphiques en Ligne🥧 Créateur de Diagramme Circulaire📊 Créateur de Graphiques en Barres🔊 Générateur de Tonalités🖱️ Compteur de ClicsBloc-notes en ligne⬛ Calculateur de Rapport d’Aspect🌍 Calculateur d'Empreinte CarboneCalculateur de Taille de PneusCalculateur de Coût de Carburant💧 Calculateur de Point de Rosée🌡️ Calculateur d'Indice de Chaleur🌬️ Calculateur de Refroidissement Éolien⏰ Réveil en Ligne⏰ Calculateur de Carte de Pointage🕐 Convertisseur d'Heure Militaire⏱️ Calculateur d'heures⏱️ Chronomètre en Ligne⏱️ Minuterie de Compte à Rebours🌐 Convertisseur de Fuseau HoraireCalculateur de MoquetteCalculateur de Mur de SoutènementCalculateur de Dimensionnement HVACCalculateur d'IsolationCalculateur de PavésCalculateur d'ArmatureCalculateur de BoisCalculateur de SurfaceCalculateur de Multiplication CroiséeCalculateur de Résumé en Cinq NombresCalculateur de PercentileCalculateur de Distribution NormaleCalculateur de Valeur pCalculateur de RatioCalculateur de Complétion du CarréCalculateur d'ArrondiCalculateur de Division LongueCalculatrice ScientifiqueMinuteur d’Étude PomodoroCalculateur de Chiffres SignificatifsCalculateur de Notes d'ExamenCalculateur de Notes PondéréesCalculateur de Note FinaleCalculateur de NotesCalculateur de fréquence de résonanceCalculateur d'impédanceCalculateur de Décibels (dB)Calculateur de Facteur de PuissanceCalculateur de Constante de Temps RCCalculateur de TransformateurCalculateur de Section de FilCalculateur de Minuteur 555Calculateur de condensateurCalculateur de Résistances en ParallèleCalculateur de Diviseur de TensionCalculateur de résistance pour LEDConvertisseur Mole/Gramme/ParticuleCalculateur de TitrageCalculateur de Point d’ÉbullitionCalculateur de Formule EmpiriqueCalculateur de Rendement en PourcentageCalculateur de StœchiométrieÉquilibreur d’Équations ChimiquesCalculateur de DilutionCalculateur de Chevaux VapeurCalculateur de CoupleCalculateur de Chute LibreCalculatrice de la Loi des Gaz ParfaitsCalculateur de PressionCalculateur de DensitéCalculateur de Travail et PuissanceCalculateur d’Énergie PotentielleCalculateur d'Énergie CinétiqueCalculateur de Mouvement de ProjectileCalculateur de Quantité de MouvementCalculateur d'AccélérationCalculateur de ForceCalculateur de ROI InfluenceurCalculateur de ROASCalculateur de CTRVérificateur de Nom d’Utilisateur sur les Réseaux SociauxOptimiseur de Temps de Publication sur les Réseaux SociauxCalculateur de ROI des Réseaux SociauxCalculateur de Coûts Publicitaires FacebookCalculateur de Monétisation YouTube ShortsCalculateur de Revenus TwitchCalculateur de Temps de Visionnage YouTubeConvertisseur de Timestamp Twitter/XStatistiques de Chaîne YouTubeCalculateur de Revenus TikTokGuide des Tailles d'Images Réseaux SociauxGénérateur de Polices InstagramCompteur de Caractères Twitter/XSélecteur de commentaires YouTubeExtracteur de tags YouTubeTéléchargeur de miniatures YouTubeEstimateur de revenus YouTubeGénérateur de personnage RPG aléatoire