Zamanın fonksiyonu olarak uzunluk ile en kısa mesafe problemi


10

Motivasyon

Geçen gün şehir içinde toplu taşıma araçlarıyla seyahat ediyordum ve iki yer arasındaki en kısa süreli bağlantıyı bulma problemini modelleyen ilginç bir grafik problemi oluşturdum.

Hepimiz klasik "En kısa yol problemini" biliyoruz: kenar uzunlukları ve iki köşe ile yönlendirilmiş bir grafiği verildiğinde , ve arasındaki en kısa yolu bulun (yani, toplam kenar uzunluğunu en aza indiren yol). Negatif olmayan kenar uzunlukları varsayarsak, çeşitli algoritmalar vardır ve sorun kolaydır.w eR + 0 ,G=(V,E)s , t V s tweR0+,eEs,tVst

Örneğin, yürüdüğümüz durum için iyi bir model. Köşeler, yol ağımızdaki kavşaktır ve her bir kenar örneğin metre olarak sabit bir uzunluğa sahiptir. Kenar ağırlıklarının başka bir olası yorumu , köşelerinden birinden diğerine gitmemizin gerekeceği zamandır . Bu beni ilgilendiren yorum.we

Sorun

Şimdi aşağıdaki durumu modellemek istiyorum. Bir şehirde toplu taşıma ile A noktasından B noktasına seyahat etmek ve zamanı en aza indirmek istiyorum . Toplu taşıma ağı beklediğiniz gibi kolayca yönlendirilmiş bir grafik olarak modellenebilir. İlginç kısım, kenar ağırlıklarıdır (bu model zamanı) - toplu taşıma araçları (örneğin otobüsler), her durak için farklı olan belirli aralıklarla ayrılır (grafikteki tepe noktası). Başka bir deyişle - kenar ağırlıkları sabit değildir, kenarı kullanmak istediğimiz zamana bağlı olarak değişir.

Bu durumu modellemek için: Bir yönlendirilmiş grafiktir sahip ve bir kenar ağırlık fonksiyonu alır zaman argümanını alır ve yolumuzdaki kenarı kullanmak için gereken süreyi döndürür . Örneğin, köşe otobüs eğer vertex bırakır ve bu alır kez ve tepe gelmesi de , daha sonra kenar ağırlığıdır. Açıkça, .w : E × R + 0R + 0 v u t = 10 5 v t = 8 w ( v u , 8 ) = 7 w ( v u , 10 ) = 5G=(V,E) w:E×R0+R0+vut=105vt=8w(vu,8)=7w(vu,10)=5

Toplam yol ağırlığını tanımlamak biraz zordur, ancak bunu tekrar tekrar yapabiliriz. Let yönlendirilmiş bir yol olabilir. Eğer daha sonra . Aksi takdirde, , alt yolu olmadan . Bu, gerçek dünyadaki duruma karşılık gelen doğal bir tanımdır. k = 1 w ( P ) = 0 w ( P ) = w ( P ) + w ( v k - 1 v k , w ( P ) ) P P v kP=v1v2vk1vkk=1w(P)=0w(P)=w(P)+w(vk1vk,w(P))PPvk

Şimdi sorunu fonksiyonu ile ilgili çeşitli varsayımlar altında inceleyebiliriz . Doğal varsayım hangi modeller " zamanı bekliyor ".wΔ

w(e,t)w(e,t+Δ)+Δ for all eE,Δ0,
Δ

Eğer fonksiyon "iyi davranırsa" bu problemi klasik En kısa yol problemine indirgemek mümkün olabilir. Ancak ağırlık fonksiyonları vahşileştiğinde ne olacağını sorabiliriz. Peki ya bekleme varsayımını düşürürsek?

Sorular

Sorularım aşağıdaki.

  • Bu sorun daha önce sorulmuş mu? Biraz doğal görünüyor.
  • Üzerinde araştırma var mı? Bana öyle geliyor ki, incelenecek ve incelenecek çeşitli alt problemler var - esas olarak ağırlık fonksiyonunun özellikleri ile ilgili.
  • Bu sorunu (muhtemelen bazı varsayımlar altında) klasik en kısa yol problemine indirgeyebilir miyiz?

İşte daha fazla araştırma düzeyinde cevapların karşılaştırılabileceği doğal bir temel yaklaşım. Zaman birimlerini anıları topluluğuna ayırarak bunu bir erişilebilirlik sorunu olarak modelleyin ve köşeleriyle yeni bir grafik yapın . Daha sonra kenarları koymak burada . Bu zaten birçok kullanım durumu için etkilidir (örn. Otobüs tarifeleri ile, otobüslerin geldiği / durduğu zamanlar olmasına izin verirsiniz ), ancak her zaman mükemmel çalışmaz ( sürekli değiştiğinde düşünün zaman) ve büyükse yavaştır . V = T × V ( t 0 , v 0 ) ( t 1 , v 1 ) t 1 = wTV=T×V(t0,v0)(t1,v1)T w Tt1=w((v0,v1),t0)TwT
Andrew Morgan

Bu problemin basit bir varyantına (kenar ağırlıklarının zamana göre doğrusal bağlı olduğu) " parametrik en kısa yol " denir .
Neal Young

Yanıtlar:


8

Bu, "zamana bağlı en kısa yol" sorunu olarak bilinir. Gerçekten de bu sorun için araştırmalar yapılmıştır; bakınız örneğin , klasik kağıt Orda ve Rom, tarafından bu son SODA kağıt kanıtlamaktadır her kenar ağırlık fonksiyonu, iki sabit noktalar değişiklikler arasında daha sonra en kısa yol polinom boyutlu parçalı doğrusal olduğu zaman kere kaydedildinΘ(logn)

Dijkstra'nın algoritması gerçekten bu sorun için kullanılabilir, bekleme politikası uygulandığında, yani son gelen zamanı azaltıyorsa bir düğümü bekleyin. Bekleme politikası olmadan durum çok daha vahşi: en kısa yol basit olmayabilir, en kısa yolun alt yolu, alt yolun iki uç noktası arasında en kısa olmayabilir, sonsuz sayıda kenardan geçen yolların sınırlı varış zamanı olabilir, vb. Daha fazla tartışma için Orda ve Rom'un makalesine tekrar bakın .


3

"En kısa azalmayan yollar" sorununun farkında mısınız? Bu gibi durumları modellemek için tanımlanmıştır. Formülasyonunuza göre biraz daha az etkileyici olmasına rağmen, bunun için hızlı algs vardır.


1

Zamanların ayrılmaz olduğunu varsayar (bu toplu taşıma durumunda mantıklıdır), Ford-Fulkerson tarafından zaman içindeki maksimum akış (veya en hızlı akış) için önerilen ağa benzer, zaman genişletilmiş bir ağ yapabilirsiniz ve bunun yerine bu grafikte en kısa yolu bulun.

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.