Algoritmik Oyun Kuramı · Ders Notu

Bölüm 8: Ağ Tasarımı ve Yönlendirme

Bir yolun ne kadar hızlı olduğu, o yolu kaç kişinin seçtiğine bağlıdır. Bu basit gözlem, trafik ve iletişim ağlarındaki rota seçimini bir oyuna dönüştürür: her kullanıcı kendi süresini kısaltmaya çalışır, ama seçimi ötekilerin süresini de değiştirir. Bu not, ağ ve yönlendirme kavramlarından başlayarak bencil yönlendirmeyi, Wardrop dengesini ve sistem optimumunu, yeni bir yolun herkesi yavaşlatabildiğini gösteren Braess paradoksunu, tıkanıklık oyunlarını ve Rosenthal potansiyelini, oyuncuların ağın kendisini kurduğu ağ oluşturma oyunlarını ve ağlarda verimlilik ile adalet arasındaki gerilimi adım adım anlatır.

Öğrenme çıktıları

Wardrop dengesini bulmak
İki yollu bir ağda gecikmeleri eşitleyerek dengeyi hesaplamak; sistem optimumunu marjinal maliyetlerle bulup dengeyle karşılaştırmak.
Braess paradoksunu açıklamak
Yeni bir yolun herkesin süresini neden artırabildiğini sayısal olarak göstermek.
Potansiyel ile düşünmek
Rosenthal potansiyelini hesaplamak; en iyi tepki dinamiğinin neden durduğunu kanıtlamak.
Ağ oluşturmayı modellemek
Bağlantı kuran oyuncuların hangi ağlarda dengeye geldiğini kontrol etmek.

8.1Ağlar ve yönlendirme

Bu bölümün bütün kavramları tek bir gerilimin etrafında döner: bir ağın kullanıcıları kendi yolculuklarını kısaltmak ister, ama her kullanıcının seçimi ötekilerin yolculuğunu da uzatır. Önce küçük bir oyunla bu gerilimi somutlaştırıyoruz. Ardından ağ, bağlantı, kapasite ve gecikme gibi temel kavramları tanımlıyoruz. Bu kavramlar, sonraki kesimlerdeki bütün hesapların dilidir.

8.1.1Bir oyunla başlangıç: Braess paradoksu

N sürücü, S noktasından T noktasına gitmek ister. İki rota vardır: S→A→T (üst yol) ve S→B→T (alt yol). Her rotada bir dar yol ve bir geniş yol bulunur. Dar yolların süresi o yolu kullanan sürücü sayısıyla artar: dar yolda x sürücü varsa yolculuk 40 · x / N dakika sürer. Bütün sürücüler aynı dar yola girerse süre 40 dakikaya çıkar; hiç kimse yoksa yol boştur. Geniş yolların süresi ise trafikten bağımsızdır, her zaman 45 dakikadır.

Oyunun kuralı basittir: her sürücü kendi en hızlı yolunu seçer. Kimse ötekilerin süresini önemsemez; herkes yalnız kendi yolculuğuna bakar. Bu, “bencil” bir davranıştır ama kötü niyetli değildir. Sabah işe giden bir sürücü de navigasyon uygulamasının önerdiği en hızlı rotayı seçer; başkalarının yolculuğunu düşünmesi beklenmez.

40·x/N454540·x/N0SABTN sürücü S → T; x: o yoldaki sürücü sayısıkesikli: yeni kestirme A → B
Şekil 8.1: Braess paradoksu oyununun ağı. S→A ve B→T dar yollardır (süre 40 · x / N), A→T ve S→B geniş yollardır (sabit 45 dakika). Kesikli kırmızı ok, süresi 0 olan yeni A→B kestirmesidir.

Şekil 8.1 oyunun ağını gösterir. Kestirme yokken iki rota birbirinin aynası gibidir. Sürücüler iki rotaya eşit bölünürse her dar yolda N/2 sürücü olur ve dar yol 40 · (N/2)/N = 20 dakika sürer. Her rota böylece 20 + 45 = 65 dakikadır. Oyun iki merak sorusuyla başlar:

  • A'dan B'ye süresi 0 olan bir kestirme açılırsa yolculuklar kısalır mı?
  • Herkes kendi en hızlı yolunu seçince ortalama süre en küçük olur mu?

Sağduyu iki soruya da “evet” der. Yeni bir yol kapasiteyi artırır; daha çok kapasite daha az tıkanıklık demek gibi görünür. Herkesin en hızlı yolu seçmesi de “en hızlı” sonucu vermelidir. Bu bölümün en şaşırtıcı sonucu, iki cevabın da “hayır” olabileceğidir. Kestirme açıldığında her sürücü zikzak rotaya (S→A→B→T) geçer ve herkesin süresi 65 dakikadan 80 dakikaya çıkar. Hesabın bütün adımları 8.3.1'de verilir; şimdilik bu sonucu açıklamak için gereken kavramlar kurulur.

8.1.2Ağ tasarımı ve yönlendirme

Bir ağla ilgili kararlar iki düzeyde verilir. Birinci düzey ağın kendisini kurmaktır: hangi noktalar birbirine bağlanacak, her bağlantı ne kadar trafik taşıyabilecek, kurulum ne kadara mal olacak? İkinci düzey kurulmuş ağı kullanmaktır: bir noktadan ötekine giden trafik hangi yollardan akacak?

Tanım 8.1

Ağ tasarımı (network design), ağın düğümlerini, bağlantılarını, bu bağlantıların kapasitelerini ve maliyetlerini belirleme problemidir. Yönlendirme (routing), verilen bir ağda akışın kaynak ile hedef arasında hangi yolları kullanacağını belirleme problemidir.

sabctTasarım: hangi kenar, hangi kapasite?Yönlendirme: akış hangi yoldan? (kırmızı)
Şekil 8.2: Tasarım ile yönlendirmenin farkı. Tasarım, hangi kenarların hangi kapasiteyle var olacağını seçer; yönlendirme, kurulmuş ağda akışın izleyeceği yolu (kırmızı: s→a→c→t) seçer.

Şekil 8.2'de beş düğümlü küçük bir ağ görülür. Tasarımcı “a ile b arasında bir bağlantı olsun mu, olacaksa ne kadar geniş olsun?” diye sorar. Yönlendirme ise ağ kurulduktan sonra “s'den t'ye giden bir paket ya da araç hangi kenarlardan geçsin?” sorusudur. İki problem birbirine bağlıdır: iyi bir tasarım, kullanıcıların o ağda nasıl yol seçeceğini hesaba katmalıdır. Braess paradoksu tam olarak bu bağın ihmal edilmesinin bedelidir.

Algoritmik oyun kuramı bu problemlere yeni bir bakış ekler. Klasik ağ mühendisliğinde trafik “yönlendirilen” bir şeydir: bir merkez, paketlerin ya da araçların hangi yoldan gideceğine karar verir. Oysa gerçek ağların çoğunda kararları kullanıcıların kendisi verir. Şehirde her sürücü kendi rotasını seçer; internette her ağ işletmecisi kendi çıkarına göre trafik yönlendirir. Algoritmik oyun kuramı, kullanıcıların kendi maliyetlerini azaltmaya çalıştığı bu trafik ve iletişim ağlarını inceler. Temel uygulama alanları şehir trafiği, internet omurgaları ve enerji şebekeleridir.

8.1.3Temel kavramlar: düğüm, bağlantı, kapasite, maliyet

Matematikte bir ağ, çizge (graph) ile modellenir. Çizge, noktalardan ve bu noktaları birleştiren çizgilerden oluşur. Bu bölümde dört temel kavram sürekli kullanılır.

  • Düğüm (node): ağdaki bir nokta. Şehir trafiğinde bir kavşak, internette bir yönlendirici (router), elektrik şebekesinde bir trafo merkezidir.
  • Bağlantı (link) ya da kenar (edge): iki düğümü birleştiren hat. Bir yol, bir fiber optik hat ya da bir iletim hattıdır. Yönlü bir kenar (s→a) yalnız bir yönde kullanılabilir; tek yönlü bir cadde gibi.
  • Kapasite (capacity) ve bant genişliği (bandwidth): bir bağlantının birim zamanda taşıyabildiği akış. Bir yolun saatte geçirebildiği araç sayısı ya da bir hattın saniyede taşıyabildiği bit sayısıdır. Kapasite aşılınca gecikme hızla artar.
  • Maliyet: iki türlüdür. Kurulum maliyeti ağı kurarken ödenir ve tasarım kararlarını etkiler. Kullanım maliyeti ise ağı kullanırken ödenir: gecikme, harcanan enerji ya da ücret. Kullanım maliyeti yönlendirme kararlarını etkiler.

Düğümlerin birbirine nasıl bağlandığına ağın topolojisi denir. Şekil 8.3 dört temel topolojiyi gösterir.

YıldızHalkaTam örgü (mesh)Ağaç
Şekil 8.3: Dört temel topoloji. Yıldızda her düğüm bir merkeze bağlıdır; halkada her düğümün iki komşusu vardır; tam örgüde her düğüm çifti doğrudan bağlıdır; ağaçta döngü yoktur ve her düğüme tek bir yoldan ulaşılır.

Her topolojinin artısı ve eksisi vardır. Yıldız az bağlantı ister (n düğüm için n − 1 bağlantı) ve her düğüm merkeze bir adım uzaklıktadır; ama merkez çökerse bütün ağ çöker. Halka da az bağlantı ister (n bağlantı) ve tek bir kopukluğa dayanır, ama uzak düğümler arasında çok adım vardır. Tam örgü (mesh) her çift arasında doğrudan bağlantı kurar; uzaklıklar en kısadır ama bağlantı sayısı n(n − 1)/2'dir ve hızla büyür. Ağaç, katmanlı bir düzen kurar ve döngü içermez. Veri merkezlerinde ağaç ya da katmanlı topolojiler yaygındır; şehir trafiğinde ise yol ağı örgüye yakındır, çünkü iki nokta arasında çoğu zaman birden çok seçenek vardır.

Bu topolojiler 8.5'te yeniden karşımıza çıkar. Orada sorulan soru, bağlantıları kendileri satın alan oyuncuların sonunda hangi topolojide karar kılacağıdır. Bağlantı ucuzsa tam örgüye, pahalıysa yıldıza yakın ağlar ortaya çıkar.

8.1.4Klasik yönlendirme algoritmaları

Kenarların her birine bir sayı (ağırlık) atanmış bir ağda en kısa yolu bulmak, bilgisayar mühendisliğinin temel problemlerinden biridir. Ağırlık bir uzaklık, bir süre ya da bir maliyet olabilir. Tablo 8.1 yönlendirmede kullanılan dört klasik yöntemi özetler.

Tablo 8.1: Klasik yönlendirme algoritmaları.
YöntemNe yapar?Not
DijkstraNegatif olmayan ağırlıklarla tek kaynaktan en kısa yollarO((V + E) log V); OSPF'nin (en kısa yolu önce açan bağlantı durumu protokolü) çekirdeği
Bellman–FordNegatif ağırlıklara izin verir, komşulardan öğrenerek güncellerO(V · E); dağıtık sürümü RIP (uzaklık vektörü protokolü)
Dinamik yönlendirmeBağlantı durumu ve maliyet değişince yolları yeniden hesaplarTrafik ve arızalara uyum
Yük dengelemeTrafiği birden fazla yol veya sunucu arasında dağıtırÖr. ECMP (eşit maliyetli çok yol)

Tablodaki V düğüm sayısını, E kenar sayısını gösterir. Dijkstra algoritması kaynaktan başlar ve her adımda “kesin uzaklığı henüz belirlenmemiş düğümler içinde en yakın olanı” kesinleştirir. Bunun doğru çalışması için ağırlıkların negatif olmaması gerekir: bir kez kesinleşmiş bir uzaklık, sonradan negatif bir kenar yüzünden kısalamaz. İnternetteki OSPF (Open Shortest Path First) protokolünde her yönlendirici ağın tamamının haritasını tutar ve bu haritada Dijkstra çalıştırır.

Örnek 8.1

Şekil 8.2'deki ağın kenarlarına şu ağırlıklar verilsin: s→a 2, s→b 4, a→b 3, a→c 3, b→c 2, c→t 1. Dijkstra s'den başlar.

  1. Başlangıçta s'nin uzaklığı 0'dır, ötekiler bilinmiyor (∞). s kesinleşir. Komşuları güncellenir: a için 0 + 2 = 2, b için 0 + 4 = 4.
  2. Kesinleşmemiş düğümlerde en küçük tahmin a'nınkidir (2). a kesinleşir. Komşuları: b için 2 + 3 = 5, ama b'nin tahmini zaten 4'tür; 5 > 4 olduğu için değişmez. c için 2 + 3 = 5.
  3. Sıradaki en küçük b'dir (4). b kesinleşir. Komşusu c için 4 + 2 = 6 > 5; c değişmez.
  4. Sıradaki c'dir (5). c kesinleşir. Komşusu t için 5 + 1 = 6.
  5. Son olarak t kesinleşir (6). Geriye doğru izlenince yol t ← c ← a ← s'dir: en kısa yol s→a→c→t, uzunluğu 2 + 3 + 1 = 6'dır. Bu, şekildeki kırmızı yoldur.

Bellman–Ford algoritması farklı çalışır: her düğüm, komşularının bildirdiği uzaklıklara bakarak kendi tahminini günceller ve bu işlem tahminler değişmeyene kadar sürer. En çok V − 1 tur yeter ve her tur bütün kenarları dolaşır; süre bu yüzden O(V · E)'dir. Dijkstra'dan yavaştır ama negatif ağırlıkları kabul eder. Asıl önemli özelliği dağıtık çalışabilmesidir: hiçbir düğümün ağın tamamını bilmesi gerekmez, herkes yalnız komşusundan öğrenir. İnternetteki RIP protokolü bu “komşudan öğrenme” fikrine dayanan bir uzaklık vektörü protokolüdür.

Dinamik yönlendirme, bir bağlantı koptuğunda ya da maliyeti değiştiğinde yolları yeniden hesaplar. Yük dengeleme ise trafiği tek bir yola yığmak yerine birden çok yola ya da sunucuya dağıtır. ECMP (equal-cost multi-path, eşit maliyetli çok yol) bunun basit bir biçimidir: uzunluğu eşit olan birden çok en kısa yol varsa trafik bunlar arasında bölünür.

Bu algoritmaların hepsi ortak bir varsayım yapar: kenar ağırlıkları sabittir. Dijkstra, a→c kenarının 3 dakika sürdüğünü kabul eder ve bu sayıyı kimin o kenarı kullandığından bağımsız sayar. Gerçekte ise gecikme, o yolu kaç kişinin seçtiğine bağlıdır. Yukarıdaki örnekte bütün sürücülere s→a→c→t önerilirse a→c kenarı tıkanır ve artık 3 dakika sürmez. Stratejik kullanıcılar önerilen rotadan sapabildiğinde ağın dengesi ile toplam gecikmeyi en küçük yapan dağılım birbirinden ayrılır. Yönlendirmeyi bir oyuna dönüştüren de budur: her kullanıcının “en kısa yol”u, ötekilerin seçimine bağlıdır.

8.1.5Gecikme yüke bağlıdır

Yüke bağlı gecikmeyi modellemek için her kenara bir sayı yerine bir fonksiyon atanır.

Tanım 8.2

Bir e kenarının gecikme fonksiyonu (latency function) ℓe(x), kenar üzerindeki akış x iken bir kullanıcının o kenarda geçirdiği süredir. Gecikme fonksiyonu azalmayan bir fonksiyondur: akış artınca gecikme ya aynı kalır ya da artar, hiçbir zaman azalmaz.

“Azalmayan” koşulu sağduyuya dayanır: bir yola daha çok araç girdikçe yol daha hızlı olmaz. Bu bölümde dört tür gecikme fonksiyonu kullanılır.

  • Sabit: ℓ(x) = b. Trafikten etkilenmeyen geniş bir otoyol. Braess örneğindeki 45 dakikalık geniş yollar böyledir.
  • Doğrusal: ℓ(x) = a · x + b. b boş yoldaki süredir, a ise her ek aracın süreyi ne kadar uzattığıdır. İki yollu ağ ve Braess örnekleri bu türü kullanır; örneğin ℓ(x) = 5 + x/100 boş yolda 5 dakika sürer ve her 100 araç süreyi bir dakika uzatır.
  • BPR (ABD Karayolları Bürosu, Bureau of Public Roads): ℓ(x) = t0 (1 + 0,15 (x/c)4). Burada t0 boş yoldaki süre, c yolun kapasitesidir. Trafik planlamasında standart olarak kullanılır.
  • Kuyruk gecikmesi: ℓ(x) = 1/(c − x), yalnızca 0 ≤ x < c için. Bu, tek sunuculu bir kuyruğun (M/M/1 kuyruğu) ortalama gecikmesidir. c saniyede işlenebilen, x saniyede gelen paket sayısıdır.
012300,511,5x / kapasiteℓ / serbest akış süresisabitdoğrusalBPR
Şekil 8.4: Üç gecikme fonksiyonu. Yatay eksen akışın kapasiteye oranı (x/c), dikey eksen gecikmenin boş yol süresine oranıdır. Sabit gecikme düz kalır; doğrusal gecikme düzgün artar; BPR eğrisi kapasitenin altında neredeyse düzdür, kapasite aşılınca hızla yükselir.

Şekil 8.4 fonksiyonların biçimini karşılaştırır. BPR eğrisinin davranışı günlük deneyime uyar: yol kapasitesinin yarısıyla doluyken trafik neredeyse akıcıdır, kapasiteye yaklaşınca yavaşlama belirginleşir, kapasite aşılınca yolculuk süresi hızla uzar. Dördüncü kuvvet ((x/c)4) bu “önce yavaş, sonra hızlı” artışı üretir.

Örnek 8.2

Boş yolda t0 = 10 dakika süren ve kapasitesi saatte c = 2.000 araç olan bir yol düşünülsün.

  1. x = 1.000: x/c = 0,5, 0,54 = 0,0625. Gecikme 10 · (1 + 0,15 · 0,0625) ≈ 10,09 dakikadır; boş yoldan farkı yalnız 6 saniyedir.
  2. x = 2.000: x/c = 1. Gecikme 10 · 1,15 = 11,5 dakikadır. Kapasitede yolculuk yüzde 15 uzar.
  3. x = 3.000: x/c = 1,5, 1,54 = 5,0625. Gecikme 10 · (1 + 0,759) ≈ 17,6 dakikadır. Akış yalnız yüzde 50 arttı, ama gecikmedeki artış kapasitedekinin beş katından fazladır (1,5 dakikaya karşı 7,6 dakika).

Kuyruk gecikmesinde de aynı “duvar” görülür. c = 100 paket/saniye olsun. x = 50'de gecikme 1/50 = 0,02 saniye (20 ms), x = 90'da 1/10 = 0,1 saniye (100 ms), x = 99'da 1 saniyedir.

