Dinamik grafikle ilgili sorunlara nasıl yaklaşılır?


15

Bu soruyu genel yığın akışında sordum ve buraya yönlendirildim.

Bazılarının genel olarak kısmi veya tamamen dinamik grafik problemlerine nasıl yaklaşılacağını açıklayabilmesi harika olacaktır.

Örneğin:

  • Her örnekte bir kenar kaldırıldığında, n örneği için yönlendirilmemiş ağırlıklı bir grafikte iki köşe arasındaki En Kısa Yolu bulun .(u,v)n
  • Her örnekte bir kenar kaldırıldığında, vb. İçin yönlendirilmemiş bir grafikteki bağlı bileşenlerin sayısını bulun.

Kısa bir süre önce bir programlama yarışmasında bu tür sorunlarla karşılaştım. İnternette arama yaptım ve dinamik grafikler ile ilgili birçok araştırma makalesi buldum [1,2]. Onlardan birkaçını okudum ve doğrudan doğruya bir şey bulamadım (kümeleme, korunma vb.). Belirsiz olduğum için üzgünüm.

Bazılarının bu kavramları daha iyi anlamak için işaretçiler sağlayıp sağlamadığını gerçekten takdir ediyorum.


  1. Dinamik Grafik Algoritmaları D. Eppstein, Z. Galil, GF Italiano (1999)
  2. G. Nannicini, L. Liberti'nin dinamik grafiklerindeki en kısa yollar (2008)

Yanıtlar:


12

