DSDP Convergence


Detailed Description

The subroutines listed below define convergence and termination criteria for the solver and problems in DSDP Standard Form.

#include dsdp5.h 

Return values:
0 if successful


Functions

int DSDPDefaultConvergence (DSDP, void *)
 Check for Convergence.
int DSDPGetDualBound (DSDP dsdp, double *dbound)
 Get the termination parameter.
int DSDPGetGapHistory (DSDP dsdp, double hist[], int length)
 Copy a history of the duality gap into an array.
int DSDPGetGapTolerance (DSDP dsdp, double *gaptol)
 Get the termination tolerance.
int DSDPGetIts (DSDP dsdp, int *its)
 Copy the current iteration number.
int DSDPGetMaxIts (DSDP dsdp, int *its)
 Copy the maximum number of iterations from the solver.
int DSDPGetPInfeasibility (DSDP dsdp, double *pperror)
 Copy the infeasibility in (P).
int DSDPGetPNormTolerance (DSDP dsdp, double *ptol)
 Get the termination tolerance.
int DSDPGetPTolerance (DSDP dsdp, double *inftol)
 Copy the feasibility tolerance.
int DSDPGetRHistory (DSDP dsdp, double hist[], int length)
 Copy a history of the infeasibility in (D) into an array.
int DSDPGetRTolerance (DSDP dsdp, double *inftol)
 Copy the maximum infeasibility allowed (D).
int DSDPGetStepTolerance (DSDP dsdp, double *steptol)
 Get the current tolerance.
int DSDPSetConvergenceFlag (DSDP dsdp, DSDPTerminationReason reason)
 Monitor each iteration of the solver.
int DSDPSetDualBound (DSDP dsdp, double dbound)
 Terminate the solver if the objective value in (DD) is greater than this tolerance.
int DSDPSetGapTolerance (DSDP dsdp, double gaptol)
 Terminate the solver when the relative duality gap is less than this tolerance.
int DSDPSetMaxIts (DSDP dsdp, int its)
 Terminate the solver after this number of iterations.
int DSDPSetPNormTolerance (DSDP dsdp, double ptol)
 Terminate the solver when the relative duality gap is suffiently small and the PNorm is less than this quantity. Smaller values imply the final solution will be nearer to the central path.
int DSDPSetPTolerance (DSDP dsdp, double inftol)
 Classify (P) as feasible only if the infeasibility is less than this tolerance.
int DSDPSetRTolerance (DSDP dsdp, double inftol)
 Classify (D) as feasible only if the variable r is less than this tolerance.
int DSDPSetStepTolerance (DSDP dsdp, double steptol)
 Terminate the solver if the step length in (DD) is below this tolerance.
int DSDPStopReason (DSDP dsdp, DSDPTerminationReason *reason)
 Copy the reason why the solver terminated.


Function Documentation

int DSDPDefaultConvergence ( DSDP  dsdp,
void *  ctx 
)

Check for Convergence.

Parameters:
dsdp is the solver
ctx is a pointer to a structure containing convergence parameters
See also:
DSDPSetGapTolerance()

DSDPSetStepTolerance()

Note:
DSDP calls this routine before each iteration.

Definition at line 26 of file dsdpconverge.c.

Referenced by DSDPSetDefaultMonitors().

int DSDPGetDualBound ( DSDP  dsdp,
double *  dbound 
)

Get the termination parameter.

Parameters:
dsdp is the solver
*dbound is a bound on (DD)
See also:
DSDPSetDualBound()

DSDPGetDDObjective()

Definition at line 227 of file dsdpconverge.c.

Referenced by DSDPView(), and mexFunction().

int DSDPGetGapHistory ( DSDP  dsdp,
double  hist[],
int  length 
)

Copy a history of the duality gap into an array.

Parameters:
dsdp is the solver
hist is an array
length is the length of the array
See also:
DSDPGetDualityGap()

DSDPGetRHistory()

Definition at line 321 of file dsdpconverge.c.

Referenced by mexFunction().

int DSDPGetGapTolerance ( DSDP  dsdp,
double *  gaptol 
)

Get the termination tolerance.

Parameters:
dsdp is the solver
*gaptol will be set to the termination tolerance
See also:
DSDPGetDualityGap()

