%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Example to illustrate security strategies
%
% Author: K. Passino
% Version: 1/22/02
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
clear all
% Set the number of different possible values of the decision variables
m=5; % If change will need to modify specific J1 value chosen below
n=3;
% Set the payoff matrix J1(i,j):
%J1=round(10*rand(m,n)-5*ones(m,n)); % Make it random integers between -5 and +5
J1 =[-3 4 4; % Just saved this from the screen for one case to get consistent values
0 -5 2; % (comment this J1 out to get random payoff matrices, or to change n, m)
-2 1 -4;
2 3 -4;
2 -2 -5]
% Compute the security strategy and value for each player, P1 then P2
[maxvals,indexmax]=max(J1'); % This is the max value for each row (note transpose)
maxvals' % Display the max values of each row
[secvalP1,secstratP1]=min(maxvals) % Display the security value of P1 and its security strategy
[minvals,indexmin]=min(J1); % This is the min value for each column (note no transpose)
minvals % Display the min values of each column
[secvalP2,secstratP2]=max(minvals) % Display the security value of P2 and its security strategy
% The outcome of the game will be
gameoutcome=J1(secstratP1,secstratP2)
% Plot the payoff values (clearly can just read the security value and strategy directly off
% this plot by inspection)
figure(1)
clf
subplot(211)
bar(1:m,J1)
grid
xlabel('Decision of player 1, i')
title('(a) J^1(i,j), groups are payoffs for j=1,2,...,n')
subplot(212)
bar(1:n,J1')
grid
xlabel('Decision of player 2, j')
title('(b) J^1(i,j), groups are payoffs for i=1,2,...,m')
%-------------------------------------
% End of program
%-------------------------------------