Description of graphsp_IP.m

Matlab syntax
>> out = graphsp_IP(Lp,E,Q,R,gamma,opts);

Matlab function graphsp_IP.m takes the problem data { L_p, E, Q, R, gamma } and the input opts and returns the solution to the sparsity-promoting optimal control problem (P). Input opts allows users to specify the following parameters

  1. opts.eps_dg – tolerance on duality gap;

  2. opts.eps_pres – tolerance on primal residual;

  3. opts.maxit – maximum number of IP iterations;

  4. opts.maxit_pcg – maximum number of PCG iterations;

  5. opts.delta_pcg_aff – algorithm parameter for pcg method;

  6. opts.delta_pcg – algorithm parameter for pcg method;

  7. opts.method – method used for computing search directions.

If opts argument is omitted, the default values are set to:

  1. opts.eps_dg = 10^{-6};

  2. opts.eps_pres = 10^{-6};

  3. opts.maxit = 100;

  4. opts.maxit_pcg = 2000;

  5. opts.delta_pcg_aff = 0.3;

  6. opts.delta_pcg = 0.3;

  7. opts.method = 'pcg2’.

The output out is a structure that contains

  1. out.x – optimal vector of the controller edge weights;

  2. out.zp – optimal dual vector z_+;

  3. out.zm – optimal dual vector z_-;

  4. out.xp – optimal primal vactor x_+;

  5. out.xm – optimal primal vector x_-;

  6. out.dg – duality gap;

  7. out.dres – dual residual;

  8. out.pres – primal residual;

  9. out.s – number of IP iterations;

  10. out.ind1 – number of PCG iterations for affine search direction;

  11. out.ind2 – number of PCG iterations for Mehrotra search direction.

Description of graphsp_proxBB.m

Matlab syntax
>> out = graphsp_proxBB(Lp,E,Q,R,gamma,opts);

Matlab function graphsp_proxBB.m takes the problem data { L_p, E, Q, R, gamma } and the input opts and returns the solution to the sparsity-promoting optimal control problem (P). Input opts allows users to specify the following parameters

  1. opts.eps_dg - tolerance on duality gap;

  2. opts.eps_pres - tolerance on primal residual;

  3. opts.eps_res - tolerance on dual residual;

  4. opts.maxit - maximum number of IP iterations;

  5. opts.flagBB - flag for BB step-size initialization.

If opts argument is omitted, the default values are set to:

  1. opts.eps_dg = 10^{-3};

  2. opts.eps_pres = 10^{-5};

  3. opts.eps_dres = 10^{-2};

  4. opts.maxit = 1000;

  5. opts.flagBB = 1.

The output out is a structure that contains

  1. out.x - optimal vector of edge weights;

  2. out.s - number of proxBB iterations;

  3. out.dg - duality gap;

  4. out.pres - primal residual;

  5. out.dres - dual residual;

  6. out.ss - step-size;

  7. out.js - number of iterations for line-search;

  8. out.iter_time - time of an inner iteration.

Description of graphsp_proxN.m

Matlab syntax
>> out = graphsp_proxN(Lp,E,Q,R,gamma,opts);

Matlab function graphsp_proxN.m takes the problem data { L_p, E, Q, R, gamma } and the input opts and returns the solution to the sparsity-promoting optimal control problem (P). Input opts allows users to specify the following parameters

  1. opts.eps_dg - tolerance on duality gap;

  2. opts.eps_pres - tolerance on primal residual;

  3. opts.eps_res - tolerance on dual residual;

  4. opts.maxit - maximum number of IP iterations.

If opts argument is omitted, the default values are set to:

  1. opts.eps_dg = 10^{-3};

  2. opts.eps_pres = 10^{-5};

  3. opts.eps_dres = 10^{-2};

  4. opts.maxit = 200.

The output out is a structure that contains

  1. out.x - optimal vector of edge weights;

  2. out.s - number of proxBB iterations;

  3. out.dg - duality gap;

  4. out.pres - primal residual;

  5. out.dres - dual residual;

  6. out.ss - step-size;

  7. out.js - number of iterations for line-search;

  8. out.iter_time - time of an inner iteration.

Description of run_graphsp_IP.m

Matlab syntax
>> run_graphsp_IP;

Matlab script run_graphsp_IP.m allows users to:

  • call graphsp_IP.m.

Please set flag_p to:

  • 1 – for Erdos-Renyi plant network;

  • 1 – for path plant network;

  • 2 – for a randomly generated disconnected network with n = 50 nodes.

run_graphsp_IP.m gives:

  1. rm out1 (output of graphsp_IP.m for opts.method = 'chol’) and rm t1 (total running time);

  2. rm out2 (output of graphsp_IP.m for opts.method = 'pcg1’) and rm t2 (total running time);

  3. rm out3 (output of graphsp_IP.m for opts.method = 'pcg2’) and rm t3 (total running time).

Description of run_graphsp_IP.m

Matlab syntax
>> run_graphsp;

Matlab script run_graphsp.m allows users to:

  • call graphsp.m.

Please set flag_p to:

  • 1 – for Erdos-Renyi plant network;

  • 1 – for path plant network;

  • 2 – for a randomly generated disconnected network with n = 50 nodes.

run_graphsp_IP.m gives:

  1. rm out1 (output of graphsp_IP.m for opts.method = 'chol’) and rm t1 (total running time);

  2. rm out2 (output of graphsp_IP.m for opts.method = 'pcg1’) and rm t2 (total running time);

  3. rm out3 (output of graphsp_IP.m for opts.method = 'pcg2’) and rm t3 (total running time);

  4. rm out2 (output of graphsp_proxBB.m for proxBB) and rm t4 (total running time);

  5. rm out2 (output of graphsp_proxN.m for proxN) and rm t5 (total running time);