Etiketli grafikler için grafik izomorfizmi problemi


11

Etiketlenmemiş grafikler söz konusu olduğunda, grafik izomorfizm problemi, pratikte çok iyi performans gösteren bir dizi algoritma ile ele alınabilir. Yani, en kötü çalışma süresi üstel olsa da, genellikle polinom çalışma süresi vardır.

Etiketli grafiklerde durumun benzer olduğunu umuyordum. Ancak, "pratik olarak verimli" bir algoritma öneren herhangi bir referans bulmak için gerçekten zor zamanlar var.

Not: Burada, izomorfizmin etiketleri korumasını istiyoruz. Yani, iki sonlu otomata / süreç cebiri terimi arasındaki bir izomorfizm, otomata / terimlerin aslında "düğümlerin yeniden adlandırılmasına eşittir" anlamına gelecektir.

Bulduğum tek referans, Wikipedia'da etiketli grafiklerin izomorfizm probleminin polinom olarak sıradan grafiklere indirgenebileceğini belirten referanstı. Bununla birlikte, temeldeki makale, pratik algoritmalardan ziyade karmaşıklık teorisi ile ilgilidir.

Bir şey eksik ya da iki etiketli grafik izomorfik olup olmadığına karar vermek için etkili bir "sezgisel" algoritma yoktur gerçekten mi?

Herhangi bir ipucu veya referans harika olurdu.


3
Bize sorundan kurtulmak için wikipedia makalesine ve bulduğunuz makaleye referans vermek güzel olurdu.
babou

1
"Etiketleri koruyan" bir izomorfizmle ne demek istiyorsun? Bir otomat bağlamında tepe etiketleri farklıdır. Bu nedenle, herhangi bir izomorfizm, kaynakta farklı etiketlere sahip iki köşenin görüntüde de farklı etiketlere sahip olması gerektiği anlamıyla "etiketleri korur". Bu problem sıradan grafik izomorfizm problemiyle aynıdır. İzomorfizmin bir tepe noktasını aynı etikete sahip bir eşlemeyle eşlemesi gerektiğini kastediyorsanız, köşe etiketleri her zaman farklı olduğunda algoritma önemsizdir: sadece etiketlerdeki kimlik haritasının bir izomorfizm olduğunu kontrol edin.
David Richerby

Birkaç köşenin aynı etikete sahip olabileceği ve bir tepe noktasının görüntüsünün, orijinal grafikle aynı etikete sahip olması gerektiği anlamına gelirseniz, bu genellikle renkli grafikler arasında izomorfizm olarak adlandırılır . Bu durumda, renkleri gadget'larla değiştirerek genel GI'de basit bir azalma olur. Dikkatle seçilmiş gadget'ları uygulayıp standart bir GI algoritması kullanarak muhtemelen iyi bir pratik algoritma elde edebilirsiniz.
David Richerby

Etiketlerin eşdeğerlik sınıflarını da koruyan sıradan bir digraf izomorfizmi varsa, iki kenar etiketli digrafı izomorfik olarak düşünmek istemiyor musunuz? Örneğinizde, ikisi FA olarak düşünüldüğünde, ve tarafından kabul edilen diller farklı olsa da (belki de), ikameleriyle birbirlerinin sadece homorfik görüntüleridir . S a c , b dSac,bd
Rick Decker

4
Sorun önemsiz bir şekilde GI-tamamlanmış (sadece tüm kenarların aynı etikete sahip olduğu bir grafik seçin). (Tamsayılar etiketlerden 1 ilk bir 1: oluşturmak, bu grafik eşbiçimlilik fazla olmayan zor olduğunu göstermek için İle etiketlenmiş, her kenar ortasında eklemek sembolün s tam grafik, g ( s ) köşe noktaları ( K gr ( lar )g:a1,b2,c3,...)sg(s)Kg(s)) artı kenarın ok tarafında fazladan bir düğüm. Sonuçta ortaya çıkan grafikler sadece orijinal otomatalar izomorfikse izomorfiktir.
Vor

Yanıtlar:


5

Bu yazı ile ilgilenebilirsiniz:

Aidan Hogan: İzomorfizmi Koruyarak Boş Düğümleri Geliştirme. WWW 2015: 430-440

RDF grafiklerinin izomorfizmini test etmek için temel olarak sabit etiketler içerebilen yönlendirilmiş etiketli grafikler olan bir algoritmaya (Nauty tabanlı) sahiptir. Algoritma, arama alanını daraltmak için etiketleri dikkate alır.

Girdi etiketli grafiğinizi bir RDF grafiği olarak temsil edebiliyorsanız, blabelizomorfizmayı test etmek için ilgili " " yazılım paketini kullanmayı deneyebilirsiniz .


