Sprawko kwpd (2)

Gliwice, 07.04.2014

Laboratorium

Komputerowe wspomaganie podejmowania decyzji

Ćw. 2 – Gry macierzowe o sumie niezerowej, strategie czyste

Walentek Adrian

Olberek Kamil

AiR, sem. 6, TI-2, sekcja 1


  1. Gra macierzowa o wymiarach 4x4

A

D1\D2 1 2 3 4
1 -13 21 18 23
2 0 -33 -5 37
3 49 9 -25 24
4 -38 -6 3 16

B

D1\D2 1 2 3 4
1 28 47 39 10
2 -6 -17 -20 -25
3 -16 -4 -19 -15
4 13 14 32 7

Powyższy przykład ma 2 położenia równowagi Nasha:

  1. (3,3)=(-25,-19)

  2. (4,4)=(16,7)

Z czego tylko jedno jest rozwiązaniem dopuszczalnym: (3,3)=(-25,-19), ponieważ daje mniejsze wartości funkcji kosztów tj. nie istnieje para strategii od niej lepszej. Otrzymane rozwiązania nie są parami wymienialne, ponieważ jesteśmy w stanie bez problemu wybrać parę dającą lepszy wynik dla obu graczy. Wymienialność miałaby miejsce gdyby istniała para dająca wynik np. (-19,-25) czy np. (-24,-20).

W wymyślonym przez nas przykładzie znajduje się punkt minimaksowy, jednak nie stanowi on dopuszczalnego punktu równowagi Nasha, gdyż dopuszczalnym rozwiązaniem jest tylko para (3,3) dająca wynik (-25,-19), a obliczony punkt minimaksowy to: (4,4)=(16,7). Jednak punkt ten należy do rozwiązań strategii Nasha.

  1. Wprowadzenie hierarchii w grze

  1. Gracz D1 jako leader

Zbiór racjonalnych reakcji followera:

B

D1\D2 1 2 3 4
1 28 47 39 10
2 -6 -17 -20 -25
3 -16 -4 -19 -15
4 13 14 32 7

Strategie równowagi Stackelberga dla leadera:

A

D1\D2 1 2 3 4
1 -13 21 18 23
2 0 -33 -5 37
3 49 9 -25 24
4 -38 -6 3 16

Optymalną strategią leadera jest strategia (3,3) z wynikiem (-25,-19).

  1. Gracz D2 jako leader

Zbiór racjonalnych reakcji followera:

A

D1\D2 1 2 3 4
1 -13 21 18 23
2 0 -33 -5 37
3 49 9 -25 24
4 -38 -6 3 16

Strategie równowagi Stackelberga dla leadera:

B

D1\D2 1 2 3 4
1 28 47 39 10
2 -6 -17 -20 -25
3 -16 -4 -19 -15
4 13 14 32 7

Optymalną strategią leadera jest strategia (3,3) z wynikiem (-19,-25).

Porównując rezultat gry przed i po wprowadzeniu hierarchii, dla naszej gry macierzowej otrzymaliśmy taką samą parę zagrań tj. (3,3). W zależności od tego, który gracz jest leaderem ten otrzymuje lepszy wynik. Jeśli gracz zaczyna, czyli jest leaderem to otrzymuje wynik -25, z kolei follower otrzymuje rezultat -19. W naszym przykładzie zbiór racjonalnych relacji followera na i-te zagranie leadera jest zbiorem jednoelementowym, dlatego leader dostaje lepszy wynik niż przy zagraniu strategią Nasha.

  1. Kod programu

Równowaga Nasha

function nash(A,B)

[Nx,Ny] = size(A);

wybory_A=zeros(Ny);

wybory_B=zeros(Ny);

row_nasha=zeros(4,Ny);

%wybory gracza A

for j=1:Ny

[minimum,index]=min(A(:,j));

wybory_A(1,j)=index;

wybory_A(2,j)=j;

wybory_A(3,j)=minimum;

end

%wybory gracza B

for i=1:Nx

[minimum,index]=min(B(i,:));

wybory_B(1,i)=i;

wybory_B(2,i)=index;

wybory_B(3,i)=minimum;

end

%szukanie rownowagi Nasha

k=1;

for j=1:Ny

if wybory_A(1,j) == wybory_B(1,j)

if wybory_A(2,j) == wybory_B(2,j)

row_nasha(1,k)=wybory_A(1,j);

row_nasha(2,k)=wybory_A(2,j);

row_nasha(3,k)=wybory_A(3,j);

row_nasha(4,k)=wybory_B(3,j);

k=k+1;

end

end

end

%wyswietlanie wyników

for i=1:k-1

disp(['Row. Nasha ' num2str(i) ': (' num2str(row_nasha(1,i)) ',' num2str(row_nasha(2,i)) ')=(' num2str(row_nasha(3,i)) ',' num2str(row_nasha(4,i)) ')']);

end

%szukanie dopuszczalnej

Suma = sum(row_nasha(3:4,:));

minimum=min(Suma);

for j=1:Ny

if Suma(j)==minimum

disp(['Dopuszczalne: (' num2str(row_nasha(1,j)) ',' num2str(row_nasha(2,j)) ')=(' num2str(row_nasha(3,j)) ',' num2str(row_nasha(4,j)) ')']);

end

end

%rownowaga minimaksowa

k=1;

for i=1:Nx

