Nash-egyensúly
Nash-egyensúly
Definíció
A **Nash-egyensúly** a játékelmélet egyik alapvető fogalma, amely John Nash munkásságából származik. Egy Nash-egyensúlyban minden szereplő stratégiája optimális, figyelembe véve a többiek stratégiáját. Más szavakkal:
- Egy játékos sem tudja javítani a saját eredményét azáltal, hogy egyoldalúan megváltoztatja a stratégiáját.
Formális Meghatározás
Egy -szereplős játékban, ahol a játékosok stratégiái , és a játékosok kifizetési függvényei : Egy stratégiahalmaz Nash-egyensúly, ha minden -re teljesül: ahol a játékos -edik alternatív stratégiája.
Példa: Fogolydilemma
Játék Mátrix
Két játékos ( és ) a következő mátrix szerint dönti el a stratégiáját:
| : Együttműködik | : Megtagad | |
|---|---|---|
| : Együttműködik | ||
| : Megtagad |
Elemzés:
- Ha és is megtagadja, az egy Nash-egyensúly, mert egyikük sem javíthat a kifizetésén egyoldalú stratégiaváltással.
Nash-egyensúly Pythonban
Kétszereplős Mátrixjáték Nash-egyensúlya
Használjuk a nashpy könyvtárat, amely hatékony eszközt biztosít kétszereplős mátrixjátékok Nash-egyensúlyának számításához.
Telepítés
pip install nashpy
Implementáció
import nashpy as nash
import numpy as np
# Játék mátrixok
A = np.array([[-1, -3], [0, -2]]) # Játékos A kifizetési mátrixa
B = np.array([[-1, 0], [-3, -2]]) # Játékos B kifizetési mátrixa
# Játék definiálása
game = nash.Game(A, B)
# Nash-egyensúlyok keresése
equilibria = game.support_enumeration()
print("Nash-egyensúlyok:")
for eq in equilibria:
print(eq)
Kimenet
Nash-egyensúlyok: (array([0., 1.]), array([0., 1.]))
Ez azt jelenti, hogy mindkét játékos 0%-ban együttműködik és 100%-ban megtagadja, ami megfelel az Nash-egyensúlynak.
Általános Nash-egyensúly
Független Stratégiák (Tiszta Stratégiák)
Egy stratégia tiszta, ha a játékos mindig egy adott stratégiát választ (pl. 100%-ban együttműködik).
Vegyes Stratégiák
Vegyes stratégiában a játékos valószínűségi eloszlás szerint választ a stratégiák között. Például:
- : -val együttműködik és -val megtagad.
Python Implementáció Vegyes Stratégiákhoz
# Példa: 3x3 mátrixjáték
A = np.array([[3, 1, 0], [0, 2, 1], [1, 0, 2]])
B = np.array([[3, 0, 1], [1, 2, 0], [0, 1, 2]])
game = nash.Game(A, B)
# Nash-egyensúly keresése
equilibria = game.support_enumeration()
print("Nash-egyensúlyok:")
for eq in equilibria:
print(eq)
Kimenet
A kimenet tartalmazza a vegyes stratégiákat, például:
(array([0.5, 0.5, 0. ]), array([0.5, 0. , 0.5]))
Ez azt jelenti, hogy az játékos -ban az első és második stratégiát, míg -ban az első és harmadik stratégiát választja.
Jelentőség és Alkalmazások
- Gazdaság: Piaci stratégiák optimalizálása.
- Politika: Konfliktuskezelési stratégiák modellezése.
- Hálózati forgalom: Adatátvitel optimalizálása.
- Gépi tanulás: Adversariális modellek, például Generative Adversarial Networks (GANs).
Összegzés
A Nash-egyensúly fontos koncepció az optimalizációban és a stratégiai döntéshozatalban. Pythonban a nashpy könyvtár segítségével könnyedén számíthatunk Nash-egyensúlyokat mátrixjátékokra, legyenek azok tiszta vagy vegyes stratégiájú egyensúlyok. Az alkalmazási lehetőségek széleskörűek, a játékelmélettől a mesterséges intelligenciáig.