4

Algoritmanın k-boyut Weisfeiler-Lehman algoritmaları kategorisine ait olduğunu ve düzenli grafiklerle başarısız olduğunu öğrendim. Daha fazlası için:

http://dabacon.org/pontiff/?p=4148

Orijinal yayın aşağıdaki gibidir:

Yıllar önce, tam olarak bu sorun için basit ve esnek bir algoritma oluşturdum (etiketli grafik izomorfizmi).

Buna "Powerhash" adını verdim ve algoritmayı oluşturmak için iki öngörü gerekiyordu. Birincisi, PageRank'te de kullanılan güç yineleme grafik algoritmasıdır. İkincisi, güç yinelemesinin iç adım işlevini istediğimiz herhangi bir şeyle değiştirme yeteneğidir. Her yineleme ve her düğüm için aşağıdakileri yapan bir işlevle değiştirdim:

  • Düğümün komşularının karmalarını (önceki yinelemeden) sıralayın
  • Birleştirilmiş sıralı karmaları karma
  • Düğümün karmasını yeni hesaplanan karmasıyla değiştir

İlk adımda, bir düğümün karması doğrudan komşularından etkilenir. İkinci adımda, bir düğümün karması, ondan 2 durak uzaktaki mahalleden etkilenir. N'inci adımda, bir düğümün karması çevresindeki N-şerbetçiotu mahallesinden etkilenecektir. Bu nedenle Powerhash'ı N = graph_radius adımları için çalıştırmaya devam etmeniz yeterlidir. Sonunda, grafik merkezi düğümünün karması tüm grafikten etkilenmiş olacaktır.

Son karmayı üretmek için, son adımın düğüm karmasını sıralayın ve bunları birleştirin. Bundan sonra, iki grafiğin izomorfik olup olmadığını bulmak için son karmaları karşılaştırabilirsiniz. Etiketleriniz varsa, her düğüm için hesapladığınız iç karmalara (ilk yinelemede) ekleyin.

Bununla ilgili daha fazla bilgi için buradaki yazımıza bakabilirsiniz:

https://plus.google.com/114866592715069940152/posts/fmBFhjhQcZF

Yukarıdaki algoritma "madIS" fonksiyonel ilişkisel veritabanı içinde uygulandı. Algoritmanın kaynak kodunu burada bulabilirsiniz:

https://github.com/madgik/madis/blob/master/src/functions/aggregate/graph.py


Sadece algoritmanızın polinom olduğuna dair bir uyarı ve bu yüzden tamamlanırsa, CS'de G'de P ile ilgili uzun süredir açık bir problem çözdünüz. :) (Açıkladığınız algoritmanın yanlış pozitifler vereceği çeşitli durumlar vardır. .)
badroit

Algoritma yaklaşık ve kesinlikle tamamlanmadı (blog yazısında da öyle diyorum). Çalışmasının nedeni, yarattığı karmaların çok büyük olması, bu yüzden milyonlarca grafiklik bir veritabanında yanlış pozitif karma çarpışma olasılığı sonsuz olacaktır. Eğer herhangi bir yanlış pozitif hash çarpışması vakası bulmayı başarırsanız, bunu bilmek çok isterim. Bunun nedeni (kriptografik karmaları kullanırken), kriptografik karması işlevini "kırmayı" başarmış olmanızdır.
estama

Bir karma çarpışma olasılığının ne kadar sonsuz olduğunu açıklamak. 256 bitlik bir kriptografik hash'ı, dünyanın tüm farklı dosyalarının aynı değere hash olmadığından emin olmak için fazlasıyla yeterli olduğunu düşünürdüm (git, örneğin bunu garanti etmek için 160 bit olan SHA-1 kullanır). Powerhash'tan bir sağlama 128 bit * graph_node_count (MD5 karma kullanarak) olacaktır. Yani pratik olarak, aralarında karma bir çarpışma bulmak için asla (bu evrende) yeterli grafik oluşturamazsınız.
estama

1
Yani algoritmanız hash çarpışması olmasa bile yanlış pozitifler verecekti. Literatürde grafik izomorfizmi için birçok polinom-zaman algoritması önerilmiştir ve hepsi yanlış pozitifler vermektedir. İlgili bir soru burada: cs.stackexchange.com/questions/50939/… .
badroit

1
Tartışma için teşekkürler. Biraz daha araştırma yaparak, yukarıdaki algoritmanın k-boyutlu Weisfeiler-Lehman algoritmaları kategorisinde olduğunu ve düzenli grafiklerle başarısız olduğunu buldum. Daha fazlası için: dabacon.org/pontiff/?p=4148
estama
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.