Qualcuno è a conoscenza di un contro-esempio dell'algoritmo Isomorfismo grafico di Dharwadker-Tevet?


10

A http://www.dharwadker.org/tevet/isomorphism/ , c'è una presentazione di un algoritmo per determinare se due grafici sono isomorfi. Dato un certo numero di affermazioni "interessanti" di A Dharwadker, non sono propenso a crederci.

Nella mia indagine, trovo che l'algoritmo produrrà sicuramente la risposta corretta e ti dirò che due grafici non sono isomorfi quando in realtà è corretto. Tuttavia, non è chiaro che l'algoritmo ti dirà costantemente se due grafici sono isomorfi quando effettivamente lo sono. La "prova" del loro risultato lascia a desiderare.

Tuttavia, non sono a conoscenza di un controesempio. Prima di iniziare a scrivere software per testare l'algoritmo, ho pensato di vedere se qualcuno fosse già a conoscenza di un contro-esempio.

Qualcuno ha richiesto una sinossi dell'algoritmo. Farò quello che posso qui, ma per capirlo davvero, dovresti visitare http://www.dharwadker.org/tevet/isomorphism/ .

L'algoritmo prevede due fasi: una fase "firma" e una fase di ordinamento. La prima fase di "firma" (questo è il mio termine per il loro processo; la chiamano generando la "matrice dei segni") ordina effettivamente i vertici in diverse classi di equivalenza. La seconda fase ordina innanzitutto i vertici in base alla loro classe di equivalenza, quindi applica una procedura di ordinamento all'interno delle classi di equivalenza per stabilire un isomorfismo tra i due grafici. È interessante notare che non pretendono di stabilire una forma canonica per i grafici - invece, un grafico viene utilizzato come una sorta di modello per il secondo.

La fase della firma è in realtà piuttosto interessante, e non vorrei rendere giustizia qui tentando di parafrasare. Se desideri ulteriori dettagli, ti consiglio di seguire il link per esaminare la sua fase di firma. La "matrice di segni" generata conserva certamente tutte le informazioni sul grafico originale e quindi stabilisce un po 'più di informazioni. Dopo aver raccolto le firme, ignorano la matrice originale poiché le firme contengono tutte le informazioni sulla matrice originale. Basti dire che la firma esegue alcune operazioni che si applicano a ciascun bordo relativo al vertice e quindi raccolgono il multiset di elementi per un vertice per stabilire una classe di equivalenza per il vertice.

La seconda fase - la fase di ordinamento - è la parte che è dubbia. In particolare, mi aspetto che se il loro processo funzionasse, l'algoritmo sviluppato da Anna Lubiw per fornire un "Doubly Lexical Ordering of Matrices" (Vedi: http://dl.acm.org/citation.cfm?id=22189 ) funzionerebbe anche per definire una forma canonica per un grafico.

Ad essere sinceri, non capisco del tutto il loro processo di selezione, anche se penso che facciano un lavoro ragionevole nel descriverlo. (Non ho lavorato su tutti i dettagli). In altre parole, potrei mancare qualcosa. Tuttavia, non è chiaro come questo processo possa fare molto di più che trovare un isomorfismo per caso. Certo, lo troveranno probabilmente con alta probabilità, ma non con una garanzia. Se i due grafici non sono isomorfi, il processo di ordinamento non lo troverà mai e il processo rifiuta correttamente i grafici.


Puoi fornire un riassunto dell'idea dell'algoritmo?
Mohammad Al-Turkistany,

1
vedi anche math.stackexchange.com/questions/333633/… . Questo dimostra solo che ci sono buone possibilità di trovare un controesempio al programma fornito, ma bisogna ancora trovarne uno ...
Thomas Klimpel,

I grafici fortemente regolari sembrano una buona scommessa, ma non ho avuto fortuna con permutazioni selezionate casualmente sul grafico di Petersen, sul grafico di Clebsch o sul grafico della torre 4x4.
Peter Taylor,

