MakarovSuites
Français
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Contact et licences

Math

Voyageur de commerce

Une tournée qui raccourcit sous tes yeux - gloutonne, 2-opt décroisant arête par arête, recuit escaladant le mur - contre l'optimum exact pour treize villes et la force brute sur chaque tournée pour huit.

Voyageur de commerce — Image réelle de l’application
Image réelle de l’application

Ce qui se passe

Comparer la construction voisine, l'amélioration 2-opt et le recuit simulé sur les mêmes villes. L'optimum local A 2-opt n'a pas d'amélioration de l'échange à deux bords; Ce n'est pas nécessairement le circuit le plus court au monde. Le recuit accepte parfois des tours plus longs pour échapper aux minima locaux, sans garantir l'optimum dans un cycle fini.
L'arbre d'extension minimum est une limite inférieure sur chaque tour. Pour ces distances euclidiennes, le doublement d'un arbre couvrant et le raccourcissement des visites répétées prouve que le tour optimal est au plus deux fois l'arbre couvrant minimum. Cette limite concerne l'optimum et une construction arborescente appropriée; Il ne contraint pas chaque tour gourmand ou intermédiaire.
La petite scène exacte utilise la programmation dynamique de Held-Karp sur des sous-ensembles, avec le temps O(N²·2^N) plutôt que d'énumérer chaque permutation. La scène de huit villes peut énumérer chaque tour distinct. Les algorithmes exacts n'ont pas besoin d'inspecter la plupart des permutations, mais aucun algorithme polynomial exact n'est connu pour le problème général du vendeur itinérant. Comparez les tours heuristiques mesurés avec la référence exacte si disponible.

Équations du module
Équations
villes :  N points dans [−1, 1]² tirés avec le dé commun (graine 3) ;  longueur de la tournée L = Σ |c_k − c_{k+1}| le long du cycle ;  (N − 1)!/2 tournées distinctes : 2520 pour 8, 2.4·10^8 pour 13, 1.0·10^46 pour 40
glouton :  à partir de la ville 0, toujours la plus proche non visitée (égalités départagées par l'indice) ;  12.8105 pour quarante villes
2-opt :  arêtes (a, b) et (c, d) avec a avant c dans la tournée ; Δ = |ac| + |bd| − |ab| − |cd| ;  la première paire dans l'ordre du balayage avec Δ < 0 est décroisée en inversant le segment b … c ;  recommencer jusqu'à ce qu'il n'y en ait plus : 16 décroisements, 10.5850 - le mur (la tournée a atteint un optimum local)
recuit simulé :  une paire aléatoire (i, j), i < j, j − i ≥ 2 ;  acceptée si Δ ≤ 0, sinon avec la probabilité exp(−Δ/T) ;  T₀ = 0.3, T ← 0.9997 T à chaque pas, 20 000 pas ;  graine 6 : meilleur 10.4954, 462 acceptés, 231 en montée ;  2-opt dessus : 10.2673
borne :  MST ≤ L pour toute tournée (une tournée privée d'une arête est un arbre couvrant), et la tournée tirée d'un arbre doublé montre que L_opt ≤ 2·MST ;  MST = 8.4480 pour les quarante (l'arbre de GraphTheory, même dé) ;  10.2673 / 8.4480 = 1.215
Held–Karp :  dp[S, k] = plus court chemin issu de 0 passant par l'ensemble S et finissant en k ;  dp[S + k, k] = min sur j dans S de dp[S, j] + |jk| ;  2^N·N² pas ;  13 villes, graine 8 : optimum 7.4710, tournée 0 7 1 3 12 6 8 10 5 4 11 2 9 ;  2-opt à partir de 50 tournées aléatoires (Fisher–Yates sur les graines 100 …) : 7 l'atteignent, pire cas 1.0789 ×, moyenne 1.0678 ×
force brute :  toutes les permutations de 1 … N − 1 dans l'ordre lexicographique, chaque tournée une seule fois (premier < dernier) ;  8 villes, graine 3 : 2520 tournées, meilleure 5.2175 = Held–Karp, plus longue 11.9462, moyenne 9.1055

Autres expériences

Retour au catalogue
Conjecture de Collatz — Image réelle de l’application

Math

Conjecture de Collatz

Moitié si pair, triple plus un si impair : tout départ tombe à un, et personne ne sait pourquoi - le vol d'un nombre, le paysage des temps d'arrêt jusqu'à 4096, et la même règle avec 3n − 1 et 5n + 1, qui bouclent et s'échappent.

Spirales de nombres premiers — Image réelle de l’application

Math

Spirales de nombres premiers

Les nombres posés sur une spirale carrée, les premiers allumés : des diagonales apparaissent qui ne devraient pas être là, quatre fois plus denses que le carré, et avec 41 au centre le n² + n + 41 d'Euler descend l'une d'elles ; la spirale de Sacks, et π(N) contre N/ln N à mesure que la spirale grandit.

Tournesol — Image réelle de l’application

Math

Tournesol

Le tournesol de Vogel poussé graine par graine, r = √n et θ = n·α : glisse sur le disque, l'angle balaie, les spirales se déroulent, s'écrasent en rayons et s'enclenchent à l'angle d'or 137,508°, où la paire la plus proche vaut 1,602 à toute taille et les familles sont des nombres de Fibonacci ; l'empilement mesuré en direct, une tâche sur l'angle et le graphe de l'empilement selon l'angle.