Bölüm 9: Anarşinin Bedeli
Temel Kavramlar
Oyunla Başlangıç: Yük Dengeleme Oyunu
İşler sırayla gelir ve A, B, C sunucularından birine yerleşir; bir işin bitiş süresi, sunucunun toplam yükünün sunucu hızına bölümüdür.
- Her iş kendi bitiş süresini en aza indirirse sistemin toplam maliyeti de en küçük olur mu?
- Bencil işlerin dengesi en iyi atamadan en çok ne kadar kötü olabilir?
Temel Kavramlar
Öğrenme Çıktıları
Anarşinin Bedeli (PoA) ve İstikrarın Bedeli'ni (PoS) tanımlamak; aralarındaki farkı örnekle göstermek.
Pigou, Braess ve yük dengeleme örneklerinde denge ve optimum maliyetini bulup oranı hesaplamak.
Doğrusal gecikmede PoA ≤ 4/3 sınırının sezgisel ispatını ve sıkılığını açıklamak.
Tıkanıklık ücretinin optimumu nasıl dengeye dönüştürdüğünü iki yollu ağda ve Pigou ağında göstermek.
Temel Kavramlar
Anarşinin Bedeli: Bencilliğin Faturası
- Anarşinin Bedeli (Price of Anarchy, PoA), bencil davranışın oluşturduğu en kötü denge ile sosyal optimum arasındaki verimlilik kaybını ölçer.
- Maliyet problemlerinde sosyal optimum toplam maliyeti en aza indirir.
- Trafik ağında kullanıcılar kendi yolculuk sürelerini azaltmaya çalışırken toplam gecikme artabilir.
- Kavramı Koutsoupias ve Papadimitriou (1999) “koordinasyon oranı” adıyla tanımladı; “anarşinin bedeli” adını Papadimitriou (2001) verdi: merkezî bir “diktatör” yerine herkesin kendi başına karar vermesinin (anarşi) bedeli.
Temel Kavramlar
Nash Dengesi ve Sosyal Optimum
Nash dengesi (bireysel)
- Hiçbir oyuncu tek taraflı strateji değiştirerek kendi sonucunu iyileştiremez.
- Bireysel teşvikleri temsil eder.
- Birden fazla olabilir (iyi ve kötü dengeler).
Sosyal optimum (sistem)
- Toplam maliyeti en aza indirir veya sosyal refahı en yükseğe çıkarır.
- Sistemin ortak hedefini temsil eder.
- Çoğu zaman bir denge değildir: birileri sapmak ister.
Temel Kavramlar
Tanımlar: PoA ve PoS
PoA = maxs ∈ NE C(s) / C(OPT)
en kötü denge: kötümser garanti
PoS = mins ∈ NE C(s) / C(OPT)
en iyi denge: iyimser senaryo
NE: oyunun Nash dengeleri; C(s): s durumundaki toplam maliyet; OPT: toplam maliyeti en küçük durum (sosyal optimum). PoA = en kötü dengenin maliyeti ÷ optimumun maliyeti; PoS = en iyi dengenin maliyeti ÷ optimumun maliyeti.
- Her zaman 1 ≤ PoS ≤ PoA. Tek denge varsa ikisi eşittir.
- Fayda (refah) problemlerinde oran ters çevrilir: C(OPT) yerine SW(OPT) / SW(denge) (SW: sosyal refah); böylece büyük değer yine daha kötü verimlilik demektir.
Temel Kavramlar
Verimlilik Ölçütleri ve Okuma
- Toplam maliyet: tüm kullanıcıların gecikme veya kaynak kullanım maliyetlerinin toplamı.
- Maliyet problemlerinde PoA, en kötü denge maliyetinin sosyal optimum maliyetine oranıdır.
- PoA'nın 1 olması verimlilik kaybı bulunmadığını gösterir.
- Oran büyüdükçe stratejik davranışın oluşturduğu kayıp artar.
| PoA | Anlamı | Örnek |
|---|---|---|
| 1 | kayıp yok | Braess, yeni yol öncesi |
| 4/3 | %33 fazla maliyet | Pigou, doğrusal sınır |
| 2 − 2/(m+1) | < 2 kat | yük dengeleme |
| sınırsız | garanti yok | dik gecikme (xp) |
Temel Kavramlar
İki Kötü Durum Oranı: Neyin Eksikliği?
| Oran | Optimuma ulaşmayı engelleyen | Pay / payda |
|---|---|---|
| Yaklaşım oranı | hesaplama gücü: polinom zamanda çözülemeyen (NP-zor) problem | hızlı bir algoritmanın bulduğu çözüm ÷ optimum |
| Anarşinin Bedeli | koordinasyon: merkezî otorite yok, herkes kendi çıkarına bakar | en kötü denge / optimum |
Özdeş m makinede en büyük yük: Graham'ın açgözlü liste algoritması en çok 2 − 1/m kat kötü; bencil işlerin saf dengesi en çok 2 − 2/(m+1) kat. m = 2 için 3/2 ve 4/3.
Gerçek oyuncular yalnız bencil değildir: güven, sosyal normlar, itibar ve tekrarlanan etkileşim işbirliğini artırabilir. PoA bu yüzden kötümser bir garantidir, tahmin değil.
Pigou Ağı
Adım Adım: Pigou Ağında Anarşinin Bedeli
Kurulum (Pigou, 1920): 1 birim trafik, çok sayıda küçük sürücü. Üst yol: gecikme x (üstteki pay); alt yol: her zaman 1.
Denge: üst yol hiçbir zaman alttan yavaş değil (x ≤ 1) → herkes üste geçer. x = 1, herkes 1 dk: C(denge) = 1.
Toplam maliyet: x pay üstte x dk, 1 − x pay altta 1 dk → C(x) = x·x + (1 − x)·1 = x² − x + 1.
En küçük değer: C′(x) = 2x − 1 = 0 → x = 1/2. Trafiğin yarısı “feda edilip” alta gönderilir.
C(1/2) = 1/4 + 1/2 = 3/4. Üsttekiler 1/2 dk, alttakiler 1 dk; alttakiler üste geçmek ister → optimum denge değil.
PoA = C(denge) / C(optimum) = 1 / (3/4) = 4/3 ≈ 1,33: bencil yönlendirme %33 daha fazla toplam gecikme üretir.
Pigou Ağı
Neden Farklı? Özel ve Marjinal Maliyet
- Sürücü özel maliyetine bakar: x = 1 ile karşılaştırır → x = 1.
- Toplum marjinal maliyete bakar: üst yolun toplam maliyeti x·x, türevi 2x; 2x = 1 → x = 1/2.
- Aradaki fark x·ℓ′(x): bir sürücünün diğerlerine yüklediği gecikme (dışsallık).
Doğrusal Gecikme ve Braess
Gecikme Dikleşince PoA Büyür
| p (ℓ = xp) | xOPT | C(OPT) | PoA |
|---|---|---|---|
| 1 | 0,5 | 0,75 | 1,333 |
| 2 | 0,577 | 0,615 | 1,626 |
| 4 | 0,669 | 0,465 | 2,151 |
| 8 | 0,76 | 0,325 | 3,081 |
| 16 | 0,838 | 0,212 | 4,727 |
Doğrusal Gecikme ve Braess
Pigou Ağında Gecikme Üssü ve PoA
Gecikme fonksiyonu dikleştikçe optimum iyileşir, denge maliyeti 1'de kalır ve PoA sınırsız büyür; doğrusal gecikmede (p = 1) PoA = 4/3'tür.
Doğrusal Gecikme ve Braess
Kod İzleme: pigou_poa(p)
p = 1 (Pigou): C(x) = x² + 1 − x, C′(x) = 2x − 1 = 0 ⇒ xOPT = 2−1 = 0,5.
C(OPT) = 0,25 + 0,5 = 0,75 ⇒ PoA = 4/3: Pigou'nun bilinen sonucu.
p = 2: C(x) = x·x2 + (1 − x)·1, C′(x) = 3x2 − 1 = 0 ⇒ xOPT = 3−1/2 ≈ 0,577.
Eğri dikleşti: optimum 0,615'e indi, denge yine 1 ⇒ PoA 1,626.
p = 4: C(x) = x·x4 + (1 − x)·1, C′(x) = 5x4 − 1 = 0 ⇒ xOPT = 5−1/4 ≈ 0,669.
p = 4: optimumda trafiğin %67'si üstte; PoA 2,151 > 2.
p = 8: C(x) = x·x8 + (1 − x)·1, C′(x) = 9x8 − 1 = 0 ⇒ xOPT = 9−1/8 ≈ 0,76.
PoA 3,081: artış yavaş ama sınırsız.
p = 16: C(x) = x·x16 + (1 − x)·1, C′(x) = 17x16 − 1 = 0 ⇒ xOPT = 17−1/16 ≈ 0,838.
p = 16: PoA 4,727. 4/3 garantisi yalnız doğrusal gecikme içindir.
def pigou_poa(p): # üst yol x**p, alt yol 1 x = (p + 1) ** (-1 / p) # C'(x) = 0 noktası opt = x ** (p + 1) + (1 - x) return 1 / opt # denge maliyeti 1 for p in [1, 2, 4, 8, 16]: print(p, round(pigou_poa(p), 3))
Doğrusal Gecikme ve Braess
Doğrusal Gecikmede 4/3 Üst Sınırı
Doğrusal Gecikme ve Braess
4/3 Sınırı: Kenar Eşitsizliği ve Toplama
Doğrusal Gecikme ve Braess
4/3 Sınırını Sınayalım
| Örnek | Denge | Optimum | Bu örnekte gözlenen | Kuramsal üst sınır |
|---|---|---|---|---|
| Pigou (x ve 1) | 1 | 3/4 | 4/3 (sınıra eşit) | 4/3 |
| Braess (4.000 araç) | 320.000 | 258.750 | 80 / 64,69 ≈ 1,237 | 4/3 |
| Braess, normalleştirilmiş (x, 1, 1, x, 0) | 2 | 3/2 | 4/3 (sınıra eşit) | 4/3 |
| İki yol, 3.000 araç | 75.000 | 71.250 | 1,053 | 4/3 |
| 20.000 rastgele doğrusal paralel ağ | — | — | en büyük 1,33 | 4/3 |
| Yük Dengeleme Oyunu, Seviye 2 (toplam süre) | 13 | 12,5 | 1,04 | 5/2 (atomik oyuncular) |
Doğrusal Gecikme ve Braess
Tek Bir Reçete: Pürüzsüzlük (Smoothness)
Doğrusal Gecikme ve Braess
Pürüzsüzlükten PoA Sınırına: Dört Adım
Doğrusal Gecikme ve Braess
Atomik Tıkanıklık Oyunları: PoA ≤ 5/2
Hücre: 3 × (sağ yan − sol yan), kesirsiz olsun diye. Negatif hücre yok: eşitsizlik doğru (betik y, z ≤ 60 denedi); turuncu 0'larda (ör. y = 1, z = 1 ya da 2) iki yan eşit.
- Her oyuncu bir birim yük; kenar maliyeti ce(x) = aex + be.
- ze: dengede e kenarını kullanan kişi sayısı; ye: optimumda kullanan kişi sayısı. Tek başına optimumdaki yoluna geçen oyuncu e'de en çok ze + 1 kişi bulur.
- Anahtar eşitsizlik (tamsayılar): y(z + 1) ≤ 5/3·y² + 1/3·z². c(x) = x iken sol yan e'deki deneme maliyetleri; y² ve z² e'nin optimum ve denge maliyeti.
- ⇒ (5/3, 1/3)-pürüzsüz ⇒ PoA ≤ (5/3)/(2/3) = 5/2; sınır sıkıdır (Awerbuch–Azar–Epstein; Christodoulou–Koutsoupias, 2005).
Doğrusal Gecikme ve Braess
Adım Adım: Braess Ağında PoA
A→B yolu açılınca herkes zikzağa geçer, kişi başı 80 dk. Toplam 320.000 araç·dk.
Sık yapılan kıyas 80/65 ≈ 1,23. Ama PoA'nın paydası aynı ağın optimumudur; yeni ağda 65'ten iyisi olabilir mi?
s→A'da 2.000 araçla gecikme 20 dk; marjinal maliyet ℓ + x·ℓ′ = 20 + 2.000·(1/100) = 40 dk. Zikzak bu türden iki kenar kullanır: 40 + 0 + 40 = 80; eski yol 40 + 45 = 85. 80 < 85: planlayıcı bile birkaç aracı zikzağa yollar.
Optimum: her eski yolda 1.750, zikzakta 500 araç (marjinal maliyetler 90'da eşit). Ortalama ≈ 64,69 dk; betik tüm dağılımları taradı.
PoA = 320.000 / 258.750 ≈ 1,237 ≤ 4/3. Klasik normalleştirilmiş Braess ağında (x, 1, 1, x, 0) oran tam 2 / (3/2) = 4/3.
Yük Dengeleme
Yük Dengeleme (Load Balancing) Oyunu
- n iş (oyuncu), m özdeş makine; iş j'nin boyu wj.
- Her iş bir makine seçer; maliyeti o makinenin toplam yüküdür (bitiş süresi).
- Sosyal maliyet: en büyük yük (makespan), yani tüm işlerin bitiş anı.
- Uygulama: sunucu kümeleri, bulut görev yerleştirme, işlemci çekirdekleri. Koutsoupias–Papadimitriou PoA'yı ilk kez bu modelde (1999) tanımladı.
Yük Dengeleme
Adım Adım: Yük Dengeleme Oyununda PoA
Yük dengeleme oyunu: her iş (oyuncu) bir makine seçer; kendi bitiş süresini, yani makinesinin toplam yükünü küçültmek ister.
Sosyal optimum: toplam iş 6, iki makine → en iyi olasılık 3 ve 3. En büyük yük 3.
Başka bir atama: iki büyük iş M1'de (yük 4), iki küçük iş M2'de (yük 2). Bu bir denge olabilir mi?
Sapma kontrolü: büyük iş M2'ye geçse yine 4 bekler; küçük iş M1'e geçse 5 bekler. Kimse kazanmaz → Nash dengesi.
Bu örnekte PoA = 4/3 ve PoS = 1: optimum da bir denge, ama kötü bir denge de var.
Genel sonuç (Finn–Horowitz, 1979; Koutsoupias–Papadimitriou, 1999): saf dengede PoA = 2 − 2/(m+1) < 2. Karışık dengede PoA m ile çok yavaş ama sınırsız büyür (Koutsoupias–Mavronicolas–Spirakis, 2003; Czumaj–Vöcking, 2002).
Yük Dengeleme
Kod İzleme: nash_mi(boy, atama, m)
Çağrı: iş boyları ve her işin makinesi (0 = M1, 1 = M2).
Yük dizisi sıfırlanır.
j = 0: i1 (boy 2) M1'e eklenir → yuk = [2, 0].
j = 1: i2 (boy 2) M1'e eklenir → yuk = [4, 0].
j = 2: i3 (boy 1) M2'ye eklenir → yuk = [4, 1].
j = 3: i4 (boy 1) M2'ye eklenir → yuk = [4, 2].
j = 0, h = 1: i1 M2'ye geçerse 2 + 2 = 4; şimdiki 4. 4 < 4? Hayır.
j = 1, h = 1: i2 M2'ye geçerse 2 + 2 = 4; şimdiki 4. 4 < 4? Hayır.
j = 2, h = 0: i3 M1'e geçerse 4 + 1 = 5; şimdiki 2. 5 < 2? Hayır.
j = 3, h = 0: i4 M1'e geçerse 4 + 1 = 5; şimdiki 2. 5 < 2? Hayır.
Hiçbir iş kârlı bir makineye kaçamadı → True: {2, 2} | {1, 1} bir Nash dengesidir (en büyük yük 4).
def nash_mi(boy, atama, m): yuk = [0] * m for j, k in enumerate(atama): yuk[k] += boy[j] for j, k in enumerate(atama): for h in range(m): if yuk[h] + boy[j] < yuk[k]: return False # j kaçar return True # kimse kaçmaz
h = k (kendi makinesi) için koşul hep yanlıştır; adımlarda yalnız h ≠ k gösterildi.
Yük Dengeleme
Kaba Kuvvet: 16 Atamanın Hepsi
| Bölüşüm (M1 | M2, simetrik) | Atama sayısı | En büyük yük | Nash? |
|---|---|---|---|
| {2, 1} | {2, 1} | 4 | 3 | ✓ denge |
| {2, 1, 1} | {2} | 4 | 4 | ✗ |
| {2, 2} | {1, 1} | 2 | 4 | ✓ denge |
| {2, 2, 1} | {1} | 4 | 5 | ✗ |
| {2, 2, 1, 1} | { } | 2 | 6 | ✗ |
En iyi tepki dinamiği bu oyunda her zaman bir dengede durur: her kârlı geçiş, sıralanmış yük listesini küçültür. Varılan denge başlangıca ve hamle sırasına bağlıdır.
Yük Dengeleme
Kod İzleme: Tüm Atamaları Tarayarak PoA ve PoS
(0, 0, 0, 0): hepsi M1'de, yükler [6, 0]; i1 M2'ye geçince 2 < 6 ⇒ denge değil. opt şimdilik 6.
(0, 0, 0, 1): yükler [5, 1]; i1 öteki makineye geçince 3 < 5 ⇒ denge değil.
(0, 0, 1, 0): yükler [5, 1]; i1 öteki makineye geçince 3 < 5 ⇒ denge değil.
(0, 0, 1, 1): yükler [4, 2], kimse kaçamaz ⇒ denge, en büyük yük 4 listeye eklenir.
(0, 1, 0, 0): yükler [4, 2]; i3 öteki makineye geçince 3 < 4 ⇒ denge değil.
(0, 1, 0, 1): yükler [3, 3], kimse kaçamaz ⇒ denge, en büyük yük 3 listeye eklenir.
(0, 1, 1, 0): yükler [3, 3], kimse kaçamaz ⇒ denge, en büyük yük 3 listeye eklenir.
(0, 1, 1, 1): yükler [2, 4]; i3 öteki makineye geçince 3 < 4 ⇒ denge değil.
(1, 0, 0, 0): yükler [4, 2]; i3 öteki makineye geçince 3 < 4 ⇒ denge değil.
(1, 0, 0, 1): yükler [3, 3], kimse kaçamaz ⇒ denge, en büyük yük 3 listeye eklenir.
(1, 0, 1, 0): yükler [3, 3], kimse kaçamaz ⇒ denge, en büyük yük 3 listeye eklenir.
(1, 0, 1, 1): yükler [2, 4]; i3 öteki makineye geçince 3 < 4 ⇒ denge değil.
(1, 1, 0, 0): yükler [2, 4], kimse kaçamaz ⇒ denge, en büyük yük 4 listeye eklenir.
(1, 1, 0, 1): yükler [1, 5]; i1 öteki makineye geçince 3 < 5 ⇒ denge değil.
(1, 1, 1, 0): yükler [1, 5]; i1 öteki makineye geçince 3 < 5 ⇒ denge değil.
(1, 1, 1, 1): yükler [0, 6]; i1 öteki makineye geçince 2 < 6 ⇒ denge değil.
Dengeler [4, 3, 3, 3, 3, 4] ⇒ PoA = 4/3, PoS = 3/3 = 1. mn atama: büyük oyunlarda üstel.
from itertools import product def poa_pos(boy, m): opt, dengeler = float("inf"), [] for atama in product(range(m), repeat=len(boy)): yuk = [0] * m for j, k in enumerate(atama): yuk[k] += boy[j] opt = min(opt, max(yuk)) if nash_mi(boy, atama, m): # denge testi dengeler.append(max(yuk)) return max(dengeler) / opt, min(dengeler) / opt r = poa_pos([2, 2, 1, 1], 2) print(round(r[0], 3), r[1])
Yük Dengeleme
Farklı Hızlı (İlişkili) Makineler
- Makine i'nin hızı si; bir işin bitiş süresi, makinesinin toplam yükünün si'ye bölümüdür. Saf Nash dengesi yine her zaman vardır.
- Örnek: hızlar A = 2, B = 1, C = 1; iş boyları 2, 1, 1. Sosyal maliyet: en büyük bitiş süresi.
| Atama | Süreler (A, B, C) | En büyük | Nash? |
|---|---|---|---|
| A {2}, B {1}, C {1} | 1, 1, 1 | 1 | evet (optimum) |
| A {1, 1}, B {2}, C { } | 1, 2, 0 | 2 | evet |
İkinci atamada 2'lik iş A'ya geçse (2 + 2)/2 = 2, C'ye geçse 2/1 = 2 bekler; 1'lik iş C'ye geçse yine 1 bekler: kimse kazanmaz. Oran 2/1 = 2, özdeş üç makinenin sınırı 2 − 2/4 = 1,5'ten büyük.
Yük Dengeleme
Oyuna Dönüş: Yük Dengeleme Oyunu
Oyunda sosyal maliyet en büyük yük değil, tüm işlerin bitiş sürelerinin toplamıdır. Seviye 2, CPU Scheduling: 7 birim iş, hızlar 2, 1, 1.
| Yükler (A, B, C) | Toplam süre | Nash? |
|---|---|---|
| (3, 2, 2) | 3·1,5 + 2·2 + 2·2 = 12,5 | evet (optimum) |
| (4, 2, 1) | 4·2 + 2·2 + 1·1 = 13 | evet (en kötü) |
PoA = 13 / 12,5 = 1,04. (4, 2, 1)'de A'daki iş C'ye geçse yine 2 bekler: kimse kazanmaz. Simetriği (4, 1, 2) de aynı maliyetle (13) bir dengedir.
Her iş geldiği anda, kendi bitiş süresi en kısa olacak sunucuyu seçerse (eşitlikte alfabede önce gelen sunucu) sıra A, A, B, C, A, A, B olur ve sonuç tam olarak en kötü dengelerden (4, 2, 1) çıkar. Oyundaki bencil denge gösterimi (Selfish equilibrium) bu açgözlü yerleşimle kurulur.
Seviye 1'de (6 iş, özdeş sunucular) tek denge (2, 2, 2) optimumdur: PoA = 1. Kayıp, sunucular farklılaşınca ortaya çıkar.
İstikrarın Bedeli
Aynı Oyunda PoA ≠ PoS
4 oyuncu s'den t'ye bağlantı kiralar: A 2 TL, B 6 TL; bedeli kullananlar eşit böler (adil maliyet paylaşımı). Kalınlık: bağlantıdaki oyuncu sayısı.
Herkes A'da: her biri 0,5 öder; B'ye tek başına geçen 6 öderdi ⇒ kimse geçmez. Denge, toplam 2 = optimum.
Herkes B'de: her biri 1,5 öder; A'ya tek başına geçen 2 öderdi (2 > 1,5) ⇒ kimse geçmez. Bu da denge, toplam 6.
Karışık profil (1 A, 3 B): B'deki bir oyuncu A'ya geçerse 1 öder < 2 ⇒ denge değil. Betik 16 profilin hepsini taradı: yalnız "hepsi A" ve "hepsi B" denge.
PoA = 6/2 = 3 (en kötü denge), PoS = 1 (en iyi denge). Koordinasyon sorunu: oyuncular iyi dengeye yönlendirilebilirse kayıp yok; PoS bu iyimser senaryonun ölçüsüdür.
İstikrarın Bedeli
Adım Adım: İstikrarın Bedeli (Hn Örneği)
Her oyuncu t'ye iki yoldan biriyle gider: yalnız kendisinin kullandığı 1/i bedelli yol ya da herkesin ortak kullandığı, bedeli 1 + ε = 1,1 olan yol (ε: küçük bir ek bedel); ortak yolun bedeli kullananlarca eşit bölünür. Optimum: herkes ortakta, toplam 1,1, kişi başı 0,275.
Oyuncu 4: kendi yolu 1/4 = 0,25 < 0,275 → ayrılır. Kalan üç kişi artık 1,1/3 ≈ 0,367 öder.
Oyuncu 3: 1/3 ≈ 0,333 < 0,367 → ayrılır. Kalan iki kişi 0,55 öder.
Oyuncu 2: 1/2 = 0,5 < 0,55 → ayrılır. Oyuncu 1 ortak yolu tek başına öder: 1,1.
Oyuncu 1: kendi yolu 1 < 1,1 → ayrılır. Herkes kendi yolunda: 1 + 1/2 + 1/3 + 1/4 = 25/12 ≈ 2,083.
Betik: 16 profilin tek dengesi bu → PoS = PoA = (25/12) / 1,1 = 125/66 ≈ 1,894. ε → 0 iken n oyuncuda PoS → Hn = 1 + 1/2 + … + 1/n.
İstikrarın Bedeli
Neden PoS ≤ Hn? Potansiyel ve Maliyet
İstikrarın Bedeli
PoS ≤ Hn: Optimumdan Bir Dengeye Yürümek
PoA'yı Azaltma
Adım Adım: Tıkanıklık Ücreti Dengeyi Kaydırır
İki yollu ağ: ℓ₁ = 5 + x₁/100, ℓ₂ = 20 + x₂/200, toplam 3.000 araç. Ücret yok (τ = 0): denge ℓ₁ = ℓ₂ → x₁ = 2.000, toplam 75.000 araç·dk. Ücret sürücü için dakika cinsinden ek maliyet sayılır.
τ = 2,5: Yol 1 eğrisi yukarı kayar; kesişim sola gider: x₁ ≈ 1.833, toplam ≈ 72.917. Ücret bir transferdir, toplam gecikmeye eklenmez.
τ = 5: x₁ ≈ 1.667, toplam ≈ 71.667. Her artış bir kısım sürücüyü geniş Yol 2'ye iter.
τ = 7,5: x₁ = 1.500 → sistem optimumu (71.250) artık bir denge. Marjinal maliyet ücretleri Yol 1'e x₁ℓ′₁ = 15, Yol 2'ye x₂ℓ′₂ = 7,5 dk; önemli olan fark: 7,5.
τ = 10: fazla ücret aşırıya kaçar: x₁ ≈ 1.333, toplam yine ≈ 71.667. Doğru ücret dışsallığa eşit olandır, “ne kadar çok o kadar iyi” değil.
PoA'yı Azaltma
Adım Adım: Tıkanıklık Ücreti Pigou'yu Düzeltir
Başlangıç: ücret yok, herkes üst yolda (x = 1), toplam gecikme 1. Amaç: optimumu (x = 1/2) denge yapmak.
Marjinal maliyet ücreti τe = fe·ℓ′e(fe): üst yolda ℓ′ = 1 → τ = x; alt yolda ℓ′ = 0 → ücret yok. Sürücü üstte x + x = 2x görür.
Yeni denge: 2x = 1 → x = 1/2. Bencil sürücüler kendiliğinden optimum dağılımı seçer; gecikme 3/4.
Toplanan ücret: 1/2 · 1/2 = 1/4. Sürücülerin ödediği toplam 3/4 + 1/4 = 1: gelir geri dağıtılmazsa sürücüler kazanmaz, kazanç topluma geçer.
Aynı sonucu sabit ücret de verir: üst yola τ = 1/2 → x + 1/2 = 1 → x = 1/2. Genel teorem: marjinal maliyet ücreti her ağda optimumu denge yapar.
PoA'yı Azaltma
PoA'yı Azaltmanın Diğer Yolları
Kullanıcıların başkalarına yüklediği dışsal maliyeti karara dahil eder (Londra, Stockholm, Singapur uygulamaları).
Trafiğin bir kısmını merkez yönlendirir, gerisi bencil seçer; kontrol edilen pay arttıkça oran 1'e yaklaşır.
Roughgarden–Tardos: r birim trafiğin bencil dengesi, 2r birim trafiğin en iyi yönlendirilmesinden daha pahalı değildir. Kapasiteyi artırmak ücretin yerini tutabilir.
Öneriler dengeyi daha düşük toplam maliyete yönlendirebilir; ama uyum gönüllüdür.
Kuralları, iyi sonuç tek denge olacak biçimde kurmak.
Müdahalenin bilgi, uygulama ve adalet maliyetleri elde edilen verimlilik kazancıyla birlikte değerlendirilmelidir.
PoA'yı Azaltma
Gerçek Hayat ve Tartışma
Tartışma soruları
- Bireysel çıkarlar neden her zaman sosyal optimuma ulaşmaz? Pigou örneğinde hangi dışsallık var?
- PoA'yı azaltmak için hangi teşvikler uygulanabilir (ücret, bonus, merkezî yönlendirme)? Hangisi daha adil?
- Braess paradoksu günlük hayatta nerede görülebilir? Bir yolu kapatmak ne zaman mantıklıdır?
Değerlendirme
Özet
| Örnek | Denge | Optimum | Oran |
|---|---|---|---|
| İki yol, 3.000 araç | 75.000 | 71.250 | PoA ≈ 1,053 |
| Pigou (x ve 1) | 1 | 3/4 | PoA = 4/3 |
| Doğrusal gecikme, her ağ | — | — | PoA ≤ 4/3 (sıkı) |
| Pigou, ℓ = xp | 1 | → 0 | PoA → ∞ |
| Atomik tıkanıklık, doğrusal | — | — | PoA ≤ 5/2 (sıkı) |
| Braess, 4.000 araç | 320.000 | 258.750 | PoA ≈ 1,237 |
| Yük dengeleme {2, 2, 1, 1} | 4 (en kötü) | 3 | PoA = 4/3, PoS = 1 |
| Adil paylaşım, Hn örneği | 25/12 | 1,1 | PoS ≈ 1,894 (≤ Hn) |
| Pigou + ücret τ = x | 3/4 | 3/4 | 1 |
Değerlendirme
Örnek Problemler
- Pigou ağında üst yolun gecikmesi x² olsun. Denge maliyeti, optimum ve PoA nedir?
- İşler {3, 3, 2, 2, 2}, 2 özdeş makine. Optimum en büyük yük nedir? En büyük yükü 7 olan bir Nash dengesi bulun.
- Normalleştirilmiş Braess ağında (s→A: x, A→t: 1, s→B: 1, B→t: x, A→B: 0; 1 birim trafik) PoA nedir?
- Hn örneğini n = 3 için kurun (ε küçük). PoS kaça yaklaşır?
- Üst yol 2x, alt yol 1 olan Pigou ağında PoA ve optimumu denge yapan sabit ücret nedir?
Cevapları göster
- Denge 1 (herkes üstte). C(x) = x³ + 1 − x → xOPT = 1/√3 ≈ 0,577, C(OPT) ≈ 0,615 → PoA ≈ 1,626.
- Optimum 6 ({3, 3} | {2, 2, 2}). Denge: {3, 2, 2} | {3, 2} → 7 ve 5; 2'lik iş geçerse 5 + 2 = 7, kazanmaz; 3'lük geçerse 8 → denge. Oran 7/6.
- Denge: herkes zikzak, 1 + 0 + 1 = 2. Optimum: yarı yarıya, 1/2 + 1 = 3/2. PoA = 4/3.
- H3 = 1 + 1/2 + 1/3 = 11/6 ≈ 1,83; optimum 1 + ε → PoS → 11/6.
- Denge x = 1/2 (2x = 1), C = 1. Optimum C = 2x² + 1 − x → x = 1/4, C = 7/8 → PoA = 8/7. Ücret: 2·(1/4) + τ = 1 → τ = 1/2.
Değerlendirme
Alıştırmalar: İzlemeler ve Yeni Konular
pigou_poa(3)kaç döndürür? (xOPT = 4−1/3)- Dört iş (4, 3, 3, 2) başta hepsi M1'de; her adımda kârlı sapan ilk iş en az yüklü makineye geçer. Bu en iyi tepki dinamiği hangi en büyük yükte durur? Optimum kaçtır?
- Bir oyun (1, ½)-pürüzsüz ise PoA için ne söylenebilir? Pigou'nun (1, ¼) değeriyle karşılaştırın.
- PoA ≠ PoS oyununda A 3 TL, B 8 TL olsun (4 oyuncu). Dengeler hangileri, PoA ve PoS kaçtır?
- y = 2, z = 3 için y(z + 1) ≤ 5/3·y² + 1/3·z² eşitsizliğini doğrulayın.
poa_pos([3, 2, 2, 1], 2)ne döndürür?
Cevapları göster
- xOPT ≈ 0,63, C(OPT) ≈ 0,528 ⇒ PoA ≈ 1,896 (p = 2 ile 4 arasında).
- 4'lük iş M2'ye geçer (yükler 8, 4), sonra 3'lük iş (5, 7); artık kimse kazanmaz: en büyük yük 7. Optimum 6 ({4, 2} | {3, 3}) ⇒ oran 7/6.
- PoA ≤ 1/(1 − ½) = 2; Pigou tipi (1, ¼) ise 4/3 verir. μ küçüldükçe sınır iyileşir.
- Hepsi A (kişi başı 0,75; B'ye geçen 8 öder) ve hepsi B (kişi başı 2; A'ya geçen 3 öder). PoA = 8/3, PoS = 1.
- Sol 8, sağ 20/3 + 3 = 29/3 ≈ 9,67 ⇒ sağlanır (fark 5/3).
- (1.25, 1.0): optimum 4 ({3, 1} | {2, 2}), ama {3, 2} | {2, 1} (yükler 5 ve 3) de denge ⇒ PoA = 5/4, PoS = 1.
Değerlendirme
Etkileşimli Oyunlar
İşlerin makinelere dağılımı: denge, optimum ve aradaki oran.
Wardrop dengesi, sistem optimumu ve aradaki oran (PoA).
Değerlendirme
Kaynaklar
- T. Roughgarden, Twenty Lectures on Algorithmic Game Theory, Cambridge University Press, 2016 (Ders 11–15).
- N. Nisan, T. Roughgarden, É. Tardos, V. Vazirani (ed.), Algorithmic Game Theory, Cambridge University Press, 2007 (Bölüm 17–20).
- E. Koutsoupias, C. Papadimitriou, “Worst-case Equilibria”, STACS, 1999.
- T. Roughgarden, É. Tardos, “How Bad Is Selfish Routing?”, Journal of the ACM, 2002.
- T. Roughgarden, “The Price of Anarchy Is Independent of the Network Topology”, J. Computer and System Sciences, 2003.
- E. Anshelevich vd., “The Price of Stability for Network Design with Fair Cost Allocation”, FOCS, 2004.
- T. Roughgarden, “Intrinsic Robustness of the Price of Anarchy”, STOC, 2009.
- G. Christodoulou, E. Koutsoupias, “The Price of Anarchy of Finite Congestion Games”, STOC, 2005.
- B. Awerbuch, Y. Azar, A. Epstein, “The Price of Routing Unsplittable Flow”, STOC, 2005.
- A. C. Pigou, The Economics of Welfare, Macmillan, 1920.
- A. R. Karlin, Y. Peres, Game Theory, Alive, AMS, 2017 (Bölüm 8: Anarşinin Bedeli); D. Easley, J. Kleinberg, Networks, Crowds, and Markets, Cambridge, 2010 (Bölüm 8: trafik ve Braess).
- Ders sayfası: T. Roughgarden, CS364A (Stanford, 2013), Ders 11–15 notları.
Değerlendirme
Kaynaklar (2/2)
- C. Papadimitriou, “Algorithms, Games, and the Internet”, STOC, 2001.
- R. L. Graham, “Bounds for Certain Multiprocessing Anomalies”, Bell System Technical Journal 45(9), 1966.
- G. Finn, E. Horowitz, “A Linear Time Approximation Algorithm for Multiprocessor Scheduling”, BIT 19, 1979.
- E. Koutsoupias, M. Mavronicolas, P. Spirakis, “Approximate Equilibria and Ball Fusion”, Theory of Computing Systems 36(6), 2003.
- A. Czumaj, B. Vöcking, “Tight Bounds for Worst-Case Equilibria”, SODA, 2002.
- T. Roughgarden, “Stackelberg Scheduling Strategies”, SIAM Journal on Computing 33(2), 2004.
Son
Çalışma soruları · Terim sözlüğü