2011-07-19 13 views
5

İki grafik izomorfik olup olmadığını bulmak için VF2 algorithm okuyorum ama bir şekilde büyük resmi eksik. Bu alandaki ilgili arka planı kaçırıyor olabilirim ama gördüğüm her adımda, adımların neden uygulandığına dair sezgisel bir açıklama görmeden, her adımda kullanmam gereken bir dizi kural var. Temel Googling'ten, bu iki grafiğin izomorfik olup olmadığını bulmak için de facto algoritmalardan biri olarak kabul edilir, ancak bir nedenden ötürü yüksek bir seviyede anlaşılması için yeterince basit bir açıklama bulamamış gibi görünmektedir. Yoksa bu algoritma farklı bir adla mı biliniyor?VF2 algoritmasının çalışan herhangi bir örneği?

Her durumda, bu algoritmanın nasıl çalıştığına dair çalışan örneklerden haberdar olan biri var mı?

+0

Son (ilgili) sorunuza ne oldu? Silindi? Ben de şu anda çok benzer şeyler üzerinde çalışıyorum. Mümkünse bana bir e-posta gönderin (adresim için profilime bakın). Sonra bu yorumu sileceğim. – Szabolcs

+0

@Szabolcs: Aslında, soruyu henüz tamamen sildim. Bunun için üzgünüm. Durağanlık için iyi bir tanım yapmayı düşünüyorum ve kararlılığı nasıl tanımlarımın sorulduğunu sorduğumda birkaç saat içinde yeniden yayınlamayı düşünüyordum. Ancak, şimdilik sorumu iptal ettim. – Legend

cevap

8

Aradığın şeyin bu olduğundan emin değilim, ancak VF2 algoritması aşağıdaki gibi devam ediyor.

let size 2 grafikleri olduğunu varsayalım: V ve V 've V ile V eşleştirmek istiyorum'

algoritma her adımda size biriyle V'in bir sonraki eleman maç çalışır, bir ağaca inmek V 've V' deki tüm düğümleri geçtiğinizde durursunuz (bir yaprak bulduğunuzda).

Algoritma:

  • Birinci adım: 'boş grafik V ile boş V maç.
  • İkinci adım: V'de bir düğüm ile matematik için V'de bir düğüm deneyin '
  • ...
  • N. adım: V'de bir yeni düğüm ile V'de bir düğüm maç çalışır' bunu yapamıyorsanız, ...
  • ...
  • END bir adım geriye ağacında gidip .. önceki adımda yeni bir maç denemek ve tekrar vb geri gidemem eğer: bir yaprak, yani sizi bulduğunda V ' tüm düğümleri ile gitti ya da bir yaprak bulamadan tüm ağaçtan geçerken. İşte

Örnek bir örnektir, algoritma ağacının soldan sağa doğru devam edin.

"Bir < -> B" V B düğümü'

enter image description here

Hope Daha net anlamak ve bu aradığın ne ile V'in Maç düğüm A anlamına gelir.

+0

+1 Evet. Aradığım şey bu! Bunun için çok teşekkürler.Sadece birkaç (aptalca) soru. V (1) 'i V' (1) ile eşleştirdiğinizde, neden bir "NO SOL" ile karşılaştınız? Durumun böyle olduğunu farz edelim, şimdi V (1) 'i V' (2) 'ye geri ve haritalandırdık ve sonra V (3)' e V '(2)' ye ve sonunda V (3) 'e V' (1) 'e eşlenelim mi? Bunu böyle mi okuyor? Bu durumda, diyagramın sonucu nedir? V (1) -V '(2), V (3) -V' (2) ve V (3) -V '(1) eşleştirildi. Neden iki düğümle V (3) eşleştirmeli? Ya da yanlış yorumlamalıyım. Açıklamak için şimdiye kadar geldiğiniz gibi, sakıncası yoksa daha ayrıntılı hale getirebilir misiniz? – Legend

+0

Haklısınız. Sadece düzeltdim. Düğümler adına bir hata yaptım. Bunu tekrar doğrulamalıyım: D ... her iki grafikte de 1, 2, 3 ve 1, 2, 3 kullanmak biraz kafa karıştırıcı. Onu 1,2, 3 ve A B C olarak değiştirmeliydim. Umarım bu doğrudur. :) –

+1

Çok teşekkür ederim! En ayrıntılı açıklamaları bile kaçırdığımı sanıyordum! Tamir ettiğin için teşekkürler. Cevabınızı çözüm olarak kabul ettim, ama eğer zamanınız varsa, beş kuralın ardındaki sezginin ne olduğunu açıklamak ister misiniz (R_pred, R_succ, R_new ...)? Bunlar, grafiğinizde "Sol" vakalarını sonuçlandırmak için kullanılıyor mu? – Legend

İlgili konular