Pada artikel ini, saya membahas masalah menemukan strategi campuran seimbang menggunakan game antagonis sebagai contoh.
Biarkan ada dua pemain, A dan B, yang berulang kali memainkan game tertentu. Setiap pemain di setiap undian mengikuti salah satu dari beberapa strategi - untuk kesederhanaan, kami menganggap bahwa jumlah strategi untuk kedua pemain bertepatan dan setara.. Saat memilihpemain strategi pertama dan strategi pemain kedua, pemain pertama akan menerima kemenangan dan pemain kedua akan mendapatkan kerugian yang sama - ini adalah bagaimana permainan antagonis diatur. Kemenangan ini dapat ditulis sebagai matriks persegi:
Pemain memainkan game berulang kali dan dapat menggunakan strategi yang berbeda dalam undian yang berbeda. Strategi campuran adalah vektor probabilitas yang terkait dengan masing-masing strategi murni pemain. Setiap pemain memilih salah satu strategi dalam undian berikutnya sesuai dengan probabilitas yang ditentukan untuknya oleh strategi campurannya. Jika dilambangkan dengan dan strategi campuran pemain, maka harapan matematis untuk memenangkan pemain pertama adalah
Sepasang strategi campuran disebut keseimbangan jika tidak ada pemain yang dapat meningkatkan kemenangan mereka dengan mengubah strategi mereka. Dengan kata lain, untuk setiap pasangan strategi lainnya, dilakukan:
Di sini kita sekarang mencari keseimbangan semacam itu.
1. Ekuilibrium
Jadi, sepasang strategi campuran membentuk keseimbangan jika perubahan dalam strategi campuran untuk pemain pertama tidak dapat meningkatkan keuntungannya, dan perubahan dalam strategi campuran untuk pemain kedua tidak dapat mengurangi kerugiannya.
Sebagai contoh, pertimbangkan matriks hasil seperti itu:
. , , . : (2 3). , , : (4 1). , , : (1 4). , . , , .
. , , . 2.5.
, , , . , .
, :
:
, . - : , .
, , :
, ,
- , . - --.
2. --
-, , 1951- , , 1939- .
:
, :
, , , --:
; .
— . :
- ,
- - , .
, , , . , :
- 2 ;
- 2, 1 5 ;
- , 3 4;
- 2 ;
- , .
, . .
3.
. , , « ».
:
:
:
:
--, . :
:
, :
. :
, , , . , . , ( ).
, --:
.
, . :
, ,
, :
, : . , , : , ; . :
:
, . .
5.
: , . . , , , , :
, , . , . , . : — . ,
6.
GitHub: https://github.com/ashagraev/zero_sum_game
matrix.h : , , . . , .
kkt.cpp. . , callback'.
Mungkin ada lebih dari satu keseimbangan dalam permainan, apalagi, bisa ada banyak dari mereka. Dalam kasus apa pun, Anda harus siap dengan fakta bahwa algoritma akan menghasilkan lebih dari satu solusi (dan seluruh rangkaian solusi akan menjadi beberapa shell linier dari solusi yang diturunkan). Oleh karena itu, tanda tangan fungsi menganggap bahwa hasilnya adalah vektor strategi, dan bukan satu strategi. Dan pada intinya, dengan demikian, semua vektor ini ditampilkan .
Contoh-contoh matriks masukan untuk program ada di input.txt , dan hasil menjalankan program pada contoh-contoh ini ada di file output.txt .