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: merkezi 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 toplam 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
- Her zaman 1 ≤ PoS ≤ PoA. Tek denge varsa ikisi eşittir.
- Fayda (refah) problemlerinde oran ters çevrilir: C(OPT) yerine W(OPT) / W(denge); 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
Üç 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 | algoritmanın çözümü / optimum |
| Rekabet oranı | bilgi: gelecek bilinmeden çevrimiçi karar vermek | çevrimiçi algoritma / çevrimdışı optimum |
| Anarşinin Bedeli | koordinasyon: merkezi 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: (x·x)′ = 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) | x* | C* | PoA | p / ln p |
|---|---|---|---|---|
| 1 | 0,5 | 0,75 | 1,333 | — |
| 2 | 0,577 | 0,615 | 1,626 | 2,89 |
| 4 | 0,669 | 0,465 | 2,151 | 2,89 |
| 8 | 0,76 | 0,325 | 3,081 | 3,85 |
| 16 | 0,838 | 0,212 | 4,727 | 5,77 |
Doğrusal Gecikme ve Braess
Kod İzleme: pigou_poa(p)
p = 1 (Pigou): C(x) = x² + 1 − x, C′(x) = 2x − 1 = 0 ⇒ x* = 2−1 = 0,5.
C* = 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 ⇒ x* = 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 ⇒ x* = 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 ⇒ x* = 9−1/8 ≈ 0,76.
PoA 3,081: artış Θ(p / ln p) hızında, yavaş ama sınırsız.
p = 16: C(x) = x·x16 + (1 − x)·1, C′(x) = 17x16 − 1 = 0 ⇒ x* = 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ını Sınayalım
| Örnek | Denge | Optimum | Oran |
|---|---|---|---|
| Pigou (x ve 1) | 1 | 3/4 | 1,333 |
| Braess (4.000 araç) | 320.000 | 258.750 | 1,237 |
| Braess, normalleştirilmiş (x, 1, 1, x, 0) | 2 | 3/2 | 1,333 |
| İki yol, 3.000 araç | 75.000 | 71.250 | 1,053 |
| 20.000 rastgele doğrusal paralel ağ | — | — | en büyük 1,33 |
Doğrusal Gecikme ve Braess
Tek Bir Reçete: Pürüzsüzlük (Smoothness)
Doğrusal Gecikme ve Braess
Atomik Tıkanıklık Oyunları: PoA ≤ 5/2
Hücre: 3·[5/3·y² + 1/3·z² − y(z+1)]; betik y, z ≤ 60 için hiç negatif bulmadı
- Sonlu sayıda oyuncu, her biri bir birim yük; kenar maliyeti ce(x) = aex + be.
- Oyuncu s*'ya tek başına geçerse kenarda en çok ze + 1 kişi olur; s*'da kenarı ye kişi kullanır.
- Anahtar eşitsizlik (tamsayılar): y(z + 1) ≤ 5/3·y² + 1/3·z². Eşitlik (1, 1) ve (1, 2)'de.
- ⇒ (5/3, 1/3)-pürüzsüz ⇒ PoA ≤ (5/3)/(2/3) = 5/2, ve bu 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?
Marjinal maliyet (ℓ + x·ℓ′): zikzak 80 < 85. Yani 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 yavaşça büyür: Θ(log m / log log m) (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.
| Makineler | Saf denge PoA | Karışık denge PoA |
|---|---|---|
| özdeş | 2 − 2/(m+1) | Θ(log m / log log m) |
| ilişkili (farklı hızlı) | Θ(log m / log log m) | Θ(log m / log log log m) |
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.
İşler gelir gelmez en hızlı sunucuyu seçerse (eşitlikte A) 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)
Oyuncu i'nin kendi yolu 1/i; ortak yol v→t 1,1 (ε = 0,1), kullananlar eşit böler. 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 Argümanı
PoA'yı Azaltma
Adım Adım: Tıkanıklık Ücreti Dengeyi Kaydırır
Ü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: bencil denge, iki katı trafiği optimum biçimde taşımaktan 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, merkezi 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 → x* = 1/√3 ≈ 0,577, C* ≈ 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? (x* = 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
- x* ≈ 0,63, C* ≈ 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üğü