Come produrre un grafico casuale che non ha un ciclo hamiltoniano?


28

Lascia che la classe A indichi tutti i grafici di dimensione che hanno un ciclo hamiltoniano. È facile produrre un grafico casuale da questa classe: prendere n nodi isolati, aggiungere un ciclo hamiltoniano casuale e quindi aggiungere i bordi in modo casuale.nn

Lascia che la classe B denoti tutti i grafici di dimensione che non hanno un ciclo hamiltoniano. Come possiamo scegliere un grafico casuale da questa classe? (o fai qualcosa di simile)n


3
Come è chiaro che la prima procedura produce grafici in modo uniforme a caso? È chiaro che produce sempre grafici hamiltoniani, ma poiché aggiungi casualmente i bordi in seguito, potresti introdurre più cicli hamiltoniani, facendo apparire alcuni grafici più frequentemente di altri.
Robin Kothari,

Questo è giusto ma non è stata richiesta una distribuzione uniforme (se forse implicita).
Raffaello

1
Sì, non mi interessa l'uniformità. Vorrei dare a ogni grafico della famiglia di grafici non hamiltoniani qualche possibilità di essere scelto. Il problema con il campionamento uniforme è abbastanza semplice: AFAIK, non sappiamo come campionare uniformemente da una famiglia di grafici di dimensione n, per non parlare di quelli con cicli hamiltoniani.
Jagadish,

Risposte:


34

Questo è impossibile (a meno che NP = coNP) poiché in particolare ciò implica una funzione poli-tempo il cui intervallo è i grafici non hamiltoniani (la funzione passa dalla stringa casuale al grafico di output), che a sua volta implica una NP-proof di non-Hamiltonianicità (per dimostrare che G non ha un circuito hamiltoniano, mostra x che è mappato ad esso).


3
Supponete che tale funzione rientri nella classe dei grafici non hamiltoniani. Questo è solo il caso se vogliamo che la distribuzione sia uniforme. Vedi anche il commento di Aaron qui sotto: cstheory.stackexchange.com/questions/562/…
Ohad Kammar

5
Questo non presuppone nulla delle probabilità di scegliere ciascun grafico (come se fosse uniforme), ma solo che i grafici che possono essere emessi dagli algoritmi sono esattamente quelli non Hamiltoniani (su). Se si consente l'errore su entrambi i lati, ciò potrebbe essere possibile.
Noam,

1
Sono d'accordo, non è l'uniformità della distribuzione che conta, ma piuttosto il fatto che tutti i grafici non hamiltoniani hanno probabilità diverse da zero. Se anche uno di essi ha probabilità zero, la tua prova non si applica (senza ulteriori conoscenze sul supporto della distribuzione).
Ohad Kammar,

1
@Ohad: se uno di questi viene perso, puoi semplicemente aggiungerlo a una tabella di ricerca. Penso che i problemi inizino solo se ne perdi una frazione positiva, ma poi non esegui il campionamento uniformemente.
Emil,

3
1ϵϵϵ0

11

Gn,mmn

n


Questa è una buona idea, sebbene possiamo saltare l'intero algoritmo probabilistico per trovare il ciclo di Ham. La domanda non richiede che la procedura di campionamento venga eseguita nel polytime previsto o altro. Quindi crea un grafico casuale dalla tua distribuzione preferita, determina se è hamiltoniano con un algoritmo esatto e se è hamiltoniano quindi scartalo e ripeti il ​​processo. Se la distribuzione utilizzata era la distribuzione uniforme su tutti i grafici con etichetta, ciò produrrebbe effettivamente ogni grafico con etichetta non Hamiltoniana con probabilità uniforme.
JimN,

1

Il primo compito è facile perché i grafici Hamiltoniani sono facili da verificare. Tuttavia, non sono note prove brevi che possono essere verificate in modo efficiente per testimoniare che un determinato grafico non è hamiltoniano.


1
Penso che la risposta di Turkistany sollevi una domanda interessante. In generale è possibile campionare uniformemente da un linguaggio che è co-NP-completo?
Suresh Venkat,

5
.... e Noam risponde in negativo.
Suresh Venkat,
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.