Il grafico 3-colorabilità è auto-riducibile


8

Sono interessato all'auto-riducibilità del problema del grafico 3-Coloralibity.

Definizione del problema grafico a 3 coloralità.

Dato un grafico non orientato esiste un modo per colorare i nodi rosso, verde e blu in modo che nessun nodo adiacente abbia lo stesso colore?G

Definizione di auto-riducibilità.

Una lingua è auto-riducibile se esiste una macchina per turing Oracle tale che e per qualsiasi input di lunghezza , richiede l'oracolo per parole di lunghezza al massimo .LTL=L(TL)xnTL(x)n1

Vorrei dimostrare in modo molto rigoroso e formale che la colorabilità di Graph 3 è auto-riducibile.

La prova di auto-riducibilità di SAT può essere usata come esempio ( auto-riducibilità di SAT ).

A mio avviso, l'idea generale di prova di auto-riducibilità della colorabilità di Graph 3 è diversa dalla prova di auto-riduzione di SAT in alcuni aspetti.

  • SAT ha due scelte per ogni letterale (vero o falso) e la colorabilità di Graph 3 ha tre scelte (vale a dire, rosso verde blu).
  • Le scelte di SAT letterale sono indipendenti l'una dall'altra e le scelte di colori della colorabilità di Graph 3 sono strettamente dipendenti, qualsiasi nodo adiacente deve avere un colore diverso, questa proprietà potenzialmente potrebbe aiutare a rendere meno iterazione tra tutti i colori.

L'idea generale di prova .

Indichiamo con il colore del vertice , che può assumere uno dei seguenti valori (rosso, verde, blu). Definisci il grafico da un dato grafico colorando il vertice arbitrario , assegna a' rosso 'e metti il ​​grafico con il vertice colorato all'ingresso dell'oracolo. Se l'oracolo risponde 1, il che significa che il grafico modificato è ancora a 3 colori, salva le assegnazioni correnti e inizia una nuova iterazione, con il diverso vertice scelto arbitrariamente, vertice di colorecviviGGv0cv0Gv0v1v1secondo i colori dei vertici adiacenti. se l'oracolo risponde a 0, il che significa che l'assegnazione precedente ha rotto 3 colorabilità, scegli un colore diverso dall'insieme di tre colori, ma sempre in base ai colori dei vertici adiacenti.

La precedente dimostrazione non è solida dal punto di vista matematico, la domanda è come migliorarla e renderla più formale e matematica rigorosa. Sembra che sia necessario distinguere più attentamente i casi in cui il nuovo vertice non ha bordi con vertici già colorati e quando il nuovo vertice è adiacente a vertici già colorati.

Inoltre, vorrei dimostrare che la colorabilità di Graph 3 è auto-riducibile verso il basso.

Definizione di linguaggio auto-riducente verso il basso.

dice che il linguaggio sia auto-riducibile verso il basso se è possibile determinare in tempo polinomiale se usando i risultati delle query più brevi.AxA

L'idea sembra essere semplice e intuitiva: inizia con la colorazione di un vertice arbitrario e ad ogni iterazione aggiungi un altro vertice colorato e controlla per oracolo se il grafico è ancora tricolore, se non inverti la colorazione precedente e controlla un altro colore.

Ma come scrivere la prova in modo rigoroso e ancora più importante come trovare una codifica appropriata di un grafico.

In breve, vorrei dimostrare che la colorabilità di Graph 3 è auto-riducibile e auto-riducibile verso il basso in modo rigoroso e formale.

Apprezzerò la condivisione dei tuoi pensieri con noi.

Aggiornare:

auto-riducibilità verso il basso

L'auto-riducibilità verso il basso viene applicata al problema decisionale ed è l'oracolo che risponde allo stesso problema decisionale con input più brevi, al termine del processo di auto-riduzione verso il basso dovremmo avere le giuste assegnazioni di colore.

Ogni grafico a 3 colori con più di tre vertici, ha due vertici con lo stesso colore. Apparentemente, ci sono solo tre colori e più di tre vertici, quindi un certo numero di vertici non adiacenti potrebbe avere lo stesso colore. Se si fondono ed con lo stesso colore del risultato abbiamo ancora 3 - grafico colorabile, proprio perché, se grafo è 3 - colorabile, poi vi sono esiste destra assegnazione di tutti i vertici adiacenti a ed secondo la stesso colore di , quindi unendoGx,yxyxyx,yx,ynon abbiamo bisogno di cambiare alcun colore di alcun vertice, dobbiamo solo aggiungere più spigoli tra vertici già correttamente colorati (so che non è la migliore spiegazione, apprezzerò se qualcuno potesse spiegarlo meglio). Ad ogni iterazione prendiamo due vertici non adiacenti del grafico , uniamox,yGx ey e ottieni un grafico Gche è il nostro input più breve per l'oracolo. Oracle risponde se è a 3 colori o no. Ora il problema è prima dell'impostazioneG sull'input dell'oracolo dovrei colorare il vertice unito e testare la colorabilità di G, se non è modificabile in 3 colori il colore, ma come implementarlo correttamente, ho bisogno della codifica corretta per questo.

auto-riducibilità

