Nash dengesi
- Algoritmalar kursu
- Uzman seviye
- Ders 33/41
- 4 dk
Nash dengesi kavramını öğrenirsin.
Nash dengesi
Nash dengesi, oyuncuların hiçbiri tek taraflı olarak stratejisini değiştirerek daha iyi yapamadığı strateji profilidir. Her oyuncu, diğerlerinin stratejisi sabitken kendi stratejisinden memnundur.
Bir oyunda birden fazla Nash dengesi olabilir. Saf strateji dengelerinde her oyuncu tek bir strateji seçer.
Bu kavram, oyun teorisinin merkezi taşıdır ve ekonomiden biyolojiye kadar birçok alanda kullanılır.
Saf denge bulma
İki oyunculu bir oyunda saf Nash dengesi bulmak için her hücreyi sınarız. Bir (i,j) hücresi denge olmak için:
A oyuncusunun ödülü, j sütunundaki en büyük değer; B oyuncusunun ödülü, i satırındaki en büyük değer olmalıdır. İki koşul da sağlanırsa (i,j) bir dengedir.
İki kişilik sıfır toplamlı oyunlarda bu denge, minimax ile birebir örtüşür.
Uygulama find_nash_equilibria fonksiyonu
find_nash_equilibria(payoff_a, payoff_b) yaz. Saf denge hücrelerinin listesini döndür. print(find_nash_equilibria([[3, 0], [5, 1]], [[3, 5], [0, 1]])) ile [(1, 1)] yazdır.
Başlangıç kodu
def find_nash_equilibria(payoff_a, payoff_b):
# Saf Nash dengelerini bulÖrnek çözüm
def find_nash_equilibria(payoff_a, payoff_b):
# Saf Nash dengelerini bul
n = len(payoff_a)
equilibria = []
for i in range(n):
for j in range(n):
best_a = max(payoff_a[r][j] for r in range(n))
best_b = max(payoff_b[i][c] for c in range(n))
if payoff_a[i][j] == best_a and payoff_b[i][j] == best_b:
equilibria.append((i, j))
return equilibria
print(find_nash_equilibria([[3, 0], [5, 1]], [[3, 5], [0, 1]]))Beklenen çıktı
[(1, 1)]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Nash dengesi kavramları
| Kavram | Anlamı |
|---|---|
saf strateji |
Tek seçim |
denge |
Sapma yararsız |
oyuncu |
Strateji seçer |
çoklu denge |
Birden fazla çözüm |
2 Nash dengesi ne zaman geçerlidir?
if payoff_a[i][j] == best_a and payoff_b[i][j] == best_b:- Yalnızca A en iyiyi oynuyorsa
- Yalnızca B en iyiyi oynuyorsa
- İki oyuncu da en iyiyi oynuyorsa Doğru cevap
- Hiç kimse oynamıyorsa
Açıklama: İki oyuncu da tek taraflı sapmadan kazanamazsa denge geçerlidir.
3 denge ekleme
if payoff_a[i][j] == best_a and payoff_b[i][j] == best_b:
equilibria.____((i, j))
if payoff_a[i][j] == best_a and payoff_b[i][j] == best_b:
equilibria.append((i, j))
Açıklama: Listeye eklemek için append kullanılır.