Increment in variables number causes CVX doesn't work properly


(Tajiki) #1

In my cvx formulation the variable is a 3 dimension matrix: A(n,n,p)
with n=22 and p=50 CVX find the optimal result but as i increase the p by 2 (p=52) CVX return following answer:

Calling Mosek 7.1.0.12: 29584 variables, 25986 equality constraints

MOSEK Version 7.1.0.12 (Build date: 2014-12-12 11:23:25)
Copyright Β© 1998-2014 MOSEK ApS, Denmark. WWW: http://mosek.com
Platform: Windows/64-X86

MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24078).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24078).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24079).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24079).
MOSEK warning 52: A numerically large lower bound value -1.1e+010 is specified for constraint β€˜β€™ (24100).
MOSEK warning 53: A numerically large upper bound value -1.1e+010 is specified for constraint β€˜β€™ (24100).
MOSEK warning 52: A numerically large lower bound value -1.1e+010 is specified for constraint β€˜β€™ (24101).
MOSEK warning 53: A numerically large upper bound value -1.1e+010 is specified for constraint β€˜β€™ (24101).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24122).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24122).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24123).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24123).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24144).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24144).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24145).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24145).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24166).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24166).
MOSEK warning 52: A numerically large lower bound value -1.1e+009 is specified for constraint β€˜β€™ (24167).
MOSEK warning 53: A numerically large upper bound value -1.1e+009 is specified for constraint β€˜β€™ (24167).
Warning number 52 is disabled.
Warning number 53 is disabled.
MOSEK warning 57: A large value of 2.3e+010 has been specified in cx for variable β€˜β€™ (0).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28556).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28557).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28558).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28559).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28560).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28561).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28562).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28563).
MOSEK warning 57: A large value of 1.1e+008 has been specified in cx for variable β€˜β€™ (28564).
Warning number 57 is disabled.
Computer
Platform : Windows/64-X86
Cores : 4

Problem
Name :
Objective sense : min
Type : LO (linear optimization problem)
Constraints : 25986
Cones : 0
Scalar variables : 29584
Matrix variables : 0
Integer variables : 29040

Optimizer started.
Mixed integer optimizer started.
Optimizer - threads : 4
BRANCHES RELAXS ACT_NDS BEST_INT_OBJ BEST_RELAX_OBJ REL_GAP(%) TIME

Objective of best integer solution : Not available.
Best objective bound : Not available.
Construct solution objective : Not employed
Construct solution # roundings : 0
User objective cut value : 0
Number of cuts generated : 0
Number of branches : 0
Number of relaxations solved : 0
Number of interior point iterations: 0
Number of simplex iterations : 0
Time spend presolving the root : 0.13
Time spend in the heuristic : 0.00
Time spend in the sub optimizers : 0.00
Time spend optimizing the root : 0.00
Mixed integer optimizer terminated. Time: 0.22

Optimizer terminated. Time: 0.30

Integer solution solution summary
Problem status : PRIMAL_INFEASIBLE
Solution status : UNKNOWN
Primal. obj: 0.0000000000e+000 Viol. con: 1e+010 var: 0e+000 itg: 0e+000
Optimizer summary
Optimizer - time: 0.30
Interior-point - iterations : 0 time: 0.00
Basis identification - time: 0.00
Primal - iterations : 0 time: 0.00
Dual - iterations : 0 time: 0.00
Clean primal - iterations : 0 time: 0.00
Clean dual - iterations : 0 time: 0.00
Clean primal-dual - iterations : 0 time: 0.00
Simplex - time: 0.00
Primal simplex - iterations : 0 time: 0.00
Dual simplex - iterations : 0 time: 0.00
Primal-dual simplex - iterations : 0 time: 0.00
Mixed integer - relaxations: 0 time: 0.22


Status: Infeasible
Optimal value (cvx_optval): +Inf

I have to increase the p value by 300 or 500 :sob: what should i do?:scream:


(Michael C. Grant) #2

You should read and heed MOSEK’s warnings here. Numeric values that are very large are likely to cause significant issues with the solver. You’re going to need to rescale your model so that your numeric values are more reasonable.


(Jeff) #3

Hi Michael, I found this old post since I am also getting a similar warning from MOSEK saying:

β€œMOSEK warning 57: A large value of 1.0e+010 has been specified in cx for variable β€˜β€™ (15).”

However, I cannot for the life of me find any sources that actually explain how to re-scale a problem with enough detail to be able to implement it in my MATLAB code. Would you by any chance be able to help, or have any sources that thoroughly explain re-scaling?


(Mark L. Stone) #4

There is some discussion of transformations to improve scaling in section 2.5 of https://www.nag.com/numeric/fl/nagdoc_fl25/html/e04/e04intro.html . This in turn is a condensed version of a discussion in section 7.5 of Gill, Murray, Wright β€œPractical Optimization” https://www.amazon.com/Practical-Optimization-Philip-Gill/dp/0122839528 . The book is kind of old, but most of the modeling advice has stood the test of time. Hopefully the first (free) link will get you going in the right direction.


(Erling D.Andersen) #5

You might want to upgrade to version 8.1. ALso do not impose bounds

-alpha <= x <= alpha

for some very large alpha when alpha=infinity i.e. use no bounds when that is ok.

This

β€œMOSEK warning 57: A large value of 1.0e+010 has been specified in cx for variable β€˜β€™ (15).”

you values in the objective is very large. So the question why do you have?

1.0e10 looks like some arbitrary value. Why this particular value?

Was it because it was Thursday and not Friday you used 1.0e10 instead of say 1.0e20. I sometimes wonder about how users get those values.