2010-07-05 9 views
6

Ho grafici planari cubici (3-regolari) relativamente piccoli (40-80 nodi) e devo decidere la loro Hamiltonicità. Sono consapevole del fatto che questo compito è NP-completo, ma spero per gli algoritmi di tempo asintoticamente esponenziali che sono comunque molto veloce per le dimensioni del grafico Sono interessato aRicerca di cicli hamiltoniani nei grafici planari cubici

risposta

3

40 nodi sembra fattibile. Hai scelto 40 di 60 spigoli da includere.

Proviamo una ricerca in profondità.

Per iniziare, selezionare un vertice V. È necessario escludere esattamente uno dei suoi 3 bordi incidenti. Prova queste 3 possibilità una alla volta. Quando scegli uno spigolo da escludere, stai forzando l'inclusione di 4 spigoli. Dopodiché chiameremo i vertici del margine escluso "usato".

Se si potesse ripetere questa procedura 10 volte, avresti scelto tutti i 40 bordi, cercando solo 3^10 (59049) possibilità. Naturalmente, finirai con i vertici "isolati" dopo aver determinato un numero sufficiente di bordi.

Ma ora abbiamo un'idea per un algoritmo. Ad ogni passo, prova a scegliere un vertice con il minor numero di vicini "usati". In realtà, scegliere un vertice con 2 vicini usati è la cosa migliore, poiché il margine utilizzato è forzato. Non sono sicuro che scegliere un vertice con 1 o 0 vicini usati sia il migliore. Prova in entrambe le direzioni! (E 3 vicini usati indicano una ricerca fallita)

Quando abbiamo finito di raccogliere i bordi, controlla se formano un singolo ciclo.

Avete alcuni grafici di esempio? Potrei provare una semplice implementazione.

Problemi correlati