Problema del postino cinese: trovare le migliori connessioni tra nodi di livello dispari


9

Sto scrivendo un programma, risolvendo il problema del postino cinese (noto anche come problema di ispezione del percorso) in un drair non indirizzato e attualmente sto affrontando il problema per trovare i migliori bordi aggiuntivi per collegare i nodi con grado dispari, in modo da poter calcolare un circuito euleriano.

Potrebbe esserci (considerando le dimensioni del grafico che vuole essere risolto) un'enorme combinazione di bordi che devono essere calcolati e valutati.

Come esempio ci sono i nodi dispari gradi . Le migliori combinazioni potrebbero essere:UN,B,C,D,E,F,sol,H

  1. C D E F G HUNB , , ,CDEFsolH
  2. B D E H F GUNC , , ,BDEHFsol
  3. UND , , ,E G F HBCEsolFH
  4. UNE ....

dove significa "bordo tra il nodo e il nodo ".A BUNBUNB

Quindi la mia domanda è: esiste un algoritmo noto per risolvere quel problema in una complessità migliore della pura forza bruta (calcolandoli e valutandoli tutti)?

€: Dopo alcuni sforzi di ricerca ho trovato questo articolo, parlando dell'algoritmo di corrispondenza di lunghezza minima di Edmonds, ma non riesco a trovare alcun pseudo-codice o descrizione degli studenti di questo algoritmo (o almeno non li riconosco, come Google offre molti successi e algoritmi di corrispondenza di J. Edmonds)


4
Wikipedia afferma che esiste un algoritmo per il problema del postino cinese. O(n3)
hugomg,

Lo so, ma sono ancora curioso di sapere come farlo.
Sim

2
Questi appunti delle lezioni trattano il problema del postino cinese: win.tue.nl/~nikhil/courses/2WO08/lec4.pdf
Alex ten Brink

Sim, sono interessato al tuo software dal momento che sto affrontando un problema di mappatura: help.openstreetmap.org/questions/13197/… Buona fortuna con il tuo progetto. pm at pmbooks dot com

prova l'articolo che ho collegato descrive un algoritmo di corrispondenza della lunghezza minima, ma a causa della mia mancanza di esperienza e della mancanza di pseudo-codice, purtroppo non sono stato in grado di implementarlo.
Sim il

Risposte:


1

Come osservato nei commenti, Wikipedia offre una riduzione dall'ispezione del percorso agli abbinamenti di peso minimo . Vladimir Kolmogorov ha pubblicato una rapida implementazione della versione ponderata dell'algoritmo blossom di Edmonds, in C ++ [1].

[1] V. Kolmogorov, Blossom V: una nuova implementazione di un algoritmo di abbinamento perfetto a costo minimo . Calcolo della programmazione matematica , 1 (1): 43–67, 2009.


1
E non chiamiamolo "Problema del postino cinese". L'unico legame con la Cina è che è stato introdotto da Mei-Ko Kwan e la sua nazionalità è irrilevante per il problema. Chiamarlo "cinese" suggerisce che la cosa più significativa su di lui è la sua origine etnica. Ad esempio, non ci riferiamo al noto algoritmo per calcolare i percorsi più brevi nei grafici come "l'algoritmo olandese" o, peggio ancora, "l'algoritmo del bianco". (Sì, mi oppongo al "teorema del resto cinese" per lo stesso motivo, ma quel cavallo è stato lanciato troppo tempo fa.)
David Richerby,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.