Belirli bir boyuttaki tüm izomorfik olmayan grafikleri numaralandır


30

boyutundaki tüm yönlendirilmemiş grafikleri numaralandırmak istiyorum n, ancak her izomorfizm sınıfının yalnızca bir örneğine ihtiyacım var . Başka bir deyişle, izomorfik olmayan (yönlendirilmemiş) tüm grafikleri n köşelerinde sıralamak istiyorum. Bunu nasıl yapabilirim?

Daha kesin bir ifadeyle, bir yönsüz grafikler bir dizi üretecektir bir algoritma isteyen , aşağıdaki özelliği ile: Her yönsüz grafik için G ile N köşe, dizin vardır I öyle ki G, izomorf için G i . Algoritmanın mümkün olduğunca verimli olmasını istiyorum; Başka bir deyişle, umurumda olan metrik, bu grafikler listesini oluşturmak ve yinelemek için harcanan zamandır. İkincil bir amaç, algoritmanın uygulanamayacak kadar karmaşık olmaması durumunda iyi olur.G1,G2,,GkGniGGi

Her izomorfizm sınıfından en az bir grafiğe ihtiyacım olduğuna dikkat edin, ancak algoritmanın birden fazla örnek üretmesi sorun değil. Özellikle, çıktı sırasının iki izomorfik grafik içermesi sorun değil, eğer böyle bir algoritma bulmayı kolaylaştırır veya tüm olası grafikleri kapsadığı sürece daha verimli algoritmalar sağlar.

Uygulamam aşağıdaki gibidir: büyüklüğündeki tüm grafiklerde test etmek istediğim bir program var . İki grafiğin izomorfik olması durumunda, programımın her ikisinde de aynı şekilde davranacağını biliyorum (her ikisinde de doğru ya da her ikisinde de yanlış olacak), bu nedenle her izomorfizm sınıfından en az bir temsilciyi numaralandırmak yeterlidir ve sonra test bu girişler üzerinde program. Başvurumda n oldukça küçük.nn

Bazı aday algoritmaları düşündüm:

  • Olası tüm bitişik matrisleri, yani köşegenler üzerinde 0'ların hepsine sahip olan tüm simetrik 0 veya 1 matrisleri numaralandırabilirim. Bununla birlikte, bu 2 n ( n - 1 ) / 2 matrisin numaralandırılmasını gerektirir . Bu matrislerin birçoğu izomorfik grafikleri temsil edecek, bu yüzden çok çaba harcıyor gibi görünüyor.n×n2n(n1)/2

  • Tüm olası bitişik matrisleri numaralandırabilirim ve her biri için, daha önce çıktığım grafiklerden herhangi birinin izomorfik olup olmadığını test edebilirdim; Daha önce çıktısı olan herhangi birşeye izomorfik değilse, çıktısını alın. Bu, çıktı listesini büyük ölçüde kısaltacaktır, ancak yine de en az hesaplama basamağı gerektirmektedir (grafiğin izomorfizm kontrolünün süper hızlı olduğunu varsaysak bile), bu yüzden benim ölçümümden daha iyi değil.2n(n1)/2

  • Bir bitişik matris alt kümesini saymak mümkündür. Özel olarak, bir grafiktir n köşe V = { v 1 , ... , v , n } ben köşe düzenlenmiştir varsayabiliriz genelliği kaybetmeden bu yüzden ° h 1° h 2° h , nGnV={v1,,vn}degv1degv2degvn. Başka bir deyişle, her grafik, köşelerin azalan olmayan bir dereceye göre düzenlenmiş olduğu bir bölgeye izomorfiktir. Bu nedenle, yalnızca bu özelliğe sahip olan bitişik matrisleri numaralandırmak yeterlidir. Tam olarak ne kadar bitişik matrisin olduğunu bilmiyorum, ama daha az sayıda ve 2 n ( n - 1 ) / 2 adımdan daha azıyla sayılabilir . hesaplama. Ancak, bu hala çok fazla fazlalık bırakıyor: birçok izomorfizm sınıfı hala birçok kez ele alınacak, bu yüzden bunun optimal olduğuna şüpheliyim.2n(n1)/22n(n1)/2

