Build the System#
Algorithms to solve inclusion problems \(0 \in \sum_{i=1}^s F(\beta^*)\) are modeled using a Generalized Plant framework. The System (algorithmic interconnection) is specified by the operators \(F\), the network, and the controller. The System is mathematically described by
where the specific signals are
State |
Plant Input |
Plant Output |
|||
|---|---|---|---|---|---|
\(x^N\) |
network |
\(z\) |
input to operators |
\(w\) |
output from operators |
\(x^c\) |
controller |
\(z_p\) |
performance output |
\(w_p\) |
performance input |
\(y\) |
output to controller |
\(u\) |
input from controller |
The System is programatically described by an opt_system object:
1sys = opt_system(Operators, Network, Controller)
Operators#
The Operators argument in the System is an \(s\)-length cell array {op1, op2, op3, ...}.
Operators for Simulation#
In Simulation, Operators{i} is the specific operator \(F_i\) used in the inclusion problem. An operator may implement the following methods:
Evaluation |
Name |
Operation |
|---|---|---|
Forward |
|
\(z \mapsto F_i(z)\), |
Backward (with parameter \(\mathcal{W} \succ 0\)) |
|
\(z \mapsto (I - \mathcal{W} F_i)^{-1} (z)\) |
Function |
|
\(z \mapsto f_i(z)\) |
Supported operators for simulation include
Operators Classes#
In Analysis and Synthesis, Operators{i} is the operator class for which operator \(F_i\) is a member.
The two categories of operator classes are general Set-Valued Maps and Subdifferentials.
Set-Valued Maps#
A general set-valued map is specified by op_gen. Fields of op_gen define constraints satisfied by all \(w_1 \in F_i (z_1), w_2 \in F_i(z_2)\).
Field name |
Parameter |
Description |
|---|---|---|
|
\(\mu \in \R\) |
\(\langle w_1 - w_2, z_1 - z_2 \rangle \geq \mu \norm{z_1 - z_2}^2_2\) |
|
\(\beta > 0\) |
\(\langle w_1 - w_2, z_1 - z_2 \rangle \geq \beta \norm{w_1 - w_2}^2_2\) |
|
\(L > 0\) |
\(\norm{w_1 - w_2}_2 \leq L \norm{z_1 - z_2}_2\) |
|
\(R > 0\) |
\(\norm{z_1 - z_2}_2 \leq R \norm{w_1 - w_2}_2\) |
Setting the monotone field to \(\mu \in \R\) is a description that \(F_i - \mu \ \text{Id}\) is maximal monotone. Strong monotonicity is described by \(\mu>0\), and hypo (weak) monotonicity is described by \(\mu < 0\).
Subdifferentials#
The supported subdifferentials are based on properties of proper, closed, convex (p.c.c.) functions. A p.c.c. function \(f\) satisfies the properties
Proper |
\(f(x) > -\infty\) everywhere |
Closed |
The set \(\{x \mid f(x) \leq \gamma\}\) is closed for all \(\gamma \in \R\) |
Convex |
\(f( \alpha x + (1-\alpha)y) \leq \alpha f(x) + (1-\alpha) f(y)\) for all \(\alpha \in [0, 1]\) and \((x, y)\). |
The subdifferential of a p.c.c. function \(f\) is the set
Indicator functions of closed, convex sets are p.c.c.
Given constants \(-\infty < m < L \leq \infty\), the set \(S_{m, L}\) is the set of functions such that
\(f - \frac{m}{2}\norm{\cdot}_2^2\) is p.c.c
\(\frac{L}{2} \norm{\cdot} - f\) is p.c.c. if \(L < \infty\).
\(S_{0, \infty}\) is the set of p.c.c. functions. If \(m > 0\), then every \(f \in S_{m, \infty}\) is strongly convex. If \(0 < m < L < \infty\), then every \(f \in S_{m, L}\) has \(L\)-Lipschitz gradients (is \(L\)-smooth).
The subdifferential of p.c.c. functions is extended to subdifferentials of functions \(f \in S_{m, L}\) by
Operators arising from subdifferentials are described using the classes
|
Subdifferentials of p.c.c. functions |
|
Subdifferentials of \(S_{m, L}\) |
|
Gradients of quadratics in \(S_{m, L}\) |
Tip
op_pcc is an alias for op_sml(0, inf).
Network and Controller#
In Simulation and Analysis, the Controller is a discrete-time state space system of type ss.
The Controller field is ignored in Synthesis, and can therefore be set to Controller = [].
The declaration Network = [] is used if there are no network dynamics.
If network dynamics are present, then the Network is described by a genplant object (see genplant documentation for more details). The attribute P of a genplant
is a discrete-time state space system of type ss.
The genplant attributes (nz, nzp, ny, nw, nwp, nu) count dimensions of the respective input and output partitions.
An example genplant declaration for a two-operator problem with one performance input and output channel is
1D = [0, 0, 1, 1, 0;
2 0, 0, 1, 0, 1;
3 1, 1, 0, 0, 0;
4 1, 0, 0, 0, 0;
5 0, 1, 0, 0, 0];
6
7n = struct('nz', 2, 'nzp', 1, 'nw', 2, ...
8'nw', 2, 'nwp', 1, 'nu', 2);
9p = genplant(ss(D), n);
genplant can also be called without the n argument, letting the dimensions such as \(p.nw\) be set later.
The Templates page documents commands to generates common network structures. One such network structure is bridge_channel_delay, which adds time delays before and after each operator \(\{F_i\}_{i =1}^s\).
Two-Operator Example#
The operator class for a composite optimization problem
with \(f_1 \in S_{1, 10}\) can be specified using
1op1 = op_sml(1, 10);
2op2 = op_pcc();
3Operator_Class = {op1, op2};
Systems for Synthesis with and without network dynamics are
1%add 2-step time delays before and after \partial f1
2delay2 = bridge_channel_delay([2, 0], [2, 0]);
3sys_delay = opt_system(Operator_Class, delay2, []);
4
5%no network dynamics
6sys_no_network = opt_system(Operator_Class, [], []);
Systems for Analysis of a Projected Gradient Descent algorithm over the same networks are
1%the controller describing Projected Gradient Descent
2gamma = 2/11;
3
4Ac = 1;
5Bc = [-gamma, -gamma];
6Cc = [1; 1];
7Dc = [0, 0;
8 -gamma, -gamma];
9Ts = 1; %sample time
10
11K = ss(Ac, Bc, Cc, Dc, 1);
12
13sys_pgd_delay = opt_system(Operator_Class, delay2, K);
14sys_pgd_no_network = opt_system(Operator_Class, [], K);
Extensions#
The System descripition can be extended in three main capacities:
These extensions are explored in subsequent sections.