Sequential Games#
The four-player game is continued from the simulation example. Its pseudogradient map \(F_1\) is affine, \(1.4785\)-monotone and \(0.1605\)-cocoercive.
This example performs Synthesis of a Nash Equilibrium seeking algorithm in two scenarios:
Simultaneous: each agent updates its strategy \(z^i_k\) at every time step \(k\)
Sequential: the agents take turns updating their strategies, \(z^i_k\) changes only once per four time steps.
Both algorithms permit only explicit evaluations of the pseudogradient map \(F_1\).
The Simultaneous setting involves an LTI system, and returns an algorithm with convergence rate \(\rho \leq 0.8733\). The Sequential setting is modeled as a periodic-orbit system, and yields an algorithm with convergence rate \(\rho \leq 0.9667\).
Figure 1 plots a trajectory of the simultaneous game.
Figure 1: Simultaneous play of the game#
Figure 1: Simultaneous play of the game#
Figure 2 plots a trajectory of the sequential game.
Figure 2: Sequential play of the game#
Figure 2: Sequential play of the game#
In the designed sequential algorithm, each agent \(i\) has full knowledge of the entire pseudogradient vector \(w_k\). The partial knowledge setting involves allowing only the actively playing agent \(i\) access to \(w^i_k\). Synthesis in this partial knowledge setting returns an infeasible controller \((\rho \geq 2)\).
1%parameters of the game
2mu = 1.4785; beta = 0.1605;
3%number of agents
4
5%describe the operators
6op1 = op_gen();
7op1.monotone = mu;
8op1.cocoercive = beta;
9
10ops = {op1};
11
12%form the network
13c=4;
14M = circshift(eye(c), -1); %cyclic sequential play
15network = coordinate_descent_system(c);
16
17%form the systems
18sys_simul = opt_system(ops);
19sys_coord = opt_system_periodic_orbit(ops, network, [], M);
20
21%pose managers
22config = opt_config();
23config.syn.prox= 0;
24man_simul = opt_synthesis(sys_simul, config);
25man_coord = opt_synthesis(sys_coord, config);
26
27%solve
28sol_simul = man_simul.bisect();
29sol_coord = man_coord.bisect();