Daha iyisini yapabilir miyiz? Doğru anlarsam, yaklaşık izomorfik olmayan grafiklerin denklik sınıfları. Çalışma süresi yukarıdaki algoritmalardan daha iyi olan bir algoritma bulabilir miyiz? 2 n ( n - 1 ) / 2 / n'ye ne kadar yaklaşabiliriz ? alt sınır? Öncelikle küçük n için izlenebilirliğe önem veriyorum (örneğin, n = 5 veya n = 82n(n1)/2/n!2n(n1)/2/n!nn=5n=8ya da öylesine; bir makul bir tamamlanma Böyle bir algoritma, çalıştırabilir kadar küçük), o kadar çok büyük için asimptotikler ilgili .n

İlgili: Eşdeğer olmayan ikili matrisler oluşturmak (ne yazık ki geçerli bir cevap almış gibi görünmese de).


1
Afaik, izomorfizme kadar büyüklükteki grafiklerin sayısı bile bilinmiyor, bu yüzden (kaba kuvvet olmayan) bir algoritmanın mevcut olma ihtimalinin düşük olduğunu düşünüyorum. Aday algoritmalarınızla ilgili olarak, grafik izomorfizmini (afaik) kontrol etmek için bir polinom-zaman algoritması bilmediğimizi unutmayın, bu nedenle O ( | output | ) 'da çalışması gereken herhangi bir algoritma izomorfizmi kontrol etmekten kaçınmalıdır genellikle / dumbly). (Ayrıca, | output | = Ω ( n | classes | ) .)nO(|output|)|output|=Ω(n|classes|)
Raphael

@Raphael, (1) Biliyorum, izomorfizme kadar büyüklüğündeki grafikleri tam olarak bilmiyoruz , ancak bu problemin mutlaka bilmesini gerektirmiyor (örneğin, tekrarlarıma uygun olduğum için). Bunun neden verebileceğimi bilmiyorum, verdiğimden daha iyi bir algoritma olması mümkün değil. (2) Evet, hiçbir grafik eşbiçimlilik için polinom zamanlı bir algoritma var bilinir biliyorum, ama biz değerleri hakkında konuşuyor olacağım n gibi n = 6 hızlı yüzden mevcut algoritmaları muhtemelen olacak, burada - ve yine, sadece söz o aday algoritması onu reddetmek için, bu yüzden yine de tartışmalı. nnn=6
DW

For 6, en fazla ben koşe sayısının ve kenarlarının sayısını, seçilmiş ve önerdiğiniz olarak derecesiyle olmayan azalarak köşe etiketleri sipariş ettikten sonra, o çok az olası izomorfizma sınıfları olacağına inanıyoruz. Bu noktada, kalan vakaları örneğin NAUTY veya BLISS kullanarak kaba kuvvetli bir izomorfizm kontrolü ile sıralamak mümkün olabilir. n
Simon

Yanıtlar:


19

Küçük köşe sayıları için tüm izomorfik olmayan grafikleri numaralandırmanın en kolay yolu, onları Brendan McKay koleksiyonundan indirmektir . Numaralandırma algoritması, McKay'in [1] makalesinde açıklanmıştır ve n-1 boyutunda izomorf olmayanları mümkün olan tüm yollarla uzatarak ve yeni tepe noktasının kanonik olup olmadığını kontrol etmek için çalışmaktadır. gengMcKay'in grafik izomorfizm kontrolünde olduğu gibi uygulanmaktadır nauty.

[1]: BD McKay, etiketli numaralandırma için bir tekniğin uygulamaları , Congressus Numerantium, 40 (1983) 207-221.


