Esiste un algoritmo efficiente per determinare se un grafico ha o meno un automorfismo non banale?


9

Sto lavorando a un problema relativo ai quadrati latini e voglio un metodo per ciò che si riduce essenzialmente al problema decisionale:

Input : un grafico finito, semplice G.
Output : YESse G ha un automorfismo non banale, NOaltrimenti.

Quindi...

Domanda : esiste un algoritmo efficiente per determinare se un grafico ha un automorfismo non banale?

Potremmo usare Nauty o Bliss (e forse altri pacchetti) per calcolare l'intero gruppo di automorfismi, ma non ne ho bisogno; tutto quello che devo determinare è se è banale.

È possibile che questo problema decisionale sia teoricamente equivalente in termini di complessità a "calcolare l'intero gruppo dell'automorfismo" in qualche modo. Non ne sono sicuro.

Per il mio scopo, "efficiente" in pratica significa "più veloce nella pratica rispetto al calcolo dell'intero gruppo dell'automorfismo", ma sono anche interessato alla teoria alla base.


Ciò equivale all'isomorfismo grafico.
Yuval Filmus,

2
@YuvalFilmus Per quanto ne so, non vi è alcuna riduzione nota da "Is to " a "La ha un automorfismo non banale". Ovviamente, se loro unione disgiunta ha un automorphism non banale (scambia e ) ma qualsiasi automorphism non banale di sarebbe anche un automorphism non banale di . G1G2GG1G2G1G2G1G1+G2
David Richerby,

Per quanto riguarda la tua ultima domanda, se si dà un oracolo a GA si può, in un tempo polinomiale, trovare un gruppo elettrogeno del gruppo automorfismo, quindi GI è Turing riducibile a GA, che non sono sicuro sia noto.
Ariel,

@DavidRicherby E il seguente documento? sciencedirect.com/science/article/pii/…
Yuval Filmus

@YuvalFilmus OK, quindi stai usando le riduzioni di Turing e io sto usando molte riduzioni. E immagino che le riduzioni di Turing siano più rilevanti per qualcuno che sta effettivamente cercando di risolvere il problema.
David Richerby,

Risposte:


2

Dato che sei anche interessato alla teoria alla base, ti darei un algoritmo temporale quasi polinomiale per il tuo problema.

Per ogni coppia di vertici (dello stesso grado) in , proviamo a vedere se è possibile scambiare e .uvG uv

Per fare questo, crea una copia di , chiamalo . Ora, elimina da , elimina (copia di) da .GGuGvG

Quindi, per ogni associ un percorso molto lungo, ma solo polinomialmente lungo .wN(u)

Quindi, per ogni (copia di) allegare ad esso un percorso molto lungo, ma solo polinomialmente lungo .wN(copy of v)

Tutto il percorso molto lungo sopra menzionato, ma polinomialmente lungo , dovrebbe avere la stessa lunghezza.

Chiama l'algoritmo di Babai sull'input di questa coppia di grafici appena prodotta.

Se per qualsiasi coppia , abbiamo una risposta da Babai, rispondi e fermati.(u,v)YESYES

Se nessuno restituisce una risposta , rispondere e interrompere.YESNO

Chiaramente, l'attaccamento a tutti i vertici in e forza l'isomorfismo grafico del meccanismo di funzionamento interno di Babai del suo algoritmo per mappare solo i vertici in a . Così, se la risposta di Babai è allora possiamo collegare in modo sicuro sul retro e per avere un automorfismo non banale di , dal momento che è una copia del .N(u)N(v)N(u)N(v)YESuvGGG

La complessità di runtime è ancora quasi-poli.

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.