DSDP
|
Implements the dual-scaling algorithm. More...
Go to the source code of this file.
Functions | |
int | DSDPChooseBarrierParameter (DSDP, double, double *, double *) |
DSDP barrier heuristic choses the smalles value of mu such that X>0. More... | |
int | DSDPComputeAndFactorS (DSDP dsdp, DSDPTruth *psdefinite) |
Compute and factor the dual matrix variables. More... | |
int | DSDPComputeDualStepDirections (DSDP dsdp) |
Compute the step direction by computing a linear system and solving it. More... | |
int | DSDPInitializeVariables (DSDP dsdp) |
Initialize variables and factor S. More... | |
int | DSDPResetY0 (DSDP) |
After 1 iteration, consider increasing the variable r. More... | |
int | DSDPSolveDynamicRho (DSDP dsdp) |
Apply dual-scaling algorithm. More... | |
int | DSDPYStepLineSearch (DSDP, double, double, DSDPVec) |
Used for Newton step, the merit function of this line search is the dual potential function. More... | |
int | DSDPYStepLineSearch2 (DSDP, double, double, DSDPVec) |
Used for centering steps, the merit function of this line search is the objective function plus the barrier term. More... | |
Implements the dual-scaling algorithm.
Definition in file dualalg.c.
int DSDPChooseBarrierParameter | ( | DSDP | dsdp, |
double | mutarget, | ||
double * | ppstep, | ||
double * | nextmutarget | ||
) |
DSDP barrier heuristic choses the smalles value of mu such that X>0.
dsdp | solver |
mutarget | current barrier parameter |
ppstep | set to primal step length |
nextmutarget | set to new target barrier parameter |
This routine implements a dynamic strategy for reducing the barrier parameter. Basically, it looks for the smallest barrier parameter for which the primal matrix X is psd. Lower and upper bounds to this parameter also apply.
int DSDPComputeDualStepDirections | ( | DSDP | dsdp | ) |
Compute the step direction by computing a linear system and solving it.
dsdp | the solver |
DSDP first attempts unpreconditioned CG to the matrix. Once the number of iterations becomes too large, it swithes a CG preconditioned by the Cholesky factorization. Usually only one iteration of the preconditioned CG is necessary, but solutions with large norms and very precise solutions may require additional iterations.
int DSDPInitializeVariables | ( | DSDP | dsdp | ) |
int DSDPResetY0 | ( | DSDP | dsdp | ) |
int DSDPSolveDynamicRho | ( | DSDP | dsdp | ) |