Bir problemim var. Dediğiniz gibi, bir boyut grafiğini alıp bir n-1tepe noktasıyla mümkün olan her şekilde uzatabilirim. Sonra köşe noktasının kanonik etiketi olup olmadığını kontrol ediyorum, diyelim 1(kanonik köşe ?!). Bununla birlikte, grafik kanonik forma sadece izomorfik ise ve tepe noktası farklı bir etikete sahipse ne olur? Etiketli tepe noktasının 1aynı yörüngede olup olmadığını görmek için otomorfizmleri kontrol etmeye çalıştım , ancak daha sonra listemde iki kez grafikle karşılaşıyorum. Kağıt bana gerçekten yardımcı olmuyor. Ayrıca, geng'nin kaynak kodu tüm bu ikili optimizasyonlar ve neredeyse tüm yorumlar nedeniyle okunamıyor.
Alex

1
@Alex Kesinlikle yeni köşenin 1 ile aynı yörüngede olup olmadığını belirleyen kontrol versiyonunu kesinlikle istiyorsunuz. Bunun iki izomorfik grafik ürettiği bir örnek verebilir misiniz? Belki bu yeni bir soru olarak daha iyi olurdu.
David Eisenstat

Tamam çok teşekkür ederim! Sanırım bu durumda "mümkün olan her şekilde genişletme" grafiğin otomatizmalarını n-1köşeleri olan bir şekilde dikkate almalı mı? örneğin n = 3 ve önceki grafiğim P2 idi. Daha sonra, üçüncü köşeye önceki köşelerden birine katıldığım iki durum elbette aynı P3 grafiğiyle sonuçlanacaktır. Nasıl doğru bir şekilde "tüm yollarla genişletilebileceğini" hızlı bir şekilde açıklayabilir misiniz yoksa bunu başka bir soru olarak mı sormalıyım? (Ayrıca, programımın işleri biraz daha karmaşık hale getiren özel bir grafik türünde izomorfizmler bulması gerektiğinden, bazen olanları kafam karıştı.)
Alex

@Alex Evet, bu uzatma kendisinin kanonik olması gerektiği görünüyor. Muhtemelen yeni bir soruya değecektir, çünkü bunun kafamın üstünden nasıl geçtiğini hatırlamıyorum.
David Eisenstat

1
Nauty ana sayfa
Guy Coder

4

Üçüncü fikrinizde bir gelişme öneriyorum: Bitişiklik matrisini sırayla doldurun, dereceleri ve önceden doldurulmuş köşe uçlarına bitişiklik ile eşdeğer olan köşeleri takip edin. Böylece başlangıçta denklik sınıfları aynı derecede olan tüm düğümlerden oluşacaktır.
Yeni doldurulmuş bir tepe noktası eşdeğer düğümlerin sadece bazılarına bitişik olduğunda, herhangi bir seçenek aynı izomirizm sınıflarından temsilcilere yol açar. Bu nedenle, yalnızca şu anda doldurulmuş tepe noktasının en yüksek sayıya sahip eşdeğer köşe noktalarına bitişik olduğu atamayı göz önünde bulundururuz (ve denklik sınıfını kalan işlem için ikiye böleriz).

Bu yaklaşımın tüm isomorfizmleri kapsadığını (ancak ispat etmeye çalışmadığımı) düşünüyorum. n<6.
Daha büyük grafikler için, kenarları olan bir alt metinde olduğu gerçeğine dayanan izomorfizmler alabiliriz.(1,2) ve (3,4)(ve başkaları yok), iki eşdeğer köşe grubumuz var, ancak bu yaklaşım tarafından izlenmiyor. (Tabii ki uzatılabilir, ancak sadece amaçlayansanız, çabaya değeceğinden şüpheliyim)n=6.)

