17 Interface changes¶
The section shows interface-specific changes to the MOSEK Fusion API for Java in version 9.3 compared to version 8. See the release notes for general changes and new features of the MOSEK Optimization Suite.
17.1 Backwards compatibility¶
Parametrized models (from version 9.2). Introduced the possibility to parametrize Fusion models. See Sec. 6.6 (Parameters) and Sec. 7.9 (Model Parametrization and Reoptimization).
OptServer (from version 9.1). It is possible to call the OptServer from Fusion with
M.solve(server, port)
.
Compared to version 8 there is a number of small changes in the Fusion API. Most of them should not affect standard applications of Fusion and very few should cause compilation errors.
Parameters. Users who set parameters to tune the performance and numerical properties of the solver (termination criteria, tolerances, solving primal or dual, presolve etc.) are recommended to reevaluate such tuning. It may be that other, or default, parameter settings will be more beneficial in the current version. The hints in Sec. 9 (Debugging Tutorials) may be useful for some cases.
Remove all
Near
problem and solution statuses i.e.SolutionStatus.NearOptimal
,SolutionStatus.NearCertificate
,AccSolutionStatus.NearOptimal
, etc. See Sec. 13.3.3 (Adjusting optimality criteria).Some algebraic operators are more strict when it comes to exactly matching shapes, especially regarding shapes such as \(1\times n\), \(n\times 1\) and \(n\). The same applies to matching variable/expression and domain shapes. In some cases it may be necessary to explicitly reshape using the method
Variable.reshape
orLinearDomain.withShape
.All shapes are specified with ordinary arrays instead of objects of class
Set
. The static methods of the classSet
produce arrays as shape specifications.Replace
shape()
withgetShape()
andsize()
withgetSize()
in most places.Remove the option in
Expr.sum
to sum over a range of dimensions in a multidimensional expression.Remove the method
Constraint.add
and introduceConstraint.update
(see Sec. 7.10 (Problem Modification and Reoptimization)).Rename
QConeDomain
toConeDomain
.Variable
now extendsExpression
, so the number of method prototypes is reduced in some cases. A variable can be used everywhere an expression can.Expressions are evaluated lazily only when used in a constraint.
Semidefinite variables. The preferred ways to declare semidefinite variables are:
M.variable(Domain.inPSDCone(3)); // A 3x3 PSD variable M.variable(Domain.inPSDCone(3, 100)); // One hundred 3x3 PSD variables // arranged in shape [100, 3, 3]
17.2 Parameters¶
Added
Removed
dataTolAij
intpntNlMeritBal
intpntNlTolDfeas
intpntNlTolMuRed
intpntNlTolNearRel
intpntNlTolPfeas
intpntNlTolRelGap
intpntNlTolRelStep
mioDisableTermTime
mioNearTolAbsGap
mioNearTolRelGap
mioConstructSol
mioMtUserCb
opfMaxTermsPerLine
readDataCompressed
readDataFormat
writeDataCompressed
writeDataFormat
17.3 Constants¶
Added
Removed
xml
mioHeuristicTime
mioOptimizerTime
mioConstructNumRoundings
mioInitialSolution
mioNearAbsgapSatisfied
mioNearRelgapSatisfied
mioSimMaxiterSetbacks
hybrid
worst
geco
nearDualFeas
nearPrimAndDualFeas
nearPrimFeas
optimalPartition
nearDualFeas
nearDualInfeasCer
nearIntegerOptimal
nearOptimal
nearPrimAndDualFeas
nearPrimFeas
nearPrimInfeasCer