%Jeden sedlový prvek %A[3,-3;4,1] %B[5,-1;1,4] %vstup se zadává do matice A a matice B %výstup je porovnání možné výhry při kooperaci s možnou výhrou pro každého %hráče bez kooperace %Vstup matice A a matice B A=input('Zadejte matici A:') B=input('Zadejte matici B:') %podmínka zabraňující vložení maticí s jinými dimenzemi if any(size(A) ~= size(B)) error('Matice musí mít stejné dimenze'); end %součet matic pro kooperaci hráčů C=A+B %Načtení celkového počtu řádků a slopců matic do atributu rowSize a colSize [rowSize,colSize] = size(A); %pole pro zobrazení pozice sedlových prvků v matici row=[]; col=[]; %cykus pro kontrolu všech prvků v matici for iRow = 1:rowSize for jCol = 1:colSize if A(iRow,jCol) == max(A(:,jCol)) && B(iRow,jCol)== max(B(iRow,:)); row(length(row)+1)=iRow; col(length(col)+1)=jCol; end end end %nalezení maximální možné společné výhry v případě kooperace maximumC=max(C(:)) %nalezení maximálních zaručených hodnot pro oba hráče a jejich součet maximumAB=max(max(A(row,col))+ max(B(row,col))) %podminka kdy nebyl nalezen zadny sedlovy bod na stejnych souradnicich if (length(row)<1 | length(col) < 1) %Odpoved na situaci bez nalezeneho sedloveho bodu Reseni=['Nebyl nalezen žádný společný sedlový prvek a není možné určit zda se kooperace hráčů vyplatí, hra má řešení ve smíšených strategiích, které je probrané v příkladu č.1'] end %Podminka kdy byl nalezen spolecny sedlovy bod if (length(row)>=1 | length(col)>= 1) %Spoluprace se vyplati if maximumC>maximumAB Reseni=['Hodnota výhry při spolupráci je ' int2str(maximumC) ' A hodnota výhry bez spolupráce je ' int2str(maximumAB) ' spolupráce se tedy vyplatí'] end %Spoluprace nema vyznam if maximumC==maximumAB Reseni=['Hodnota výhry při spolupráci je ' int2str(maximumC) ' A hodnota výhry bez spolupráce je ' int2str(maximumAB) ' spolupráce tedy nemá žádný význam'] end %Spoluprace se nevyplati if maximumC