[maksimum,j]=max(A(i,:));

[minimum,index] = min(A(:,j));

if maksimum <= minimum

minmaks1(1,k)=index;

minmaks1(2,k)=j;

minmaks1(3,k)=A(index,j);

k=k+1;

end

end

if k==1

disp('Brak minimaksowych rozwiazan w macierzy A');

else

k=1;

for j=1:Ny

[maksimum,i]=max(B(:,j));

[minimum,index] = min(B(i,:));

if maksimum <= minimum

minmaks2(1,k)=index;

minmaks2(2,k)=j;

minmaks2(3,k)=B(index,j);

k=k+1;

end

end

end

if k==1

disp('Brak minimaksowych rozwiazan w macierzy B');

else

minmaks1

minmaks2

for i=1:k-1;

if minmaks1(1,i)==minmaks2(1,i) && minmaks1(2,i)==minmaks2(2,i)

znalezione=1;

disp(['Rozwiazanie minimaksowe: (' num2str(minmaks2(1,i)) ',' num2str(minmaks2(2,i)) ')=(' num2str(minmaks1(3,i)) ',' num2str(minmaks2(3,i)) ')']);

end

end

end

end

Równowaga von Stackelberga

function stackelberg(A,B,rola_A)

%rola_A podajemy: leader albo follower

[Nx,Ny] = size(A);

if strcmp(rola_A,'follower') == 1

temp_A=A;

A=B;

B=temp_A;

A=A';

B=B';

end

k=1;

for i=1:Nx

minimum=min(B(i,:));

for j=1:Ny

if B(i,j)==minimum

tablica_follower(1,k)=i;

tablica_follower(2,k)=j;

tablica_follower(3,k)=A(i,j);

k=k+1;

end

end

end

tablica_follower;

k=1;

m=1;

liczba_wystapien=0;

poprzednia_liczba_wystapien=1;

for i=1:Nx

while k <= size(tablica_follower,2) && i == tablica_follower(1,k)

liczba_wystapien=liczba_wystapien+1;

k=k+1;

end

maksimum_wiersz = max(tablica_follower(3,poprzednia_liczba_wystapien:poprzednia_liczba_wystapien+liczba_wystapien-1));

for j=poprzednia_liczba_wystapien:poprzednia_liczba_wystapien+liczba_wystapien-1

if maksimum_wiersz == tablica_follower(3,j);

tablica_follower1(1,m)=i;

tablica_follower1(2,m)=tablica_follower(2,j);

tablica_follower1(3,m)=maksimum_wiersz;

m=m+1;

end

end

poprzednia_liczba_wystapien=poprzednia_liczba_wystapien+liczba_wystapien;

liczba_wystapien=0;

j=1;

end

tablica_follower1;

k=1;

minimum = min(tablica_follower1(3,:));

for i=1:size(tablica_follower1,2)

if tablica_follower1(3,i)==minimum

tablica_wynik(1,k)=tablica_follower1(1,i);

tablica_wynik(2,k)=tablica_follower1(2,i);

tablica_wynik(3,k)=tablica_follower1(3,i);

tablica_wynik(4,k)=B(tablica_follower1(1,i),tablica_follower1(2,i));

disp(['Row. Stackelberga ' num2str(i) ': (' num2str(tablica_wynik(1,k)) ',' num2str(tablica_wynik(2,k)) ')=(' num2str(tablica_wynik(3,k)) ',' num2str(tablica_wynik(4,k)) ')']);

k=k+1;

end

end

tablica_wynik;


Wyszukiwarka

Podobne podstrony:
Sprawko kwpd
Sprawko kwpd
El sprawko 5 id 157337 Nieznany
LabMN1 sprawko
Obrobka cieplna laborka sprawko
Ściskanie sprawko 05 12 2014
1 Sprawko, Raport wytrzymałość 1b stal sila
stale, Elektrotechnika, dc pobierane, Podstawy Nauk o materialach, Przydatne, Sprawka
2LAB, 1 STUDIA - Informatyka Politechnika Koszalińska, Labki, Fizyka, sprawka od Mateusza, Fizyka -
10.6 poprawione, semestr 4, chemia fizyczna, sprawka laborki, 10.6
PIII - teoria, Studia, SiMR, II ROK, III semestr, Elektrotechnika i Elektronika II, Elektra, Elektro
grunty sprawko, Studia, Sem 4, Semestr 4 RŁ, gleba, sprawka i inne
SPRAWKO STANY NIEUSTALONE, Elektrotechnika, Elektrotechnika
SPRAWOZDANIE Z farmako, Farmacja, II rok farmacji, I semstr, fizyczna, Fizyczna, Sprawozdania z fizy
mmgg, Studia PŁ, Ochrona Środowiska, Chemia, fizyczna, laborki, wszy, chemia fizyczna cz II sprawka
Zadanie koncowe, Studia PŁ, Ochrona Środowiska, Biochemia, laborki, sprawka
Piperyna sprawko PŁ, chemia produktów naturalnych, ćw. 5 PIPERYNA
03 - Pomiar twardości sposobem Brinella, MiBM Politechnika Poznanska, IV semestr, labolatorium wydym
Sprawozdanie nr 1 CECHY TECHNICZNE MATERIAfLOW BUDOWLANYCH, Budownictwo studia pł, sprawka maater

więcej podobnych podstron