Allo stesso modo, ho provato il grafico di Shrikhande, ma non ho provato tutte le permutazioni. Ho inviato un'e-mail a Anna Lubiw per chiederle contro-esempi al suo "Doubly Lexical Ordering of Matrices", ma non ha risposto (almeno non ancora). Sospetto che dovrò fare una ricerca più sistematica.
Bill Province,

1
non pensare che stai facendo un servizio omettendo affermazioni stravaganti dell'articolo, anche se sicuramente susciterebbe bandiere su questo sito. quali sono le loro affermazioni stravaganti che ti rendono scettico? forse sostengono che ha prestazioni veloci, ma ciò non può essere confutato con un singolo controesempio. cioè / ad es. è possibile che l'algoritmo sia corretto (non è stato cercato) ma l'analisi della complessità è disattivata. in ogni caso, invitare ulteriori discussioni / analisi più approfondite nella Chat teorica sull'informatica , in cui diversi visitatori hanno espresso un interesse significativo per le IG in passato e c'è una recente discussione estesa.
vzn,

Risposte:


18

Per graphA.txt:

25
 0 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
 1 0 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0
 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
 1 1 1 0 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 0
 1 1 1 0 0 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 0 1 1 0
 1 1 1 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
 1 1 1 0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 0 0 1 0 1 1
 1 0 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 1
 1 0 0 1 0 1 0 1 0 1 0 0 1 0 0 0 1 1 1 1 0 1 1 0 0
 1 0 0 1 0 0 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1
 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 1 0 0 1 1 1 0 0 1 0
 1 0 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 0 0
 1 0 0 0 0 1 1 0 1 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 1
 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1
 0 1 0 1 0 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 0
 0 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 1
 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1
 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 1 0 1 1 1 0 1 0 0
 0 1 0 0 0 1 1 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 1 1 0
 0 0 1 1 1 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 1 1 0 1 0
 0 0 1 1 0 1 0 0 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 0 1
 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 1 1 0
 0 0 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 0 0 1
 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 0 1 0 1 1 0 1 0 0 1
 0 0 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 0 0 0 1 0 1 1 0

e graphB.txt:

25
 0 0 0 1 1 0 0 0 0 1 1 1 1 0 0 1 0 1 1 0 1 1 0 1 0
 0 0 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1
 0 1 0 1 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0
 1 1 1 0 1 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 1 0 0 0
 1 1 0 1 0 0 0 0 1 1 0 0 0 1 1 1 1 0 0 1 1 0 0 1 0
 0 1 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 0 0 1 1 1 1 1
 0 1 1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0
 0 0 1 1 0 0 0 0 1 0 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1
 0 0 1 1 1 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 1 0 1 1 1
 1 0 0 1 1 1 1 0 1 0 0 1 0 0 0 1 1 1 0 0 0 0 1 0 1
 1 0 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 0 0 1 1 1 0
 1 0 0 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 1
 1 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 1
 0 0 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 1 1 0
 0 1 0 1 1 1 0 1 0 0 1 1 0 1 0 0 1 0 1 0 1 0 1 0 0
 1 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 1 0 1 1 0 0 1 0 1
 0 0 0 0 1 1 1 1 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 0
 1 0 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0
 1 1 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 0
 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 0 0 1 0 1 1
 1 1 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 1
 1 1 0 1 0 1 1 0 0 0 1 1 1 1 0 0 0 0 0 1 0 0 0 1 1
 0 0 1 0 0 1 0 0 1 1 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1
 1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 0
 0 1 0 0 0 1 0 1 1 1 0 1 1 0 0 1 0 0 0 1 1 1 1 0 0

che si ottiene graphA.txtapplicando la permutazione (casuale)

 22 9 24 11 15 8 5 18 13 14 2 10 23 0 3 17 4 16 6 19 7 21 12 1 20

il programma C ++ isororphism.cppdalla Figura 6.3. Un programma C ++ per l'algoritmo di isomorfismo grafico in http://www.dharwadker.org/tevet/isomorphism/ fornisce il seguente output:

The Graph Isomorphism Algorithm
by Ashay Dharwadker and John-Tagore Tevet
http://www.dharwadker.org/tevet/isomorphism/
Copyright (c) 2009
Computing the Sign Matrix of Graph A...
Computing the Sign Matrix of Graph B...
Graph A and Graph B have the same sign frequency vectors in lexicographic order but cannot be isomorphic.
See result.txt for details.

Quindi possiamo supporre che questo sia un contro-esempio dell'algoritmo Isomorfismo del grafico di Dharwadker-Tevet.

Come suggerito da Bill Province, il problema è

GAGB

L'obiezione di Bill Province è che la prova della proposizione 4.1. non utilizza alcuna proprietà speciale della matrice dei segni che non si applicherebbe anche alla matrice di adiacenza. Più precisamente, il passaggio seguente nella dimostrazione è errato:

1,...,tAB1,...,tAv1,...,vt1,...,tBφ(v1)=v1,...,φ(vt)=vt rispettivamente.

perché anche se le righe sono state perfettamente abbinate, non ne consegue che le etichette dei vertici corrispondono alle etichette fornite da qualsiasi isomorfismo .φ

Poiché è stato identificato un buco nella prova di correttezza, il controesempio sopra dovrebbe essere sufficiente per confutare la correttezza dichiarata dell'algoritmo proposto.


Ringraziamenti Il contro-esempio è il primo dell'ottava coppia di grafici da

http://funkybee.narod.ru/graphs.htm

Per manipolare i grafici, ho usato e modificato il codice sorgente da ScrewBoxR1160.tar che si trova su

https://people.mpi-inf.mpg.de/~pascal/software/

Per capire il buco nella prova di correttezza, il commento di András Salamon su Weisfeiler-Lehman è stato molto utile, così come le spiegazioni di

http://users.cecs.anu.edu.au/~pascal/docs/thesis_pascal_schweitzer.pdf

Vzn ha fornito la motivazione per utilizzare questa domanda come un'opportunità per familiarizzare con la nautica / Tracce e gli aspetti pratici dell'isomorfismo grafico. Il vantaggio di apprendere come usare programmi all'avanguardia per isomorfismi grafici ha reso utile sprecare del tempo per trovare un contro-esempio (che credevo fortemente esistesse).


Grazie per la risposta molto dettagliata. C'è stato un criterio di selezione che hai usato per il grafico per trovare il contro-esempio? Una volta selezionato il contro-esempio, il tuo commento sembra suggerire che la permutazione è stata scelta in modo casuale. Era vero? O c'era di più nella selezione della permutazione?
Bill Province,

@BillProvince I criteri di selezione si basavano sul commento di András Salamon, perché indicava che una costruzione Cai, Fürer e Immerman avrebbe potuto avere successo. Ho provato per la prima volta un esempio n = 546 da Pascal Schweitzer, ma il programma originale C ++ isororphism.cpp ora sta elaborando da> 1566 minuti. Ho usato strutture dati migliori e dopo> 2h ho appreso che il grande contro-esempio funziona. Sapevo che trg787 / funkybee aveva alcune costruzioni Cai, Fürer e Immerman tra le sue coppie di grafici, quindi ho provato la mia fortuna. Ho provato più permutazioni casuali (per l'esempio n = 25), la seconda ha funzionato.
Thomas Klimpel,

quale fa risparmiare tempo, 1. trovare un contro esempio 2. dimostrare che 4.1 è sbagliato.
Jim,

Ho interrotto il programma C ++ originale isoromorphism.cpp per l'esempio n = 546 ora, dopo aver eseguito per più di 6200 minuti senza fine in vista.
Thomas Klimpel,

@ThomasKlimpel Ho intenzione di scrivere un documento che menziona questo risultato. Se hai un'attribuzione professionale preferita, puoi inviarmi un'e-mail di tale attribuzione a billprovince@gmail.com. Indipendentemente da ciò, intendo seguire i requisiti di attribuzione pubblicati su blog.stackexchange.com/2009/06/attribution- richiesti .
Bill Province,
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.