Innanzitutto, dovremmo verificare se un dato grafico Gè a 3 colori, quindi impostalo sull'input di Oracle, e Oracle risponderà se è a 3 colori, in caso affermativo, quindi avvia il processo. Qualsiasi due vertici non adiacenti può avere lo stesso colore nel grafico a 3 colori. Il processo di auto-riduzione dovrebbe essere eseguito in iterazioni, penso che possiamo iniziare da un piccolo sottografoG di un dato grafico G e su ogni iterazione aggiungere un altro vertice da G per G. In parallelo, dovremmo mantenere l'assegnazione di vertici già colorati. Sfortunatamente, non ho ancora capito completamente l'idea. Gradirei aiuto e suggerimenti.


solo una nota: penso che nell'auto-riduzione dovresti usare la versione "nuda" del problema decisionale: l'input del problema decisionale è un grafico e non un grafico con alcuni nodi colorati. Quindi dovresti modificare il grafico originale per simulare una colorazione forzata di alcuni nodi (e cercare di ridurre l'istanza). In SAT questo è più semplice perché hai appena impostato il valore di una variabile e semplificato le clausole.
Vor

Qual è la differenza tra auto-riducibilità e auto-riducibilità verso il basso?
Yuval Filmus,

@YuvalFilmus, set S è auto-riducibile verso il basso se esiste una riduzione di Cook di S a se stesso che effettua query ciascuna più breve dell'input della riduzione (sull'input x la riduzione fa la query q poi |q|<|x|)
com

Considerando che un set è auto-riducibile se ...?
Yuval Filmus,

Il problema di ricerca di qualsiasi relazione R viene chiamato auto-riducibile se può essere ridotto al problema decisionale di SR.
com

Risposte:


6

Come Vor menziona nel suo commento, la tua riduzione non funziona, poiché la 3 colorabilità non accetta assegnazioni parziali di colori. Il problema diventa ancora più profondo, poiché l'impostazione del colore di un singolo vertice non fa alcun progresso nel determinare se il grafico è a 3 colori: in effetti, il grafico è a 3 colori se c'è un 3 a colori in cui verticev viene assegnato il colore c, per ogni v,c Tu scegli.

Ecco un suggerimento su come risolvere il tuo esercizio, seconda parte. In qualsiasi 3 colorazione di un graficoG su più di tre vertici, ci sono due vertici x,yottenere lo stesso colore (perché?). Se ci uniamox e y, il grafico risultante è ancora a 3 colori (perché?). Prova a usare questa idea per costruire un algoritmo auto-riducente verso il basso per la 3-colorabilità.

Modifica: ecco un suggerimento su come risolvere l'esercizio, prima parte. Considera due vertici non collegatix,y. Se c'è una colorazione in cui ottengono lo stesso colore alloraGxy è tricolore (perché?) e una colorazione di G può essere estratto da una colorazione di Gxy(Come?). Quando terminerà questo processo?


1
Punti extra se riesci a trovare una riduzione che chiama l'oracolo O(1)volte.
Yuval Filmus,

Grazie mille per il suggerimento, invece di colorare parzialmente, possiamo usare un grafico ausiliario G ed estenderlo di conseguenza a G. GraficoG con più di tre vertici hanno due vertici x,ycon lo stesso colore, solo perché l'oracolo ha risposto che è tricolore (ma i vertici sono più di tre), quindi ci dovrebbero essere vertici con lo stesso colore. Ma non capisco perché il grafico sia ancora tricolore quando uniamo due vertici con lo stesso colore. D'altra parte, perché dobbiamo aggiungere un bordo tra vertici già colorati.
com

Secondo il numero di chiamate. In generale, possiamo assegnare lo stesso colore a tutti i vertici non adiacenti, quindi in questo caso non dobbiamo chiedere l'oracolo su ogni incarico (d'altra parte, ci sono tre colori, ed è fondamentale prendere l'incarico giusto. Assegnazione apparentemente correttaG, potrebbe diventare falso il G).
com

Supponiamo che un grafico G ha una colorazione 3 c tale che c(x)=c(y). Ora considera il graficoGxy ottenuto dalla fusione x e y. Riesci a trovare un 3-colorante perGxy? Che ne dici del contrario?
Yuval Filmus,

Ora che capisco la differenza tra auto-riducibilità e auto-riducibilità verso il basso, noto che il mio suggerimento ha senso solo per quest'ultimo. Aggiunto un suggerimento diverso per il primo. Forse questo aiuta.
Yuval Filmus,

0

Forse così. Possiamo aggiungere due vertici collegati l1 e l2. Innanzitutto, li colleghiamo con qualsiasi vertice v *. Si noti che questo comportamento significa che alla fine, blocchiamo solo alcuni vertici di colore come v *.

Quindi eseguiamo la versione decisionale della colorabilità 3, se l'algoritmo decisionale accetta, quindi aggiungiamo questo vertice in s_1. ripetiamo questo passaggio con ogni vertice (collega l1 e l2 con un altro vertice), scopriremo che alla fine vengono trovati tutti i vertici con lo stesso colore (indicato con il rosso) e questi vertici con colore rosso indicato da s_1.

In caso di problemi, si prega di sottolineare. 🤥

Successivamente, proprio come quello che facciamo sopra, aggiungiamo altri due vertici connessi (l3 l4), per prima cosa li colleghiamo con qualsiasi vertice tranne quelli in s_1, eseguiamo l'algoritmo decisionale. Poi un altro ..... inserisci qui la descrizione dell'immagine

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.