DSDPSetGapTolerance()

Definition at line 132 of file dsdpconverge.c.

Referenced by DSDPView(), and mexFunction().

int DSDPGetIts ( DSDP  dsdp,
int *  its 
)

Copy the current iteration number.

Parameters:
dsdp is the solver
*its will be set to the current iteration number.
See also:
DSDPSetMaxIts()

Definition at line 564 of file dsdpsetdata.c.

Referenced by DSDPDefaultConvergence(), DSDPPrintStats(), mexFunction(), and ReadSDPAFile().

int DSDPGetMaxIts ( DSDP  dsdp,
int *  maxits 
)

Copy the maximum number of iterations from the solver.

Parameters:
dsdp is the solver
*maxits will be the maximum number of iterations in DSDP
See also:
DSDPSetMaxIts()

DSDPGetIts()

Definition at line 225 of file dsdpsetdata.c.

Referenced by DSDPView(), and mexFunction().

int DSDPGetPInfeasibility ( DSDP  dsdp,
double *  pperror 
)

Copy the infeasibility in (P).

This infeasibility is the maximum difference between the values xl and xu correponding to the bounds on the variables y. Due to roundoff error, this number is usually much less than the true infeasiblity in (P). The true infeasibility is not available at each iteration due to its high computational cost.

Parameters:
dsdp is the solver
*pperror will be set to the infeasibility in (P)
See also:
DSDPSetYBounds()

DSDPSetPTolerance()

Definition at line 343 of file dsdpx.c.

Referenced by DSDPPrintStats().

int DSDPGetPNormTolerance ( DSDP  dsdp,
double *  ptol 
)

Get the termination tolerance.

Parameters:
dsdp is the solver
*ptol will be set to the termination tolerance
See also:
DSDPGetPnorm()

DSDPSetPNormTolerance()

Definition at line 180 of file dsdpconverge.c.

Referenced by DSDPView().

int DSDPGetPTolerance ( DSDP  dsdp,
double *  inftol 
)

Copy the feasibility tolerance.

Parameters:
dsdp is the solver
*inftol will be set to the infeasibility in (P)
See also:
DSDPSetYBounds()

DSDPGetPInfeasibility()

DSDPSetPTolerance()

Definition at line 386 of file dsdpx.c.

Referenced by DSDPView(), and mexFunction().

int DSDPGetRHistory ( DSDP  dsdp,
double  hist[],
int  length 
)

Copy a history of the infeasibility in (D) into an array.

Elememt i of the array will be set the the infeasibility in (D) at iteration i (unless i exceeds the length of the array)

Parameters:
dsdp is the solver
hist is an array
length is the length of the array
See also:
DSDPGetR()

DSDPGetGapHistory()

Definition at line 298 of file dsdpconverge.c.

Referenced by mexFunction().

int DSDPGetRTolerance ( DSDP  dsdp,
double *  inftol 
)

Copy the maximum infeasibility allowed (D).

DSDP will classify the solution to (D) as feasible only if the variable r in (DD) is less than this tolerance. Small values for r are enforced through a penalty parameter.

Parameters:
dsdp is the solver
*inftol will be set to the tolerance for r in (DD)
See also:
DSDPSetPenaltyParameter()

DSDPGetR()

DSDPSetRTolerance()

Definition at line 434 of file dsdpx.c.

Referenced by DSDPDefaultConvergence(), DSDPView(), and mexFunction().

int DSDPGetStepTolerance ( DSDP  dsdp,
double *  steptol 
)

Get the current tolerance.

Parameters:
dsdp is the solver
*steptol will be set to the current tolerance
See also:
DSDPSetStepTolerance()

DSDPGetStepLengths()

Definition at line 273 of file dsdpconverge.c.

Referenced by DSDPView(), and mexFunction().

int DSDPSetConvergenceFlag ( DSDP  dsdp,
DSDPTerminationReason  reason 
)

Monitor each iteration of the solver.

Parameters:
dsdp is the solver
reason is the termination reason
See also:
DSDPStopReason()

Definition at line 968 of file dsdpsetdata.c.

Referenced by DSDPCheckConvergence(), DSDPComputeDualStepDirections(), DSDPComputeX(), DSDPDefaultConvergence(), DSDPInitializeVariables(), and DSDPSolve().

