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.