Adakah yang mengetahui contoh tandingan dari algoritma Isomorfisme Grafik Dharwadker-Tevet?


10

Di http://www.dharwadker.org/tevet/isomorphism/ , ada presentasi algoritma untuk menentukan apakah dua grafik isomorfis. Mengingat sejumlah hal yang akan kita katakan, klaim "menarik" oleh A Dharwadker, saya tidak cenderung mempercayainya.

Dalam penyelidikan saya, saya menemukan bahwa algoritme pasti akan menghasilkan jawaban yang benar dan memberi tahu Anda bahwa dua grafik tidak isomorfik padahal sebenarnya itu benar. Namun, tidak jelas bahwa algoritma akan secara konsisten memberi tahu Anda jika dua grafik isomorfik padahal sebenarnya. "Bukti" dari hasil mereka meninggalkan sesuatu yang diinginkan.

Namun, saya tidak mengetahui contoh tandingan. Sebelum saya mulai menulis perangkat lunak untuk menguji algoritme, saya pikir saya akan melihat apakah ada yang sudah mengetahui contoh tandingan.

Seseorang meminta sinopsis algoritma. Saya akan melakukan apa yang saya bisa di sini, tetapi untuk benar-benar memahaminya, Anda harus mengunjungi http://www.dharwadker.org/tevet/isomorphism/ .

Ada dua fase untuk algoritma: Fase "tanda tangan" dan fase pengurutan. Fase "tanda tangan" pertama (ini adalah istilah saya untuk proses mereka; mereka menyebutnya menghasilkan "matriks tanda") secara efektif mengurutkan simpul ke dalam kelas kesetaraan yang berbeda. Tahap kedua pertama memesan simpul sesuai dengan kelas ekivalensi mereka, dan kemudian menerapkan prosedur sortir dalam kelas ekivalensi untuk membangun isomorfisme antara dua grafik. Menariknya, mereka tidak mengklaim untuk membuat bentuk kanonik untuk grafik - sebagai gantinya, satu grafik digunakan sebagai semacam templat untuk yang kedua.

Fase tanda tangan sebenarnya cukup menarik, dan saya tidak akan melakukannya keadilan di sini dengan mencoba untuk memparafrasekannya. Jika Anda ingin detail lebih lanjut, saya sarankan mengikuti tautan untuk memeriksa fase tanda tangannya. "Matriks tanda" yang dihasilkan tentu saja menyimpan semua informasi tentang grafik asli dan kemudian memberikan sedikit lebih banyak informasi. Setelah mengumpulkan tanda tangan, mereka mengabaikan matriks asli karena tanda tangan berisi seluruh informasi tentang matriks asli. Cukuplah untuk mengatakan bahwa tanda tangan melakukan beberapa operasi yang berlaku untuk setiap tepi yang terkait dengan verteks dan kemudian mereka mengumpulkan multiset elemen untuk sebuah vertex untuk membentuk kelas ekivalensi untuk verteks.