Somut teknikler vermek zor çünkü "dinamik" çok çeşitli şeyler anlamına gelebilir ve algoritmalar / sonuçlar modelinize bağlıdır. Aşağıda endişelerin bir özeti verilmiştir. İşte bazı farklı endişeler ve modeller (Peter'ın başka bir cevapta belirttiği ile ilgili) hakkında genel bir bakış sunan bir makale.


Genel olarak dinamik problemler için kilit konular şunlardır:

  • her durumda kesin bir çözüm mü istiyorsunuz, yoksa yaklaşıma izin veriliyor mu?
  • hangi değişikliklerin meydana geleceği (örneğin bir olasılık dağılımı) hakkında bir şey biliyor musunuz yoksa eşit derecede olası mı?
  • algoritma değişiklikler hakkında nasıl bilgi sahibi olur?

Tipik bir dinamik model aşağıdaki gibidir:

  1. Bir grafik verildiğinde, bazı özellikleri hesaplamak istersiniz. İlk grafik için bir çözüm hesaplamanıza izin verilir.

  2. (e,f)

  3. n

İşte 3 olası değişiklik:

  • Bilgi / zaman / alan sınırlamaları (bunun bir örneği çevrimiçi algoritmalar ) nedeniyle tam çözümü başlangıçta hesaplamanıza izin verilmiyor

  • 2. adımda, algoritmaya değişiklik "söylenmez", ancak veri yapısını veya bir şeyi sorgulayarak grafikteki değişikliği bulması gerekir.

  • Bilginin yerel olarak keşfedildiği ve hesaplama / değişikliklerin yerel olarak yapıldığı dağıtılmış bir model (Peter'ın başka bir cevapta tartıştığı gibi).

Dinamik modeller genellikle kaynak (ör. Zaman / boşluk) sınırlamaları nedeniyle ilginçtir. 2. adımda, tam bir cevap hesaplamama izin verildiyse (1. adımda yaptığım gibi), sorun tekrarlanır, çünkü bu sadece tekrarlanan statik grafik problemidir. Değişikliği hesaplamak için gereken en az miktarda kaynağa daha çok ilgi duyuyoruz.


Cevabınız için çok teşekkürler. Basit, kısmen dinamik bir grafik problemini çözmenin karmaşıklıklarını ve yollarını anlamaya çalışıyordum.
Prakash

Cevabınız için çok teşekkürler. Makaleleri inceleyeceğim. Basit, kısmen dinamik bir grafik problemini çözmenin karmaşıklıklarını ve yollarını anlamaya çalışıyordum. Örneğin, yollar ile birbirine bağlanmış, yönlendirilmemiş ve mesafeye göre ağırlıklandırılmış bir dizi şehir verilmiştir. Her seferinde çeşitli nedenlerden dolayı bir yol engellendiğinde, 2 şehir arasındaki en kısa yolu bulun. Nj için Dijkstra çalıştırmak pratik değildir, A * gibi mevcut algoritmaları daha iyi zaman sınırlamasıyla çözmek için uyarlamanın bir yolu var mı ya da makalelerde tartışılan yaklaşımlar tek yol.
Prakash

A *, Dijkstra + buluşsal yöntemlerinin genelleştirilmesidir; performans en kötü durumda benzerdir. Bana göre, sorununuz için önemli olan soru "bir sonraki örneği daha hızlı hale getirecek örnekler arasında ne tür bilgileri saklayabilirsiniz ?" Örneğin, bir önceki en kısa yolu saklarsam, "başarısız" olup olmadığını hızlıca öğrenebilirim, ancak bir sonraki en kısa yolu hesaplamanın açık bir yolu yoktur. (Önceki örnekten k en kısa yolları saklasanız bile, bunun herhangi bir k için geçerli olduğundan şüpheleniyorum.)
Lucas Cook

(Önceki yorumum çoğunlukla en kötü durum çözümlerinden bahsediyor. Belki ortalama bir durum umursuyorsunuz? O zaman iyi bir A * tipi çözüm yapan bir buluşsal yöntem olabilir.)
Lucas Cook

10

Dinamik grafik modelleri dağıtılmış hesaplamada yoğun olarak çalışılmıştır. Dağıtılmış algoritmalar için, hesaplama mermi şeklinde yapılandırılmıştır ve grafiklerin topolojisi (= ağ), bir rakibin kontrolünde olan raunddan raya bazı değişikliklere uğrayabilir. Dahası, grafiğin her düğümü (mevcut!) Komşularına mesaj gönderebilen bir algoritma çalıştırır. (Bu mesaj, bir sonraki turda komşu algoritmasının girdisidir.) İşleri ilginç kılan şey, bir düğümün tüm grafiği değil, yalnızca yerel komşusunu "görmemesi" dir.

Bu ayarlarda dikkate alınan sorunlar, örneğin , grafikteki her düğümün başlangıçta bir belirteç içerdiği ve sonunda her düğümün her belirteci görmesini istediğiniz yere yayılan bilgilerdir . Amaç, bunu en az sayıda mesaj kullanarak en az sayıda rauntta gerçekleştiren algoritmalar tasarlamaktır. Yakın zamanda yapılan bir anket için [2] 'ye bakınız.

Dağıtılmamış ayar için, bahsettiğiniz kağıdın bir uzantısı olan [1] 'e bakmak isteyebilirsiniz.


[1] Aris Anagnostopoulos, Ravi Kumar, Mohammad Mahdian, Eli Upfal, Fabio Vandin: Gelişen grafiklerde algoritmalar . ITCS 2012: 149-160

[2] Fabian Kuhn, Rotem Oshman: Dinamik ağlar: modeller ve algoritmalar . SIGACT News 42 (1): 82-96 (2011)


Bu mesaj geçirme algoritmalarının yakınsama (eksikliği) ile ilgili sorunları yok mu?
Raphael

"Yakınsama" ile ne demek istediğinizi anladığımdan emin değilim. Grafik her turda bağlı kaldığı sürece, belirli bir token t gören düğüm sayısı en az 1 artacaktır. Bu nedenle, n turdan sonra rakiplerin topolojiyi nasıl değiştirdiğine bakılmaksızın herkes t'yi görecektir.
Peter

Topolojinin değişmesinin neden olduğu sonsuzluk-sayım problemini düşünüyordum .
Raphael

@Raphael Dağıtılmış dinamiklerde, araştırmacılar genellikle belirli bir zaman dilimi içinde hangi özelliklerin en kötü durumda garanti edilebileceğini araştırıyorlar. Bu nedenle, dinamik bir ortamdaki teknikle ilgili temel sorunlar nedeniyle uzaklık-vektör / Bellman-Ford için "yakınsama" garanti edilemez. Sonsuz sayı sayma sorunu olmayan başka yakınsak yönlendirme protokolleri de vardır.
Lucas Cook

3

@Peter cevapları üzerine bina (çok uzun bir yorum, bu yüzden sadece birisinin bundan yararlanacağını umduran bir cevap olarak dahil ettim).

Aşağıdaki referansı öneririm:

Arnaud Casteigts, Paola Flocchini, Walter Quattrociocchi, Nicola Santoro: Zamanla değişen grafikler ve dinamik ağlar. IJPEDS 27 (5): 387-408 (2012)

Δ

Bu sınıflandırmada gerçekten önemli olan, farklı sınıflar arasında kaynaştırma ilişkilerinin olmasıdır. Dolayısıyla, belirli bir sınıftaki bir problemi çözerseniz, onu içerdiği diğer her sınıfta çözersiniz.

Aynı yazarlar, söz konusu grafiklerin bazılarında yayın algoritmaları sunmuşlardır. Zamanla ilgili farklı performans metrikleri verdiler (yani en kısa sürenin farklı tanımı). Yayınlamada fikir, her düğümün zaman alanındaki ağın bir görünümünü oluşturmasıdır. Bu, komşuları tekrar tekrar dinleyerek ve komşulara bilgi göndererek yapılır. Periyodiklik varsa, bir düğüm başka bir düğüme en kısa zaman yolunun ne olduğunu söyleyebilir. Bu bilgiyi yönlendirmede kullanır. Daha fazla ayrıntı için:

Arnaud Casteigts, Paola Flocchini, Bernard Mans, Nicola Santoro: Zamanla Değişen Grafiklerde Deterministik Hesaplamalar: Yapısız Hareketlilik Altında Yayın. IFIP TCS 2010: 111-124

uv{(u,x1),(x1,x2),....,(xk,v)}uvvu

Önceki yazarlar tarafından verilen bir konferansa katıldım. Anladığım kadarıyla, dinamik grafik algoritmalarıyla uğraşmaktan çok uzak olduğumuzu iddia ediyorlar (takip ettikleri tanımları takip ederek). Hala basit sınıflar içindeyiz. Aslında, mobil bilgi işlem algoritmalarının çoğunun, ağ geçişi sırasında algoritmalarının yürütülmek için çok hızlı olduğunu varsaydığını iddia ediyorlar! (ki çok duyduğuma inanıyorum) - Ya da basitçe, kenarların görünümünün periyodikliğini varsayalım (gecikme toleranslı ağlara bakınız)

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.