Kuyruk gecikmesinin bir özelliği ayrıca vurgulanmalıdır: x, c'ye yaklaştıkça 1/(c − x) sınırsız büyür. x ≥ c olduğunda ise formül anlamını yitirir; saniyede işlenebilenden çok paket geldiği için kuyruk durmadan uzar ve kararlı bir ortalama gecikme yoktur. Bu yüzden formül yalnız x < c için geçerlidir.

Sık yapılan hata
  • Gecikmeyi sabit sanmak: Bir yolun süresi kullanıcı sayısına bağlıdır. “Bu yol 20 dakika” demek, “bu yol şu kadar araçla 20 dakika” demektir.
  • Kenar gecikmesi ile yol gecikmesini karıştırmak: ℓe tek bir kenarın gecikmesidir. Bir yolun gecikmesi, üzerindeki kenarların gecikmelerinin toplamıdır (8.2.1).
  • Kuyruk formülünü kapasitenin üstünde kullanmak: 1/(c − x), x ≥ c için sıfır ya da negatif çıkar; bu bir “hızlı yol” değil, tanımsız (sonsuz büyüyen) bir kuyruktur.

8.2Bencil yönlendirme

Bu kesimde yüke bağlı gecikmeleri olan bir ağda kullanıcıların nasıl yol seçtiği incelenir. İki soru sorulur: kullanıcılar kendi başlarına seçim yapınca trafik nasıl dağılır, ve bu dağılım toplam gecikme açısından ne kadar iyidir? İlk sorunun cevabı Wardrop dengesi, ikincisinin ölçütü sistem optimumudur.

8.2.1Model: akış, yol gecikmesi, toplam gecikme

Tanım 8.3

Bencil yönlendirme (selfish routing), her kullanıcının kendi gecikmesini en aza indiren rotayı seçtiği yönlendirmedir. Kullanıcılar çok sayıda ve her biri çok küçükse akış bölünebilir (nonatomic, atomik olmayan) kabul edilir: tek bir kullanıcının akışa etkisi ihmal edilir.

Bölünebilir akış varsayımı bir yaklaşımdır. Şehirde binlerce sürücü vardır ve tek bir sürücünün bir yola girmesi o yolun süresini fark edilmeyecek kadar az değiştirir. Bu yüzden trafiği tek tek araçlar yerine akan bir sıvı gibi düşünmek hesapları kolaylaştırır. Sürücü sayısı az ve her birinin etkisi belirginse (örneğin dört sürücü) model atomik olur; bu durum 8.4'te ele alınır.

Modelin bileşenleri şunlardır:

  • r birim trafik, kaynak s'den hedef t'ye gider. Örneğin r = 3.000 araç.
  • fP: P yolundaki akış, yani o yolu seçen trafik miktarı. Bütün yollardaki akışların toplamı r'dir.
  • fe: e kenarındaki toplam akış. Bir kenar birden çok yolun parçası olabilir; o kenarı içeren bütün yolların akışları toplanır: fe = ΣP ∋ e fP.

Bu bileşenlerle iki ölçü tanımlanır. Bir yolun gecikmesi, üzerindeki kenarların gecikmelerinin toplamıdır:

ℓP(f) = Σe ∈ P ℓe(fe)

Ağın toplam gecikmesi ise her kenarda akış ile gecikmenin çarpımının toplamıdır:

C(f) = Σe fe · ℓe(fe)

Toplam gecikmenin neden böyle yazıldığı bir örnekle görülür. Bir kenarda 2.000 araç varsa ve her biri o kenarda 25 dakika geçiriyorsa, o kenarda harcanan toplam zaman 2.000 × 25 = 50.000 araç·dakikadır. “Araç·dakika” birimi, her aracın harcadığı dakikaların toplamını ifade eder. Bütün kenarlar için bu çarpımlar toplanınca ağda harcanan toplam zaman bulunur.

Aynı toplam yollar üzerinden de hesaplanabilir: her yolun akışı o yolun gecikmesiyle çarpılıp toplanır, C(f) = ΣP fP · ℓP(f). İki yazım aynı sonucu verir. Bunun nedeni şudur: fP · ℓP çarpımında ℓP kenar gecikmelerinin toplamı olduğundan, her kenarın gecikmesi o kenardan geçen bütün yolların akışlarıyla çarpılmış olur; bu akışların toplamı da fe'dir. Toplam gecikmeyi r'ye bölmek ortalama yolculuk süresini verir.

Bireysel rota seçimleri, toplam gecikmeyi en aza indiren dağılımdan uzaklaşabilir. Braess paradoksu bunun en uç biçimidir: yeni bir bağlantı eklemek denge gecikmesini artırabilir. Önce bu uzaklaşmanın nasıl ölçüleceği tanımlanmalıdır.

8.2.2Wardrop ilkeleri

İngiliz ulaştırma mühendisi John Glen Wardrop, 1952'de trafik akışının iki farklı biçimde dağılabileceğini ileri sürdü (Wardrop, 1952). Bu iki ilke bugün de trafik planlamasının temelidir.

Tanım 8.4

Wardrop'un 1. ilkesi (kullanıcı dengesi). Bir f akışı, kullanılan her yolun gecikmesi herhangi bir yolun gecikmesinden büyük değilse bir Wardrop dengesidir (Wardrop equilibrium):

fP > 0 ⇒ ℓP(f) ≤ ℓQ(f) her Q yolu için.

Wardrop'un 2. ilkesi (sistem optimumu). Bir f* akışı, toplam gecikme C(f)'yi bütün olası akışlar içinde en küçük yapıyorsa sistem optimumudur (system optimum).

Birinci ilke üç eşdeğer biçimde okunabilir:

  • Kullanılan bütün yolların gecikmesi eşittir ve en düşüktür.
  • Kullanılmayan bir yol daha yavaştır (ya da kullanılanlarla eşit hızdadır).
  • Tek bir kullanıcı yol değiştirerek yolculuk süresini azaltamaz.

Neden kullanılan yolların gecikmeleri eşit olmalıdır? Diyelim ki iki yol da kullanılıyor ama Yol 1 daha hızlı. O zaman Yol 2'deki bir sürücü Yol 1'e geçerek kazanır. Bu bir dengeyle bağdaşmaz; denge, kimsenin tek başına sapmak istemediği durumdur. Üçüncü okuma, Wardrop dengesinin aslında Nash dengesi fikrinin bölünebilir trafiğe uyarlanmış hâli olduğunu gösterir: her kullanıcı ötekilerin seçimine karşı en iyi tepkiyi vermektedir.

İkinci ilke ise bir planlayıcının bakış açısıdır. Bütün trafiği tek elden yönetebilen bir merkez, ortalama (toplam) gecikmeyi en küçük yapan dağılımı seçer. Bu dağılımda bazı kullanıcılar daha yavaş bir yola “feda edilebilir”: toplam açısından onların daha yavaş yolda olması, ötekilerin hızlanmasıyla telafi edilir. Sistem optimumunu uygulamak bu yüzden zordur; feda edilen kullanıcıların uymaya istekli olması gerekir.

Kısaca denge, kullanıcıların bireysel tercihlerini açıklar; ama sistem optimumuyla aynı olmak zorunda değildir. Doğrusal gecikmelerde (daha genel olarak sürekli ve azalmayan gecikmelerde) bir Wardrop dengesi her zaman vardır. Üstelik denge birden çok olsa bile her kenarın denge gecikmesi aynıdır; hangi denge bulunursa bulunsun kullanıcıların yaşadığı süreler değişmez. Bu sonuç 8.2.5'te Beckmann potansiyeliyle açıklanır.

8.2.3İki yollu ağda Wardrop dengesi

Tanımı somutlaştırmak için bütün bölüm boyunca kullanılacak iki yollu ağ kurulur. 3.000 araç A'dan B'ye gidiyor. Yol 1 kısa ama dardır: boşken 5 dakika sürer, ama her 100 araç süreyi bir dakika uzatır. Yol 2 uzun ama geniştir: boşken 20 dakika sürer, her 200 araç süreyi bir dakika uzatır.

ℓ1(x1) = 5 + x1/100, ℓ2(x2) = 20 + x2/200, x1 + x2 = 3.000

Her yol tek bir kenardan oluştuğu için burada yol gecikmesi ile kenar gecikmesi aynıdır. Dengeyi bulmak için önce iki “deneme” yapılır; bu denemeler dengenin neden belirli bir noktada olması gerektiğini gösterir.

