Partizionare un grafico in cicli nodo-disgiunti


15

Problema correlato: il teorema di Veblen afferma che "Un grafico ammette una decomposizione del ciclo se e solo se è pari". I cicli sono edge disjoint, ma non necessariamente nodo disjoint. Detto in altro modo, "Il set di spigoli di un grafico può essere suddiviso in cicli se e solo se ogni vertice ha un grado pari".

Il mio problema: Mi chiedo se qualcuno abbia studiato la partizione in un grafico in cicli di nodi disgiunti. Cioè, suddividere i vertici di un grafico G in V 1 , V 2 , , V k , e ogni sottografo indotto da V i è hamiltoniano.VGV1,V2,,VkVi

NP è difficile o facile?

Problema più correlato: la divisione in un triangolo è NP-completa. (Pagina 68 di "Computer e intrattabilità")

Grazie per il tuo consiglio in anticipo. ^^


8
C'è una facile riduzione della corrispondenza. Esercizio ben noto in algoritmi.
Chandra Chekuri,

1

@ThomasAhle Grazie, non ero a conoscenza di quella pagina wiki. Si chiama 'copertina del ciclo disgiunto' menzionata in quella pagina wiki.
Peng Zhang,

Risposte:


20

Una partizione in cicli disgiunti vertici è la stessa cosa di un sottografo a 2 regolari, più comunemente noto come fattore 2. Può essere trovato (se esiste) in tempo polinomiale da un algoritmo basato sulla corrispondenza. Ad esempio vedere questo link .

ETA novembre 2013: dai commenti sottostanti sembra che la riduzione dalla fonte collegata sopra sia sbagliata. Tuttavia, l'affermazione secondo cui il problema può essere ridotto alla corrispondenza perfetta rimane corretta. La riduzione corretta è in WT Tutte (1954), "Una breve dimostrazione del teorema dei fattori per i grafici finiti", il canadese J. Math. 6: 347–352 .

Sostituisci ogni vertice con il grado d con un grafico bipartito completo G v = K d ,vd , e rappresentano ciascun bordouvdel grafico originale con un bordo da un vertice di G u a un vertice di G v (sul lato della bipartizione condvertici) in modo tale che ciascun vertice di G v da quel lato del bipartito ha esattamente uno di questi incidenti.Gv=Kd,d2uvGuGvdGv

Quindi una corrispondenza perfetta nel grafico modificato deve corrispondere ai vertici sul loro lato della bipartizione di G v con d - 2 sui vertici d sull'altro lato, lasciando esattamente due vertici liberi che devono essere abbinati i loro vicini in altri sottografi G u . In questo modo, gli abbinamenti perfetti del grafico modificato corrispondono 1 per 1 con le copertine dei cicli del grafico originale.d2Gvd2dGu


Non capisco Tutte le menzioni che ho trovato, di questo algoritmo, iniziano calcolando un tour di Eulero. Tuttavia, ci sono molti grafici che possono essere coperti ciclicamente senza un tour di Eulero. È anche in P se non abbiamo bisogno di usare tutti i bordi?
Thomas Ahle,

Hai letto l'articolo a cui ho collegato? Non vedo alcuna menzione dei tour di Eulero lì.
David Eppstein,

È solo un po 'difficile da capire. Quando costruisci modificando ciascun fronte ( i , j ) in un bordo da V a V ( ( i , j ) ) come fai a sapere quale estremità mettere in V e quale mettere in V ? Il documento sembra "basta prendere il secondo", ma non è un grafico diretto ..E(i,j)VV(i,j)VV
Thomas Ahle

1
Voglio dire, potrei anche convertire ogni bordo non diretto in un bordo diretto in ogni direzione, ma poi la corrispondenza potrebbe darmi molti cicli di "lunghezza 2", no?
Thomas Ahle,

1
@ThomasAhle termini apparentemente confusi; quello che volevo dire è un grafico spanning regolare , noto anche come fattore kkk
Manfred Weis,
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.