Bu algoritmanın saf bir uygulaması, bitiş noktalarındaki matrisin verilen derecelere ve önceki ödevlere göre doldurulamayacağı sonucuna vardığı için çıkmaz noktalara girecektir. Bunları erken tespit etmek / filtrelemek biraz çaba harcayabilir. Bazı fikirler:

  • Derecelerin toplamı tuhafsa, asla bir grafik oluşturmazlar
  • Kalan tepe noktalarının tümüne / hiçbirine derhal bağlanması gereken köşeler için girişleri doldurun.

3

Bu kağıtlar ilgi çekici olabilir.

"Grafiklerin özlü temsilleri üzerine", Gyorgy Turan, Kesikli Uygulamalı Matematik, Cilt 8, Sayı 3, Temmuz 1984, s. 289-294 http://www.sciencedirect.com/science/article/pii/0166218X84901264

"Genel etiketsiz grafiklerin özlü gösterimi", Moni Naor, Kesikli Uygulamalı Matematik, Cilt 28, Sayı 3, Eylül 1990, s. 303-307 http://www.sciencedirect.com/science/article/pii/0166218X9090011Z

Bir vertex etiketli grafiği kodlamak için kodlama ve kod çözme işlevlerini sunarlar, böylelikle eğer böyle biri iki diğerinin vertex etiketlerine izin veriyorsa ve aynı kodlayıcıya eşlenir.

Ayrıca kodlama ve kod çözme fonksiyonlarının verimli olduğu kanıtlanmıştır.

İlk makale düzlemsel grafiklerle ilgilidir. İkinci yazıda, düzlemsel kısıtlama kaldırılmıştır.

EDIT: Bu makale ayrıca alakalı olabilir:

Polinom Zamanında Grafik İzomorfizmi, Laszlo Babai, Chicago Üniversitesi, arXiv'e Hazırlık, 9 Aralık 2015 http://arxiv.org/pdf/1512.03547v1.pdf

Babai'nin sonucunu açıklaması haberi yaptı: https://www.sciencenews.org/article/new-algorithm-cracks-graph-problem

Fakat belki de OP’lerin sorusunu bu üç bildiri ile karıştırmakla yanıldım. OP, izomorfik olmayan grafikleri numaralandırmak istemektedir, ancak iki grafiğin ne zaman AR izomorfik olduğunu belirlemek için etkili metotların bulunması faydalı olabilir mi?


Düşünceyi takdir ediyorum, ama korkarım iki grafiğin izomorfik olup olmadığını nasıl belirleyeceğimi sormuyorum. Gerçekten izomorfik olmayan grafikleri nasıl sıralayacağımı soruyorum. İki grafiğin izomorfik olup olmadığını test etmek için algoritmaları tanımlamak bana gerçekten yardımcı değil, korkarım - denemek için teşekkürler!
DW

Turan ve Naor (yukarıda bahsettiğim makalelerde), tanımladığınız türden fonksiyonlar, yani bir grafiği hangi grafiğin ait olduğu denklik sınıfının kanonik bir temsilcisiyle eşleştirir. Bu kanonik temsilcileri numaralandırabilirseniz, sorununuzu çözecek gibi görünüyor.
Simon,

Babai, quasipolynomial çalışma zamanı iddiasını geri çekti . Görünüşe göre analizde bir hata vardı.
Raphael

1

Doksanlı yılların başlarında tam olarak bu soru ile ilgili bir makale var:

Etiketlenmemiş grafiklerin Leslie Goldberg tarafından listelenmesinde verimli algoritmalar .

Yaklaşım, her izomorfizm sınıfının tam olarak bir temsilcisinin sayıldığını ve sonraki iki grafiğin üretilmesi arasında yalnızca polinom gecikmesinin olduğunu garanti eder.

Burada önerilen yöntemler bu gecikme garantilerine izin vermez: üssel olarak birçok olabilir (in n) yeni bir izomorfizm sınıfı keşfedilmeden önce, önceden sayılan bazı grafiklere izomorfik olduğu ve sayılan komşu matrisler.

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.