Rozdział Gry niekooperacyjne w postaci strategicznej Gry dwuosobowe o sumie zerowej Większość teorii matematycznych powstała do opisu pewnych konkretnych elementów rzeczywistości i nie inaczej jest z teorią gier Ją stworzono dla opisu sytuacji konfliktowych i sposobów z nich wychodzenia, bądź przez współzawodnictwo, bądź przez kooperację Oczywiście w założeniu taka teoria powinna dawać odpowiedź na pytanie: jak w danej sytuacji ludzie postąpią niestety, jak w każdej teorii, teoria gier ma swoje założenia, w które ludzie, głupi, nie chcą się wpasować Wniosek z tego taki, że teoria gier nie jest najlepszym narzędziem przewidywania przyszłości do tego wciąż najlepsza jest szklana kula może nam natomiast dać odpowiedź na pytanie, jak powinni postąpić, jeśli byliby racjonalni I od paru słów na temat tego, jak opisać sytuację konfliktu, oraz tego, co będziemy rozumieć pod pojęciem racjonalności, zaczniemy Zastanowimy się nad tym na prostym przykładzie sytuacji, w której mamy dwóch podejmujących decyzje i ich interesy są całkowicie przeciwstawne, więc nie ma mowy o jakiejkolwiek kooperacji, i dzięki temu można w miarę jasno wyekstrahować istotę tego, jakie działanie możemy rozumieć jako racjonalne Większość przykładów, które będą się pojawiały na tym wykładzie, będzie jakimś uproszczeniem sytuacji z życia wziętych, ewentualnie będzie opisywało jakieś zjawiska ekonomiczne tyle że tam bardzo trudno o sytuacje, w których interesy poszczególnych stron są całkowicie przeciwstawne stąd przykład będzie z dziedziny gier wojennych, czyli w praktyce takiej zabawy w żołnierzyki dla dużych chłopców Przykład: Rozważamy następującą sytuację: dwóch dowódców armii przeciwnych państw A i B walczy o dwa forty (miasta) na terenie państwa A, każdy ma przy tym do dyspozycji po dwa oddziały Zadaniem każdego z dowódców jest rozmieszczenie swoich oddziałów w poszczególnych fortach (ewent jako atakujących poszczególne forty) generał armii A w ten sposób, żeby jak najwięcej fortów pozostało w rękach państwa A, generał B tak, żeby przejąć jak najwięcej fortów Wiedzą przy tym, że armia posiadająca na danym odcinku przeważającą siłę na pewno bitwę o dany fort wygra, a jeśli siły są równe, to z prawdopodobieństwem wygra jeden, i z prawdopodobieństwem drugi Jeśli o dany fort nie toczy się walka, to zostaje on we władaniu państwa A Taka bardzo prosta gra W naturalny sposób możemy to opisać tak, że wypiszemy wszystkie możliwe decyzje jednego gracza, wszystkie możliwe decyzje drugiego, i w tabelce zapiszemy, co się w danym
przypadku dzieje: 0 0 0 fort z pr05 zdobyty przez B, fort zostaje w A 0 Teraz co z informacji, które zawarliśmy w tabelce jest istotne - na co będą zwracać uwagę podejmujący decyzje? Na to, ilu żołnierzy poległo, dostało się do niewoli, który oddział wygrał, a który przegrał nie! Istotny jest tylko efekt końcowy, czyli to, ile fortów zdobyto, i (ewentualnie), czy efekt (pozytywny) operacji jest pewny, czy tylko z pewnym prawdopodobieństwem W takim razie po odrzuceniu nadmiarowej informacji dostajemy taki opis gry: 0 0 0 05 0 05 I w ten sposób dostaliśmy naturalny opis gry przy pomocy zbiorów strategii dostępnych poszczególnym graczom oraz macierzy tego, co wypłaca drugi gracz pierwszemu w zależności od tego, jakie strategie stosują Ogólnie: Definicja Grą dwuosobową o sumie zerowej nazwiemy trójkę (X, Y, u), gdzie: X zbiór strategii gracza, Y zbiór strategii gracza, u : X Y R ograniczona funkcja wypłaty Gra rozgrywana jest w następujący sposób: gracze niezależnie od siebie wybierają x X oraz y Y, następnie gracz płaci graczowi kwotę u(x, y) Drugim problemem, który postawiliśmy, było to, co będzie uważane za racjonalne w grze Wróćmy do naszego przykładu i zastanówmy się, jak postąpią gracze, i dlaczego? 0 0 0 05 lub 0 05 Drugi gracz (generał B) wybiera drugą kolumnę, bo wtedy powinien zdobyć jeden fort niezależnie od tego, co zrobi pierwszy (generał A) Generał A natomiast wybierze jedną z możliwości przy których może coś zyskać, czyli lub 3 wiersz Na tej podstawie możemy zapisać, że za racjonalne będziemy uważać takie zachowania jak: Maksymalizowanie własnej wypłaty Unikanie sytuacji, w których możemy więcej stracić, jeśli przeciwnik zagra dla nas niekorzystnie 3 Odrzucanie decyzji, od których mamy lepsze Zgodnie z tymi zasadami (przynajmniej z dwoma pierwszymi) gracz będzie się starał wybrać taką strategię, żeby zmaksymalizować swoją wypłatę przy założeniu, że przeciwnik będzie się starał mu jak najbardziej zaszkodzić Podobnie gracz będzie wybierał tak, żeby wypłacić graczowi jak najmniej, zakładając, że ten będzie grał w najbardziej dla siebie korzystny sposób Patrząc na przykład, widzimy, że gracze właśnie tak robią Spróbujmy to teraz sformalizować
Definicja Wartość, którą gracz może sobie zapewnić, nazywana wartością dolną gry, jest równa v = sup inf u(x, y) x X y Y Wartość najmniejszej straty poniesionej przez gracza, którą może sobie zapewnić, nazywana jest wartością górną gry i jest równa v = inf sup y Y x X u(x, y) Można udowodnić (i my to pokażemy na ćwiczeniach), że v v W naszym przykładzie mamy równość { Ale czy zawsze jest równość? Nie Np w grze z X = Y = {, } oraz gdy x = y u(x, y) =, v =, a v = gdy x y Czym się zatem różnią dwa podane przez nas przykłady? Otóż w pierwszym z nich istnieją takie strategie x X, y Y, że u(x, y ) = sup x X u(x, y ) = inf y Y u(x, y) Z tego wynika, że v = sup inf u(x, y) inf x X y Y y Y u(x, y) = sup x X u(x, y ) inf sup y Y x X u(x, y) = v Czyli wartość górna jest równa wartości dolnej (i w dodatku równa wypłacie gracza, gdy gracze używają strategii x i y ) Definicja 3 Jeśli v = v, to tę wspólną wartość nazywamy wartością gry i oznaczamy przez v Jeśli dodatkowo istnieją x X, y Y, takie że u(x, y ) = sup x X u(x, y ) = inf y Y u(x, y), mówimy, że strategie x i y są optymalne dla graczy i, lub że (x, y ) tworzą punkt siodłowy w grze Uwaga Mówimy o strategiach optymalnych poszczególnych graczy, a nie tylko o optymalnej parze strategii, bo strategie optymalne danego gracza można między sobą wymieniać (ten fakt udowodnimy sobie na ćwiczeniach) Mamy zatem pewną koncepcję rozwiązania, przynajmniej dla pewnej klasy gier o sumie zerowej Nie dla wszystkich jednak, a chcięlibyśmy mieć jakąś możliwość rozwiązania możliwie jak najszerszej klasy gier Na pewien pomysł, jak to zrobić, wpadł von Neumann, i temu jego pomysłowi poświęcimy resztę wykładu Ten sposób będzie skuteczny tylko dla gier ze skończonymi zbiorami akcji graczy Wypłaty dla takich gier (jak w przykładzie) można zapisać przy pomocy macierzy, stąd będziemy je nazywać grami macierzowymi Gry macierzowe o sumie zerowej X = {,,, m} zbiór wierszy macierzy, Y = {,,, n} zbiór kolumn macierzy Wypłatę gracza zapisujemy przy pomocy macierzy m n A = [u(i, j)], i X, j Y Rozszerzenie mieszane gry macierzowej zdefiniowanej powyżej: Zbiorami strategii graczy są P (X) i P (Y ) (gdzie P (A) oznacza zbiór rozkładów prawdopodobieństwa o nośniku w zbiorze A) Elementy µ P (X) oraz σ P (Y ) będziemy nazywać strategiami mieszanymi graczy (w odróżnieniu od elementów X i Y, które nazywamy strategiami czystymi), a wypłatę definiujemy następująco: u(µ, σ) = i u(i, j)µ i σ j, j gdzie µ i to prawdopodobieństwo wylosowania i z rozkładu µ, a σ j prawdopodobieństwo wylosowania j z σ 3
Oczywiście praktycznie rozszerzenie mieszane interpretuje się w ten sposób, że gracze, zamiast wybrać jeden wiersz (jedną kolumnę) macierzy A, wybierają rozkład prawdopodobieństwa, zgodnie z którym losują ten wiersz (tę kolumnę), a jako wypłaty graczy stosujemy wartość oczekiwaną z ich wypłat Jeśli zastosujemy rozszerzenie mieszane, prawdziwe będzie następujące twierdzenie: Twierdzenie (von Neumann, 98) W każdej grze macierzowej o sumie zerowej istnieje para optymalnych strategii mieszanych tzn µ P (X), σ P (Y ) takie że u(µ, σ ) u(µ, σ ) u(µ, σ) µ P (X), σ P (Y ) Dowodu tego twierdzenia nie będę podawał, bo wynika z twierdzenia Nasha, które udowodnimy za tydzień Wniosek W strategiach mieszanych każda gra macierzowa posiada wartość Uwaga To że u(µ, σ) = v nie oznacza, że µ i σ są optymalne Np w grze z macierzą wypłat [ ] 0 A = 0 0 wybór pierwszej kolumny i drugiego wiersza nie jest optymalny, a wartość gry jest równa 0 Niestety, trick z rozszerzeniem mieszanym nie działa już dla gier z większymi zbiorami akcji graczy Łatwo znaleźć przykład gry z przeliczalnymi zbiorami strategii czystych, dla której gra nie posiada wartości w strategiach mieszanych Przykład: Niech X = Y = {,, } oraz u(x, y) = sgn(x y) Rozważmy rozszerzenie mieszane tej gry: P (X) = {µ : µ i 0, i= µ i = }, P (Y ) = {σ : σ i 0, i= σ i = }, u(µ, σ) = i= j= u(i, j)µ i σ j W takiej grze v =, a v = Oba te fakty pokazuje się podobnie, więc udowodnię tylko pierwszy Weźmy dowolne µ P (X) oraz ε > 0 Niech n ε będzie takie, że i=nε+ µ i < ε Określmy teraz strategię gracza jako σ µ = δ[n ε ] u(µ, σ µ ) = n ε u(i, n ε )µ i = ( )µ i + ()µ i i= i= i=n ε+ = µ i µ nε + µ i < + ε i= i=n ε+ Ponieważ ε było dowolne, dostajemy inf u(µ, σ), σ P (Y ) ale skoro dowolnie było też wybrane µ, to mamy sup inf µ P (X) σ P (Y ) u(µ, σ) Oczywiście w rzeczywistości mamy równość, bo w grze nie ma wypłat mniejszych niż - 4
Gry o sumie niezerowej Na ostatnim wykładzie mówiłem o grach opisujących sytuację, gdy mamy dwóch graczy, których interesy są całkowicie przeciwstawne taką sytuację opisywały gry macierzowe, czy ogólniej gry dwuosobowe o sumie zerowej Dzisiaj uogólniamy tamten model Zaczniemy od sytuacji, gdy mamy dwóch graczy, których interesy nie są dokładnie przeciwne Gry dwumacierzowe Niech X = {,,, m} zbiór strategii (czystych) gracza, Y = {,,, n} zbiór strategii (czystych) gracza Niech A = [a ij ] m n macierz wypłat gracza, B = [b ij ] m n macierz wypłat gracza (Oczywiście, te wypłaty są czysto subiektywne, i mówią o tym, co dany gracz myśli o danej sytuacji, a nie muszą oznaczać jakichś konkretnych wypłat, które jeden z graczy wypłaca drugiemu, lub ktoś trzeci (Pan Bóg) wypłaca graczom) Jak poprzednio, rozważamy od razu rozszerzenie mieszane takiej gry, czyli dowolny rozkład prawdopodobieństwa na zbiorze X, µ = (µ,, µ m ) jest strategią mieszaną gracza ; rozkład prawdopodobieństwa na zbiorze Y, σ = (σ,, σ n ) strategią mieszaną gracza, natomiast wypłatami poszczególnych graczy są odpowiednie wartości oczekiwane: u (µ, σ) = i a ij µ i σ j j u (µ, σ) = i b ij µ i σ j j Jak pamiętają Państwo, w grach o sumie zerowej optymalnym zachowaniem było wybranie przez gracza najkorzystniejszej dla siebie strategii przy założeniu, że przeciwnik będzie grał najgorzej dla nas Tam uzasadnieniem takiego zachowania było to, że interesy graczy były dokładnie przeciwne, i wiedzieliśmy, że przeciwnik wybierze to, co dla nas najbardziej niekorzystne, dlatego że to było jednocześnie najbardziej korzystne dla niego Tutaj nie mamy powodu, żeby oczekiwać, że przeciwnik będzie specjalnie działał na naszą niekorzyść (nie wszyscy gracze są Polakami) więc naturalnym jest, że każdy z graczy stara się zmaksymalizować własną wypłatę, przy założeniu, że inni też starają się zmaksymalizować swoje wypłaty Autorem takiej koncepcji rozwiązania jest John Nash (stąd nazwa) Definicja 4 Równowagą w sensie Nasha w grze dwumacierzowej nazwiemy taką parę strategii µ P (X), σ P (Y ), że u (µ, σ ) u (µ, σ ) µ P (X) u (µ, σ ) u (µ, σ) σ P (Y ), czyli taką, że odstąpienie od równowagi przez pojedynczego gracza nie jest dla niego opłacalne Uwaga 3 Oczywiście, jeśli B = A, czyli u = u, równowagą Nasha sprowadza się do punktu siodłowego Równowaga w sensie Nasha wydaje się na tyle naturalnym uogólnieniem punktu siodłowego, że pewnie duża część z Państwa by ją wymyśliła, i aż narzuca się pytanie, dlaczego von Neumann jej nie wymyślił Jedna z możliwych odpowiedzi jest taka, że pewnie wymyślił, ale uznał takie rozwiązanie za wadliwe I teraz parę słów na temat tego, co w pojęciu NE nie jest do końca udane Rozważmy taki przykład: Przykład: Mamy dwoje małżonków, którzy właśnie wysłali dzieci do dziadków na wieczór, i planują spędzić razem wieczór, tylko zastanawiają się jak Kanoniczna wersja tej historyjki jest taka, że Pani chce iść na balet, Pan na boks (co prawda niewielu znam facetów, którzy chcieliby iść na boks, i jeszcze mniej kobiet, które chciałyby na balet, ale będę się trzymał 5
tej wersji) Jeśli każde z nich będzie obstawać przy swoim, nigdzie nie pójdą, w dodatku pewnie się pokłucą i Pani będzie miała migrenę czy jakąś inną wymówkę, żeby już nic razem znim nie robić tego wieczoru, a może obrazić się na następnych kilka dni, w drugą stronę podobnie, w związku z tym taka sytuacja będzie ze wszech miar niekorzystna W związku z tym macierze wypłat graczy będą wyglądały tak: A (Pani) = [ 4 0 0 ] B (Pan) = [ 0 0 4 Ta gra ma dwie równowagi w strategiach czystych: (boks,boks) i (balet, balet), oraz jedną w strategiach mieszanych: µ = (8, ), σ = (, 8) W tej ostatniej wypłaty garczy są sobie równe, i równe 4 5 Co z tego przykładu wynika? Może istnieć wiele różnych równowag Nasha ze znacząco różnymi wypłatami Może się zdarzyć, że jedna równowaga jest bardziej opłacalna dla jednego z graczy, a inna dla drugiego Strategii w różnych równowagach nie można między sobą wymieniać Bez uzgodnienia, która równowaga będzie grana, nie da się racjonalnie wybrać strategii do gry 3 Wiedząc, jaki jest zbiór równowag Nasha w danej grze, nie potrafimy powiedzieć, jak będą zachowywać się gracze (nawet przy założeniu, że grają racjonalnie) Kolejny przykład pokaże jeszcze jedną wadę rozwiązania Nasha Przykład: (dylemat więźnia najbardziej znany przykład w teorii gier) Historyjka jest taka: dwóch więźniów podejrzanych o jakieś przestępstwo, jest przesłuchiwanych w oddzielnych pokojach Są winni, ale każdy z nich zastanawia się, czy się przyznać, czy nie Jeśli się przyzna (zrzucając przy okazji większość winy na drugiego), a drugi więzień będzie szedł w zaparte, pierwszy może liczyć na to, że dostanie wyrok w zawiasach, ale kosztem wspólnika Jeśli żaden się nie przyzna, to głównej winy nikt im nie udowodni, ale przymkną ich na rok za to, co są w stanie im udowodnić bez współpracy żadnego z nich Jeśli przyznają się obaj, sąd nie uwerzy w ich skruchę, ale odpowiedzialnością obarczy w tym samym stopniu, i dostaną wyrok nieco niższy niż ten, który się nie przyzna, a cała wina zostanie jemu przypisana Macierze wypłat w tej grze wyglądają tak: [ ] [ ] 5 0 5 0 A = B = 0 0 Ta gra posiada dokładnie jedną równowagę, i to w strategiach czystych obaj się przyznają Problem w tym, że gdyby obaj odstąpili od równowagi, zyskaliby na tym Wniosek: 4 Równowaga nie musi dawać optymalnych wypłat w grze Jeśli osiągnięcie takich wypłat wiąże się z kooperacją, nie będzie to równowaga Mimo tych wszystkich wad, równowaga Nasha ma jedną ważną zaletę zawsze istnieje (przynajmniej dla gier dwumacierzowych, dla bardziej skomplikowanych bytów niekoniecznie, o czym później) Twierdzenie stwierdzające ten fakt sformułował John Nash Twierdzenie (Nash, 950) Każda gra dwumacierzowa posiada równowagę w sensie Nasha 6 ]
I znowu, nie będziemy dowodzić tego twierdzenia Udowodnimy twierdzenie trochę ogólniejsze, które za chwilkę podam Żeby je podać, zdefiniuję ogólnie, co nazywamy grą niekooperacyjną Definicja 5 n-osobową grą niekooperacyjną nazwiemy Γ = (X,, X n, u,, u n ), gdzie X i (niepuste) zbiory strategii poszczególnych graczy, u i : X X n R ograniczone funkcje wypłaty poszczególnych graczy Gracze wybierają niezależnie od siebie odpowiednio x X, x X,, x n X n, w wyniku czego gracz k-ty otrzymuje u k (x,, x n ) W powyższej definicji nie precyzujemy, czy X i są zbiorami strategii czystych, czy mieszanych Pokażemy, że przy pewnych założeniach na te zbiory, oraz na funkcje wypłaty graczy, gra będzie posiadała strategie należące wąśnie do tych zbiorów Definicja 6 Równowagą w sensie Nasha w grze Γ zdefiniowanej powyżej nazwiemy układ strategii x = (x,, x n) takich, że dla każdego gracza i oraz y i X i mamy u i (x ) u i ((x,, x i, y i, x i+,, x n)) Oznacza to, jak poprzednio, że pojedynczemu graczowi nie opłaca się odstąpić od równowagi, gdy inni pozostają przy swoich strategiach x i Prawdziwe będzie następujące twierdzenie: Twierdzenie 3 Załóżmy, że każdy ze zbiorów X i jest zwartym wypukłym podzbiorem R k Załóżmy ponadto, że dla każdego i funkcja u i jest ciągła na X X n oraz jest wklęsła względem i-tej zmiennej, przy ustalonych pozostałych zmiennych Wtedy gra Γ, określona przez zbiory X i i funkcje u i, posiada równowagę Nasha Uwaga 4 Dla tych, którzy nie wiedzą podzbiór przestrzeni metrycznej nazywamy zwartym, jeśli każdy ciąg elementów tego zbioru posiada podciąg zbieżny W R k zbiór jest zwarty iff jest domknięty i ograniczony Zanim przejdziemy do dowodu tej uogólnionej wersji twierdzenia Nasha, sformułujemy twierdzenie, które będzie punktem wyjściowym dla tego dowodu Twierdzenie 4 (Twierdzenie Kakutaniego o punkcie stałym) Niech S będzie zwartym wypukłym podzbiorem R k i niech ψ będzie operatorem przyporządkowującym każdemu s S zwarty, wypukły podzbiór S, o wykresie domkniętym, (tzn jeśli x n S, x n x 0, y n ψ(x n ), y n y 0, to y 0 ψ(x 0 )) Istnieje wtedy takie x, że x ψ(x ) (punkt stały multifunkcji ψ) Tak naprawde chętnie przeprowadziłbym dowód też tego twierdzenia, żeby wychodzić od faktów przez Państwa znanych, ale to wymagałoby wprowadzenia ileś dodatkowej teorii (sympleks, współrzędne barycentryczne, podział symplicjalny, twierdzenie Brouwera o punkcie stałym), w związku z tym twierdzenie Kakutaniego będę traktował jako punkt wyjściowy, natomiast osobom zainteresowanym dowodem tego twierdzenia polecam przeczytanie XX rozdziału Wstępu do teorii mnogości i topologii Kuratowskiego [] (Sympleks i jego własności) Wtedy poniższy dowód powinien być zrozumiały Dowód tw Kakutaniego: Bez straty ogólności możemy założyć, że S jest sympleksem Niech {π µ } będzie ciągiem rozbić symplicjalnych sympleksu S, takich że średnica każdego sympleksu z π µ nie przekracza δ µ i δ µ 0 Zdefiniujmy ψ µ : S S w następujący sposób: jeśli x jest wierzchołkiem sympleksu z π µ, to za ψ µ (x) przyjmujemy dowolne s ψ(x), a następnie przedłużamy ψ µ liniowo na każdy z sympleksów 7
rozbicia, tzn jeśli x = k+ j= λ jx j, λ i 0, λ j =, gdzie {x,, x k+ } wierzchołki ustalonego sympleksu z π µ, to ψ µ (x) = k+ j= λ jψ µ (x j ) Tak zdefiniowane ψ µ jest ciągłe, a zatem na mocy twierdzenia Brouwera ma punkt stały, który możemy oznaczyć przez x µ Ponadto k+ x µ = λ µ k+ j xµ j, λ µ j =, λµ j j= j= 0 Ze zwartości S można założyć bez straty ogólności, że x µ i, λµ i, ψµ (x µ i ) są zbieżne przy µ ; xµ i oraz x µ mają tę samą granicę x S Niech lim µ λ µ j = λ j, a lim µ ψ µ (x µ j ) = η j Mamy x µ = ψ µ (x µ ) = λ µ j ψµ (x µ j ) Wtedy x = λ j η j, a z własności, które spełnia ψ wynika, że ηj ψ(x ) dla każdego j Stąd x ψ(x ), bo ψ(x ) jest wypukły, a więc x jest szukanym punktem zbioru S Dowód tw Nasha: Idea tego dowodu polega na tym, żeby skonstruować odwzorowanie, które będzie miało punkt stały wtedy i tylko wtedy, gdy gra posiada równowagę Nasha Wtedy sprawdzimy, że to odwzorowanie spełnia założenia twierdzenia Kakutaniego, zatem ma punkt stały, a gra ma równowagę Dowód twierdzenia przeprowadzimy dla przypadku, gdy jest dwóch graczy Ta zmiana upraszcza jedynie notację, natomiast dowód w ogólnym przypadku nie jest ani trochę bardziej skomplikowany Niech: B (y) = {a X : u (a, y) = max x X u (x, y)}, B (x) = {b X : u (x, b) = max y X u (x, y)} Zbiór B (y) interpretujemy jako zbiór najlepszych odpowiedzi gracza na strategię y drugiego Podobną interpretację ma zbiór B (x) Jeśli teraz zdefiniujemy sobie multifunkcję F (x, y) = B (y) B (x), to to będzie to odwzorowanie, którego szukamy, bo ewentualny punkt stały takiego odwzorowania (x, y ) F (x, y ) będzie miał taką własność, że x będzie najlepszą odpowiedzią na strategię y i na odwrót, czyli to będzie równowaga Nasha Sprawdźmy zatem, czy spełnione są założenia twierdzenia Kakutaniego Multifunkcja F jest zdefiniowana na zbiorze U = X X, który jest zwarty To można uzasadnić na wiele sposobów (wyciągając podciąg zbieżny z jednej współrzędnej, a potem z niego podciąg zbieżny po drugiej, lub mówiąc, że produkt zbiorów domkniętych i ograniczonych też ma tę własność) Jest też wypukły jako produkt zbiorów wypukłych Zbiory B (y) (B (x)) są zawsze niepuste, bo każda funkcja ciągła na zbiorze zwartym osiąga swoje supremum na tym zbiorze 3 Funkcja u (, y) jest wklęsła dla każdego y X, stąd jeśli dla ustalonego y osiąga ona maksimum dla x oraz x, to musi osiągać je także dla kombinacji wypukłych tych punktów, a to oznacza, że dla każdego y, zbiór B (y) jest wypukły Podobnie można uzasadnić wypukłość B (x) Ponieważ iloczyn kartezjański dwóch zbiorów wypukłych też jest wypukły, to F (x, Y ) jest zbiorem wypukłym dla dowolnych x i y 4 Weźmy teraz dowolny ciąg {x i } elementów zbioru B (y) dla dowolnego ustalonego y, zbieżny do pewnego x Ponieważ funkcja u jest ciągła, to x też należy do B (y) Zatem zbiór ten jest domknięty Jako podzbiór X jest także ograniczony, a zatem zwarty Podobnie pokazujemy, że B (x) są zbiorami zwartymi Oczywiście F (x, y), jako iloczyn kartezjański zbiorów zwartych, jest dla dowolnych x i y także zbiorem zwartym (patrz punkt ) 8
5 Domkniętość wykresu Znowu (bez utraty ogólności) ograniczymy się do jednej współrzędnej Załóżmy nie wprost, że wykres B nie jest domknięty, czyli istnieje ciąg {(x n, y n )} zbieżny do (x, y) taki, że x n B (y n ), ale x B (y) Pierwsza z tych równości oznacza, że u (a, y n ) u (x n, y n ) a X, ale ponieważ u jest ciągła, więc prawdziwe musi być także u (a, y) u (x, y) a X, co jest równoważne x B (y) sprzeczność Czyli wykres naszego odwzorowania jest domknięty A zatem wszystkie założenia twierdzenia Kakutaniego są spełnione, więc gra Γ posiada równowagę Nasha Wniosek Twierdzenie Nasha dla gier dwumacierzowych wynika z powyższego twierdzenia w następujący sposób: Niech X = P (W ), gdzie W = {,, m} zbiór wierszy macierzy, a X = P (K), gdzie K = {,, n} zbiór kolumn Dowolny rozkład prawdopodobieństwa µ = (µ,, µ m ) P (W ) jest układem m liczb spełniających warunki i µ i =, µ i 0 i Zbiór takich µ jest wypukłym i zwartym podzbiorem R m Podobnie w przypadku zbioru strategii mieszanych gracza Z kolei wypłata gracza (podobnie z wypłatą ), gdy używane są strategie µ i σ, u (µ, σ) = i j A ij µ i σ j jest funkcją liniową (właściwie afiniczną) względem µ i σ z osobna; taka funkcja jest też w szczególności ciągła i wklęsła A zatem spełnione są założenia udowodnionego przez nas uogólnionego twierdzenia Nasha, i gra posiada równowagę w strategiach z X i X, czyli strategiach mieszanych w wyjściowej grze dwumacierzowej Wniosek 3 Oczywiście, jeśli rozważymy grę dwuosobową, w której wypłaty będą spełniać u = u, to wynika z tego twierdzenia również twierdzenie von Neumanna Oczywiście, udowodnione przez nas twierdzenie nie jest najbardziej ogólnym twierdzeniem o istnieniu równowagi Nasha w grach niekooperacyjnych Istnieje na przykład twierdzenie Glicksberga [], mówiące, że w grze dwuosobowej ze zwartymi metrycznymi przestrzeniami akcji graczy (niekoniecznie będącymi podzbiorami R k ), i ciągłymi funkcjami wypłaty, zawsze istnieje równowaga w strategiach mieszanych Wiadomo natomiast także, że osłabienie założeń tego twierdzenia może prowadzić do sytuacji, gdy równowagi nie ma, nawet w strategiach mieszanych W szczególności osłabienie założenia o ciągłości w taki sposób, że funkcja wypłaty tylko jednego z graczy nie jest ciągła w jednym punkcie X X może prowadzić do braku równowagi (nawet w strategiach mieszanych) Przykład takiej gry znalazł Vieille [5] Innym przykładem gry z nieciągłymi funkcjami wypłat graczy (już w więcej niż jednym punkcie), jest przykład gry o sumie zerowej, posiadającej wartość, ale nie posiadającej strategii optymalnych (w przypadku takiej gry strategie optymalne są również strategiami w równowadze Nasha), który mieli Państwo znaleźć w 4 zadaniu na liście zadań 9
3 Algorytmy szukania równowag w grach niekooperacyjnych 3 Gry macierzowe Na ćwiczeniach pojawiły się jakieś sposoby szukania równowag w grach macierzowych (dwumacierzowych), tyle że w praktyce nadają się one do zastosowania tylko do niektórych gier (w większości z nich ilość obliczeń, które musielibyśmy wykonać byłaby ogromna), nie mówiąc o tym, żeby zastosować je do obliczania równowag w grach maszynowo Dlatego najbliższe dwa wykłady będą poświęcone temu, jak szukać rozwiązań gier (algorytmicznie) Dzisiaj opowiem o tym, jak to się robi w przypadku gier macierzowych W przyszłym tygodniu opowiem, jak rozwiązywać gry bardziej skomplikowane To, od czego zaczniemy dzisiaj, nie będzie miało bezpośredniego związku z grami, ten związek wyłoni się dopiero później Programowanie liniowe Problem programowania liniowego, to bodaj najlepiej znany problem optymalizacyjny, i w związku z tym, jeśli ktoś z państwa w przyszłości zapisze się na zajęcia z optymalizacji, to tam będzie to bardzo dokładnie omówione (bodaj przez pół semestru) tu ograniczę się do zdefiniowania problemu, opowiedzenia o tym, jak taki problem się rozwiązuje, no i (przede wszystkim) do opowiedzenia o jego związku z problemem szukania strategii optymalnych w grach macierzowych Problem programowania liniowego możemy zapisać następująco: przy ograniczeniach Znaleźć maksimum Macierzowo możemy zapisać to następująco: m c i x i i= m a ij x i b j dla j =,, n, i= x i 0 Dla zadanych C m, A m n, b n zmaksymalizować C T x przy ograniczeniach A T x B, x 0 [ ] 0 5 Przykład: A = 4, B = 0, C = [ 3 ] [ ] x, X = To oznacza, że y 3 maksymalizujemy funkcję F (x, y) = x 3y przy ograniczeniach x y 0 4 5x + y 0 x + y 3 x 0 y 0 Jeśli narysujemy sobie ten zbiór (patrz rysunek poniżej), okazuje się, że jest to wypukły wielokąt (czworokąt ograniczony prostymi i osia Oy) Dodatkowo, jeśli zaznaczymy sobie, w którym kierunku zwiększa się funkcja celu (funkcja, którą maksymalizujemy tu ten kierunek wskazuje wektor, na prostych prostopadłych do tego wektora funkcja celu się nie zmienia, zwiększając swoją wartość w kierunku przezeń wskazywanym), okazuje się, że maksimum musi być osiągnięte w jednym wierzchołku tego wielokąta (to jest ten wierzchołek, który zaznaczyłem kropką) 0
y x Jeśli funkcja celu byłaby inna, maksimum mogłoby być osiągnięte we wszystkich punktach któregoś z boków naszego wielokąta, i w przypadku maksymalizowania funkcji liniowej na płaszczyźnie innych możliwości nie będzie Teraz co się dzieje w ogólności? Otóż w tym przykładzie (dwuwymiarowym), każdy z warunków ograniczających X mówił, że rozwiązanie musi się znajdować po jednej, określonej stronie prostej W przypadku m-wymiarowym te ograniczenia oznaczają, że X musi się znajdować po jednej stronie hiperpłaszczyzny, a część wspólna takich zbiorów leżących po jednej stronie hiperpłaszczyzny jest wypukłym wielościanem W przypadku wielościanu, maksimum funkcji liniowej musi być przyjmowane w którymś z wierzchołków tego wielościanu (ewentualnie we wszystkich punktach którejś ze ścian tego wielościanu, cokolwiek słowo ściana miałoby tutaj oznaczać) To oznacza, że chcąc szukać naszego maksimum, wystarczy przeszukać kolejne wierzchołki tego wielościanu Dodatkowo, żeby algorytm szukania maksimum był zbieżny, algorytm powinien po sprawdzeniu, czy w jakimś jednym wierzchołku nie ma maksimum, przechodzić do któregoś z wierzchołków, w których funkcja celu będzie miała większą wartość, dzięki czemu po skończonej liczbie kroków dojdzie do tego jednego (albo jednego z tych) wierzchołka, w którym jest osiągnięte maksimum Algebraicznie ten pomysł będzie realizował algorytm sympleks, który teraz po krótce omówię Algorytm sympleks W algorytmie będziemy kolejne kroki, o których mówiłem, opisywali algebraicznie, wychodząc od układu nierówności, które musi spełniać nasze rozwiązanie: a x + a x + + a m x m b a n x + a n x + + a mn x m b n Ten układ nierówności możemy równoważnie zapisać jako układ równań: a x + a x + + a m x m b = u, a n x + a n x + + a mn x m b n = u n gdzie u,, u n są dodatkowymi zmiennymi nieujemnymi, zwanymi zmiennymi wolnymi Tak jak w przypadku algorytmów rozwiązywania równań macierzowych wygodniej jest działać na odpowiednich macierzach zamiast całych równań, tu też zapisujemy te równania
przy pomocy pewnego schematu, który nazywamy tablicą sympleks : x x x m a a a m b u a n a n a mn b n u n c c c m 0 z Ostatni wiersz tablicy odpowiada funkcji celu Interpretacja takiej tablicy jest taka: środkowa część tablicy przedstawia współczynniki przy zmiennych u góry, dolny wiersz to samo dla funkcji celu, zmienne znajdujące się u góry tablicy (tzw zmienne niebazowe) są równe zero, a zmienne z prawej strony tablicy są równe wartościom w przedostatniej kolumnie To, że m zmiennych ma wartość zero algebraicznie ma oznaczać, że jesteśmy w wierzchołku wielościanu (bo w m ograniczeń zachodzi równość) W trakcie algorytmu będziemy wymieniać zmienne wyzerowane ze zmiennymi bazowymi (tymi z prawej), uzyskując w ten sposób inny wierzchołek Jedyny problem może być taki, że któreś z ograniczeń obetnie nam punkt, w którym w m z pozostałych ograniczeń są równości Reguły przechodzenia od jednego wierzchołka do następnego będą nam gwarantowały, że tak nie będzie jeśli byliśmy w wierzchołku, to przejdziemy do wierzchołka Problem może być tylko z punktem startowym, bo oczywiście nie zawsze zmienne x,,x n ustawione na zera muszą być wierzchołkiem zbioru rozwiązań dopuszczalnych Dlatego pierwsza faza algorytmu ma właśnie na celu znalezienie jednego z wierzchołków wielościanu Pierwsza faza: Sprawdzamy, czy w ostatniej kolumnie nie ma elementów ujemnych Jeśli nie ma, to x = = x m = 0 jest wierzchołkiem tego wielościanu Jeśli takie są, to wybieramy ostatni z nich (w najdalszym wierszu), w wierszu k Dla uproszczenia notacji wszystkie elementy tablicy będę oznaczał przez α ij (włącznie z ostatnią kolumną i ostatnim wierszem) W wierszu k (tym z elementem ujemnym w ostaniej kolumnie) wybieramy element, dla którego α kj0 < 0 (to j 0 jest tu istotne) Jeśli takiego nie ma zbiór rozwiązań dopuszczalnych jest pusty 3 Następnie wśród wierszy i k poza wierszem funkcji celu wybieramy ten, dla którego iloraz α i,m+ α ij0 jest najmniejszy dodatni Oznaczamy go przez i 0 4 Wymieniamy zmienne, które są w wierszu i 0 i kolumnie j 0 Tablica po wymianie zmiennych wygląda następująco ( α ij oznacza elementy tablicy po wymianie, α ij przed wymianą): α i0 j 0 = α i0 j 0 α i0 j = α i 0 j α i0 j 0 j j 0 α ij0 = α ij 0 α i0 j 0 i i 0 α ij = α ij α i 0 jα ij0 α i0 j 0 Jeśli w ostatniej kolumnie po wymianie zmiennych bazowych dalej jest element ujemny, to powtarzamy tę fazę metody sympleksowej Jeśli nie przechodzimy do drugiej fazy
Druga faza algorytmu polega na przechodzeniu od jednego wierzchołka do innego w taki sposób, żeby za każdym razem zwiększać funkcję celu Robimy to w następujący sposób: Wybieramy kolumnę j 0, w której w wierszu funkcji celu mamy wartość ujemną Następnie z elementów tej kolumny wybieramy taki, że α ij0 jest dodatni i α i,m+ α ij0 jak najmniejsze jest 3 W ten sposób dostajemy wiersz i 0 i kolumę j 0, w których wymieniamy zmienną bazową ze zmienną niebazową Reguły zmieniania tablicy sympleksowej przy wymianie zmiennych są takie same jak w pierwszej fazie Tę fazę powtarzamy tak długo, aż w wierszu celu nie ma elementów ujemnych Współrzędne optymalnego rozwiązania odczytujemy z tablicy te zmienne, które zostały u góry są równe zero, pozostałe są równe wartościom, które stoją obok nich w ostatniej kolumnie Z kolei optymalną wartość funkcji celu odczytujemy z prawej kolumny ostatniego wiersza Zanim przejdziemy do tego, w jaki sposób sprowadzić problem szukania rozwiązania optymalnego do programowania liniowego, napiszę jeszcze jedno twierdzenie, które ma fundamentalne znaczenie w programowaniu liniowym, a które będzie miało też związek z tym, co nas najbardziej interesuje, czyli z grami Problem dualny do problemu zdefiniowanego na początku wykładu definiujemy następująco: Znaleźć Y = [y,,, y m ] T minimalizujący m i= b i y i przy ograniczeniach: Y 0, AY C T Prawdziwe będzie takie twierdzenie: Twierdzenie 5 (o dualności) Jeśli program liniowy i program do niego dualny mają rozwiązania, to max X nj= c j x j = min Y mi= b i y i I teraz, po godzinie wykładu, wracamy do gier (przypominam) o sumie zerowej Okazuje się, że problem szukania strategii optymalnych w takiej grze można zapisać przy pomocy programu liniowego, a, co więcej, okaże się, że twierdznie von Neumanna będzie w takim wypadku wynikać z twierdzenia o dualności Niech W = [w ij ] k l będzie macierzą wypłat w grze macierzowej Wtedy rozważać będziemy problem programowania liniowego następującej postaci: A T = W T 0 0 0 0 X = [µ,, µ k, v, v ] T, B = [0,, 0,, ] T, C = [0,, 0,, ] Maksymalizujemy v v =: v Jeśli zapisać ten problem w postaci układu równań, dostaniemy: ki= w ij µ i v dla j =,, l ki= µ i = µ i 0 dla i =,, k Te równania oznaczają, że µ = (µ,, µ k ) jest rozkładem prawdopodobieństwa na wierszach macierzy W Dodatkowo, jeśli µ będzie rozwiązniem tego problemu, a v wartością funkcji celu dla tego rozwiązania, to:, k w ij µ i v dla każdej kolumny j, i= 3
czyli dla dowolnego rozkładu prawdopodobieństwa σ = (σ,, σ l ) na kolumnach: k l w ij µ i σ j v, i= j= Ponieważ σ było dowolne, a prawa strona nie zależy od σ, więc możemy napisać a stąd min σ v = max µ k l w ij µ i σ j v, i= j= min σ k l w ij µ i σ j v i= j= A teraz popatrzmy się na problem dualny Jeśli przyjmiemy Y = [σ,, σ l, v, v ] T, a wszystkie pozostałe macierze jak poprzednio, to dostajemy, że mamy zminimalizować v = v v przy ograniczeniach l j= w ij σ j v, l j= σ j = dla i =,, k, σ j 0, j =,, l, skąd w podobny sposób co poprzednio dostajemy: v = min σ max µ k l w ij µ i σ j v, i= j= a ponieważ v na mocy twierdzenia o dualności jest takie samo, to dostaliśmy, że gra ma wartość równą v (czyli tezę twierdzenia von Neumanna), a strategiami optymalnymi, realizującymi tę wartość, są µ i σ, będące rozwiązaniami naszych dualnych problemów programowania liniowego 3 0 Przykład: Rozważmy grę macierzową z macierzą wypłat Zgodnie z tym, 0 co było powiedziane przed chwilą, żeby znaleźć wartość tej gry oraz strategie optymalne graczy, musimy rozwiązać problem programowania liniowego z macierzą A T = 3 0 0 0 0 0 0 X = [µ, µ, µ 3, v, v ] T, B = [0,, 0,, ] T, C = [0,, 0,, ], oraz problem do niego dualny Na początek zapisujemy tablicę sympleksową:, µ µ µ 3 v v 3 0 u 0 0 0 u 0 u 3 0 0 u 4 0 0 u 5 0 0 0 0 v W ostatniej kolumnie jest jedna liczba ujemna, w 5 wierszu Ponieważ jest to ostatni wiersz poza wierszem celu, więc wybieramy do zamiany zmiennej ten wiersz Wybieramy 4
też kolumnę taką, żeby w 5 wierszu stał w niej element ujemny, na przykład kolumnę Po zamianie zmiennych dostajemy: u 5 µ µ 3 v v 3 4 3 u 0 0 0 u u 3 0 0 0 0 0 u 4 0 0 µ 0 0 0 0 v Na tym kończy się pierwsza faza metody sympleksowej, bo w ostatniej kolumnie nie ma już elementów ujemnych Zaczynamy drugą fazę Wybieramy 4 kolumnę, bo tam w wierszu funkcji celu znajduje się wartość ujemna, oraz drugi wiersz, bo tam iloraz elementu w ostatniej kolumnie i elementu w kolumnie wybranej (czwartej) jest najmniejszy z wierszy, w których w 4 kolumnie stoi liczba dodatnia Po zamianie zmiennych dostajemy: u 5 µ µ 3 u v 3 6 0 3 u 0 0 0 v 0 u 3 0 0 0 0 0 u 4 0 0 µ 0 0 0 0 v W ostatnim wierszu w drugiej kolumnie stoi element ujemny, więc wybieramy tę kolumnę, a z elementów dodatnich tej kolumny wybieramy szóstkę w pierwszym wierszu, bo dla niej iloraz elementu w ostatniej kolumnie i elementu w wybranej przez nas jest najmniejszy Po zamianie zmiennych dostajemy: u 5 u µ 3 u v 6 0 µ 3 6 v 3 3 3 5 5 0 u 6 3 6 3 0 0 0 0 0 u 4 0 µ 6 3 6 0 0 v 3 Dalej wybieramy pierwszą kolumnę i czwarty wiersz, otrzymując: u 4 u µ 3 u v 6 3 6 6 0 µ 3 6 v 3 3 5 5 0 u 3 6 3 0 0 0 0 0 u 5 0 µ 3 6 0 0 v 3 I na tym się kończy algorytm, bo w wierszu funkcji celu nie ma już wartości ujemnych Odczytujemy wynik µ 3 = 0, bo pozostało u góry, pozostałe wartości odczytujemy z 6 kolumny: µ = µ =, a wartość gry (funkcja celu) v = Mamy w takim razie strategię pierwszego gracza Aby otrzymać strategię drugiego, rozwiązujemy problem dualny Nie 5
będę rozpisywał, jak on wygląda od razu zapiszę go w postaci tablicy sympleksowej σ σ σ 3 v v 3 0 0 u 0 u 0 0 u 3 0 0 u 4 0 0 u 5 0 0 0 0 v Zaczynamy od pierwszej fazy metody sympleksowej, czyli szukamy wiersza, który ma w ostatniej kolumnie wartość ujemną takim wierszem jest wiersz czwarty Wybieramy inną kolumnę, w której stoi wartość ujemna, np pierwszą, i sprawdzamy w czwartym i piątym wierszu, gdzie odpowiedni iloraz jest najmniejszy W obu jest taki sam (równy ), więc możemy np wybrać czwarty wiersz Wymieniamy zmienne: u 4 σ σ 3 v v 3 3 3 u 3 3 u u 3 0 0 σ 0 0 0 0 0 u 5 0 0 0 0 v Teraz bierzemy ostatni wiersz z ujemną wartością w ostatniej kolumnie, i kolumnę, w której w tym (trzecim) wierszu stoi element ujemny (np kolumnę), i po porównaniu odpowiednich ilorazów stwierdzamy, że zamieniamy zmienną w trzecim wierszu i drugiej kolumnie: u 4 u 3 σ 3 v v 0 3 4 0 u 3 3 4 4 u σ 0 0 σ 0 0 0 0 0 u 5 0 0 0 0 v Jedyny element ujemny w ostatniej kolumnie jest w drugim wierszu W tym wierszu są poza tym dwie wartości ujemne, wybieramy kolumnę 3, w której znajduje się jedna z nich Porównujemy ilorazy wartości w ostatniej kolumnie i kolumnie przez nas wybranej, i dochodzimy do wniosku, że najmniejszy dodatni iloraz ( ) jest w 3 wierszu, więc wymieniamy zmienną w trzecim wierszu σ ze zmienną w trzeciej kolumnie σ 3 : u 4 u 3 σ v v 0 0 u 3 3 5 5 u σ 3 σ 0 0 0 0 0 u 5 0 0 0 0 v 6
Następnie wymieniamy zmienne w 4 kolumnie (v ) i w wierszu (u ): u 4 u 3 σ u v 0 0 u 3 3 v 5 5 5 5 5 4 0 σ 5 5 5 5 5 3 3 3 0 σ 5 5 5 5 5 0 0 0 0 0 u 5 3 3 5 5 5 5 0 5 v Dalej wymieniamy zmienną u 3 ze zmienną u : u 4 u σ u v 0 0 u 3 7 3 3 7 v 5 5 5 5 5 4 6 4 0 σ 5 5 5 5 5 3 0 σ 5 5 5 5 5 0 0 0 0 0 u 5 7 3 3 5 5 5 5 0 7 5 v Na tym kończy się pierwsza faza, bo w ostatniej kolumnie nie ma już elementów ujemnych Zaczynamy drugą fazę W ostatnim wierszu (poza ostatnią kolumną) jest tylko jedna wartość ujemna, w trzeciej kolumnie, więc wybieramy tę kolumnę Porównujemy następnie ilorazy elementów ostatniej kolumny z dodatnimi elementami wybranej (3) kolumny Wybieramy trzeci wiersz, bo tam ten iloraz jest najmniejszy (równy ) Po wymianie zmiennych 3 dostajemy: u 4 u σ 3 u v 5 0 u 3 3 3 3 3 3 v 5 0 σ 3 6 6 6 3 0 σ 3 6 6 6 3 0 0 0 0 0 u 5 0 v I na tym kończymy, bo jedyną wartością ujemną w ostatnim wierszu jest wartość funkcji celu, a ona ma prawo być ujemna Otrzymanym rozwiązaniem jest rozkład σ = (,, 0) 3 3 Uwaga 5 Jakkolwiek algorytm sympleks w najgorszym przypadku ma złożonośc wykładniczą, to istniejące algorytmy rozwiązywania problemów programowania liniowego, które mają złożoność wielomianową (np algorytm Karmarkara) zwykle działają znacznie wolniej Dlatego omawiałem tę metodę 3 Gry dwumacierzowe W zeszłym tygodniu mówiłem o tym, jak sprowadzić problem szukania strategii optymalnych w grze macierzowej do rozwiązania odpowiedniego zagadnienia optymalizacyjnego, konkretnie do zadania programowania liniowego Dzisiaj poopowiadam trochę o tym, jak to jest w przypadku bardziej skomplikowanych gier Większość wykładu będzie poświęcona grom dwumacierzowym, bo o zagadnieniu szukania równowag w takich grach dosyć dużo wiemy, natomiast o przypadkach bardziej skomplikowanych powiem trochę na końcu wykładu, nie wchodząc już w szczegóły konkretnych algorytmów Zacznijmy więc wykład od próby przedstawienia problemu szukania równowagi w grze dwumacierzowej w postaci analogicznej do tego, co było na końcu ostatniego wykładu, 7
czyli przy pomocy pewnego układu nierówności Niech tradycyjnie A m n oznacza macierz wypłat pierwszego gracza, a B m n macierz wypłat drugiego Niech µ = [µ,, µ m ] będzie strategią mieszaną w równowadze, a σ = [σ,, σ n ] gracza Dodatkowo, przez v oznaczymy wypłatę w tej równowadze pierwszego z graczy, a przez v drugiego Zgodnie z tym, co pokazaliśmy na ćwiczeniach, dla strategii w równowadze muszą być spełnione następujące warunki: { j a ij σ j = v dla i z nośnika µ j a ij σ j v dla i spoza nośnika, (To było zadanie 8 z pierwszej listy) Podobnie dla drugiego gracza: { i b ij µ i = v dla j z nośnika σ i b ij µ i v dla j spoza nośnika, Ponadto, ponieważ v i v są wypłatami w równowadze (µ, σ), więc dodatkowo musi być spełnione i j a ij µ i σ j = v oraz i j b ij µ i σ j = v Przyjmijmy teraz sobie x = µ v oraz y = σ v Dla takich x i y, warunki podane wcześniej będą implikować: { j a ij y j = dla i z nośnika x j a ij y j dla i spoza nośnika x a także: x i + i j y j = v + v = i { i b ij x i = dla j z nośnika y i b ij x i dla j spoza nośnika y, a ij x i y j + j i b ij x i y j j Okazuje się, że ten układ warunków (plus założenie o nieujemności x i y), już wystarczy do policzenia strategii w równowadze Dokładniej, prawdziwe będzie takie twierdzenie: [ ] 0 A Twierdzenie 6 Niech z = [x, y] T, q = [,, ] T m+n oraz C = B T i dodatkowo 0 załóżmy, że C > 0 Dowolne niezerowe rozwiązanie z następującego problemu: znajdź z takie, że: z 0, () ma taką własność, że µ = macierzach wypłat A i B x i x i q Cz 0, () z T (q Cz) = 0, (3) oraz σ = y j y j jest równowagą w grze dwumacierzowej o Uwaga 6 Założenie, że C > 0 nie ogranicza nas zbytnio, bo strategie w równowadze w grze dwumacierzowej z macierzami wypłat A, B pozostają w równowadze w grze z macierzami A + c, B + c, gdzie c jest pewną stałą Żeby więc znaleźć równowagę w grze z macierzami, w których są elementy ujemne, wystarczy do tych macierzy dodać pewną stałą dodatnią, otrzymując w ten sposób grę spełniającą założenia naszego twierdzenia, a jednocześnie posiadającą równowagi takie same jak w grze wyjściowej Dowód: Jeśli zapiszemy warunek (3), dostaniemy ostatnią z równości zapisanych przed twierdzeniem Warunek () zapisany w postaci układu nierówności będzie wyglądał tak: { j a ij y j 0 i b ij x i 0, 8
czyli są to (lekko osłabione warunki, które zapisałem wcześniej) Dla odmiany, warunek () musi być spełniony, żeby µ i σ były rozkładami prawdopodobieństwa Wniosek z tego taki, że równowaga Nasha na pewno będzie rozwiązaniem problemu sformułowanego w twierdzeniu Druga część dowodu musi więc być taka, że mamy pokazać, że nie ma rozwiązań tego problemu, które nie dawałyby równowagi Nasha No to załóżmy nie wprost, że µ = i x, x i σ = y j y j, [x, y]t jest niezerowym rozwiązaniem naszego problemu, ale µ i σ nie tworzą równowagi Nasha () będzie oznaczało, że j a ij y j oraz i b ij x i Niech teraz I będzie zbiorem takich i, że w pierwszej nierówności jest równość, a J zbiorem j dla których jest równość w drugiej nierówności Wtedy: a ij x i y j + b ij x i y j = i j i j = x i a ij y j + x i a ij y j + y j x i b ij + y j x i b ij i I j i I j j J i j J i x i + y j, i j gdzie równość w ostatniej nierówności zachodzi wtedy i tylko wtedy (i po to zostało to rozpisane na sumę po I i jego dopełnieniu, oraz po J i jego dopełnieniu), gdy x i = 0 na zbiorze I C, a y j = 0 na zbiorze J C Tyle że warunek (3) implikuje, że tu jest równość A zatem dostajemy warunki: oraz co jest równoważne warunkom: { j a ij y j = jeśli x i > 0 j a ij y j < jeśli x i = 0, { i b ij x i = v jeśli y j > 0 i b ij x i < v jeśli y j = 0, j a ij σ j = j =: v y dla i z nośnika µ j j a ij σ j < v dla i spoza nośnika, { i b ij µ i = i =: v x dla j z nośnika σ i i b ij µ i < v dla j spoza nośnika, ale w zadaniu 8 z listy udowodniliśmy, że strategie µ i σ są w równowadze wtedy i tylko wtedy gdy spełniają powyższe warunki, a więc mamy sprzeczność, bo zakładaliśmy, że µ i σ nie tworzą równowagi Nasha Teraz, co wynika z udowodnionego twierdzenia? Otóż problem, który pojawił się w powyższym twierdzeniu należy do znanej klasy problemów, i istnieją algorytmy, służące do jego rozwiązywania, i teraz sformułujemy ogólnie taki problem, i opowiem, na czym polega algorytm ich rozwiązywania Problem komplementarności liniowej (LCP) Niech C będzie macierzą l l (kwadratową), a q wektorem l złożonym z samych jedynek Znajdź z l, spełniający: z 0, q Cz 0, z T (q Cz) = 0 9
Pierwsze dwa warunki, to ograniczenia liniowe takie, jakie znamy z problemu programowania liniowego Trzeci warunek nazywamy warunkiem komplementarności, bo oznacza on tyle, że na każdej współrzędnej i, albo z i = 0 albo i-ta współrzędna q Cz jest równa zero (innych możliwości nie ma, bo dwa pierwsze warunki gwarantują, że każda współrzędna z i każda współrzędna q Cz jest nieujemna) Algorytm rozwiązywania LCP wymyślili Lemke i Howson, i wygląda następująco: Algorytm Lemke-Howsona Zbiór wektorów w odpowiedniej przestrzeni l-wymiarowej spełniających zestaw liniowych ograniczeń (dwa pierwsze warunki zadające LCP), podobnie jak w przypadku programowania liniowego jest wypukłym wielościanem (bo to są takie same warunki jak te, które tam się pojawiły) Stąd kolejne kroki algorytmu będą wyglądały podobnie jak w przypadku algorytmu sympleks Tu też będziemy przechodzili od wierzchołka do wierzchołka wielościanu zadanego przez te warunki (stąd kolejne kroki algorytmu będą polegały na wymienianiu między sobą zmiennych, których wyzerowanie odpowiada równości w poszczególnych warunkach) Cel algorytmu będzie tylko inny W programowaniu liniowym mieliśmy funkcję celu, która zwiększała się przy każdym kolejnym kroku algorytmu, tu takiej funkcji celu nie ma, w związku z tym nie ma takiego jasnego kryterium wyboru kolejnego wierzchołka wielościanu, do którego ma przejść algorytm Warunek, który będziemy sprawdzali przy zamianie zmiennych, będzie miał na celu jedynie to, żeby algorytm nie cofał się nie przechodził do wierzchołka, który już sprawdzaliśmy Jak poprzednio, zapisujemy wszystko w postaci tablicy: z z z l c c c l r c c c l r r 3 c l c l c ll r 4 Elementy tej tablicy będziemy oznaczać przez d ij Tablica ta reprezentuje układ równań q Cz = r, gdzie r i jest zmienną równą i-tej współrzędnej q Cz Zmienne u góry tablicy, jak w algorytmie sympleks, są ustawione na zero, wartości pozostałych są równe temu, co stoi w l + kolumnie tablicy Startujemy z punktu z = 0, który jest rozwiązaniem LCP, ale nie generuje równowagi Nasha, i w kolejnych krokach algorytmu wykonujemy następujące operacje: Wybieramy (dowolną, np pierwszą) kolumnę macierzy j 0 Zapamiętujemy, która to była kolumna (czyli zmienna z jakim indeksem w niej stała) jest najmniejsze (tę regułę nazy- Wybieramy taki wiersz i 0, że d i0 j 0 < 0 oraz d i 0,l+ d i0 j 0 wamy testem najmniejszego ilorazu) 3 Wymieniamy zmienną bazową (z prawej w wierszu i 0 ) ze zmienną niebazową (u góry w wierszu j 0 ), stosując te same reguły zmiany tablicy przy wymianie zmiennych co w algorytmie sympleks w zeszłym tygodniu (jak wtedy, d i0 j 0 z tyldą oznaczają wartości po wymianie zmiennych): d i0 j 0 d i0 j 0 = d i0 j 0 d i0 j = d i 0 j d i0 j 0 j j 0 d ij0 = d ij 0 d i0 j 0 i i 0 0
d ij = d ij d i 0 jd ij0 d i0 j 0 Jeśli numer zmiennej opuszczającej bazę r był inny niż zmiennej z pierwszego punktu, zmienną z tym numerem wybieramy w następnym kroku jako tę, która wejdzie do bazy Wybieramy kolumnę, w której stoi zmienna o tym numerze i wracamy do punktu Jeśli numer zmiennej opuszczającej bazę był taki sam jak numer pierwszej wybranej przez nas, to algorytm się kończy, a my możemy odczytać z tablicy rozwiązanie LCP Robimy to w następujący sposób: te ze zmiennych z i, które pozostały u góry tablicy mają wartość 0, pozostałe mają wartości równe tym w l + kolumnie tablicy Sens takiego łańcuszka, oraz warunku kończącego algorytm, jest taki: naszym celem jest znalezienie takiego punktu, w którym dla każdego indeksu i albo zmienna z i, albo i-ta współrzędna q Cz, r i będzie równa zero W związku z tym, jeśli na którymś kroku wyzerowaliśmy zmienną o indeksie j, z j lub r j, to sprawdzamy, czy druga z tych zmiennych też jest wyzerowana jeśli tak, staramy się wymienić tę drugą na zmienną o takim indeksie i, że w danej chwili ani z i ani r i nie jest wyzerowana W ten sposób otrzymalibyśmy sytuację, w której zarówno jedna ze zmiennych z j, r j, jak i jedna ze zmiennych z i, r i jest wyzerowana Jeśli na danym kroku to nam się nie udaje, to wymieniamy jedną ze zmiennych o indeksie i (które w takim wypadku są obie u góry tablicy, czyli ich wartość jest ustawiona na zero) na jakąś inną zmienną (dzięki czemu jednocześnie na żadnym kroku algorytmu nie ma więcej niż jednego indeksu takiego, że zarówno zmienna r o takim indeksie, jak i zmienna z o takim indeksie, jest wyzerowana) Powtarzamy to tak długo, aż u góry (wśród zmiennych wyzerowanych) będzie się znajdowało po jednej zmiennej o każdym indeksie, czyli będzie spełniony warunek komplementarności Przykład Mamy znależć równowagę w grze dwumacierzowej z macierzami wypłat: A = [ 5 5 0 8 3 W takim przypadku macierz C = tabelki ], B = 0 0 5 5 0 0 0 8 3 3 0 0 0 8 0 0 0 7 0 0 0 [ 8 3 7 z z z 3 z 4 z 5 0 0 5 5 0 r 0 0 8 3 r 3 0 0 0 r 3 8 0 0 0 r 4 7 0 0 0 r 5 ] Zapiszmy teraz wszystko w postaci Niech k =, co oznacza, że jako zmienną wchodzącą do bazy wybieramy z Używając testu najmniejszego ilorazu wybieramy r 4 jako zmienną, którą usuniemy z bazy Po pierwszej
wymianie zmiennych dostajemy: r 4 z z 3 z 4 z 5 0 0 5 5 0 r 0 0 8 3 r 4 8 4 5 0 0 0 3 4 r 3 0 0 0 z 4 8 3 0 0 0 3 r 4 5 Kolejną zmienną wchodzącą do bazy będzie z 4, a usuwaną r Po drugiej zamianie zmiennych dostajemy: r 4 z z 3 r z 5 0 0 35 5 65 3 8 0 0 4 8 4 5 8 8 8 8 3 8 r 8 z 8 4 0 0 0 3 4 r 3 0 0 0 z 4 8 3 0 0 0 3 r 4 5 Następnie wymieniamy z z r 5, co daje nam nową tablicę: r 4 r 5 z 3 r z 5 0 0 35 5 65 8 8 8 0 0 3 7 5 6 Dalej wymieniamy z 5 z r, co daje: 3 r 8 3 z 8 8 8 8 4 5 6 0 0 0 r 3 3 3 5 0 0 0 z 6 5 3 0 0 0 3 6 z r 4 r 5 z 3 r r 0 0 7 8 3 3 65 0 0 3 7 5 6 3 z 65 5 3 7 z 3 3 65 65 4 5 6 0 0 0 r 3 3 3 5 0 0 0 z 6 5 3 0 0 0 z 3 6 I to już koniec, bo zmienna k-ta (czyli o numerze równym numerowi pierwszej zmiennej, która weszła do bazy r ) została usunięta z bazy Stąd rozwiązaniem LCP jest z = ( 5, 3, 0, 7, 3 ) Po normalizacji otrzymujemy równowagę Nasha w wyjściowej grze µ = 5 6 65 65 ( 5, 6 7 ), ν = (0,, 3 ) 0 0 Uwaga 7 Algorytm Lemke-Howsona, podobnie jak algorytm sympleks, ma wykładniczą złożoność obliczeniową W przypadku zastosowania tego algorytmu do rozwiązywania dowolnych problemów komplementarności liniowej było to udowodnione już w latach siedemdziesiątych To, że złożoność szukania równowag Nasha przy użyciu tego algorytmu też jest w najgorszym przypadku wykładnicza udowodnili Savani i von Stengel [4] trzy lata temu, co sugeruje, że w większości przypadków algorytm jest jednak w miarę szybki To o tyle dobrze, że niestety w przypadku problemu komplementarności liniowej nie ma znanych algorytmów, które byłyby szybsze (nawet w teorii) Jakkolwiek nie jest oczywiste, że ktoś w przyszłości takich nie znajdzie, bo złożoność problemu szukania równowag w grach dwumacierzowych nie jest znana Nie jest nawet pokazane, że problem policzenia jednej z równowag w grze dwumacierzowej jest NP-zupełny Istnieją tylko rezultaty tego rodzaju dotyczące szukania równowag o pewnych zadanych własnościach (np równowag, które są najlepsze dla któregoś z graczy)