Solver Options
In addition to A
, b
, c
, K
, J
, an optional parameter may be specified to set the solver options. This is a dictionary containing the set of parameters.
sdpap_options = {}
sdpap_options['print'] = 'no'
x, y, sdpapinfo, timeinfo, sdpainfo = sdpap.solve(A, b, c, K, J, sdpap_options)
The details of the parameters are as below:
Parameter | Description | Default |
---|---|---|
maxIteration | The maximum number of iterations. | 100 |
epsilonStar | The accuracy of an approximate optimal solution for primal and dual SDP. If using the multiprecision backend, this parameter may be reduced by orders of magnitude to achieve extended precision. | 1.0E-7 |
lambdaStar | An initial point. | 1.0E2 |
omegaStar | The search region for an optimal solution. | 2.0 |
lowerBound | Lower bound of the minimum objective value of the primal SDP. | -1.0E5 |
upperBound | Upper bound of the maximum objective value of the dual SDP. | 1.0E5 |
betaStar | The parameter for controlling the search direction if the current point is feasible. | 0.1 |
betaBar | The parameter for controlling the search direction if the current point is infeasible. | 0.2 |
gammaStar | A reduction factor for the primal and dual step lengths. | 0.9 |
epsilonDash | The relative accuracy of an approximate optimal solution between primal and dual SDP. If using the multiprecision backend, this parameter may be reduced by orders of magnitude to achieve extended precision. | 1.0E-7 |
mpfPrecision | Numerical precision used by the MPF class provided by the GNU Multiprecision Library. This is only available on the multiprecision variant, and will be ignored by the regular variant. | 200 |
isSymmetric | Specify whether to check the symmetricity of input matrices. | False |
isDimacs | Specify whether to compute DIMACS ERROR. | False |
numThreads | Number of Threads for internal computation. | multiprocessing.cpu_count() |
convMethod | Conversion method from CLP to LMI or EQ standard form ('LMI' or 'EQ' ). At the moment, convMethod = 'EQ' is not yet implemented in the code. Please only use 'LMI' . | 'LMI' |
The following parameters specify algorithms to exploit sparsity.
Parameter | Description | Default |
---|---|---|
domainMethod | Algorithm option for domain space. Can be 'none' (exploiting no sparsity in the domain space), 'clique' (applying dconv_cliquetree ) or 'basis' (applying dconv_basisrep ) | 'none' |
rangeMethod | Algorithm option for range space. Can be 'none' (exploiting no sparsity in the range space), 'clique' (applying rconv_cliquetree ) or 'decomp' (applying rconv_matdecomp ) | 'none' |
Two recommended sets of parameter values for exploiting sparsity:
convMethod = 'EQ'
,domainMethod = 'clique'
,rangeMethod = 'decomp'
convMethod = 'LMI'
,domainMethod = 'basis'
,rangeMethod = 'clique'
At the moment, domainMethod = 'clique'
and rangeMethod = 'clique'
are not yet implemented in the code. Please only use the other available options for the domainMethod
and rangeMethod
parameters.
The following parameters are for free variables elimination.
Parameter | Description | Default |
---|---|---|
frvMethod | The method to eliminate free variables ('split' or 'elimination' ) | 'split' |
rho | The parameter of range in split method or pivoting in elimination method. | 0.0 |
zeroPoint | The zero point of matrix operation, determine unboundness, or LU decomposition. | 1.0E-12 |
The below options set printing options.
Parameter | Description | Default |
---|---|---|
print | Whether to display solver output to stdout. If set to 'display' , output is printed and if set to 'no' or empty, no message is print out. | 'display' |
resultFile | Destination of detail file output. | '' |
sdpaResult | Destination of file output for SDPA result. | '' |
xPrint | Format specifier for yMat printed to the file. To adjust, see fprintf documentation (for regular backend) or gmp_printf documentation (for multiprecision backend). NOPRINT skips printout. | '%+8.3e' (regular backend), '%+18.12Fe' (multiprecision backend) |
yPrint | Format specifier for xVec printed to the file. To adjust, see fprintf documentation (for regular backend) or gmp_printf documentation (for multiprecision backend). NOPRINT skips printout. | '%+8.3e' (regular backend), '%+18.12Fe' (multiprecision backend) |
sPrint | Format specifier for xMat printed to the file. To adjust, see fprintf documentation (for regular backend) or gmp_printf documentation (for multiprecision backend). NOPRINT skips printout. | '%+8.3e' (regular backend), '%+18.12Fe' (multiprecision backend) |
infPrint | Format specifier for problem information printed to the file. See fprintf documentation to set it. NOPRINT skips printout. | '%+10.16e' |