MakarovSuites
Italiano
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Contatti e licenze

Math

Commesso viaggiatore

Un giro che si accorcia mentre guardi - goloso, 2-opt che scrocia spigolo per spigolo, ricottura che scavalca il muro - contro l'ottimo esatto per tredici città e la forza bruta su ogni giro per otto.

Commesso viaggiatore — Immagine reale dell’applicazione
Immagine reale dell’applicazione

Cosa succede

Confrontare la costruzione del vicino più vicino, il miglioramento 2-opt e la ricottura simulata sulle stesse città. L'ottimo locale di A 2-opt non ha miglioramento dello scambio a due bordi; Non deve essere necessariamente il tour più breve al mondo. La ricottura a volte accetta tour più lunghi per sfuggire ai minimi locali, senza garantire l'ottimo in una corsa finita.
L'albero di espansione minimo è un limite inferiore su ogni tour. Per queste distanze euclidee, raddoppiando un albero span e accorciando le visite ripetute si dimostra che il tour ottimale è al massimo il doppio dell'albero span minimo. Questo vincolo riguarda l'ottimizzazione e un'adeguata costruzione ad albero; Non costringe ogni tour avido o intermedio.
La piccola scena esatta utilizza la programmazione dinamica di Held-Karp su sottoinsiemi, con il tempo O(N²·2^N) piuttosto che enumerare ogni permutazione. La scena di otto città può elencare ogni tour distinto. Gli algoritmi esatti non devono ispezionare la maggior parte delle permutazioni, ma nessun algoritmo esatto in tempo polinomiale è conosciuto per il problema generale del venditore ambulante. Confronta i tour euristici misurati con il riferimento esatto, se disponibile.

Equazioni del modulo
Equazioni
città:  N punti in [−1, 1]² dal dado condiviso (seme 3);  lunghezza del percorso L = Σ |c_k − c_{k+1}| lungo il ciclo;  (N − 1)!/2 percorsi distinti: 2520 per 8, 2.4·10^8 per 13, 1.0·10^46 per 40
goloso:  dalla città 0, sempre la più vicina non visitata (parità risolte per indice);  12.8105 per quaranta città
2-opt:  archi (a, b) e (c, d) con a prima di c sul percorso; Δ = |ac| + |bd| − |ab| − |cd|;  la prima coppia in ordine di scansione con Δ < 0 viene sciolta togliendo l'incrocio, invertendo il segmento b … c;  si ripete finché non ne restano: 16 incroci tolti, 10.5850 - il muro (un ottimo locale)
ricottura simulata:  una coppia casuale (i, j), i < j, j − i ≥ 2;  accettata se Δ ≤ 0, altrimenti con probabilità exp(−Δ/T);  T₀ = 0.3, T ← 0.9997 T a ogni passo, 20 000 passi;  seme 6: migliore 10.4954, 462 accettate, 231 in salita;  2-opt su di essa: 10.2673
limite:  MST ≤ L per ogni percorso (un percorso privato di un arco è un albero di copertura), e il percorso di un albero raddoppiato mostra che L_opt ≤ 2·MST;  MST = 8.4480 per i quaranta (l'albero di GraphTheory, stesso dado);  10.2673 / 8.4480 = 1.215
Held–Karp:  dp[S, k] = cammino più breve da 0 attraverso l'insieme S che termina in k;  dp[S + k, k] = min su j in S di dp[S, j] + |jk|;  2^N·N² passi;  13 città, seme 8: ottimo 7.4710, percorso 0 7 1 3 12 6 8 10 5 4 11 2 9;  2-opt da 50 percorsi casuali (Fisher–Yates su semi 100 …): 7 lo raggiungono, il peggiore 1.0789 ×, la media 1.0678 ×
forza bruta:  ogni permutazione di 1 … N − 1 in ordine lessicografico, ogni percorso una volta (primo < ultimo);  8 città, seme 3: 2520 percorsi, migliore 5.2175 = Held–Karp, più lungo 11.9462, media 9.1055

Altri esperimenti

Torna al catalogo
Congettura di Collatz — Immagine reale dell’applicazione

Math

Congettura di Collatz

Metà se pari, triplo più uno se dispari: ogni partenza cade a uno, e nessuno sa perché - il volo di un numero, il paesaggio dei tempi di arresto fino a 4096 e la stessa regola con 3n − 1 e 5n + 1, che ciclano e scappano.

Spirali dei primi — Immagine reale dell’applicazione

Math

Spirali dei primi

I numeri posati su una spirale quadrata, i primi accesi: compaiono diagonali che non dovrebbero esserci, quattro volte più dense del quadrato, e con 41 al centro l'n² + n + 41 di Eulero scende lungo una di esse; la spirale di Sacks, e π(N) contro N/ln N mentre la spirale cresce.

Girasole — Immagine reale dell’applicazione

Math

Girasole

Il girasole di Vogel cresciuto seme dopo seme, r = √n e θ = n·α: trascina sul disco, l'angolo scorre, le spirali si srotolano, collassano in raggi e si agganciano all'angolo aureo 137,508°, dove la coppia più vicina è 1,602 a qualunque taglia e le famiglie sono numeri di Fibonacci; l'impacchettamento misurato in diretta, un compito sull'angolo e il grafico dell'impacchettamento contro l'angolo.