Fase kedua - fase sortir - adalah bagian yang meragukan. Secara khusus, saya berharap bahwa jika proses mereka bekerja, maka algoritma yang dikembangkan oleh Anna Lubiw untuk menyediakan "Pengurutan Matriks Leksikal Ganda" (Lihat: http://dl.acm.org/citation.cfm?id=22189 ) juga akan bekerja untuk mendefinisikan bentuk kanonik untuk grafik.

Agar adil, saya tidak sepenuhnya memahami proses pengurutan mereka, meskipun saya pikir mereka melakukan pekerjaan yang wajar untuk menggambarkannya. (Saya hanya belum mengerjakan semua detail). Dengan kata lain, saya mungkin kehilangan sesuatu. Namun, tidak jelas bagaimana proses ini dapat melakukan lebih dari kebetulan menemukan isomorfisme. Tentu, mereka mungkin akan menemukannya dengan probabilitas tinggi, tetapi tidak dengan jaminan. Jika dua grafik adalah non-isomorfik, proses pengurutan tidak akan pernah menemukannya, dan proses tersebut dengan benar menolak grafik.


Bisakah Anda memberikan ringkasan ide algoritma?
Mohammad Al-Turkistany

1
lihat juga math.stackexchange.com/questions/333633/… . Ini hanya menunjukkan bahwa ada peluang bagus untuk menemukan contoh tandingan terhadap program yang disediakan, tetapi Anda masih harus menemukan satu ...
Thomas Klimpel

Grafik yang sangat teratur terlihat seperti taruhan yang bagus, tetapi saya belum beruntung dengan permutasi yang dipilih secara acak dari grafik Petersen, grafik Clebsch, atau grafik benteng 4x4.
Peter Taylor

Demikian pula, saya mencoba grafik Shrikhande, tetapi saya tidak mencoba semua permutasi. Saya mengirim email kepada Anna Lubiw untuk memintanya memberikan contoh tandingan kepada dia, "Susunan Urutan Lexikal Ganda", tetapi dia belum menanggapi (setidaknya belum). Saya menduga bahwa saya perlu melakukan pencarian yang lebih sistematis.
Bill Province

1
jangan merasa Anda melakukan layanan dengan menghilangkan klaim boros dari artikel tersebut meskipun kemungkinan akan menaikkan bendera di situs ini. apa klaim mewah mereka yang membuat Anda skeptis? mungkin mereka mengklaim itu berkinerja cepat, tetapi itu tidak dapat dibantah dengan satu contoh tandingan. yaitu / misalnya itu mungkin algoritma itu benar (tidak tampak) tetapi analisis kompleksitas tidak aktif. tetap mengundang diskusi lebih lanjut / analisis yang lebih dalam di Theoretical Computer Science Chat , di mana beberapa pengunjung telah menyatakan minat yang signifikan pada GI di masa lalu & ada diskusi panjang baru-baru ini.
vzn

Jawaban:


18

Untuk 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

dan 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

yang diperoleh dari graphA.txtdengan menerapkan permutasi (acak)

 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

program C ++ isororphism.cppdari Gambar 6.3. Program C ++ untuk grafik algoritma isomorfisma di http://www.dharwadker.org/tevet/isomorphism/ memberikan output sebagai berikut:

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.

Jadi kita dapat berasumsi bahwa ini adalah contoh tandingan dari algoritma Isomorfisme Grafik Dharwadker-Tevet.

Seperti yang disarankan oleh Bill Province, masalahnya adalah

4.1. Dalil. Jika grafik dan G B adalah isomorfik, maka algoritma tersebut menemukan isomorfisme.GAGB

Keberatan Bill Province adalah bahwa bukti Proposisi 4.1. tidak menggunakan properti khusus dari matriks tanda yang juga tidak akan berlaku untuk matriks adjacency. Lebih tepatnya, langkah berikut dalam buktinya salah:

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

karena bahkan jika baris telah cocok dengan sempurna, itu tidak berarti bahwa label vertex sesuai dengan label yang diberikan oleh isomorfisma .φ

Karena lubang dalam bukti kebenaran diidentifikasi, contoh-contoh di atas harus cukup untuk menyangkal kebenaran yang diklaim dari algoritma yang diusulkan.


Ucapan Terima Kasih Counter-example adalah yang pertama dari pasangan grafik ke-8 dari

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

Untuk memanipulasi grafik, saya menggunakan dan memodifikasi kode sumber dari ScrewBoxR1160.tar ditemukan di

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

Untuk memahami lubang dalam bukti kebenaran, komentar András Salamon tentang Weisfeiler-Lehman sangat membantu, seperti juga penjelasan dari

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

Motivasi untuk menggunakan pertanyaan ini sebagai kesempatan untuk mengenal nauty / Jejak dan aspek praktis dari grafik isomorfisma disediakan oleh vzn. Manfaat belajar bagaimana menggunakan program seni untuk grafik isomorfisme membuatnya berguna untuk meluangkan waktu untuk menemukan contoh tandingan (yang saya yakini ada).


Terima kasih atas tanggapan yang sangat rinci. Apakah ada kriteria seleksi yang Anda gunakan untuk grafik untuk menemukan contoh tandingan? Setelah contoh tandingan dipilih, komentar Anda tampaknya menyarankan bahwa permutasi dipilih secara acak. Apakah ini benar? Atau ada lebih banyak untuk pemilihan permutasi?
Bill Province

@BillProvince Kriteria pemilihan didasarkan pada komentar oleh András Salamon, karena mengindikasikan bahwa konstruksi Cai, Fürer dan Immerman mungkin berhasil. Saya pertama kali mencoba n = 546 contoh dari Pascal Schweitzer, tetapi program C ++ asli isororphism.cpp sekarang menghitung sejak> 1566 menit. Saya menggunakan struktur data yang lebih baik dan belajar setelah> 2jam bahwa contoh-contoh besar bekerja. Saya tahu bahwa trg787 / funkybee memiliki beberapa konstruksi Cai, Fürer dan Immerman di antara pasangan grafiknya, jadi saya mencoba keberuntungan saya. Saya mencoba beberapa permutasi acak (untuk n = 25 contoh), yang kedua berhasil.
Thomas Klimpel

mana yang menghemat waktu, 1. menemukan contoh counter 2. membuktikan 4.1 salah.
Jim

Saya menghentikan isoromorphism.cpp program C ++ asli untuk contoh n = 546 sekarang, setelah berjalan lebih dari 6200 menit tanpa akhir yang terlihat.
Thomas Klimpel

@ThomasKlimpel Saya berencana menulis makalah yang menyebutkan hasil ini. Jika Anda memiliki atribusi profesional yang disukai, Anda dapat mengirimi saya atribusi itu di billprovince@gmail.com. Apapun, saya bermaksud untuk mengikuti persyaratan atribusi yang diposting di blog.stackexchange.com/2009/06/attribution-required .
Bill Province
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.