Spectral Bundle Method (SBM) - Primal and Dual formulations (SBMP and SBMD).
The algrotithms are described in our paper An Overview and Comparison of Spectral Bundle Methods for Primal and Dual Semidefinite Programs.
Note: parts of the code require the installation of Sedumi and Mosek.
To get a quick start, try the file TestSBM.m
To access large-scale data, please visit Google drive.
SBMP and SBMD consider the standard primal and dual semidefinite programs
[Primal]
[Dual]
SBMP solves the penalized primal problem
where
The parameter
SBMD solves the penalized dual problem
The parameter
To run SBMP or SBMD, use the commands
opts.Maxiter = 200; %Maximun number of iteration
opts.rho = your choice of penalty parameter;
opts.MaxCols = 2; %Total number of eivenvectors (This should be opts.MaxCols = opts.EvecPast + opts.EvecCurrent)
opts.EvecPast = 1; %Number of past eigenvectors
opts.EvecCurrent = 1; %Number of current eigenvectors
opts.solver = "primal"; %Primal or Dual Spectral Bundle Method
Out_Primal_1_1 = SBM(At,b,c,K,opts); %Run
The parameter opts.rho
should be chosen correctly as discussed in SBMP and SBMD!
Try TestSBM.m
to get a better understanding.
The code requires the installation of Sedumi and Mosek.
To contact us about SBM, suggest improvements, and report bugs, please email either Feng-Yi Liao or Yang Zheng.