Rastgele test grafik algoritmaları için girdiler mi üretiyorsunuz?


19

Algoritmaları test ederken, yaygın bir yaklaşım rastgele testtir: bazı dağıtımlara (genellikle tekdüze) göre önemli sayıda girdi oluşturun, algoritmayı üzerinde çalıştırın ve doğruluğunu doğrulayın. Modern test çerçeveleri, bazı kısıtlamalarla algoritma imzası verildiğinde otomatik olarak girdiler oluşturabilir.

Girişler sayılar, listeler veya dizeler ise, bu girişleri düz ileriye doğru üretir. Ağaçlar daha zordur, ancak yine de kolaydır (stokastik bağlamsız gramerler veya benzer yaklaşımlar kullanarak).

Nasıl rastgele grafikler oluşturabilirsiniz (verimli)? Genellikle, grafikleri rastgele düzgün bir şekilde seçmek istediğiniz şey değildir: bağlı veya düzlemsel veya çevrimsiz olmalı veya başka herhangi bir özelliği yerine getirmelidir. Potansiyel olarak büyük istenmeyen grafik kümesi nedeniyle reddetme örneklemesi yetersiz gözükmektedir.

Bakmak için faydalı dağılımlar nelerdir? Burada yararlı olduğu anlamına gelir

  • grafikler muhtemelen eldeki algoritmayı test edecek ve
  • etkin ve verimli bir şekilde üretilebilirler.

Rastgele grafikler için birçok model olduğunu biliyorum, bu yüzden bu konuda grafik üretimi için en iyisi olan içgörüleri takdir ediyorum.

"Bazı algoritmalar" çok genelse, test edilen somut bir algoritma sınıfı olarak lütfen en kısa yol bulma algoritmalarını kullanın. Test grafikleri birbirine bağlı ve oldukça yoğun olmalıdır (yüksek olasılıkla veya en azından beklentiyle). Test için en uygun çözüm, en kısa yol etrafında rastgele grafikler oluşturmak olacaktır, böylece istenen sonucu biliyoruz (başka bir algoritma kullanmak zorunda kalmadan).


Bu soru gelmesiyle yükselişe geçti o biri .
Raphael

Yanıtlar:


15

Küçük dünya topolojisine sahip rastgele grafikler

Küçük dünya topolojisine sahip grafiklerde , düğümler oldukça kümelenmiştir, ancak aralarındaki yol uzunluğu küçüktür. Bunun gibi bir topoloji, yerel kararlar küresel olarak hızla yayıldığı için arama sorunlarını çok zorlaştırabilir. Başka bir deyişle, kısayollar buluşsal yöntemleri yanıltabilir. Ayrıca, birçok farklı arama probleminin küçük bir dünya topolojisine sahip olduğu gösterilmiştir.

Watts ve Strogatz [1] küçük dünya grafikleri için bir model öneriyorlar . İlk olarak, düzenli bir grafikle başlıyoruz. Bozukluk, her bir kenarı olasılıkla ile rasgele yeniden bağlayarak grafiğe eklenir . Eğer , grafik tamamen düzenli ve sıralanır. Eğer , grafik tamamen rastgele ve düzensiz olan. Değerleri ise ne düzenli veya tamamen düzensiz olan üretmek grafikler. Grafiklerin ve için küçük bir dünya topolojisi yoktur .p = 0 p = 1 0 < p < 1 p = 0 p = 1pp=0p=10<p<1p=0p=1

Watt ve Strogatz ile bir halka kafeste başlamak düğümler ve en yakın komşuları. Örgüden rastgele bir şekilde eşit olarak bir düğüm seçilir ve yeniden bağlanmış bir kenar yeniden bağlanır. Yeniden kablolama yinelenen bir kenar oluşturuyorsa, dokunulmadan bırakılır. Büyük, seyrek grafikler için isterler , burada grafiğin bağlı kalmasını sağlar.k n k ln ( n ) 1 k ln ( n )nkn»k»ln(n)»1k»ln(n)

Watts ve Strogatz'ın modeli biraz popüler, ancak bazı dezavantajları var. Walsh [2], model kullanılarak oluşturulan grafiklerde randomizasyon ve yeniden başlatma stratejilerinin etkilerini araştırmaktadır. Virtanen [3] tarafından hazırlanan ve karmaşık sistemlerin gerçekçi bir şekilde modellenmesi gereğini motive eden diğer modelleri kapsayan bir makalesi de vardır.