ABYol 1: ℓ₁ = 5 + x₁/100Yol 2: ℓ₂ = 20 + x₂/200x₁ = 3.000 araç → 35 dkx₂ = 0 araç → 20 dk01020304001.0002.0003.000x₁ (Yol 1'deki araç)gecikme (dk)ℓ₁ℓ₂
Şekil 8.5: Deneme 1: bütün araçlar Yol 1'de. Solda ağ (kalın çizgi çok akış), sağda gecikmelerin x1'e göre grafiği: mavi doğru ℓ1, kırmızı doğru ℓ2. x1 = 3.000'de Yol 1 35 dakika, boş Yol 2 20 dakikadır.

Şekil 8.5'teki grafik her denemeyi tek bakışta değerlendirmeyi sağlar. Yatay eksende Yol 1'deki araç sayısı x1 vardır; Yol 2'deki araç sayısı 3.000 − x1'dir. Mavi doğru x1 arttıkça yükselir (Yol 1 kalabalıklaşır), kırmızı doğru x1 arttıkça alçalır (Yol 2 boşalır). İki doğrunun kesiştiği nokta, iki yolun eşit sürdüğü noktadır.

Tablo 8.2: İki yollu ağda üç deneme.
Denemex1 / x2ℓ1 (dk)ℓ2 (dk)Kim sapmak ister?
Herkes Yol 1'de3.000 / 03520Yol 1'dekiler
Eşit bölünme1.500 / 1.5002027,5Yol 2'dekiler
Denge2.000 / 1.0002525Kimse
Örnek 8.3
  1. Deneme 1: herkes Yol 1'de. ℓ1(3.000) = 5 + 30 = 35 dakika; boş Yol 2 ise ℓ2(0) = 20 dakika. Yol 1'deki her sürücü Yol 2'ye geçerse 15 dakika kazanır. Bu bir denge değildir.
  2. Deneme 2: 1.500 / 1.500. ℓ1 = 5 + 15 = 20, ℓ2 = 20 + 7,5 = 27,5 dakika. Bu kez Yol 2'dekiler Yol 1'e kayar. Yine denge değildir.
  3. Denge koşulu. İki deneme, dengenin 1.500 ile 3.000 arasında bir yerde olduğunu gösterir. İki yol da kullanılıyorsa gecikmeler eşit olmalıdır: 5 + x1/100 = 20 + (3.000 − x1)/200.
  4. Çözüm. Kesirlerden kurtulmak için iki taraf 200 ile çarpılır: 1.000 + 2x1 = 4.000 + 3.000 − x1. x1'li terimler bir tarafa toplanır: 3x1 = 6.000, yani x1 = 2.000 ve x2 = 1.000.
  5. Gecikmeler. ℓ1 = 5 + 20 = 25, ℓ2 = 20 + 5 = 25 dakika. İki yol eşit sürer.
  6. Kontrol. Yol değiştiren tek bir sürücü öteki yolda da yaklaşık 25 dakika yaşar (akış bölünebilir olduğundan tek sürücünün etkisi ihmal edilir). Kimse kazanmaz: bu bir Wardrop dengesidir. Toplam gecikme 3.000 × 25 = 75.000 araç·dakikadır.
ABYol 1: ℓ₁ = 5 + x₁/100Yol 2: ℓ₂ = 20 + x₂/200x₁ = 2.000 araç → 25 dkx₂ = 1.000 araç → 25 dk01020304001.0002.0003.000x₁ (Yol 1'deki araç)gecikme (dk)ℓ₁ℓ₂denge: 25 dk
Şekil 8.6: İki yollu ağın Wardrop dengesi. 2.000 araç Yol 1'de, 1.000 araç Yol 2'de; iki yol da 25 dakika sürer. Grafikte denge, iki gecikme doğrusunun kesiştiği noktadır.

Şekil 8.6 dengeyi gösterir. Denge noktasının solunda mavi doğru kırmızının altındadır: Yol 1 daha hızlıdır ve araçlar Yol 1'e kayar, yani nokta sağa gider. Sağında mavi doğru üstte kalır: Yol 1 daha yavaştır ve araçlar Yol 2'ye kayar, nokta sola gider. Her iki yönden gelen bu “itiş”, akışı kesişme noktasına taşır. Denge bu yüzden kararlıdır.

Eşitleme yöntemi yalnız iki yol da kullanılıyorsa geçerlidir. Bir yol hiç kullanılmadığında bile daha hızlı olabilir mi? Örneğin Yol 1 öyle geniş olsaydı ki 3.000 araçla bile Yol 2'nin boş hâlinden hızlı kalsaydı (ℓ1(3.000) ≤ ℓ2(0)), denge herkesin Yol 1'de olduğu durum olurdu. O zaman kullanılan tek yol Yol 1'dir ve kullanılmayan Yol 2 daha yavaştır; tanımın ikinci okuması tam bu durumu kapsar. Bu yüzden eşitleme denkleminin çözümü 0 ile r arasında çıkmazsa denge bir uçtadır.

Örnek 8.4

6.000 araç; Yol 1: ℓ1 = 10 + x1/200, Yol 2: ℓ2 = 25 + x2/100.

  1. Önce uç durumlar denetlenir. Herkes Yol 1'deyse ℓ1 = 10 + 30 = 40 > ℓ2(0) = 25; Yol 1'dekiler kaçar. Herkes Yol 2'deyse ℓ2 = 25 + 60 = 85 > ℓ1(0) = 10; Yol 2'dekiler kaçar. Demek ki iki yol da kullanılır.
  2. Eşitlik: 10 + x1/200 = 25 + (6.000 − x1)/100. İki taraf 200 ile çarpılır: 2.000 + x1 = 5.000 + 12.000 − 2x1.
  3. Toplanınca 3x1 = 15.000, x1 = 5.000, x2 = 1.000.
  4. Kontrol: ℓ1 = 10 + 25 = 35, ℓ2 = 25 + 10 = 35 dakika. İkisi de 35 dakikadır; toplam gecikme 6.000 × 35 = 210.000 araç·dakikadır.

8.2.4Denge ile sistem optimumu aynı değil

Dengede herkes 25 dakika yolculuk eder ve toplam 75.000 araç·dakikadır. Bu, toplam gecikmenin olabilecek en küçük değeri midir? Bunu anlamak için toplam gecikme x1'in bir fonksiyonu olarak yazılır:

C(x1) = x1 · ℓ1(x1) + x2 · ℓ2(x2), x2 = 3.000 − x1

Bu fonksiyonun birkaç değeri Tablo 8.3'te verilmiştir. Tablo, eğrinin en alt noktasının dengede (2.000) değil, 1.500'de olduğunu gösterir.

Tablo 8.3: Toplam gecikme C(x1) ve Beckmann potansiyeli Φ(x1) (araç·dakika).
x105001.0001.5002.0002.5003.000
C105.00086.25075.00071.25075.00086.250105.000
Φ82.50069.37560.00054.37552.50054.37560.000

Optimumu tablo taramadan, kesin olarak bulmak için marjinal maliyet (marginal cost) kavramı kullanılır. Bir yolun marjinal maliyeti, o yola bir araç daha eklemenin toplam gecikmeye kattığı miktardır.

Bu miktarın neden yolun kendi gecikmesinden büyük olduğu şöyle görülür. Yol 1'de x1 araç varken bir araç daha eklensin. Yeni araç kendisi ℓ1 kadar gecikme yaşar. Ama ayrıca yolu biraz daha kalabalıklaştırır: gecikme her araç için ℓ1′ = 1/100 dakika artar ve bu artışı yoldaki öteki x1 aracın hepsi yaşar. Toplamda x1 · ℓ1′ kadar ek gecikme doğar. Marjinal maliyet bu iki parçanın toplamıdır:

(x · ℓ(x))′ = ℓ(x) + x · ℓ′(x)

Bu formül, çarpımın türevi kuralının ((uv)′ = u′v + uv′) bu duruma uygulanmasıdır. Türev, burada “fonksiyonun girdisi bir birim artınca çıktısının ne kadar arttığı” olarak okunabilir. Doğrusal gecikmeler için hesap kolaydır:

  • Yol 1: x1 · ℓ1 = 5x1 + x1²/100. 5x1'in türevi 5'tir; x1²/100'ün türevi 2x1/100 = x1/50'dir. Marjinal maliyet 5 + x1/50.
  • Yol 2: x2 · ℓ2 = 20x2 + x2²/200. Marjinal maliyet 20 + x2/100.

Sistem optimumunda iki yolun marjinal maliyetleri eşit olmalıdır. Nedeni, dengedeki akıl yürütmenin aynısıdır ama bu kez planlayıcının gözünden: Yol 1'in marjinal maliyeti daha yüksek olsaydı, bir aracı Yol 1'den Yol 2'ye almak toplam gecikmeyi azaltırdı. Planlayıcı böyle bir iyileştirme kalmayana kadar araç taşır; durduğu yerde marjinal maliyetler eşittir.

60b70b80b90b100b110b01.0002.0003.000x₁toplam gecikme (araç·dk)denge 75boptimum 71,25b
Şekil 8.7: Toplam gecikme C(x1) eğrisi (b = bin araç·dakika). Denge (x1 = 2.000, 75 bin) eğrinin dibinde değildir; en alt nokta optimumdur (x1 = 1.500, 71,25 bin).

Şekil 8.7 toplam gecikme eğrisini gösterir. Eğri bir çanak biçimindedir: uçlarda (bütün trafik tek yolda) toplam gecikme çok büyüktür, ortada bir yerde en küçük olur. Denge noktası çanağın dibinin sağında kalır.

Örnek 8.5
  1. Marjinal maliyetler eşitlenir: 5 + x1/50 = 20 + (3.000 − x1)/100.
  2. İki taraf 100 ile çarpılır: 500 + 2x1 = 2.000 + 3.000 − x1, yani 3x1 = 4.500.
  3. x1 = x2 = 1.500. Trafik iki yola eşit bölünür.
  4. Gecikmeler: ℓ1 = 20, ℓ2 = 27,5 dakika. Toplam: 1.500 × 20 + 1.500 × 27,5 = 30.000 + 41.250 = 71.250 araç·dakika.
  5. Kontrol: marjinal maliyetler 5 + 1.500/50 = 35 ve 20 + 1.500/100 = 35; eşittir.
Tablo 8.4: İki yollu ağda denge ile optimum.
x1 / x2ℓ1 / ℓ2 (dk)Toplam (araç·dk)
Denge2.000 / 1.00025 / 2575.000
Optimum1.500 / 1.50020 / 27,571.250

Tablo 8.4 iki dağılımı karşılaştırır. Dengede toplam gecikme optimumdan 3.750 araç·dakika fazladır; oran olarak 75.000 / 71.250 ≈ 1,053, yani yaklaşık yüzde 5 fazla. Bencil davranışın bu “bedeli”, kuramda anarşinin bedeli (price of anarchy) adıyla incelenir.

Optimum neden kendiliğinden oluşmaz? Optimumda Yol 1'deki sürücü 20, Yol 2'deki sürücü 27,5 dakika yaşar. Yol 2'deki her sürücü Yol 1'e geçerek 7,5 dakika kazanacağını görür ve geçer. Bu yüzden optimum bir denge değildir: kendi hâline bırakılan trafik optimumda kalmaz, dengeye kayar. Optimumu korumak için Yol 2'deki 1.500 sürücünün “feda edilmeyi” kabul etmesi gerekir.

Dengedeki verimsizliğin kaynağı da marjinal maliyetle görülür. Dengede (x1 = 2.000) Yol 1'in marjinal maliyeti 5 + 2.000/50 = 45, Yol 2'ninki 20 + 1.000/100 = 30'dur. Bir aracı Yol 1'den Yol 2'ye almak toplam gecikmeyi yaklaşık 45 − 30 = 15 araç·dakika azaltır. Ama o aracın sürücüsü bunu görmez: o yalnız kendi süresine bakar ve iki yolda da 25 dakika yaşadığı için yerinden memnundur.

Örnek 8.6

Örnek 8.4'teki ağda (6.000 araç; ℓ1 = 10 + x1/200, ℓ2 = 25 + x2/100) sistem optimumu bulunur.

  1. Marjinal maliyetler: Yol 1 için 10 + 2x1/200 = 10 + x1/100, Yol 2 için 25 + 2x2/100 = 25 + x2/50.
  2. Eşitlik: 10 + x1/100 = 25 + (6.000 − x1)/50. İki taraf 100 ile çarpılır: 1.000 + x1 = 2.500 + 12.000 − 2x1, yani 3x1 = 13.500.
  3. x1 = 4.500, x2 = 1.500. Gecikmeler ℓ1 = 10 + 22,5 = 32,5, ℓ2 = 25 + 15 = 40 dakika.
  4. Toplam: 4.500 × 32,5 + 1.500 × 40 = 146.250 + 60.000 = 206.250 araç·dakika. Dengedeki 210.000'den 3.750 azdır. Optimumda Yol 2'deki sürücüler 7,5 dakika daha yavaştır ve Yol 1'e geçmek ister.

8.2.5İki ayrı en aza indirme: Beckmann potansiyeli

Sistem optimumu, bir fonksiyonun (C) en küçük noktasıdır. Wardrop dengesi de bir fonksiyonun en küçük noktası olarak yazılabilir mi? Martin Beckmann, C. B. McGuire ve C. B. Winsten 1956'da bunun mümkün olduğunu gösterdi (Beckmann, McGuire, Winsten, 1956).

Tanım 8.5

Bölünebilir bir yönlendirme probleminde Beckmann potansiyeli (Beckmann potential) şudur:

Φ(f) = Σe ∫0fe ℓe(t) dt

Formüldeki integral işareti matematik temeli zayıf okuru korkutmamalıdır. ∫0fe ℓe(t) dt, gecikme eğrisinin altında 0 ile fe arasında kalan alandır. Bunu bir toplam gibi düşünmek kolaydır: trafik kenara azar azar girsin. İlk gelen sürücü boş yolu, yani ℓe(0)'ı görür; sonrakiler biraz daha kalabalık yolu görür; en son gelen ℓe(fe)'yi görür. Alan, her sürücünün girdiği anda gördüğü gecikmelerin toplamıdır. Toplam gecikme fe · ℓe(fe) ise herkese en son durumdaki gecikmeyi yükler; bu yüzden potansiyel genellikle toplam gecikmeden küçüktür.

Doğrusal bir gecikme ℓ(t) = b + a · t için alan bir yamuktur ve hesabı kolaydır: ∫0x (b + a t) dt = b x + a x²/2. İki yollu ağda:

Φ(x1) = 5x1 + x1²/200 + 20x2 + x2²/400

Bu fonksiyonun x1'e göre türevi alınır. x2 = 3.000 − x1 olduğundan x1 bir birim artınca x2 bir birim azalır. Yol 1 parçasının türevi 5 + x1/100 = ℓ1'dir; Yol 2 parçası ise ℓ2 kadar azalır. Sonuç:

Φ′(x1) = ℓ1(x1) − ℓ2(x2)

Türevin sıfır olduğu nokta, ℓ1 = ℓ2 olan noktadır; bu da tam Wardrop koşuludur. Potansiyelin türevi, “son gelen sürücünün” gördüğü gecikmedir. Bencil sürücü de tam olarak buna bakar: yola girerken o anki gecikmeyi görür.

Teorem 8.1 (Beckmann, McGuire, Winsten)

Gecikme fonksiyonları sürekli ve azalmayan ise bir f akışı Wardrop dengesidir ancak ve ancak Beckmann potansiyeli Φ'yi bütün olası akışlar içinde en küçük yapar. Sistem optimumu ise toplam gecikme C(f) = Σe fe · ℓe(fe)'yi en küçük yapan akıştır.

Teoremin iki önemli sonucu vardır. Birincisi varlık: olası akışlar kümesi sınırlıdır ve sürekli bir fonksiyon böyle bir kümede en küçük değerini alır; demek ki Wardrop dengesi her zaman vardır. İkincisi tekillik: gecikmeler azalmayan olduğu için Φ “çanak biçimli” (dışbükey) bir fonksiyondur. Çanak biçimli bir fonksiyonun birden çok en küçük noktası olsa bile bu noktalarda kenar gecikmeleri aynıdır. 8.2.2'deki “hangi denge bulunursa bulunsun kenar gecikmeleri aynıdır” cümlesinin dayanağı budur.

50b70b90b110b01.0002.0003.000x₁ (Yol 1'deki araç)bin araç·dkC en küçük: 1.500Φ en küçük: 2.000C(x₁)Φ(x₁)
Şekil 8.8: İki ayrı en aza indirme. Mavi eğri toplam gecikme C(x1), kırmızı eğri Beckmann potansiyeli Φ(x1). C'nin dibi x1 = 1.500'de (optimum, 71.250), Φ'ninki x1 = 2.000'de (denge, 52.500).

Şekil 8.8 iki eğriyi yan yana koyar. Tablo 8.3'teki sayılar da aynı şeyi söyler: Φ en küçük değerini 2.000'de (52.500), C en küçük değerini 1.500'de (71.250) alır. Denge potansiyelin dibidir, optimum toplam gecikmenin dibidir. İki dip farklı yerdedir, çünkü iki fonksiyonun türevleri farklıdır:

  • Φ'nin bir kenara göre türevi ℓe'dir: son gelen sürücünün gördüğü gecikme.
  • C'nin bir kenara göre türevi ℓe + fe · ℓe′'dir: marjinal maliyet.

Fark tek bir terimden gelir: fe · ℓe′. Bu terim, bir sürücünün kendi varlığıyla ötekilere yüklediği ek gecikmedir. Sürücü bu dışsallığı (externality) hesaba katmaz. Dengede Yol 1'de bu terim 2.000 × 1/100 = 20 araç·dakikadır: Yol 1'e giren her yeni sürücü, oradaki 2.000 kişinin her birini 1/100 dakika yavaşlatır. Dışsallık kavramı 8.5.1'de ayrıca incelenir.

8.2.6Kod izleme: denge_bul()

İki yollu ağda dengeyi denklem çözerek bulmak kolaydır. Gecikmeler doğrusal değilse (örneğin BPR) denklemi elle çözmek zorlaşır. O zaman sayısal bir yöntem kullanılır. Aşağıdaki fonksiyon dengeyi ikiye bölme (bisection) yöntemiyle arar. Girdi olarak iki gecikme fonksiyonu l1, l2, toplam trafik r ve istenen hassasiyet eps alınır.

def denge_bul(l1, l2, r, eps=50):
  lo, hi = 0, r
  while hi - lo > eps:
    x = (lo + hi) / 2
    if l1(x) < l2(r - x):
      lo = x      # Yol 1 hâlâ hızlı: artır
    else:
      hi = x      # Yol 1 yavaş: azalt
  return (lo + hi) / 2

Kod şöyle çalışır:

  • lo ve hi, dengenin içinde bulunduğu bilinen aralığın uçlarıdır. Başta aralık [0, r]'dir: Yol 1'deki araç sayısı 0 ile r arasında olmak zorundadır.
  • Döngü, aralığın genişliği eps'ten büyük olduğu sürece döner.
  • Her turda aralığın orta noktası x denenir. Yol 1'de x, Yol 2'de r - x araç vardır.
  • l1(x) < l2(r - x) ise Yol 1 hâlâ daha hızlıdır. Araçlar Yol 1'e geçmek ister; denge daha sağdadır. Aralığın sol ucu x'e taşınır.
  • Aksi hâlde Yol 1 fazla kalabalıktır; denge daha soldadır. Aralığın sağ ucu x'e taşınır.
  • Döngü bitince aralığın ortası döndürülür.

Yöntemin doğru çalışmasının nedeni şudur: g(x) = ℓ1(x) − ℓ2(r − x) farkı x ile artar, çünkü x artınca Yol 1 yavaşlar, Yol 2 hızlanır. Artan bir fonksiyonun tek bir sıfırı vardır ve o sıfır dengedir. x = 0'da Yol 1 hızlıdır (g < 0), x = r'de yavaştır (g > 0); sıfır bu ikisinin arasındadır. Her tur aralığı yarıya indirdiği ve sıfırı hep aralığın içinde tuttuğu için arama sıfıra yaklaşır.

Tablo 8.5: denge_bul(l1, l2, 3000) izlemesi (ℓ1 = 5 + x/100, ℓ2 = 20 + x/200, eps = 50).
Turxℓ1(x)ℓ2(r − x)KararYeni aralıkGenişlik
————başlangıç[0, 3.000]3.000
11.5002027,5lo = x[1.500, 3.000]1.500
22.25027,523,75hi = x[1.500, 2.250]750
31.87523,7525,63lo = x[1.875, 2.250]375
42.062,525,6324,69hi = x[1.875, 2.062,5]187,5
51.968,7524,6925,16lo = x[1.968,75, 2.062,5]93,75
62.015,6325,1624,92hi = x[1.968,75, 2.015,63]46,88

Altıncı turdan sonra (Şekil 8.9) genişlik 46,88'dir ve 46,88 ≤ 50 olduğundan döngü durur. Fonksiyon (1.968,75 + 2.015,63)/2 ≈ 1.992,19 döndürür. Gerçek denge 2.000'dir; hata yaklaşık 8 araçtır ve eps'in yarısından küçüktür.

1020304001.0002.0003.000x₁dkℓ₁(x₁)ℓ₂(r − x₁)lo = 1.968,75hi = 2.015,63genişlik = 46,88x = 2.015,63ℓ₁ = 25,16 · ℓ₂ = 24,92
Şekil 8.9: denge_bul'un altıncı turu. Mavi doğru ℓ1(x1), kırmızı doğru ℓ2(r − x1); turuncu şerit kalan aralık [1.968,75, 2.015,63], kesikli çizgi denenen x = 2.015,63. Aralık kesişme noktasını (2.000) hep içinde tutar.

Her tur aralığı yarıya indirdiği için k tur sonra aralığın genişliği r/2k'dir ve hata en çok bu kadardır. 3.000 araçla 6 turda genişlik 3.000/64 ≈ 46,9'a iner. Daha hassas bir sonuç için her ek tur hatayı yarıya böler; 10 tur daha hatayı yaklaşık bin kat küçültür. Yöntem bu yüzden çok hızlıdır.

Örnek 8.7

Örnek 8.4'teki ağda (r = 6.000; ℓ1 = 10 + x/200, ℓ2 = 25 + x/100) denge_bul'un ilk iki turu izlenir.

  1. Başlangıç aralığı [0, 6.000]'dir. Tur 1'de x = 3.000: ℓ1 = 10 + 15 = 25, ℓ2(3.000) = 25 + 30 = 55. 25 < 55, Yol 1 hızlıdır: lo = 3000, aralık [3.000, 6.000].
  2. Tur 2'de x = 4.500: ℓ1 = 10 + 22,5 = 32,5, ℓ2(1.500) = 25 + 15 = 40. 32,5 < 40: lo = 4500, aralık [4.500, 6.000].
  3. Denge (5.000) bu aralığın içindedir. Arama yedinci turda durur ve yaklaşık 4.992 döndürür.

Bu yöntem yalnız iki yollu ağlarda çalışır, çünkü orada tek bir bilinmeyen (x1) vardır. Çok yollu genel ağlarda denge, Beckmann potansiyelini en küçük yapan akıştır ve dışbükey optimizasyon yöntemleriyle bulunur. Trafik planlamasında en yaygın kullanılan yöntem Frank–Wolfe algoritmasıdır: her adımda mevcut gecikmelerle en kısa yolları (örneğin Dijkstra ile) bulur ve akışı bu yollara doğru biraz kaydırır.

8.2.7Bencil yönlendirmede sık hatalar

Sık yapılan hata
  • Dengeyi “eşit bölünme” sanmak: Denge trafiği yollara eşit bölmez, gecikmeleri eşitler. İki yollu ağda eşit bölünme (1.500 / 1.500) denge değil, optimumdur.
  • Eşitleme denklemini körü körüne kullanmak: Denklem yalnız iki yol da kullanılıyorsa geçerlidir. Çözüm negatif ya da r'den büyük çıkarsa denge bir uçtadır.
  • Optimumda gecikmeleri eşitlemek: Optimumda eşitlenen marjinal maliyetlerdir (ℓ + x · ℓ′), gecikmeler değil. Optimumda yolların süreleri çoğu zaman farklıdır (20 ve 27,5).
  • Türevde sabiti ikiye katlamak: (x · (5 + x/100))′ = 5 + x/50'dir, 10 + x/50 değil. Ek terim yalnız x · ℓ′'den gelir.
  • Toplam gecikmeyi ortalama sanmak: 75.000 araç·dakika toplamdır; ortalama yolculuk süresi 75.000 / 3.000 = 25 dakikadır.
  • Potansiyeli toplam gecikmeyle karıştırmak: Φ bir “maliyet” değil, dengeyi bulmaya yarayan yardımcı bir fonksiyondur. Değeri (52.500) gerçek bir toplam süreyi göstermez.

8.3Braess paradoksu

Alman matematikçi Dietrich Braess, 1968'de trafik planlamasıyla ilgili kısa bir makale yayımladı (Braess, 1968). Makalenin gösterdiği şey basit ama rahatsız ediciydi: bir ağa yeni bir yol eklemek, bencil rota seçimi yüzünden herkesin yolculuğunu uzatabilir. Bu kesimde paradoks önce sayılarla adım adım kurulur, sonra nedeni, gerçek hayattaki örnekleri ve tasarım açısından sonuçları incelenir.

8.3.1Braess paradoksu adım adım

Kurulum 8.1.1'deki oyunun aynısıdır, yalnız sürücü sayısı somut olarak 4.000'dir. 4.000 araç s'den t'ye gider. s→A ve B→t dar yollardır: x araç varken x/100 dakika sürerler. A→t ve s→B geniş otoyollardır: trafikten bağımsız olarak 45 dakika sürerler. Oyundaki 40 · x/N formülünde N = 4.000 yazılınca x/100 elde edilir; iki anlatım aynıdır.

x/1002.000 araç452.000 araç452.000 araçx/1002.000 araçsABtYolaraçsüres→A→t2.00065 dks→B→t2.00065 dks→A→B→t——Ortalama: 65 dkToplam: 260.000 araç·dk
Şekil 8.10: Kestirme yokken Braess ağının dengesi. Araçlar iki rotaya 2.000 / 2.000 bölünür; her rota 2.000/100 + 45 = 65 dakika sürer. Toplam gecikme 260.000 araç·dakikadır.
Örnek 8.8
  1. Kestirme yokken. İki rota vardır: üst (s→A→t) ve alt (s→B→t). Ağ simetriktir; her rotanın bir dar ve bir geniş yolu vardır. Üst rotada x araç varsa üst rota x/100 + 45, alt rota (4.000 − x)/100 + 45 dakika sürer. Eşitlik x = 2.000'i verir. Her rota 20 + 45 = 65 dakikadır. Rota değiştiren sürücü kazanmaz: bu bir Wardrop dengesidir. Üstelik simetri yüzünden aynı zamanda optimumdur.
  2. Kestirme açılır. Belediye A'dan B'ye çok kısa, süresi 0 dakika olan bir bağlantı yolu açar. Başlangıçta kimse onu kullanmıyor.
  3. İlk sürücü dener. Tek bir sürücü zikzak rotayı (s→A→B→t) dener. s→A'da 2.000 araç vardır (20 dakika), A→B 0 dakika, B→t'de 2.000 araç vardır (20 dakika). Toplam 20 + 0 + 20 = 40 dakika. Eski rotasında 65 dakika yaşıyordu; 25 dakika kazanır. Bireysel olarak çok kârlıdır ve sürücü geçer.
  4. Geçiş sürer. Diyelim ki 1.000 sürücü zikzağa geçti; her eski rotada 1.500 sürücü kaldı. Dar yollarda artık 1.500 + 1.000 = 2.500 araç vardır ve her biri 25 dakika sürer. Eski rotalar 25 + 45 = 70, zikzak 25 + 0 + 25 = 50 dakikadır. Zikzak hâlâ çok daha hızlıdır; geçiş sürer.
  5. Herkes zikzakta. 4.000 sürücünün hepsi zikzaktadır. Dar yolların her birinde 4.000 araç vardır (40 dakika). Zikzak 40 + 0 + 40 = 80 dakika sürer.
  6. Denge kontrolü. Eski bir rotaya dönen sürücü bir dar yol (40 dakika) ve bir geniş yol (45 dakika) kullanır: 40 + 45 = 85 dakika. 85 > 80 olduğundan kimse dönmez. Bu yeni Wardrop dengesidir.

Sonuç: yol eklendi ve herkes 15 dakika kaybetti. Toplam gecikme 260.000'den 4.000 × 80 = 320.000 araç·dakikaya çıktı.

x/1002.500 araç451.500 araç451.500 araçx/1002.500 araç01.000 araçsABtYolaraçsüres→A→t1.50070 dks→B→t1.50070 dks→A→B→t1.00050 dkZikzak hâlâ en hızlı50 dk < 70 dk
Şekil 8.11: Geçiş sürerken: 1.000 sürücü zikzakta. Dar yollarda 2.500 araç (25 dakika); eski rotalar 70, zikzak 50 dakika. Zikzak hâlâ en hızlı rotadır.
x/1004.000 araç450 araç450 araçx/1004.000 araç04.000 araçsABtYolaraçsüres→A→t085 dks→B→t085 dks→A→B→t4.00080 dk65 → 80 dk260 bin → 320 bin araç·dk
Şekil 8.12: Kestirmeli ağın dengesi: 4.000 sürücünün hepsi zikzakta, herkes 80 dakika. Eski rotalar 85 dakikaya çıktığı için boştur. Ortalama süre 65'ten 80 dakikaya, toplam gecikme 260 binden 320 bin araç·dakikaya çıkmıştır.

Şekil 8.10, Şekil 8.11 ve Şekil 8.12 bu süreci üç anda gösterir. Tablo 8.6 aynı süreci sayılarla özetler.

Tablo 8.6: Kestirme açıldıktan sonra geçiş (z: zikzaktaki araç sayısı; kalan trafik iki eski rotaya eşit bölünür).
zDar yoldaki araçDar yol (dk)Eski rota (dk)Zikzak (dk)
02.000206540
1.0002.500257050
2.0003.000307560
3.0003.500358070
4.0004.000408580

Tablonun her satırında zikzak eski rotalardan daha hızlıdır (fark 25 dakikadan 5 dakikaya iner). Ama z büyüdükçe iki süre de artar: her geçen sürücü, hem zikzaktakileri hem eski rotalardakileri yavaşlatır. Sürücüler her adımda “daha hızlı” rotaya geçer, ama hep birlikte geçtikleri için sonunda herkes başlangıçtakinden daha yavaştır. Kapasite artışı ile bencil seçim birleşince daha kötü bir dengeye varılmıştır.

Örnek 8.9

Aynı ağda (dar yollar x/100, geniş yollar 45 dakika) araç sayısı 6.000 olsun. Yeni yoldan önce ve sonra denge süresi bulunur.

  1. Önce: simetriyle 3.000 / 3.000. Her rota 30 + 45 = 75 dakika.
  2. Sonra, herkes zikzakta olabilir mi? Dar yollarda 6.000 araç: zikzak 60 + 0 + 60 = 120 dakika. Eski rotaya dönen 60 + 45 = 105 dakika yaşar. 105 < 120 olduğundan dönmek kârlıdır; bu bir denge değildir.
  3. Trafiğin bölündüğü denge. Zikzakta z, eski rotaların her birinde y araç olsun. s→A yolunu hem üst rota hem zikzak kullanır; üzerindeki akış y + z'dir. B→t için de aynısı geçerlidir. Kullanılan üç rotanın süresi eşit olmalıdır: zikzak 2(y + z)/100, eski rota (y + z)/100 + 45. Eşitlik (y + z)/100 = 45, yani y + z = 4.500 verir.
  4. Akış korunumu. Bütün araçlar sayılmalıdır: 2y + z = 6.000. İki denklemden y = 1.500, z = 3.000 bulunur.
  5. Süre. Dar yollarda 4.500 araç (45 dakika). Bütün rotalar 45 + 45 = 90 dakikadır. Paradoks yine görülür: 75'ten 90'a. Bu kez bazı sürücüler eski rotalarda kalır, ama herkesin süresi 15 dakika uzar.

8.3.2Neden herkes zikzağa geçer?

4.000 araçlı örnekte herkesin zikzağa geçmesi tesadüf değildir. Zikzak rota, kalan trafik nasıl dağılırsa dağılsın eski rotalardan hızlıdır. Bunu görmek için zikzaktaki araç sayısı z ile gösterilir ve kalan 4.000 − z araç iki eski rotaya eşit bölünür.

  • Her eski rotada (4.000 − z)/2 = 2.000 − z/2 araç vardır.
  • s→A'daki akış, üst rotadakiler ile zikzaktakilerin toplamıdır: 2.000 − z/2 + z = 2.000 + z/2. Süre 20 + z/200 dakika. B→t için de aynısı geçerlidir.
  • Eski rota: bir dar yol ve bir geniş yol, 20 + z/200 + 45 = 65 + z/200 dakika.
  • Zikzak: iki dar yol ve kestirme, 2 · (20 + z/200) + 0 = 40 + z/100 dakika.
3040506070809001.0002.0003.0004.000z: zikzak kullanan araçyolculuk süresi (dk)eski denge 65s→A→t, s→B→tzikzak
Şekil 8.13: Zikzaktaki araç sayısı z'ye göre yolculuk süreleri. Mavi doğru eski rotalar (65 + z/200), kırmızı doğru zikzak (40 + z/100). Kırmızı her z için mavinin altındadır; z = 4.000'de herkes 80 dakika yaşar. Kesikli çizgi eski denge (65).

Şekil 8.13 iki doğruyu gösterir. Zikzak, eski rotalardan ancak 40 + z/100 ≥ 65 + z/200 olduğunda yavaş olurdu; bu da z/200 ≥ 25, yani z ≥ 5.000 demektir. Oysa yalnız 4.000 araç vardır. Demek ki zikzak her durumda daha hızlıdır.

Aynı sonuca daha kısa bir yoldan da varılır. Zikzağın ikinci yarısı B→t'dir; bu yol en kalabalık hâlinde bile en çok 4.000/100 = 40 dakika sürer. Eski alt rotanın ilk yarısı s→B ise her zaman 45 dakikadır. Yani s'den B'ye geçmek için A üzerinden gitmek (s→A en çok 40 dakika) her zaman doğrudan otoyoldan (45 dakika) hızlıdır. Simetrik olarak A'dan t'ye B üzerinden gitmek de her zaman hızlıdır. Zikzak, her sürücü için baskın bir seçimdir: ötekiler ne yaparsa yapsın daha iyidir.

Mahkûmun İkilemi ile benzerlik açıktır. O oyunda ihanet her oyuncu için baskın stratejidir, ama herkes ihanet edince herkes kötü duruma düşer. Burada da zikzak herkes için baskındır, ama her geçen sürücü dar yollara yük bindirir. z = 4.000'de herkes 80 dakika yaşar; kestirme hiç olmasaydı herkes 65 dakika yaşayacaktı.

8.3.3Kestirmeli ağın sistem optimumu

Kestirme yolun kendisi kötü değildir. Kötü olan, onun bencil biçimde kullanılmasıdır. Bunu görmek için kestirmeli ağın sistem optimumu hesaplanır: bir planlayıcı trafiği nasıl dağıtırsa ortalama süre en küçük olur?

Örnek 8.10
  1. Simetri yüzünden iki eski rotaya eşit sayıda araç (y) verilir; zikzakta z araç olur, 2y + z = 4.000. Dar yollardaki akış a = y + z'dir.
  2. Toplam gecikme kenar kenar yazılır. Her dar yolda a araç a/100 dakika geçirir: iki dar yol birlikte 2 · a · a/100 = a²/50. Geniş yollarda toplam 2y araç 45 dakika geçirir: 90y. Kestirme 0 katkı yapar. y = 4.000 − a olduğundan C(a) = a²/50 + 90 (4.000 − a).
  3. Türev sıfırlanır: C′(a) = a/25 − 90 = 0, yani a = 2.250. Buradan y = 1.750, z = 500.
  4. Toplam: 2.250²/50 + 90 · 1.750 = 101.250 + 157.500 = 258.750 araç·dakika. Ortalama 258.750 / 4.000 ≈ 64,7 dakika.
  5. Bu dağılımda dar yollar 22,5 dakika sürer. Zikzaktaki 500 sürücü 22,5 + 22,5 = 45 dakika, eski rotalardaki 3.500 sürücü 22,5 + 45 = 67,5 dakika yaşar.

Optimumda zikzağa küçük bir pay verilir (500 araç) ve ortalama süre 65'ten 64,7'ye biraz düşer. Kestirme, doğru kullanılırsa küçük de olsa bir iyileşme sağlar. Ama bu dağılım bir denge değildir: eski rotalardaki sürücüler 67,5 dakika yaşarken zikzakta 45 dakika yaşanmaktadır ve hepsi zikzağa geçmek ister. Tablo 8.7 dört durumu karşılaştırır.

Tablo 8.7: Braess ağında ortalama yolculuk süresi (dakika).
Bencil dengeOptimum
Kestirme yok20 + 45 = 6565
Kestirme var40 + 0 + 40 = 80≈ 64,7

Tablo, oyunun başındaki iki merak sorusunun cevabını verir. Kestirme açılınca yolculuklar kısalmaz, uzar (65 → 80). Herkes kendi en hızlı yolunu seçince ortalama süre en küçük olmaz (80 > 64,7). Kuramın cevabı iki soruya da “hayır”dır.

8.3.4Paradoksun dersi ve gerçek örnekler

Tanım 8.6

Braess paradoksu (Braess's paradox): bir ağa yeni bir bağlantı eklemenin, bencil rota seçimi nedeniyle denge gecikmesini, hatta bütün kullanıcıların gecikmesini artırabilmesidir (Braess, 1968).

Paradoksun mantığı şudur: yeni yol bireysel olarak çekici görünür, ancak kullanıcıların birlikte oluşturduğu trafik deseni daha kötü bir dengeye taşınır. Bunun tersi de doğrudur: bir yolu kapatmak bazen herkesi hızlandırabilir. Braess ağında A→B'yi kapatmak herkesin süresini 80'den 65 dakikaya indirir.

Paradoks yalnız kâğıt üzerinde kalmamıştır. Sıkça anılan birkaç örnek vardır:

  • Stuttgart (1969). Şehir merkezine yapılan yeni yol yatırımından sonra trafik bozulmuş, bir cadde kapatılınca düzelmiştir (Knödel, 1969).
  • New York (1990). Dünya Günü'nde 42. Cadde trafiğe kapatıldığında beklenen tıkanıklığın oluşmadığı bildirilmiştir (Kolata, 1990).
  • Seul. Cheonggyecheon deresi üzerindeki yükseltilmiş otoyol 2000'lerin başında kaldırıldı ve bir kent parkına dönüştürüldü. Bundan sonra şehir trafiğinin beklenen ölçüde kötüleşmediği sıkça anılır.
  • Mekanik ve elektrik ağları. Yaylardan ve dirençlerden kurulan ağlarda da benzer bir paradoks gösterilmiştir: bir yayı kesmek asılı bir ağırlığı yukarı kaldırabilir (Cohen ve Horowitz, 1991).
  • Laboratuvar deneyleri. Denekler bilgisayar ortamında rota seçtiğinde, kestirme eklenince zamanla paradoksun öngördüğü daha yavaş dengeye yöneldiler (Rapoport vd., 2009).

Bu örnekler dikkatle yorumlanmalıdır. Gerçek ağlar çok daha karmaşıktır; bir cadde kapatılınca bazı sürücüler toplu taşımaya geçer, bazıları yolculuk saatini değiştirir. Bu yüzden örnekler paradoksun kesin kanıtı değil, olası olduğunun göstergesidir. Ama ders açıktır: yol yapmak ya da kapatmak, yalnız kapasiteye göre değil, sürücülerin varacağı dengeye göre değerlendirilmelidir. Paradoksun etkisini azaltmanın yolları da vardır: ücretlendirme, erişim kısıtı ya da merkezi yönlendirme. Bunlar 8.6'da ele alınır.

8.3.5Kod izleme: en_iyi_alt_ag()

Braess paradoksu, ağ tasarımcısına yeni bir soru sordurur: verilen ağdan hangi kenarlar kapatılırsa denge süresi en çok düşer? Aşağıdaki fonksiyon bu sorunun basit bir sürümünü çözer: tek bir kenar kapatmayı dener.

def en_iyi_alt_ag(ag, r):
  eniyi, sil = denge_suresi(ag, r), None
  for e in ag:
    alt = [k for k in ag if k != e]
    d = denge_suresi(alt, r)   # yol yoksa inf
    if d < eniyi:
      eniyi, sil = d, e
  return sil, eniyi

Fonksiyon, denge_suresi(ag, r) adlı yardımcı bir fonksiyonu kullanır. Bu fonksiyon, verilen alt ağdaki Wardrop dengesinde kullanılan yolların ortak süresini döndürür. Betikte bu süre Beckmann potansiyeli en aza indirilerek hesaplanmıştır (8.2.5). s'den t'ye hiç yol kalmazsa sonsuz (inf) döner. Kod satır satır şöyle çalışır:

  • eniyi, şimdiye kadar bulunan en küçük denge süresidir; başta hiçbir şey silinmemiş ağın süresidir. sil hangi kenarın silindiğini tutar; başta None (hiçbiri).
  • Döngü ağdaki her e kenarını sırayla dener.
  • alt, e dışındaki bütün kenarlardan oluşan alt ağdır.
  • d, bu alt ağın denge süresidir.
  • d şimdiye kadarki en iyiden kesin küçükse aday güncellenir.
  • Sonunda silinecek kenar ve yeni denge süresi döndürülür.
Tablo 8.8: en_iyi_alt_ag(braess, 4000) izlemesi.
Silinen kenarKalan yollar ve denged (dk)d < eniyi?eniyi, sil
— (başlangıç)Herkes zikzakta80—80, None
s→AYalnız s→B→t: 40 + 4585hayır80, None
A→tZikzak ve alt; zikzak baskın80hayır (eşit)80, None
s→BÜst ve zikzak; zikzak baskın80hayır (eşit)80, None
B→tYalnız s→A→t: 40 + 4585hayır80, None
A→BBraess öncesi ağ: 2.000 / 2.000, 20 + 4565evet65, A→B

Tablonun iki satırı ayrıca açıklanmalıdır. A→t kapatılınca iki rota kalır: zikzak (s→A→B→t) ve alt (s→B→t). İkisi de B→t'yi kullanır; bu yüzden B→t'de 4.000 araç vardır ve 40 dakika sürer. Zikzağın ilk kısmı s→A en çok 40 dakika, alt rotanın ilk kısmı s→B ise 45 dakikadır; zikzak yine baskındır. Herkes zikzağa geçer ve süre 40 + 0 + 40 = 80 dakika olur. s→B kapatılınca da simetrik durum ortaya çıkar. Bu iki satırda d eski en iyiye eşittir; kod kesin küçüklük aradığı için aday değişmez.

x/1004545x/100✕ 0sABtsilinendenge süresi—80 dks→A85 dkA→t80 dks→B80 dkB→t85 dkA→B65 dkeniyi65 dksil = A→B
Şekil 8.14: en_iyi_alt_ag'ın sonucu. Solda ağ (A→B kesikli ve çarpı işaretli: kapatılacak kenar), ortada her silme denemesinin denge süresi, sağda sonuç: eniyi = 65, sil = A→B.

Şekil 8.14 sonucu gösterir: A→B kapatılmalıdır ve denge süresi 80'den 65 dakikaya iner. Kodun bir sınırlılığı vardır: yalnız tek kenar silmeyi dener. Genel durumda birden çok kenarı birlikte silmek daha iyi olabilir. m kenarlı bir ağda bütün alt ağları denemek 2m denge hesabı ister. 30 kenarlı bir ağda bu bir milyardan fazladır; gerçek şehir ağlarında binlerce kenar vardır. Tasarımcının “hangi kenarları açık tutayım?” sorusu, genel ağda bu yüzden zordur.

8.3.6Bencil kullanıcılar için ağ tasarımı

Bu soru biçimsel olarak şöyle yazılır: verilen ağın hangi alt ağı açık kalırsa Wardrop dengesindeki süre en küçük olur? Burada yeni yol yapmak yerine yol kapatmak da bir tasarım kararıdır. İki sonuç bu problemin zorluğunu ve sınırlarını çizer.

Zorluk. Tim Roughgarden 2006'da bu problemin hesaplama açısından zor olduğunu gösterdi (Roughgarden, 2006). Doğrusal gecikmelerde hiçbir kenarı kapatmamak bile en iyi seçimden en çok 4/3 kat kötüdür. Ama bundan daha iyisini verimli biçimde garanti etmek NP-zordur: verimli bir algoritmanın her ağda “hiçbir şeyi kapatma” seçeneğinden belirgin biçimde iyi bir alt ağ bulması beklenmez. Braess örneğinde oran tam bu sınırdadır: 80/65 ≈ 1,23, yani 4/3 ≈ 1,33'ün altında.

Topoloji. Igal Milchtaich 2006'da hangi ağlarda paradoksun hiç görülemeyeceğini belirledi (Milchtaich, 2006). Seri-paralel ağlarda (series-parallel network) Braess paradoksu, gecikmeler nasıl seçilirse seçilsin hiç görülmez. Seri-paralel ağ, kenarları ardışık (seri) ya da yan yana (paralel) bağlayarak kurulan ağdır. İki yollu örnek böyledir: iki kenar s ile t arasında paralel bağlanmıştır. Diğer ağlarda ise uygun gecikmelerle paradoks görülebilir.

Seri-paralel: paradoks yoksutseri ve paralel bağlama ile kurulursABtWheatstone (Braess) alt yapısı
Şekil 8.15: Solda bir seri-paralel ağ: s ile u arasında iki paralel kenar, u ile t arasında üç paralel kenar, iki grup seri bağlı. Sağda Wheatstone yapısı: A→B köprüsü, ağı seri ve paralel bağlamayla kurulamaz hâle getirir.

Şekil 8.15 iki yapıyı karşılaştırır. Braess ağı, sağdaki Wheatstone yapısıdır (Wheatstone network); adını elektrik devrelerindeki Wheatstone köprüsünden alır. A→B köprüsü iki paralel rotayı “çaprazlar”. Seri ve paralel bağlama işlemleriyle böyle bir çapraz kurulamaz. Milchtaich'in sonucuna göre iki uçlu bir ağın paradokstan bağışık olması için gerekli ve yeterli koşul, Wheatstone yapısını içermemesidir; bu da ağın seri-paralel olmasıyla aynı şeydir. Döngülü ağlar ya da tam çizgeler genellikle Wheatstone yapısı içerir ve böyle bir güvence vermez.

8.3.7Braess paradoksunda sık hatalar

Sık yapılan hata
  • Kestirmeyi “kötü yol” sanmak: Kestirmenin kendisi kötü değildir; optimumda kullanılır ve ortalamayı biraz düşürür (64,7). Sorun bencil kullanımdır.
  • Akış korunumunu unutmak: s→A'daki akış yalnız üst rotadakiler değildir; zikzaktakiler de o yolu kullanır (y + z).
  • Her zaman herkesin zikzağa geçeceğini sanmak: 6.000 araçta zikzak baskın değildir; denge trafiği böler (3.000 zikzakta, 1.500'er eski rotalarda).
  • Paradoksun her ağda ve her trafik düzeyinde görüleceğini sanmak: Seri-paralel ağlarda hiç görülmez. Braess ağında bile trafik çok azsa kestirme gerçekten yararlı olabilir; paradoks belirli bir trafik aralığında ortaya çıkar.
  • Kapatma kararını tek kenarla sınırlamak: En iyi alt ağ birden çok kenarın kapatılmasını gerektirebilir; tek kenar denemek yalnız bir sezgisel yöntemdir.

8.4Tıkanıklık oyunları

Bölünebilir trafik modeli binlerce küçük kullanıcı için uygundur. Ama bazı durumlarda oyuncu sayısı azdır ve her birinin etkisi belirgindir: birkaç büyük taşımacılık şirketi, birkaç veri merkezi ya da bir ağda paket gönderen birkaç uygulama. Bu kesimde oyuncuların sayılabildiği (atomik) modele geçilir. Bu modelde de bencil seçimlerin bir dengeye varacağını gösteren güçlü bir araç vardır: Rosenthal potansiyeli.

8.4.1Tıkanıklık oyunu: atomik ve bölünebilir

Tanım 8.7

Bir tıkanıklık oyunu (congestion game) şu bileşenlerden oluşur:

  • n oyuncu ve bir kaynak kümesi E (örneğin bir ağın kenarları).
  • Her oyuncunun stratejisi bir kaynak alt kümesidir (örneğin bir s–t yolu, yani o yolun kenarları).
  • Her e kaynağının maliyeti ce(ne) yalnızca onu kullanan oyuncu sayısı ne'ye bağlıdır ve bu yükle artar.
  • Bir oyuncunun maliyeti, seçtiği kaynakların maliyetleri toplamıdır: ci(s) = Σe ∈ si ce(ne).

Tanımdaki önemli nokta, bir kaynağın maliyetinin kimin kullandığına değil, kaç kişinin kullandığına bağlı olmasıdır. Bir yolda Ali ile Ayşe ya da Can ile Deniz olması fark etmez; iki kişi varsa maliyet ce(2)'dir. Oyuncular kendi gecikmelerini azaltmaya çalışırken toplam ağ maliyeti yükselebilir; Braess paradoksu atomik modelde de görülür (8.4.3).

Atomik model ile bölünebilir model aynı fikrin iki yüzüdür. Tablo 8.9 farkları özetler.

Tablo 8.9: Atomik ve bölünebilir tıkanıklık modelleri.
AtomikBölünebilir
Oyuncusonlu, n kişisürekli akış
Etkitek kişi yükü 1 artırırtek kişi ihmal edilir
Dengesaf NashWardrop
PotansiyelRosenthal (toplam)Beckmann (integral)

Atomik modelde bir oyuncu yol değiştirince yeni yolundaki her kenarın kullanıcı sayısı bir artar. Bu yüzden oyuncu, yeni yolun maliyetini hesaplarken kendisini de saymalıdır: şu an 2 kişinin kullandığı bir kenara geçen oyuncu ce(2) değil ce(3) öder. Bu küçük ayrıntı, atomik hesaplarda en sık yapılan hatanın kaynağıdır.

Robert Rosenthal 1973'te tıkanıklık oyunlarının çok önemli bir özelliğini gösterdi: sonlu her tıkanıklık oyununda bir potansiyel fonksiyonu vardır, bu yüzden saf Nash dengesi her zaman bulunur (Rosenthal, 1973). Bu dikkat çekici bir sonuçtur. Genel oyunlarda saf denge olmayabilir; Taş-Kağıt-Makas'ta yalnız karışık denge vardır. Tıkanıklık oyunlarında ise karışık stratejiye gerek kalmaz.

8.4.2Rosenthal potansiyel fonksiyonu

Tanım 8.8

Bir s strateji profilinde ne, e kaynağını kullanan oyuncu sayısı olsun. Rosenthal potansiyeli (Rosenthal potential) şudur:

Φ(s) = Σe [ ce(1) + ce(2) + … + ce(ne) ]

Her kenarda 1'den kullanıcı sayısı ne'ye kadar maliyetler toplanır. Bu, toplam maliyet değildir. Toplam maliyette o kenardaki ne kullanıcının her biri ce(ne) öder ve kenarın katkısı ne · ce(ne) olur. Potansiyelde ise kullanıcılar kenara sırayla giriyormuş gibi düşünülür: birinci gelen ce(1), ikinci gelen ce(2), son gelen ce(ne) “öder”. Beckmann potansiyelindeki “eğrinin altındaki alan”ın atomik karşılığı budur: integral yerine toplam gelir.

1k=12k=23k=34k=4s→A: ce(k) = kΣ = 104k=14k=24k=34k=4A→t: ce(k) = 4Σ = 16
Şekil 8.16: Rosenthal potansiyelinin iki kenara katkısı. s→A kenarında ce(k) = k: dört kullanıcıyla katkı 1 + 2 + 3 + 4 = 10. A→t kenarında ce(k) = 4: katkı 4 + 4 + 4 + 4 = 16.

Şekil 8.16 bu toplamı çubuklarla gösterir. Maliyeti kullanıcı sayısıyla artan s→A kenarında çubuklar merdiven gibi yükselir; maliyeti sabit A→t kenarında hepsi aynı boydadır.

Örnek 8.11

Braess ağının atomik sürümünde 4 sürücü vardır. Kenar maliyetleri: s→A ve B→t'de ce(k) = k (k: kullanıcı sayısı), s→B ve A→t'de 4, A→B'de 0. 4 sürücünün hepsi s→A→t (üst) yolundadır.

  1. s→A'da 4 kullanıcı vardır: katkı 1 + 2 + 3 + 4 = 10.
  2. A→t'de 4 kullanıcı vardır: katkı 4 + 4 + 4 + 4 = 16.
  3. s→B, B→t ve A→B boştur: katkı 0.
  4. Φ = 10 + 16 = 26.
  5. Karşılaştırma için toplam maliyet: her sürücü c(s→A) + c(A→t) = 4 + 4 = 8 öder; toplam 4 × 8 = 32. Potansiyel (26) toplam maliyetten (32) farklıdır.

Potansiyelin değerli olmasının nedeni, şu özdeşliktir.

Teorem 8.2 (Rosenthal)

Bir tıkanıklık oyununda tek bir i oyuncusu stratejisini değiştirirse (ötekiler sabitken) potansiyeldeki değişim, tam olarak o oyuncunun maliyetindeki değişime eşittir:

ΔΦ = ci(yeni) − ci(eski)

Bu yüzden sonlu her tıkanıklık oyununda saf Nash dengesi vardır ve iyileştiren hamleler dizisi her zaman sonlu sayıda adımda durur.

i oyuncusu eski stratejisi P'den yeni stratejisi P′'ye geçsin. Kenarlar üç gruba ayrılır ve her grupta Φ'nin ne olduğuna bakılır.

(1) Hem P'de hem P′'de olan kenarlar: i bu kenarları kullanmayı sürdürür, kullanıcı sayısı değişmez. Bu kenarların Φ'ye katkısı aynı kalır. i'nin bu kenarlarda ödediği maliyet de aynı kalır.

(2) Yalnız P'de olan kenarlar: i bu kenarlardan çıkar ve kullanıcı sayısı ne'den ne − 1'e düşer. Bu kenarın toplamındaki son terim ce(ne) silinir. Bu terim, i'nin eski durumda o kenarda ödediği maliyettir.

(3) Yalnız P′'de olan kenarlar: i bu kenarlara girer ve kullanıcı sayısı ne'den ne + 1'e çıkar. Toplama yeni bir terim ce(ne + 1) eklenir. Bu terim, i'nin yeni durumda o kenarda ödeyeceği maliyettir.

Üç grup birleştirilince Φ'deki değişim, “eklenen terimler eksi silinen terimler”dir; bu da i'nin yeni maliyeti eksi eski maliyetidir. Ortak kenarlar iki tarafta da aynı olduğu için farkta birbirini götürür. Böylece ΔΦ = ci(yeni) − ci(eski) elde edilir.

Şimdi bir oyuncu maliyetini düşüren bir hamle yaparsa (ci(yeni) < ci(eski)), Φ kesin olarak azalır. Oyun sonlu olduğu için strateji profillerinin sayısı da sonludur; Φ bu yüzden sonlu çok değer alır. Kesin azalan bir dizi sonlu çok değer arasında sonsuza kadar süremez. Demek ki iyileştiren hamleler bir noktada durur. Durduğu yerde hiçbir oyuncu tek başına maliyetini düşüremez; bu tanım gereği bir saf Nash dengesidir. ∎

İspatın bir sonucu daha vardır: Φ'nin bütün profiller içindeki en küçük değerini veren profil de bir saf Nash dengesidir. Çünkü orada herhangi bir oyuncunun maliyetini düşüren bir hamle Φ'yi daha da küçültürdü; bu, en küçük değerde olmakla çelişir.

8.4.3En iyi tepki dinamiği ve Φ adım adım

Teoremi işlerken görmek için Örnek 8.11'deki atomik Braess ağına en iyi tepki dinamiği uygulanır. Sürücüler 1, 2, 3, 4 sırasıyla hamle yapar. Sırası gelen sürücü, ötekiler sabitken maliyeti en küçük olan yolu seçer. Üç yol vardır: üst (s→A→t), alt (s→B→t) ve zik (s→A→B→t). Eşitlik olursa sürücü bu sıradaki ilkini seçer; ama yalnız kesin iyileşme varsa yerini değiştirir.

k [4]4 [4]4 [0]k [0]0 [0]sABtsürücüyolmaliyet1üst82üst83üst84üst8Φ (potansiyel)26
Şekil 8.17: Başlangıç: dört sürücü de üst yolda. Kenar etiketlerinde maliyet fonksiyonu ve köşeli parantez içinde kullanıcı sayısı. Herkesin maliyeti 4 + 4 = 8, Φ = 26.

Şekil 8.17 başlangıç durumunu gösterir. Dinamik dört hamlede şöyle ilerler.

Örnek 8.12
  1. Sürücü 1 (üst, 8). Üst yolda kalırsa 8 öder. Alt yola geçerse s→B 4 ve B→t'de tek kullanıcı (kendisi) olur: 4 + 1 = 5. Zik'e geçerse s→A'da kullanıcı sayısı yine 4'tür (o zaten oradadır): 4 + 0 + 1 = 5. Alt ve zik eşittir; sıradaki ilk olan alt seçilir. Maliyet 8'den 5'e iner. Φ: 26 → 23 (Δ = −3).
  2. Sürücü 2 (üst, artık 7: s→A'da 3 kişi). Üst 7. Alt: s→B 4, B→t'de sürücü 1 ile birlikte 2 kişi: 4 + 2 = 6. Zik: s→A 3, A→B 0, B→t 2: 3 + 0 + 2 = 5. En iyisi zik. Maliyet 7'den 5'e iner. Φ: 23 → 21 (Δ = −2).
  3. Sürücü 3 (üst, 7). Üst 7. Alt: 4 + 3 = 7. Zik: 3 + 0 + 3 = 6. En iyisi zik. Maliyet 7'den 6'ya iner. Φ: 21 → 20 (Δ = −1).
  4. Sürücü 4 (üst, 7). Alt: 4 + 4 = 8. Zik: 3 + 0 + 4 = 7. Daha iyisi yoktur; kalır.
  5. İkinci tur. Sürücü 1 (alt, 7): üst 4 + 4 = 8, zik 4 + 0 + 3 = 7 (s→A'ya girince orada 4 kişi olur); kesin iyileşme yok. Sürücü 2 ve 3 (zik, 6): üst 7, alt 7; kalırlar. Sürücü 4 (üst, 7): yine kalır. Kimse iyileştiremez: saf Nash dengesi, Φ = 20.

Her adımda Φ'nin düşüşü, hamle yapan sürücünün kazancına eşittir: 3, 2, 1. Bu, teoremin özdeşliğinin sayılarla doğrulanmasıdır. Örneğin sürücü 1'in hamlesinde s→A ve A→t kenarlarından birer terim silinir (4 ve 4, toplam 8: onun eski maliyeti); s→B ve B→t kenarlarına birer terim eklenir (4 ve 1, toplam 5: onun yeni maliyeti). ΔΦ = 5 − 8 = −3.

Tablo 8.10: En iyi tepki dinamiğinin izlemesi (seçenek maliyetleri: üst / alt / zik).
HamleMevcutüst / alt / zikSeçimΦ
Başlangıçherkes üst, 8——26
Sürücü 1üst, 88 / 5 / 5alt26 → 23
Sürücü 2üst, 77 / 6 / 5zik23 → 21
Sürücü 3üst, 77 / 7 / 6zik21 → 20
Sürücü 4üst, 77 / 8 / 7kalır20
2. tur(alt, zik, zik, üst)kimse iyileştiremez—20
k [3]4 [1]4 [1]k [3]0 [2]sABtsürücüyolmaliyet1alt72zik63zik64üst7Φ (potansiyel)26232120
Şekil 8.18: Dinamiğin sonu: (alt, zik, zik, üst) dengesi. Maliyetler 7, 6, 6, 7; sağdaki çubuklar Φ'nin 26 → 23 → 21 → 20 düşüşünü gösterir.

Şekil 8.18 dengeyi gösterir. Toplam maliyet 7 + 6 + 6 + 7 = 26'dır. A→B kenarı hiç olmasaydı sürücüler 2 + 2 bölünürdü: üst yolda 2 kişi (s→A 2, A→t 4: maliyet 6), alt yolda 2 kişi (s→B 4, B→t 2: maliyet 6). Toplam 24 olurdu. Kestirme, toplam maliyeti 24'ten 26'ya çıkarmıştır. Bu, Braess paradoksunun atomik sürümüdür.

Bir ayrıntı daha önemlidir: dinamiğin vardığı denge, oyunun tek dengesi değildir. Bütün profiller taranınca sürücü adları dışında dört saf denge bulunur: (alt, zik, zik, üst), (alt, zik, zik, zik), (zik, zik, zik, üst) ve dördünün de zik'te olduğu profil. Toplam maliyetleri sırasıyla 26, 29, 29 ve 32'dir. Dördünde de Φ = 20'dir ve bu, potansiyelin en küçük değeridir. Hangi dengeye varılacağı, hamle sırasına ve eşitlik kuralına bağlıdır.

Örnek 8.13

Dengede (alt, zik, zik, üst) Φ doğrudan hesaplanır ve sürücü 4'ün zik'e geçmesinin etkisine bakılır.

  1. Kullanıcı sayıları: s→A'yı iki zik ve bir üst sürücüsü kullanır (3 kişi); B→t'yi alt ve iki zik kullanır (3 kişi); A→t'yi yalnız üst (1); s→B'yi yalnız alt (1); A→B'yi iki zik (2).
  2. Φ = (1 + 2 + 3) + (1 + 2 + 3) + 4 + 4 + (0 + 0) = 20.
  3. Sürücü 4 zik'e geçerse: s→A'da zaten oradadır (3 kişi, 3); A→B 0; B→t'de kullanıcı sayısı 4'e çıkar (4). Yeni maliyet 3 + 0 + 4 = 7. Eski maliyeti de 7'dir.
  4. Maliyet değişmediği için ΔΦ = 0. Kontrol: A→t'den 4 silinir, A→B'ye 0 ve B→t'ye 4 eklenir; fark 0'dır.

8.4.4Potansiyel oyunlar: ne kazandık?

Rosenthal'ın fikri tıkanıklık oyunlarının ötesine genellenir. Dov Monderer ve Lloyd Shapley 1996'da bu genellemeye ad verdi (Monderer ve Shapley, 1996).

Tanım 8.9

Bir oyun, her oyuncunun her tek taraflı sapmasında maliyet değişimini aynen veren bir Φ fonksiyonuna sahipse bir (tam) potansiyel oyundur (potential game): her i, her si, si′ ve her s−i için

Φ(si′, s−i) − Φ(si, s−i) = ci(si′, s−i) − ci(si, s−i)

Φ'ye potansiyel fonksiyonu (potential function) denir.

Potansiyel fonksiyonu, bütün oyuncuların bencil hamlelerini tek bir “ortak ölçü”de toplar. Her oyuncu kendi maliyetini düşürmek ister; potansiyel oyunda bunu yapan her hamle aynı ortak ölçüyü de düşürür. Oyuncular farkında olmadan aynı fonksiyonu küçültmek için çalışıyor gibidir. Bu bakış birkaç kazanç sağlar:

  • Varlık. Φ'nin en küçük değerini veren durum bir saf Nash dengesidir; denge her zaman vardır.
  • Yakınsama. İyileştiren hamleler dizisi sonsuza gidemez. Bu özelliğe sonlu iyileşme özelliği (finite improvement property) denir. Her en iyi tepki dinamiği durur.
  • Öğrenme. Oyuncuların dengeyi “bilmesi” gerekmez. Sırayla en iyi tepki vermeleri dengeye ulaşmak için yeter. Bu, dengenin gerçek hayatta neden ortaya çıkabileceğine dair güçlü bir açıklamadır.
  • Verimlilik. Φ'yi en küçük yapan denge, dengeler içinde iyi bir denge seçmenin bir yoludur; çünkü Φ toplam maliyetle yakından ilişkilidir. Ama bu bir garanti değildir: Örnek 8.13'teki ağda dört dengenin hepsinde Φ = 20'dir, toplam maliyetleri ise 26 ile 32 arasında değişir.
  • Genellik. Her (tam) potansiyel oyun bir tıkanıklık oyununa denktir (Monderer ve Shapley, 1996). Yani tıkanıklık oyunları potansiyel oyunların “tipik” örneği değil, tam karşılığıdır.

Bir sınır da vardır: hız. Dinamiğin durması garantidir, hızlı durması değil. Φ her adımda en az bir miktar azalır, ama başlangıç değeri çok büyük olabilir ve adım sayısı oyuncu sayısıyla üstel olarak büyüyebilir. Alex Fabrikant, Christos Papadimitriou ve Kunal Talwar 2004'te genel tıkanıklık oyunlarında saf denge bulmanın PLS-tam (PLS-complete) olduğunu gösterdi (Fabrikant, Papadimitriou, Talwar, 2004). PLS, “yerel en iyi” bir çözüm bulma problemlerinin karmaşıklık sınıfıdır. PLS-tam olmak, bazı tıkanıklık oyunlarında dengeyi bulmak için hızlı bir yöntemin bilinmediği anlamına gelir. Basit durumlarda (örneğin bütün oyuncuların aynı kaynaktan aynı hedefe gittiği simetrik ağ oyunlarında) ise denge, bir akış problemine indirgenerek hızlı bulunabilir.

8.4.5Potansiyelde sık hatalar

Sık yapılan hata
  • Potansiyeli toplam maliyet sanmak: ce(k) = k olan bir kenarda 4 kullanıcı için Φ katkısı 1 + 2 + 3 + 4 = 10, toplam maliyet katkısı 4 · 4 = 16'dır.
  • Yeni yolda kendini saymamak: Bir kenara geçen oyuncu o kenarın kullanıcı sayısını bir artırır. Şu an 3 kişinin kullandığı kenara geçen ce(4) öder.
  • Ortak kenarı iki kez değiştirmek: Oyuncu eski ve yeni yolunda ortak olan bir kenarda kalır; o kenarın kullanıcı sayısı değişmez (sürücü 1 alt yerine zik'e geçseydi s→A'da 4 kişi kalırdı).
  • Dengeyi Φ'nin en büyük noktası sanmak: Maliyet azaltan hamleler Φ'yi azaltır; denge, Φ'nin (yerel) en küçük noktasıdır.
  • Durmayı hız sanmak: Sonlu iyileşme özelliği dinamiğin durduğunu söyler, kaç adımda durduğunu söylemez; genel durumda bu sayı üstel olabilir.

8.5Ağ oluşturma

Şimdiye kadar ağ veriydi: yollar vardı ve kullanıcılar yalnız hangi yoldan gideceklerine karar veriyordu. Bu kesimde ağın kendisini oyuncular kurar. İnternette ağ işletmecileri birbirleriyle hangi bağlantıları kuracaklarına kendileri karar verir; sosyal ağlarda insanlar kiminle arkadaş olacaklarını seçer; eşler arası (P2P) dosya paylaşım ağlarında her bilgisayar hangi bilgisayarlara bağlanacağını seçer. Önce bu kararların arkasındaki temel kavram, dışsallık, incelenir.

8.5.1Ağ dışsallıkları: olumsuz ve olumlu

Tanım 8.10

Dışsallık (externality): bir kullanıcının kararı başkalarının maliyetini ya da faydasını değiştirir, ama kullanıcı bu etkiyi kendi hesabına katmaz. Etki başkalarına zarar veriyorsa olumsuz, yarar sağlıyorsa olumlu dışsallıktır.

Olumsuz dışsallık: tıkanıklık. Bir yola giren her ek sürücü, aynı yoldaki diğer x kişinin her birini ℓ′(x) kadar yavaşlatır; toplamda x · ℓ′(x) gecikme yükler. İki yollu örnekte Yol 1'de 2.000 araç varken (ℓ1′ = 1/100) bu yük 2.000 × 1/100 = 20 araç·dakikadır. Yeni sürücü kendi 25 dakikasını görür, ötekilere yüklediği 20 araç·dakikayı görmez. Sonuç: kalabalık yol gereğinden çok kullanılır. Bu, 8.2.4'te dengenin optimumdan sapmasının nedenidir. Çare tıkanıklık ücretidir: sürücüye ötekilere yüklediği gecikme kadar bir ücret ödetilirse, kendi hesabına bu etkiyi de katar (8.6.2).

Olumlu dışsallık: ağ etkisi. Bazı ağlara katılmanın değeri, katılan sayısıyla artar. Tek kişinin telefonu işe yaramaz; iki kişi birbirini arayabilir; yüz kişilik bir ağda her kullanıcı 99 kişiye ulaşır. Mesajlaşma uygulamaları ve sosyal ağlar da böyledir. n kullanıcılı bir ağda n(n − 1)/2 olası bağlantı vardır: 10 kullanıcıda 45, 100 kullanıcıda 4.950 bağlantı. Ağın değerinin bu yüzden n² ile büyüdüğü iddiası Metcalfe yasası olarak bilinir. Bu iddia kesin bir yasa değil, bir sezgidir: bütün bağlantılar eşit değerli değildir ve çoğu kullanıcı ağdakilerin küçük bir kısmıyla iletişim kurar.

Ağ etkisinde de dışsallık vardır: yeni bir kullanıcı ağa katılınca ötekilere de değer katar (onlar artık bir kişiye daha ulaşabilir), ama katılıp katılmamaya karar verirken yalnız kendi faydasına bakar. Bu yüzden benimseme, kritik kitle aşılana kadar yavaş kalır: az kişinin kullandığı bir ağa katılmak kimseye çekici gelmez.

Ağ oluşturma oyununda iki dışsallık bir aradadır. Bir bağ herkesin uzaklığını kısaltır: bağı kuranın yanında, o bağ üzerinden geçen herkes yararlanır (olumlu dışsallık). Ama bağın bedelini yalnız onu satın alan öder. Oyuncular bu yüzden toplum açısından en iyi olandan daha az bağ kurabilir.

8.5.2Ağ oluşturma oyunları

Ağ oluşturma modellerinde bağlantıya (link) kısaca bağ da denir. Her bağın bir kurulum maliyeti vardır; iyi bağlı olmak, yani ötekilere kısa uzaklıkta olmak ise değerlidir. Modelin temel gerilimi budur: bağ maliyeti ile erişim arasında bir denge kurmak. İki temel model vardır.

Tanım 8.11

Tek taraflı ağ oluşturma oyunu (network formation game; Fabrikant vd., 2003). n oyuncu vardır. Her i oyuncusu, istediği düğümlere bağ satın alır; her bağın fiyatı α'dır. Kim satın alırsa alsın, bir bağı herkes iki yönde kullanır. Oyuncunun maliyeti:

maliyeti = α · (i'nin aldığı bağ sayısı) + Σj uzaklık(i, j)

Uzaklık, iki düğüm arasındaki en kısa yoldaki bağ sayısıdır; ağ kopuksa ulaşılamayan düğüme uzaklık sonsuzdur. Denge kavramı Nash dengesidir. Sosyal maliyet (social cost), bütün oyuncuların maliyetlerinin toplamıdır.

İki taraflı model (Jackson ve Wolinsky, 1996). Bir bağ ancak iki ucundaki oyuncu da isterse kurulur; biri isterse kopar. Denge kavramı ikili kararlılıktır (pairwise stability).

İki model gerçek hayattaki farklı durumlara karşılık gelir. Tek taraflı model, bir web sitesinin başka sitelere bağlantı vermesine ya da bir ağ işletmecisinin tek başına bir hat kiralamasına benzer: bağı kuran öder, karşı tarafın onayı gerekmez. İki taraflı model ise arkadaşlığa ya da iki ağ işletmecisinin karşılıklı internet eşlemesi (peering) anlaşmasına benzer: iki taraf da razı olmalıdır.

Her iki modelde de üç soru sorulur. Hangi ağlar dengedir? Sosyal olarak en iyi ağ hangisidir? İkisi ne kadar farklı olabilir? Bu sorular, bencil yönlendirmedeki “denge mi, optimum mu?” sorusunun ağ kurmadaki karşılığıdır.

8.5.3İki taraflı bağ: ikili kararlılık

Tanım 8.12

Bir ağ ikili kararlıdır (pairwise stable) eğer:

  1. hiçbir oyuncu kendi bağlarından birini koparınca kazanmazsa, ve
  2. olmayan hiçbir bağ iki ucunu birlikte kazançlı çıkarmazsa (biri kesin kazanıp öteki kaybetmiyorsa bağ kurulur).

Tanım Nash dengesinden biraz farklıdır. Nash dengesinde tek bir oyuncunun sapması incelenir. İkili kararlılıkta bağ koparmak tek kişinin kararıdır, ama bağ kurmak iki kişinin ortak kararıdır. Bu yüzden kurulmamış bir bağı değerlendirirken iki ucun da kazancına bakılır.

Somut bir örnek için n = 4 oyuncu (A, B, C, D) alınır. Bir oyuncunun faydası, ötekilere uzaklığına göre şöyle hesaplanır: uzaklığı 1 olan her oyuncudan 4, uzaklığı 2 olandan 2,2, uzaklığı 3 olandan 1 fayda. Her bağın bedeli, iki uçtaki oyuncuların her birine 2'dir. Oyuncunun net faydası, uzaklık faydalarının toplamından bağ bedellerinin çıkarılmasıyla bulunur. Şekil 8.19 karşılaştırılacak dört ağı gösterir.

ABCDyolABCDdöngüABCDyıldız (merkez A)ABCDtam çizge
Şekil 8.19: Dört oyunculu dört ağ: yol (A–B–C–D), döngü, yıldız (merkez A) ve tam çizge.
Örnek 8.14
  1. Yol A–B–C–D. A'nın uzaklıkları: B 1, C 2, D 3. Fayda 4 + 2,2 + 1 = 7,2; bir bağı vardır, bedel 2; net 5,2. B'nin uzaklıkları: A 1, C 1, D 2. Fayda 4 + 4 + 2,2 = 10,2; iki bağ, bedel 4; net 6,2. Simetriyle C 6,2, D 5,2. Toplam 22,8.
  2. Yol ikili kararlı mı? A–D bağı eklensin. A için D'nin uzaklığı 3'ten 1'e iner: fayda 4 − 1 = 3 artar, bedel 2'dir; net +1. D için de aynısı geçerlidir. İki uç da kazanır: bağ kurulur. Yol ikili kararlı değildir.
  3. Döngü. Herkesin iki komşusu (uzaklık 1) ve bir karşı düğümü (uzaklık 2) vardır. Fayda 4 + 4 + 2,2 = 10,2, iki bağ bedeli 4; net 6,2. Toplam 24,8. Bir oyuncu bağ koparırsa döngü bir yola dönüşür ve o oyuncu yolun ucu olur: net 5,2'ye düşer; kaybeder. Bir köşegen eklenirse (A–C) iki uçta uzaklık 2'den 1'e iner: fayda 4 − 2,2 = 1,8 artar, bedel 2'dir; net −0,2. Kimse eklemek istemez. Döngü ikili kararlıdır.
  4. Yıldız (merkez A). Merkezin üç komşusu vardır: fayda 12, bedel 6; net 6. Her yaprağın bir komşusu (merkez) ve iki uzaklığı 2 olan yaprağı vardır: fayda 4 + 2,2 + 2,2 = 8,4, bedel 2; net 6,4. Toplam 6 + 3 × 6,4 = 25,2. Merkez bir bağı koparırsa o yaprak ağdan kopar ve merkez 4 fayda kaybederken yalnız 2 kazanır. Yaprak bağını koparırsa bütün faydasını kaybeder. İki yaprak bağ kursa her biri 1,8 kazanır ama 2 öder: eklemezler. Yıldız ikili kararlıdır.
  5. Tam çizge. Herkes herkese bağlıdır: fayda 12, üç bağ bedeli 6; net 6. Toplam 24. Bir oyuncu bir bağı koparırsa o komşuya uzaklığı 1'den 2'ye çıkar (ötekiler üzerinden): 1,8 fayda kaybeder ama 2 bedel kazanır; net +0,2. Tam çizge ikili kararlı değildir.
Tablo 8.11: Dört oyunculu ağlarda net faydalar ve ikili kararlılık.
AğNet faydalarToplamİkili kararlı?
Yol5,2 / 6,2 / 6,2 / 5,222,8Hayır: A–D eklenir (her biri +3 fayda, −2 bedel)
Döngü6,2 (hepsi)24,8Evet
Yıldız6 / 6,4 / 6,4 / 6,425,2Evet; toplamı en yüksek ağ
Tam çizge6 (hepsi)24Hayır: bağ koparan 2 kazanır, 1,8 kaybeder

Tablo 8.11 iki dersi birlikte verir. Birincisi, ikili kararlı ağlar birden fazla olabilir: hem döngü hem yıldız kararlıdır. Dört oyunculu bütün ağlar (64 olası bağ kümesi) taranınca yalnız dört yıldız (merkezi farklı) ve üç döngü (düğüm sırası farklı) ikili kararlı çıkar. İkincisi, kararlı bir ağ toplamı en yüksek ağla örtüşmek zorunda değildir. Yıldız, bütün ağlar içinde toplamı en yüksek olandır (25,2). Döngü kararlıdır ama yıldızdan 0,4 geridedir. Oyuncular döngüye varırsa oradan kendiliğinden çıkmazlar; tek bir oyuncunun ya da tek bir çiftin hamlesi döngüyü yıldıza dönüştüremez. Ağ Oluşturma oyununun “Social” senaryosu (4 düğüm) bu sayıları kullanır.

8.5.4Tek taraflı bağ: ağ oluşturma oyunu adım adım

Şimdi tek taraflı modele geçilir: n = 4 oyuncu, bağ fiyatı α = 1,5. Her oyuncu hangi bağları kendisi satın alacağını seçer; bağı kim alırsa alsın herkes kullanır. Bir oyuncunun maliyeti, aldığı bağ sayısının 1,5 katı ile ötekilere uzaklıklarının toplamıdır. Ağ kopuksa maliyet sonsuzdur; bu yüzden hiçbir oyuncu ağı koparan bir hamle yapmaz.

17,525,535,546Yol 1–2–3–4 (i, i+1'i alır)maliyetler 7,5 · 5,5 · 5,5 · 6sosyal maliyet 24,5
Şekil 8.20: Yol ağı 1–2–3–4; her i oyuncusu (i, i + 1) bağını alır, 4 hiç bağ almaz. Düğümlerin üstünde maliyetler: 7,5 · 5,5 · 5,5 · 6; sosyal maliyet 24,5.

Şekil 8.20 başlangıç noktası olan yol ağını gösterir. Bu ağdan başlayarak birkaç aday ağ sırayla denetlenir.

Örnek 8.15
  1. Yol ağı. Oyuncu 1 bir bağ alır (1,5); uzaklıkları 2'ye 1, 3'e 2, 4'e 3, toplam 6. Maliyeti 1,5 + 6 = 7,5. Oyuncu 2: bir bağ (1,5), uzaklıklar 1 + 1 + 2 = 4, maliyet 5,5. Oyuncu 3: aynı biçimde 5,5. Oyuncu 4: bağ almaz, uzaklıklar 3 + 2 + 1 = 6, maliyet 6. Sosyal maliyet 7,5 + 5,5 + 5,5 + 6 = 24,5. Uçtaki oyuncular çok uzak kalıyor.
  2. Kârlı sapma. Oyuncu 1, 4'e ikinci bir bağ alırsa ağ bir döngüye dönüşür. Uzaklıkları 2'ye 1, 4'e 1, 3'e 2 olur; toplam 4. Maliyeti 2 · 1,5 + 4 = 7 < 7,5. Yol ağı bir Nash dengesi değildir.
  3. Tam çizge. 6 bağ vardır ve her oyuncu ötekilere 1 uzaklıktadır. Sosyal maliyet 6 · 1,5 + 4 · 3 = 9 + 12 = 21. Ama bağ almış bir oyuncu bir bağını bırakırsa 1,5 kazanır; o komşuya uzaklığı yalnız 1'den 2'ye çıkar (başka bir düğüm üzerinden). Net kazanç 1,5 − 1 = 0,5; sapma kârlıdır. Tam çizge denge değildir.
  4. Yıldız. Merkez 1 üç bağı alır: maliyeti 3 · 1,5 + 3 = 7,5. Her yaprağın maliyeti 0 + 1 + 2 + 2 = 5. Bir yaprak başka bir yaprağa bağ alırsa o yaprağa uzaklığı 2'den 1'e iner: 1 kazanır, 1,5 öder; maliyeti 5,5 olur (1 < 1,5, kârsız). İki yaprağa birden bağ alırsa 3 öder, 2 kazanır; yine kârsız. Merkez bir bağı bırakırsa ağ kopar ve maliyeti sonsuz olur. Kimse sapmaz: yıldız bir Nash dengesidir. Sosyal maliyet 7,5 + 3 · 5 = 22,5.
  5. Döngü. Her oyuncu bir bağ alır (örneğin 1, 2'ye; 2, 3'e; 3, 4'e; 4, 1'e). Her biri 1,5 + 1 + 1 + 2 = 5,5 öder; sosyal maliyet 22. Bağını bırakan oyuncu yolun ucuna düşer: uzaklıkları 1 + 2 + 3 = 6, maliyeti 6. Köşegen ekleyen 3 + 3 = 6 öder. İkisi de 5,5'ten kötüdür. Döngü de bir Nash dengesidir.
1234Tam çizge: 6 bağsosyal: 6 · 1,5 + 12 = 21Bağını bırakan: −1,5 + 1→ kazanır, denge değil
Şekil 8.21: Tam çizge: 6 bağ, sosyal maliyet 6 · 1,5 + 12 = 21. Bağını bırakan oyuncu 1,5 kazanır, yalnız 1 uzaklık kaybeder; denge değildir.
17,5253545Merkez 1 üç bağı alırmerkez 4,5 + 3 = 7,5; yaprak 5Yaprak bağ alırsa 1,5 + 4 = 5,5Merkez bırakırsa ağ kopar→ Nash dengesi (22,5)
Şekil 8.22: Yıldız: merkez 1 üç bağı alır (maliyet 7,5), yapraklar 5'er öder. Yaprak bağ alırsa 5,5'e çıkar; merkez bağ bırakırsa ağ kopar. Nash dengesi, sosyal maliyet 22,5.
15,525,535,545,54-döngü (her biri bir bağ): 5,5sosyal maliyet 22Betik: tüm 4.096 profil tarandıdengeler: yıldız 22,5 · döngü 22optimum: tam çizge 21
Şekil 8.23: 4-döngü: her oyuncu bir bağ alır ve 5,5 öder; sosyal maliyet 22. Bütün 4.096 strateji profili taranınca α = 1,5'te dengeler yıldız (22,5) ve döngü (22) çıkar; optimum olan tam çizge (21) denge değildir.

Şekil 8.21, Şekil 8.22 ve Şekil 8.23 üç ağı karşılaştırır. Sonucun doğruluğu bir kaba kuvvet taramasıyla denetlenmiştir. Her oyuncunun stratejisi, öteki üç oyuncunun hangilerine bağ alacağıdır: 23 = 8 seçenek. Dört oyuncu için 84 = 4.096 strateji profili vardır. Her profilde her oyuncunun bütün sapmaları denenmiş ve α = 1,5'te denge olan ağların yalnız yıldız (sosyal maliyet 22,5) ve döngü (22) olduğu görülmüştür. Sosyal maliyeti en küçük olan tam çizge (21) bir denge değildir.

Bu sonucun anlamı, bencil yönlendirmedeki sonuçla aynıdır: denge ile optimum ayrışır. Tam çizgede her bağ, iki oyuncu arasındaki uzaklığı kısaltarak iki oyuncuya yarar (her biri ötekine 1 adım yakındır, sosyal kazanç 2). Ama bağın sahibi yalnız kendi kazancına (1) bakar ve bunu bağın fiyatıyla (1,5) karşılaştırır. Karşı tarafın kazancı dışsallıktır.

8.5.5Kod izleme: maliyet()

Bir oyuncunun maliyetini hesaplamak için ötekilere uzaklıkları bilinmelidir. Bağların hepsi eşit uzunlukta (1) olduğu için en kısa uzaklıklar genişlik öncelikli arama (BFS, breadth-first search) ile bulunur. BFS, başlangıç düğümünden başlar; önce bütün komşuları (uzaklık 1), sonra onların henüz görülmemiş komşularını (uzaklık 2) ziyaret eder ve böyle sürer.

def maliyet(i, bag, alpha):
  uz = {i: 0}; kuyruk = [i]
  while kuyruk:
    u = kuyruk.pop(0)
    for v in komsu(bag, u):
      if v not in uz:
        uz[v] = uz[u] + 1
        kuyruk.append(v)
  aldigi = sum(1 for (a, b) in bag if a == i)
  return alpha * aldigi + sum(uz.values())

Fonksiyon, komsu(bag, u) adlı yardımcı bir fonksiyon kullanır. Bu fonksiyon, u'nun komşularını kimin aldığına bakmadan döndürür: bağı kim alırsa alsın herkes kullanır. bag listesi (a, b) çiftlerinden oluşur; (a, b), bağı a'nın satın aldığı anlamına gelir. Kod satır satır şöyle çalışır:

  • uz sözlüğü bilinen uzaklıkları tutar; başta yalnız i vardır (uzaklık 0). kuyruk, ziyaret edilecek düğümlerin listesidir.
  • Kuyruk boşalana kadar baştaki düğüm u çıkarılır.
  • u'nun her v komşusu için: v daha önce görülmemişse uzaklığı u'nunkinden 1 fazla yazılır ve v kuyruğun sonuna eklenir.
  • aldigi, i'nin satın aldığı bağ sayısıdır: ilk elemanı i olan çiftler sayılır.
  • Maliyet, alpha çarpı aldığı bağ sayısı artı bütün uzaklıkların toplamıdır.

Kod ağın bağlı olduğunu varsayar; bağlı değilse ulaşılamayan düğümler uz'a hiç girmez ve toplam yanlış biçimde küçük çıkar. Gerçek bir uygulamada len(uz) < n durumunda sonsuz döndürmek gerekir.

Tablo 8.12: maliyet(1, bag, 1.5) izlemesi; yol ağı 1–2–3–4, oyuncu 1 yalnız (1, 2) bağını almış.
AdımuYeni komşularkuyrukuz
başlangıç——[1]1:0
112 → 1[2]1:0, 2:1
223 → 2[3]1:0, 2:1, 3:2
334 → 3[4]1:0, 2:1, 3:2, 4:3
44yok (hepsi ziyaretli)[]aynı
sonuçaldigi = 1, uzaklık toplamı 6, maliyet 1,5 · 1 + 6 = 7,5
1d=02d=13d=24d=3oyuncu i = 1kuyruk: []uz: 1:0 2:1 3:2 4:3Σ uzaklık = 6ok: bağı alan → diğer uç · kırmızı: yeni bağ
Şekil 8.24: İlk BFS'in sonu: yol ağında oyuncu 1'in uzaklıkları d = 0, 1, 2, 3; toplam 6. Oklar bağı alandan diğer uca doğrudur.

Şekil 8.24 ilk çağrının sonunu gösterir. Şimdi sapma denenir: oyuncu 1 ayrıca (1, 4) bağını satın alır. Aynı fonksiyon yeniden çağrılır.

Tablo 8.13: Sapmadan sonra maliyet(1, bag, 1.5); oyuncu 1, (1, 2) ve (1, 4) bağlarını almış.
AdımuYeni komşularkuyrukuz
başlangıç——[1]1:0
112 → 1, 4 → 1[2, 4]1:0, 2:1, 4:1
223 → 2[4, 3]1:0, 2:1, 3:2, 4:1
34yok[3]aynı
43yok[]aynı
sonuçaldigi = 2, uzaklık toplamı 4, maliyet 1,5 · 2 + 4 = 7
1d=02d=13d=24d=1oyuncu i = 1kuyruk: []uz: 1:0 2:1 3:2 4:1Σ uzaklık = 4ok: bağı alan → diğer uç · kırmızı: yeni bağ
Şekil 8.25: Sapmadan sonraki BFS'in sonu: kırmızı ok yeni (1, 4) bağıdır. Oyuncu 1'in uzaklıkları 2 ve 4'e 1, 3'e 2; toplam 4.

Şekil 8.25 yeni bağla kısalan uzaklıkları gösterir. İki çağrının karşılaştırılması dengeyi denetler: 7 < 7,5 olduğundan sapma kârlıdır ve yol ağı bir Nash dengesi değildir. İkinci izlemede kuyruğun sırasına dikkat edilmelidir: 4, 3'ten önce kuyruğa girdiği için önce o çıkar. BFS'te bir düğüm ilk kez görüldüğü anda uzaklığı kesinleşir; sonradan daha kısa bir yol bulunamaz, çünkü düğümler uzaklık sırasıyla ziyaret edilir.

Bir oyuncunun bütün sapmalarını denemek için bu fonksiyon, oyuncunun her olası bağ kümesi için bir kez çağrılır. n oyunculu bir oyunda her oyuncunun 2n − 1 bağ kümesi vardır; bu sayı hızla büyür. Fabrikant ve arkadaşları, bir oyuncunun en iyi tepkisini bulmanın genel durumda NP-zor olduğunu da göstermiştir (Fabrikant vd., 2003). Küçük örneklerde kaba kuvvet yeter; büyük ağlarda yaklaşık yöntemler gerekir.

8.5.6Bağ fiyatı değişince denge ve optimum

Bağ fiyatı α değişince hem optimum hem dengeler değişir. Önce optimum incelenir. Dört oyunculu iki aday ağın sosyal maliyeti şöyle hesaplanır:

  • Yıldız: 3 bağ. Uzaklık toplamı: merkez 1 + 1 + 1 = 3, her yaprak 1 + 2 + 2 = 5; toplam 3 + 3 · 5 = 18. Sosyal maliyet 3α + 18.
  • Tam çizge: 6 bağ. Herkes ötekilere 1 uzaklıkta: 4 · 3 = 12. Sosyal maliyet 6α + 12.

İki doğru 3α + 18 = 6α + 12, yani α = 2'de kesişir (Şekil 8.26). α < 2 iken tam çizge, α > 2 iken yıldız daha ucuzdur. Bunun sezgisi açıktır: tam çizgede yıldıza göre 3 bağ fazladır (maliyet 3α) ve bu bağlar uzaklık toplamını 6 azaltır (her biri iki yaprağı birbirine 2 adım yakınlaştırır). Fazladan bağlar 3α < 6, yani α < 2 iken kârlıdır. Genel n'de de optimum α ≤ 2 için tam çizge, α ≥ 2 için yıldızdır (Fabrikant vd., 2003).

10152025300123α (bağ fiyatı)sosyal maliyetyıldıztamα = 2
Şekil 8.26: Dört oyunculu ağda sosyal maliyetin bağ fiyatı α'ya göre değişimi. Kırmızı doğru tam çizge (6α + 12), mavi doğru yıldız (3α + 18); α = 2'de kesişirler.
Tablo 8.14: Dört oyunculu ağ oluşturma oyununda optimum ve dengeler (sosyal maliyetler; dengeler kaba kuvvet taramasıyla).
αOptimumDengeler
0,5tam (15)tam (15)
1,5tam (21)döngü 22, yıldız 22,5
2,5yıldız (25,5)yıldız 25,5 · yol 27,5

Tablo 8.14 üç bölgeyi gösterir.

  • α < 1: bağ ucuz. Bir bağ en az 1 uzaklık kazandırır ve bedeli 1'den azdır. Bu yüzden herkes doğrudan bağlanır: tam çizge hem denge hem optimumdur. Yıldız ise denge değildir: α = 0,5'te yaprak başka bir yaprağa bağ alırsa 0,5 öder ve 1 kazanır.
  • 1 < α < 2: arada. Optimum hâlâ tam çizgedir, ama tam çizge artık denge değildir: bağ bırakan oyuncu α kazanır, yalnız 1 kaybeder. α = 1,5'teki dengeler (yıldız 22,5, döngü 22) optimumdan (21) daha pahalıdır.
  • α > 2: bağ pahalı. Optimum yıldızdır ve yıldız aynı zamanda dengedir. Ama yanında daha pahalı dengeler de çıkabilir. α = 2,5'te yol ağı (3 · 2,5 + 20 = 27,5) da bir dengedir. Bunun için bağları ortadaki iki oyuncunun alması gerekir: uçtaki bir oyuncu kendi bağına sahip olsaydı, bağını ortaya daha yakın bir düğüme taşıyarak uzaklığını azaltabilirdi.

Genel bir sonuç: α ≥ 1 olduğu sürece yıldız her zaman bir dengedir. Merkez bağ bırakırsa ağ kopar; yaprak yeni bir bağ alırsa en çok 1 uzaklık kazanır ve en az 1 öder. Ama denge çoğu zaman tek değildir ve bazı dengeler optimumdan belirgin biçimde kötüdür. Bencil davranışın bu kayıp oranı, ağ oluşturma oyunlarında da anarşinin bedeli adıyla incelenir.

8.5.7Ağ oluşturmada sık hatalar

Sık yapılan hata
  • Bağın bedelini iki tarafa da yazmak: Tek taraflı modelde bağın bedelini yalnız satın alan öder. İki taraflı (Jackson–Wolinsky) örnekte ise bedel her iki uca da ayrı ayrı yazılır. Modeller karıştırılmamalıdır.
  • Sosyal maliyette uzaklıkları bir kez saymak: Her oyuncu kendi uzaklıklarını toplar; bu yüzden sosyal maliyette her çiftin uzaklığı iki kez sayılır (tam çizgede 6 çift, uzaklık toplamı 12).
  • Bağ bırakınca uzaklığı sonsuz sanmak: Tam çizgede bir bağ bırakılınca o komşuya uzaklık yalnız 2'ye çıkar; başka yollar vardır. Ağ ancak tek yol koparsa kopar.
  • Yalnız bağ eklemeyi denemek: Sapmalar bağ eklemeyi, bırakmayı ve bağ değiştirmeyi (birini bırakıp başkasını almayı) kapsar.
  • İkili kararlılıkta tek ucun kazancına bakmak: Bağ kurmak için iki ucun da kazanması (ya da en azından kaybetmemesi) gerekir.
  • Optimumun denge olduğunu varsaymak: α = 1,5'te optimum (tam çizge) denge değildir.

8.6Kontrol ve teşvikler

Önceki kesimlerin ortak sonucu, bencil kullanıcıların vardığı dengenin toplum açısından en iyi durumdan ayrışabildiğidir. Bu kesimde bu ayrışmaya karşı neler yapılabileceği incelenir: kararları bir merkeze toplamak, kullanıcıların teşviklerini değiştirmek ya da kaynakları adil bir ölçütle paylaştırmak.

8.6.1Merkezi mi, dağıtık mı?

Bir ağda yönlendirme kararlarını kimin vereceği temel bir tasarım seçimidir. Tablo 8.15 iki uç yaklaşımı karşılaştırır.

Tablo 8.15: Merkezi ve dağıtık (bencil) yönlendirme.
Merkezi yönlendirmeDağıtık (bencil) yönlendirme
Kim karar verir?Trafik kontrol merkezi, SDN (yazılım tanımlı ağ) denetleyicisi, internet servis sağlayıcısı (İSS) trafik mühendisliğiHer sürücü / her yönlendirici (navigasyon uygulamaları, BGP: ağlar arası yönlendirme protokolü)
HedefToplam gecikme C(f) en küçük (Wardrop 2. ilke)Kendi gecikmesi en küçük (Wardrop 1. ilke)
İki yollu örnek1.500 / 1.500 → 71.250 araç·dk2.000 / 1.000 → 75.000 araç·dk
GerekenTüm talep ve gecikme bilgisi; kullanıcıların uymasıYalnızca yerel bilgi; uyum sorunu yok
Zayıf yanOptimumda bazıları daha yavaş yolda → sapma isteği; tek nokta hatasıBraess gibi verimsiz dengeler

Merkezi yönlendirmenin örnekleri gerçek ağlarda vardır. Yazılım tanımlı ağda (SDN, software-defined networking) yönlendiriciler kendi başlarına karar vermez; bir denetleyici yazılım bütün ağın durumunu görür ve her yönlendiriciye ne yapacağını söyler. Bir internet servis sağlayıcısı da kendi ağı içinde trafik mühendisliği yaparak trafiği hatlara dengeli dağıtır. Bu durumlarda merkez, kendi ağının sahibidir ve yönlendirdiği paketler itiraz etmez.

Dağıtık yönlendirmenin en önemli örneği ise internetin kendisidir. İnternet, binlerce bağımsız ağın birleşmesinden oluşur ve bu ağlar arasındaki rotalar BGP (Border Gateway Protocol, ağlar arası yönlendirme protokolü) ile seçilir. Her ağ, rotalarını kendi ticari çıkarına göre seçer. Şehir trafiğinde de her sürücü kendi navigasyon uygulamasını izler.

İki yaklaşımın güçlü ve zayıf yanları birbirini tamamlar. Merkezi yönlendirme optimumu hedefleyebilir, ama tüm talep ve gecikme bilgisine ihtiyaç duyar ve kullanıcıların uymasını gerektirir. Optimumda bazı kullanıcılar daha yavaş yoldadır (iki yollu örnekte Yol 2'dekiler 27,5 dakika yaşarken Yol 1'dekiler 20 dakika yaşar); bu kullanıcılar sapmak ister. Ayrıca merkez çökerse bütün sistem etkilenir. Dağıtık yönlendirme yalnız yerel bilgiyle çalışır ve uyum sorunu yoktur, çünkü herkes zaten kendi istediğini yapar; ama Braess paradoksundaki gibi verimsiz dengelere varabilir.

Bu yüzden ağlarda ara çözümler yaygındır. Merkez her şeyi kontrol etmez; yalnız bir kısmını etkiler:

  • Fiyat: Merkez kullanıcılara ne yapacaklarını söylemez, ama bazı yolları daha pahalı yapar (tıkanıklık ücreti).
  • Bilgi: Merkez rota önerir; kullanıcı öneriye uyup uymamakta serbesttir.
  • Kısmi kontrol: Merkez trafiğin bir kısmını kendisi yönlendirir, gerisini kullanıcılar seçer. Buna Stackelberg yönlendirme (Stackelberg routing) denir. Ad, önce liderin hamle yaptığı, sonra izleyicilerin ona tepki verdiği Stackelberg oyunlarından gelir: merkez kendi trafiğini öyle yerleştirir ki bencil kullanıcıların vardığı denge daha iyi olur.

8.6.2Teşvikler, yük dengeleme ve uygulamalar

Doğru teşvikler, kullanıcıları ağ kaynaklarını dengeli kullanmaya yönlendirir ve verimliliği artırır. Trafikte ücretler ya da uyarılar yoğunluğu azaltır. Akıllı elektrik şebekelerinde zamana bağlı tarife, pik saatlerde yükü dengeler: elektrik akşam saatlerinde pahalıysa, çamaşır makinesi gece çalıştırılır. Teşviklerin en temiz örneği, 8.5.1'de anılan tıkanıklık ücretidir.

Fikir şudur: Wardrop dengesinin optimumdan sapmasının nedeni, sürücünün ötekilere yüklediği x · ℓ′(x) gecikmesini görmemesiydi. Her yola, optimumdaki bu dışsallık kadar bir ücret konursa sürücü artık “süre + ücret” toplamına bakar. Bu toplam, o yolun marjinal maliyetine eşit olur. Sürücüler bu toplamları eşitlediğinde, planlayıcının marjinal maliyetleri eşitlediği optimuma varılır.

Örnek 8.16

İki yollu ağda (ℓ1 = 5 + x1/100, ℓ2 = 20 + x2/200, 3.000 araç) ücretler süre birimiyle (dakika karşılığı) ölçülsün.

  1. Optimum 1.500 / 1.500'dür. Optimumdaki dışsallıklar: Yol 1'de x1 · ℓ1′ = 1.500 / 100 = 15, Yol 2'de x2 · ℓ2′ = 1.500 / 200 = 7,5.
  2. Yol 1'e 15, Yol 2'ye 7,5 dakika karşılığı ücret konur. Sürücü artık 5 + x1/100 + 15 ile 20 + x2/200 + 7,5'i karşılaştırır.
  3. Yeni denge: 20 + x1/100 = 27,5 + (3.000 − x1)/200. İki taraf 200 ile çarpılır: 4.000 + 2x1 = 5.500 + 3.000 − x1, yani 3x1 = 4.500 ve x1 = 1.500.
  4. Ücretli dengede trafik tam optimumdaki gibi bölünür. Her sürücünün “süre + ücret” toplamı 35'tir (20 + 15 = 27,5 + 7,5). Toplam yolculuk süresi 71.250 araç·dakikaya iner.

Toplanan ücretler toplumdan kaybolmaz; yol yapımına ya da toplu taşımaya aktarılabilir. Ama sürücünün kendi bakışından süre + ücret (35) eski denge süresinden (25) yüksektir. Ücretlendirmenin siyasi olarak zor olmasının bir nedeni budur.

Yanlış teşvikler ise ters etki yapar. Stratejik, bencil davranış artar ve sonuç tıkanıklık ile düşük verimliliktir. İki örnek sık görülür. Birincisi, herkese aynı “en hızlı” rotayı öneren bir navigasyon uygulaması yan yolları doldurabilir: uygulama her sürücüyü tek tek en hızlı yola gönderir, ama herkes aynı yola gidince o yol yavaşlar. İkincisi, ücret yanlış seçilirse trafik başka bir darboğaza kayar: bir köprü ücretli yapılınca bütün araçlar ücretsiz ama dar bir yan köprüye yönelebilir.

Bu bölümün kavramları üç büyük uygulama alanında kullanılır:

  • İnternet. İSS'ler veri paketlerini yönlendirir; ağlar arası rota seçimi BGP ile yapılır. Yük dengeleme (ECMP) ve trafik mühendisliği tıkanıklığı azaltır.
  • Trafik yönetimi. Rota optimizasyonu, akıllı sinyalizasyon ve navigasyon uygulamaları. Trafik planlamacıları yeni bir yolun etkisini, sürücülerin varacağı Wardrop dengesini hesaplayarak değerlendirir.
  • Enerji. Akıllı elektrik şebekelerinde enerji dağıtımı ve yük kaydırma. Tüketicilerin elektriği ne zaman kullanacağı, tıkanıklık oyununa benzer bir yapı oluşturur: herkes aynı saatte kullanırsa şebeke zorlanır.

8.6.3Verimlilik ile adalet: bant genişliği paylaşımı

Toplam gecikmeyi en küçük yapmak tek ölçüt değildir. Bir ağın kaynakları kullanıcılar arasında paylaştırılırken adalet de önemlidir. Bunu görmek için küçük bir örnek kurulur. İki bağlantının kapasitesi 1'dir. Akış A ikisini de kullanır; akış B yalnız 1. bağlantıyı, akış C yalnız 2. bağlantıyı kullanır. Her akışa bir hız (xA, xB, xC) verilecektir. Kapasite kısıtları şöyledir:

xA + xB ≤ 1, xA + xC ≤ 1

Hangi paylaşım seçilmelidir? Üç ölçüt üç farklı cevap verir (Tablo 8.16).

Tablo 8.16: Bant genişliği paylaşımında üç ölçüt.
ÖlçütNe en iyilenir?(xA, xB, xC)Toplam
En büyük verimΣ xi(0, 1, 1)2 (A aç kalır)
Maksimin adalet (eşitlikçi ölçüt)Önce en küçük payı olabildiğince büyüt, sonra bir sonrakini(1/2, 1/2, 1/2)1,5
Orantılı adalet (Nash sosyal refahı)Payların çarpımını maksimize et (Kelly, 1997)(1/3, 2/3, 2/3)≈ 1,67
Örnek 8.17
  1. En büyük verim. A iki bağlantıdan kapasite kullanır; ona verilen her birim, B'den bir birim ve C'den bir birim eksiltir. Toplam açısından A'ya hiç vermemek en iyisidir: xA = 0, xB = xC = 1, toplam 2. Ama A tamamen aç kalır.
  2. Maksimin adalet. Bütün paylar birlikte, eşit hızla artırılır. Paylar 1/2'ye ulaşınca 1. bağlantı (xA + xB = 1) ve 2. bağlantı (xA + xC = 1) aynı anda dolar. Artık hiçbir payı, bir başkasınınkini azaltmadan büyütmek mümkün değildir. Sonuç (1/2, 1/2, 1/2), toplam 1,5.
  3. Orantılı adalet. Payların çarpımı xA · xB · xC en büyük yapılır. Çarpımı büyütmek için kapasiteler boşa harcanmaz: xB = xC = 1 − xA. Çarpım xA (1 − xA)² olur.
  4. Çarpımı maksimize etmek, logaritmasını maksimize etmekle aynıdır, çünkü logaritma artan bir fonksiyondur: log xA + 2 log(1 − xA). log x'in türevi 1/x'tir. Türev sıfıra eşitlenir: 1/xA − 2/(1 − xA) = 0, yani 1/xA = 2/(1 − xA).
  5. Çapraz çarpımla 1 − xA = 2xA, xA = 1/3. Paylaşım (1/3, 2/3, 2/3), toplam 5/3 ≈ 1,67.

Üç ölçüt arasındaki fark bir değer yargısıdır. En büyük verim toplamı önemser ve bir kullanıcıyı tamamen dışarıda bırakmaya razıdır. Maksimin adalet en kötü durumdaki kullanıcıyı önemser; herkesi eşitler, ama toplamdan fedakârlık eder. Orantılı adalet (proportional fairness) ikisinin arasında durur. İki bağlantıyı birden kullanan A daha az alır, çünkü o iki kaynaktan pay tüketir; ama kimse sıfıra düşmez, çünkü sıfır pay çarpımı sıfırlar. Toplam (≈ 1,67), maksiminden yüksek, en büyük verimden düşüktür.

Orantılı adaletin Nash sosyal refahıyla aynı şey olması rastlantı değildir: iki kavram da “payların çarpımını maksimize et” der. Logaritma biçimindeki yazım, bu ölçütün “bir kullanıcının payını yüzde 10 artırmak, kimin olursa olsun aynı değerdedir” anlamına geldiğini gösterir. Frank Kelly ve arkadaşları 1998'de, internetin tıkanıklık denetimini (TCP benzeri protokolleri) bu açıdan yorumladı (Kelly vd., 1998). Her bağlantı, üzerindeki yük arttıkça bir tıkanıklık fiyatı bildirir; her akış, kendi yolundaki fiyatlara bakarak hızını ayarlar. Bu dağıtık algoritma, hiçbir merkez olmadan orantılı adil paylaşıma yakınsar.

8.6.4Tartışma soruları

Bu bölümün kavramları, kesin cevabı olmayan ama düşünmeye değer üç soruya ışık tutar.

Navigasyon uygulamaları herkese “en hızlı” rotayı önerdiğinde Wardrop dengesine mi, sistem optimumuna mı yaklaşılır? Neden? Uygulama her sürücüye o anki gecikmelere göre en hızlı rotayı öneriyorsa, her sürücü kendi en iyi tepkisini daha kolay bulur. Bu, Wardrop dengesine yaklaşmayı hızlandırır; sistem optimumuna değil. Uygulama, sürücülerin bir kısmını bilerek daha yavaş rotalara gönderirse optimuma yaklaşılabilir; ama o sürücüler öneriye uymayabilir. Tek bir uygulamanın çok sayıda kullanıcısı varsa uygulama bir tür Stackelberg lideri gibi davranabilir.

Bir şehir yeni bir köprü planlıyor. Braess etkisini önceden görmek için köprü açıldığında sürücülerin varacağı denge nasıl hesaplanır? Önce ağ modellenir: her yol için bir gecikme fonksiyonu (örneğin BPR) ve kaynak–hedef çiftleri arasındaki talepler belirlenir. Sonra köprülü ve köprüsüz iki ağda Wardrop dengesi hesaplanır; bu, Beckmann potansiyelini Frank–Wolfe gibi bir yöntemle en aza indirmek demektir. İki dengenin toplam gecikmeleri karşılaştırılır. Köprülü dengenin toplamı daha yüksekse köprü bencil kullanımla zarar verebilir; çare ücretlendirme ya da erişim kısıtı olabilir.

İnternette yönlendiriciler (BGP) bencil ajan mıdır? Kimin maliyetini en aza indirirler? Tek tek yönlendiriciler bir program izler; bencil olan, onları işleten ağlardır. Her ağ (örneğin bir İSS), rotalarını kendi ticari çıkarına göre seçer: ücret ödediği bir ağ yerine ücret aldığı ya da ücretsiz eşleme yaptığı ağları tercih eder. Bu yüzden internet rotaları çoğu zaman en kısa ya da en hızlı değildir. BGP'de minimize edilen, paketin gecikmesi değil, ağ işletmecisinin maliyetidir.

8.7Özet

  • Gecikme yüke bağlıdır. Her kenarın gecikmesi, üzerindeki akışın azalmayan bir fonksiyonudur: sabit, doğrusal, BPR ya da kuyruk (1/(c − x)). Klasik en kısa yol algoritmaları (Dijkstra, Bellman–Ford) sabit ağırlık varsayar; yüke bağlı gecikme yönlendirmeyi bir oyuna dönüştürür.
  • Bencil yönlendirmede her kullanıcı kendi gecikmesini küçültür. Bir yolun gecikmesi kenar gecikmelerinin toplamıdır; toplam gecikme C(f) = Σ fe ℓe(fe)'dir.
  • Wardrop dengesinde kullanılan bütün yolların gecikmesi eşit ve en düşüktür. İki yollu örnekte (3.000 araç) denge 2.000 / 1.000, herkes 25 dakika, toplam 75.000 araç·dakikadır.
  • Sistem optimumunda marjinal maliyetler (ℓ + x · ℓ′) eşitlenir: 1.500 / 1.500, toplam 71.250. Optimum bir denge değildir; fark, sürücünün hesaba katmadığı x · ℓ′ dışsallığından gelir.
  • Beckmann potansiyeli Φ = Σ ∫ ℓe'nin en küçük noktası Wardrop dengesidir; denge her zaman vardır ve kenar gecikmeleri tektir. İkiye bölme (denge_bul) iki yollu ağda dengeyi her turda aralığı yarıya indirerek bulur.
  • Braess paradoksu: 4.000 araçlı ağda 0 dakikalık kestirme herkesi 65'ten 80 dakikaya çıkarır; zikzak herkes için baskındır. Kestirmeli ağın optimumu ≈ 64,7'dir. Seri-paralel ağlarda paradoks görülmez; hangi yolların kapatılacağını seçmek genel ağlarda zordur.
  • Tıkanıklık oyunlarında Rosenthal potansiyeli Φ = Σe Σk ≤ ne ce(k), tek oyuncunun her sapmasında onun maliyet farkı kadar değişir. Bu yüzden saf Nash dengesi vardır ve en iyi tepki dinamiği durur (26 → 23 → 21 → 20); ama genel durumda hızlı durmayabilir (PLS-tam).
  • Ağ oluşturmada bağ maliyeti ile erişim arasında gerilim vardır. İki taraflı modelde yıldız ve döngü ikili kararlıdır; tek taraflı modelde α = 1,5'te yıldız ve döngü dengedir, optimum olan tam çizge değildir. Optimum α ≤ 2 için tam çizge, α ≥ 2 için yıldızdır.
  • Kontrol ve teşvikler: merkezi yönlendirme optimumu hedefler ama bilgi ve uyum ister; ara çözümler (tıkanıklık ücreti, rota önerisi, Stackelberg yönlendirme) yaygındır. Bant genişliği paylaşımında en büyük verim, maksimin adalet ve orantılı adalet farklı paylaşımlar seçer.
Tablo 8.17: Bölümün kavramları bir bakışta.
KavramÖzüÖrnek
Bencil yönlendirmeHerkes kendi gecikmesini küçültür3.000 araç, iki yol
Wardrop dengesiKullanılan yollar eşit ve en hızlı2.000 / 1.000, 25 dk
Sistem optimumuMarjinal maliyetler eşit1.500 / 1.500, 71.250 araç·dk
Braess paradoksuYeni yol → herkes daha yavaş65 → 80 dk
Rosenthal potansiyeliΔΦ = hamle yapanın maliyet farkıΦ: 26 → 23 → 21 → 20
Ağ oluşturmaBağ maliyeti ↔ erişimα = 1,5: yıldız / döngü denge, tam çizge optimum

Denge ile optimum çoğu zaman ayrışır: sürücü kendi gecikmesine, planlayıcı marjinal maliyete bakar.

8.8Kavram listesi

Terimlerin İngilizce karşılıkları ve öteki bölümlerdeki kullanımları terim sözlüğünde bulunur.

8.9Kendini Dene

  1. 5.000 araç A'dan B'ye gidiyor. Yol 1: ℓ1 = 10 + x1/100, Yol 2: ℓ2 = 20 + x2/400 (dakika). Wardrop dengesi, gecikme ve toplam gecikme nedir?

    Cevap

    Uç durumlar denge değildir: herkes Yol 1'de ise ℓ1 = 60 > 20; herkes Yol 2'de ise ℓ2 = 32,5 > 10. Eşitlik: 10 + x1/100 = 20 + (5.000 − x1)/400. 400 ile çarpılınca 4.000 + 4x1 = 8.000 + 5.000 − x1, 5x1 = 9.000, x1 = 1.800, x2 = 3.200. Gecikmeler 10 + 18 = 28 ve 20 + 8 = 28 dakika. Toplam 5.000 × 28 = 140.000 araç·dakika.

  2. Aynı ağda sistem optimumu ve toplam gecikmesi nedir? Bencil yönlendirme kaç araç·dakika fazla gecikme üretir?

    Cevap

    Marjinal maliyetler: Yol 1 10 + x1/50, Yol 2 20 + x2/200. Eşitlik: 10 + x1/50 = 20 + (5.000 − x1)/200; 200 ile çarpılınca 2.000 + 4x1 = 4.000 + 5.000 − x1, 5x1 = 7.000, x1 = 1.400, x2 = 3.600. Gecikmeler 24 ve 29 dakika. Toplam 1.400 × 24 + 3.600 × 29 = 33.600 + 104.400 = 138.000. Fark 140.000 − 138.000 = 2.000 araç·dakika. Optimumda Yol 2'dekiler 5 dakika daha yavaştır ve Yol 1'e geçmek ister.

  3. Braess ağında 3.000 araç olsun; dar yollar x/100, geniş yollar 50 dakika. Kestirme (A→B, 0 dakika) açılmadan önce ve açıldıktan sonra denge süresi nedir? Paradoks görülür mü?

    Cevap

    Önce: 1.500 / 1.500, her rota 15 + 50 = 65 dakika. Sonra: herkes zikzakta olsun; dar yollarda 3.000 araç (30 dakika), zikzak 30 + 0 + 30 = 60. Eski rotaya dönen 30 + 50 = 80 yaşar; kimse dönmez. Denge 60 dakikadır. Kestirme herkesi 5 dakika hızlandırır; paradoks görülmez. Dar yolun en kalabalık hâli (30) geniş yoldan (50) çok hızlı olduğu için kestirme gerçekten yararlıdır. Paradoks yalnız belirli bir trafik aralığında ortaya çıkar.

  4. Atomik Braess ağında (s→A ve B→t: ce(k) = k; s→B ve A→t: 4; A→B: 0) 3 sürücü (üst, alt, zik) profilindedir. Φ ve maliyetler nedir? Üst yoldaki sürücü zik'e geçerse Φ nasıl değişir?

    Cevap

    Kullanıcı sayıları: s→A 2 (üst, zik), A→t 1, s→B 1, B→t 2 (alt, zik), A→B 1. Φ = (1 + 2) + 4 + 4 + (1 + 2) + 0 = 14. Maliyetler: üst 2 + 4 = 6, alt 4 + 2 = 6, zik 2 + 0 + 2 = 4. Üst sürücü zik'e geçerse s→A'da kalır (2), A→B 0, B→t'de 3 kişi olur (3): yeni maliyet 2 + 0 + 3 = 5. Kazancı 1'dir; bu yüzden Φ 14'ten 13'e iner. Kontrol: A→t'den 4 silinir, A→B'ye 0 ve B→t'ye 3 eklenir; −4 + 3 = −1. Bu oyunun tek saf dengesi üç sürücünün de zik'te olduğu profildir (her biri 6, toplam 18); toplam maliyeti en küçük profillerden biri ise (üst, alt, zik)'tir (16).

  5. Tek taraflı ağ oluşturma oyununda n = 5 oyuncu ve α = 3 olsun. Yıldızın ve tam çizgenin sosyal maliyeti nedir? Hangisi optimumdur? Yıldız bir Nash dengesi midir?

    Cevap

    Yıldız: 4 bağ, maliyet 4 · 3 = 12. Uzaklıklar: merkez 4 · 1 = 4, her yaprak 1 + 3 · 2 = 7; toplam 4 + 4 · 7 = 32. Sosyal maliyet 44. Tam çizge: 10 bağ (5 · 4/2), maliyet 30; uzaklık toplamı 5 · 4 = 20; sosyal maliyet 50. α = 3 > 2 olduğundan optimum yıldızdır. Yıldız dengedir: yaprak yeni bir bağla yalnız 1 uzaklık kazanır ve 3 öder; merkez bağ bırakırsa ağ kopar.

  6. İki taraflı dört oyunculu örnekte (fayda: uzaklık 1 için 4, uzaklık 2 için 2,2, uzaklık 3 için 1) bağın her uca bedeli c olsun. c hangi aralıktayken tam çizge ikili kararlıdır? Yıldız?

    Cevap

    Tam çizge: bağ koparan c kazanır, o komşuya uzaklığı 1'den 2'ye çıkar ve 4 − 2,2 = 1,8 kaybeder. Kararlılık için c ≤ 1,8 gerekir; eklenecek bağ yoktur. Yıldız: iki yaprak bağ kurarsa her biri 1,8 kazanır ve c öder; kurulmaması için c ≥ 1,8. Merkez bir bağı koparırsa o yaprağı tamamen kaybeder (4) ve c kazanır; c ≤ 4 gerekir. Yaprak bağını koparırsa 8,4 kaybeder. Yıldız 1,8 ≤ c ≤ 4 aralığında kararlıdır. c = 1,8'de ikisi de kararlıdır.

  7. İki yollu ağda (ℓ1 = 5 + x1/100, ℓ2 = 20 + x2/200, 3.000 araç) yalnız Yol 1'e bir ücret τ konacaktır (dakika karşılığı). Hangi τ değerinde ücretli denge sistem optimumuyla aynı olur?

    Cevap

    Optimum 1.500 / 1.500'dür; orada ℓ1 = 20, ℓ2 = 27,5. Ücretli dengenin 1.500'de olması için sürücünün iki yolu eşit görmesi gerekir: 20 + τ = 27,5, yani τ = 7,5. Daha küçük ücrette Yol 1 hâlâ fazla kalabalık, daha büyükte fazla boş kalır. Bu tek ücret, iki yola ayrı ayrı marjinal ücret (15 ve 7,5) koymakla aynı ücret farkını (7,5) verir; sürücünün kararı yalnız farka bağlıdır.

  8. denge_bul(l1, l2, 3000) eps = 10 ile çağrılırsa döngü kaç tur döner ve son aralığın genişliği ne olur?

    Cevap

    Her tur genişliği yarıya indirir: k tur sonra genişlik 3.000/2k'dir. Döngü genişlik 10'dan büyük olduğu sürece döner. 28 = 256 için genişlik ≈ 11,7 > 10; 29 = 512 için ≈ 5,86 ≤ 10. Döngü 9 tur döner; son genişlik yaklaşık 5,86 araçtır. eps = 50'ye göre yalnız 3 tur fazladır.

8.10İleri okuma

  • T. Roughgarden, Selfish Routing and the Price of Anarchy (2005): bencil yönlendirme, Wardrop dengesi, Braess paradoksu ve ağ tasarımının zorluğunu tek bir kitapta, adım adım ispatlarla anlatır.
  • N. Nisan, T. Roughgarden, É. Tardos ve V. Vazirani (ed.), Algorithmic Game Theory (2007), Bölüm 18–19: yönlendirme oyunlarını ve potansiyel fonksiyon yöntemiyle ağ oluşturma oyunlarını bilgisayar bilimi bakışıyla sunar.
  • D. Easley ve J. Kleinberg, Networks, Crowds, and Markets (2010), Bölüm 8 ve 17: trafik ağlarını, Braess paradoksunu ve ağ etkilerini az matematikle, çok örnekle anlatır.
  • A. R. Karlin ve Y. Peres, Game Theory, Alive (2017): trafik yönlendirmesini ve potansiyel oyunları öğrenci düzeyinde, alıştırmalarla verir.

8.11Kaynaklar

  1. M. Beckmann, C. B. McGuire, C. B. Winsten, Studies in the Economics of Transportation, Yale University Press, 1956.
  2. D. Braess, “Über ein Paradoxon aus der Verkehrsplanung”, Unternehmensforschung 12, 258–268, 1968.
  3. J. E. Cohen, P. Horowitz, “Paradoxical behaviour of mechanical and electrical networks”, Nature 352, 699–701, 1991.
  4. D. Easley, J. Kleinberg, Networks, Crowds, and Markets, Cambridge University Press, 2010 (Bölüm 8: trafik ağları ve Braess; Bölüm 17: ağ etkileri).
  5. A. Fabrikant, A. Luthra, E. Maneva, C. Papadimitriou, S. Shenker, “On a network creation game”, ACM PODC, 2003.
  6. A. Fabrikant, C. Papadimitriou, K. Talwar, “The complexity of pure Nash equilibria”, ACM STOC, 2004.
  7. M. Jackson, A. Wolinsky, “A strategic model of social and economic networks”, Journal of Economic Theory 71(1), 44–74, 1996.
  8. A. R. Karlin, Y. Peres, Game Theory, Alive, American Mathematical Society, 2017.
  9. F. Kelly, “Charging and rate control for elastic traffic”, European Transactions on Telecommunications 8, 33–37, 1997.
  10. F. Kelly, A. Maulloo, D. Tan, “Rate control for communication networks: shadow prices, proportional fairness and stability”, Journal of the Operational Research Society 49, 237–252, 1998.
  11. W. Knödel, Graphentheoretische Methoden und ihre Anwendungen, Springer, 1969.
  12. G. Kolata, “What if they closed 42d Street and nobody noticed?”, The New York Times, 25 Aralık 1990.
  13. I. Milchtaich, “Network topology and the efficiency of equilibrium”, Games and Economic Behavior 57, 321–346, 2006.
  14. D. Monderer, L. Shapley, “Potential games”, Games and Economic Behavior 14, 124–143, 1996.
  15. N. Nisan, T. Roughgarden, É. Tardos, V. Vazirani (ed.), Algorithmic Game Theory, Cambridge University Press, 2007 (Bölüm 18–19).
  16. A. Rapoport, T. Kugler, S. Dugar, E. J. Gisches, “Choice of routes in congested traffic networks: Experimental tests of the Braess paradox”, Games and Economic Behavior 65(2), 538–571, 2009.
  17. R. W. Rosenthal, “A class of games possessing pure-strategy Nash equilibria”, International Journal of Game Theory 2, 65–67, 1973.
  18. T. Roughgarden, Selfish Routing and the Price of Anarchy, MIT Press, 2005.
  19. T. Roughgarden, “On the severity of Braess's paradox: Designing networks for selfish users is hard”, Journal of Computer and System Sciences 72, 922–953, 2006.
  20. J. G. Wardrop, “Some theoretical aspects of road traffic research”, Proceedings of the Institution of Civil Engineers, Part II, 1, 325–378, 1952.

Ders sayfaları: Roughgarden CS364A · Hoefer AGT · Dinitz AGT · © Sercan Külcü. Tüm hakları saklıdır.