CodeBlanks Logo Icon CodeBlanks

Nash dengesi

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

solution.py
def find_nash_equilibria(payoff_a, payoff_b):
    # Saf Nash dengelerini bul

Örnek çözüm

solution.py
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?

solution.py
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

Soru
if payoff_a[i][j] == best_a and payoff_b[i][j] == best_b:
    equilibria.____((i, j))
Cevap
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.

Uzman seviye bölümündeki tüm dersler