Rastgele basit düzlemsel grafikler

köşelerde rastgele eşit olarak rastgele basit düzlemsel grafikler oluşturmak verimli bir şekilde yapılabilir. köşeli düzlemsel grafik sayısı , , oluşturma işlevleri kullanılarak belirlenebilir. Değeri için olup ve , sırasıyla. Sayılar çok karmaşık olduğundan, kendileri için kapalı bir formül bulması beklenmez. Giménez ve Noy [4], : büyümesi için kesin bir asimtotik tahmin verir, burada ve, n g n g n 1 n 9 1 , 2 , 8 , 64 , 1023 , 32.071 , 1.823.707 , 163.947.848 20402420291 g n g n ~ g n - 7 / 2 γ n n ! , g γ g 0.42609 γ 27.22687nngngn1n91,2,8,64,1023,32071,1823707,16394784820402420291gn

gn~gn-7/2γnn!,
gγyaklaşık olarak ve değerleri ile analitik olarak belirlenen sabitlerdir .g0,42609γ27,22687

Sonucun kanıtı Fusy tarafından çok verimli bir algoritmaya yol açar [5]. Fusy yaklaşık büyüklükte rastgele bir jeneratör ve aynı zamanda düzlemsel grafiklerin tam boyutlu bir rastgele jeneratörü verir. Yaklaşık boyut algoritması doğrusal zamanda çalışır, tam boyut algoritması ikinci dereceden zamanda çalışır. Algoritmalar birbirini izleyen bağlanabilirlik düzeylerine göre ayrışmaya dayanır: düzlemsel grafik bağlı 2 bağlı 3 bağlı ikili ağaç.

Algoritmalar daha sonra Duchon, Flajolet, Louchard ve Schaeffer tarafından Boltzmann örnekleyicilerinin çerçevesi kullanılarak düzlemsel bir grafiğin ayrışmasını rastgele bir jeneratöre çevirerek çalışırlar [6]. Bir kombinatoryal sınıf verildiğinde, bir Boltzmann örnekleyici , olasılıklı boyutunda bir nesne çizer ; burada , kullanıcı tarafından ayarlanan bazı gerçek parametredir. Ayrıca, olasılık dağılımı, sınıfın tüm nesnelerine yayılır ve aynı boyuttaki nesnelerin aynı meydana gelme olasılığı vardır. Ayrıca, sabit bir boyutla kısıtlandığında olasılık dağılımı eşittir.x n xnxnx

Hafif bir tanıtım için Fusy'nin sunumuna bakın .


[1] DJ Watts ve SH Strogatz. 'Küçük dünya' ağlarının kolektif dinamikleri. Nature, 393: 440-442,1998 .

[2] Toby Walsh. Küçük bir dünyada arama yapın. 16. Uluslararası Yapay Zeka Ortak Konferansı (IJCAI-99-Vol2), sayfa 1172-1177, 1999 .

[3] Satu Virtanen. Düzgün olmayan rasgele grafik modellerinin özellikleri. Araştırma Raporu A77, Helsinki Teknoloji Üniversitesi, Teorik Bilgisayar Bilimi Laboratuvarı, 2003 .

[4] O. Giménez ve M. Noy. Düzlemsel grafiklerin asimtotik sayımı ve sınır kanunları, arXiv math.CO/0501269. Ayrık Matematik ve Teorik Bilgisayar Bilimleri AD (2005), 147-156'da genişletilmiş bir özet ortaya çıkmıştır .

[5] E. Fusy. Düzlemsel grafiklerin karesel ve doğrusal zaman üretimi, Ayrık Matematik ve Teorik Bilgisayar Bilimi AD (2005), 125-138 .

[6] P. Duchon, P. Flajolet, G. Louchard ve G. Schaeffer. Kombinatoryal yapıların rastgele üretimi için Boltzmann örnekleyici. Kombinatorik, Olasılık ve Hesaplama, 13 (4-5): 577-625, 2004 .


3
+1 (00) Boltzmann örneklemesinden bahsettiği için, IMHO en güçlü otomatik rastgele nesil hesabı !!
Jérémie
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.