int DSDPSetDualBound ( DSDP  dsdp,
double  dbound 
)

Terminate the solver if the objective value in (DD) is greater than this tolerance.

This parameter is helpful in branch and bound applictions.

Parameters:
dsdp is the solver
dbound is the bound
See also:
DSDPGetDualBound()

DSDPGetDDObjective()

DSDP_UPPERBOUND

Definition at line 205 of file dsdpconverge.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), and mexFunction().

int DSDPSetGapTolerance ( DSDP  dsdp,
double  gaptol 
)

Terminate the solver when the relative duality gap is less than this tolerance.

If pp is the objective value of (PP) and dd is the objective value of (DD), the relative duality gap is defined to be (pp-dd)/(1 + fabs(pp)/2 + fabs(dd)/2);

Parameters:
dsdp is the solver
gaptol is the tolerance
See also:
DSDPGetDualityGap()

DSDPGetGapTolerance()

DSDP_CONVERGED

Definition at line 110 of file dsdpconverge.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), LovaszTheta(), MaxCut(), mexFunction(), ReadSDPAFile(), and StableSet().

int DSDPSetMaxIts ( DSDP  dsdp,
int  maxits 
)

Terminate the solver after this number of iterations.

Parameters:
dsdp is the solver
maxits is the maximum number of DSDP iterations (>0)
See also:
DSDPGetMaxIts()

DSDPGetIts()

DSDPSetGapTolerance()

Definition at line 206 of file dsdpsetdata.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), and mexFunction().

int DSDPSetPNormTolerance ( DSDP  dsdp,
double  ptol 
)

Terminate the solver when the relative duality gap is suffiently small and the PNorm is less than this quantity. Smaller values imply the final solution will be nearer to the central path.

Parameters:
dsdp is the solver
ptol is the tolerance, (>0, default is very big)
See also:
DSDPGetPnorm()

DSDPGetPNormTolerance()

DSDPSetGapTolerance()

DSDP_CONVERGED

Definition at line 158 of file dsdpconverge.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), MaxCut(), and mexFunction().

int DSDPSetPTolerance ( DSDP  dsdp,
double  inftol 
)

Classify (P) as feasible only if the infeasibility is less than this tolerance.

Parameters:
dsdp is the solver
inftol will be set to the infeasibility in (P) (>0)
See also:
DSDPSetYBounds()

DSDPGetPInfeasibility()

DSDPGetPTolerance()

DSDPGetRTolerance()

DSDPSolutionType

Definition at line 365 of file dsdpx.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), and mexFunction().

int DSDPSetRTolerance ( DSDP  dsdp,
double  inftol 
)

Classify (D) as feasible only if the variable r is less than this tolerance.

Parameters:
dsdp is the solver
inftol is the tolerance (>0)
See also:
DSDPSetPenaltyParameter()

DSDPGetR()

DSDPGetRTolerance()

DSDPSolutionType

Definition at line 409 of file dsdpx.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), and mexFunction().

int DSDPSetStepTolerance ( DSDP  dsdp,
double  steptol 
)

Terminate the solver if the step length in (DD) is below this tolerance.

This heuristic will only be applied when the objective values in (PP) and (DD) match to three significant digits.

Parameters:
dsdp is the solver
steptol is the tolerance
See also:
DSDPGetStepTolerance()

DSDPGetStepLengths()

DSDP_SMALL_STEPS

Definition at line 252 of file dsdpconverge.c.

Referenced by DSDPSetDefaultParameters(), DSDPSetOptions(), and mexFunction().

int DSDPStopReason ( DSDP  dsdp,
DSDPTerminationReason reason 
)

Copy the reason why the solver terminated.

Parameters:
dsdp is the solver
*reason will be set to the proper enumerated type.
See also:
DSDPSetMaxIts()

DSDPSetGapTolerance()

Definition at line 582 of file dsdpsetdata.c.

Referenced by DSDPCheckConvergence(), DSDPComputeX(), DSDPDefaultConvergence(), DSDPPrintStats(), MaxCut(), mexFunction(), MinColoring(), and ReadSDPAFile().


Generated on Thu May 22 09:42:48 2008 for DSDP by  doxygen 1.5.5