MOSEK / Mosek.jl

Interface to the Mosek solver in Julia
MIT License
49 stars 28 forks source link

Return premature results if status is Unknown #73

Closed emreyamangil closed 5 years ago

emreyamangil commented 8 years ago

Currently Mosek doesn't return any information about solution and dual if the status is Unknown (even if the primal is feasible). It would be helpful if we got at least the feasible solution (and if there exist a dual corresponding to it). Many thanks!

CC @mlubin @chriscoey

chriscoey commented 8 years ago

Yes please! Any solution information we can get (plus a ray if it exists), could be very helpful for what we're working on. We want to use that information to help in the process of bounding bad problems, so that strong duality will hold and we can try re-solving.

On Wed, Apr 6, 2016 at 11:15 PM, Emre Yamangil notifications@github.com wrote:

Currently Mosek doesn't return any information about solution and dual if the status is Unknown (even if the primal is feasible). It would be helpful if we got at least the feasible solution (and if there exist a dual corresponding to it). Many thanks!

CC @mlubin https://github.com/mlubin @chriscoey https://github.com/chriscoey

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/JuliaOpt/Mosek.jl/issues/73

erling-d-andersen commented 8 years ago

Given we are talking about the interior-point optimizer then 2 phase approach is NOT used. That means the solution is first feasible when it is optimal. Nevertheless even if the status is unknown the available solution may be useful/interesting.

Erling

2016-04-07 5:39 GMT+02:00 Chris C. notifications@github.com:

Yes please! Any solution information we can get (plus a ray if it exists), could be very helpful for what we're working on. We want to use that information to help in the process of bounding bad problems, so that strong duality will hold and we can try re-solving.

On Wed, Apr 6, 2016 at 11:15 PM, Emre Yamangil notifications@github.com wrote:

Currently Mosek doesn't return any information about solution and dual if the status is Unknown (even if the primal is feasible). It would be helpful if we got at least the feasible solution (and if there exist a dual corresponding to it). Many thanks!

CC @mlubin https://github.com/mlubin @chriscoey https://github.com/chriscoey

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/JuliaOpt/Mosek.jl/issues/73

— You are receiving this because you are subscribed to this thread. Reply to this email directly or view it on GitHub https://github.com/JuliaOpt/Mosek.jl/issues/73#issuecomment-206683731

emreyamangil commented 8 years ago

Thanks @erling-d-andersen !! If I am not misinterpreting Mosek output, in the following, the algorithm eventually satisfies primal and dual feasibility, though because of the duality gap solver returns Unknown, if we got the current solution corresponding to these statistics, we may have some hopes to tackle this situation!

Problem
  Name                   :                 
  Objective sense        : min             
  Type                   : CONIC (conic optimization problem)
  Constraints            : 13              
  Cones                  : 0               
  Scalar variables       : 3               
  Matrix variables       : 2               
  Integer variables      : 0               

Optimizer started.
Conic interior-point optimizer started.
Presolve started.
Linear dependency checker started.
Linear dependency checker terminated.
Eliminator started.
Total number of eliminations : 1
Eliminator terminated.
Eliminator - tries                  : 1                 time                   : 0.00            
Eliminator - elim's                 : 1               
Lin. dep.  - tries                  : 1                 time                   : 0.00            
Lin. dep.  - number                 : 0               
Presolve terminated. Time: 0.00    
Optimizer  - threads                : 4               
Optimizer  - solved problem         : the primal      
Optimizer  - Constraints            : 12
Optimizer  - Cones                  : 0
Optimizer  - Scalar variables       : 3                 conic                  : 0               
Optimizer  - Semi-definite variables: 2                 scalarized             : 12              
Factor     - setup time             : 0.00              dense det. time        : 0.00            
Factor     - ML order time          : 0.00              GP order time          : 0.00            
Factor     - nonzeros before factor : 43                after factor           : 43              
Factor     - dense dim.             : 0                 flops                  : 6.50e+02        
ITE PFEAS    DFEAS    GFEAS    PRSTATUS   POBJ              DOBJ              MU       TIME  
0   1.0e+00  1.0e+00  1.0e+00  0.00e+00   0.000000000e+00   0.000000000e+00   1.0e+00  0.00  
1   3.1e-01  3.1e-01  3.1e-01  -4.29e-01  1.340041450e+00   2.514531784e+00   3.1e-01  0.00  
2   4.0e-02  4.0e-02  4.0e-02  -2.68e-01  6.149505414e+00   8.573039714e+00   4.0e-02  0.00  
3   6.8e-03  6.8e-03  6.8e-03  -2.70e-01  1.364528234e+01   1.841191288e+01   6.8e-03  0.00  
4   9.6e-04  9.6e-04  9.6e-04  -4.21e-01  2.912249407e+01   4.372365184e+01   9.6e-04  0.00  
5   1.6e-04  1.6e-04  1.6e-04  -3.47e-01  5.494518633e+01   8.193473633e+01   1.6e-04  0.00  
6   2.6e-05  2.6e-05  2.6e-05  -3.73e-01  9.973841187e+01   1.619834830e+02   2.6e-05  0.00  
7   5.9e-06  5.9e-06  5.9e-06  -2.92e-01  1.665589002e+02   2.759508262e+02   5.9e-06  0.00  
8   1.6e-06  1.6e-06  1.6e-06  -1.59e-01  2.660072350e+02   4.099613393e+02   1.6e-06  0.00  
9   5.3e-07  5.3e-07  5.3e-07  -3.77e-01  3.672105002e+02   6.660040357e+02   5.3e-07  0.00  
10  1.4e-07  1.4e-07  1.4e-07  -7.14e-02  6.386157471e+02   9.157191112e+02   1.4e-07  0.00  
11  3.5e-08  3.5e-08  3.5e-08  -3.02e-01  9.933468855e+02   1.524375750e+03   3.5e-08  0.00  
12  8.6e-09  8.6e-09  8.6e-09  -1.27e-01  1.599084837e+03   2.253924894e+03   8.6e-09  0.00  
13  1.8e-09  1.8e-09  1.8e-09  -4.20e-01  2.545072799e+03   4.354678130e+03   1.8e-09  0.00  
14  4.7e-10  4.7e-10  4.7e-10  -1.17e-01  4.289534782e+03   6.207325739e+03   4.7e-10  0.00  
15  1.3e-10  1.3e-10  1.3e-10  -3.00e-01  6.488500031e+03   9.992931124e+03   1.3e-10  0.00  
16  3.5e-11  3.5e-11  3.5e-11  -8.22e-02  1.024051728e+04   1.408416949e+04   3.5e-11  0.00  
17  8.8e-12  7.5e-12  6.8e-12  -4.12e-01  1.634829739e+04   2.712786688e+04   7.5e-12  0.00  
18  2.7e-12  1.9e-12  2.5e-12  -1.19e-01  2.747354197e+04   3.906323523e+04   1.9e-12  0.00  
19  7.5e-13  4.8e-13  2.1e-12  -3.25e-01  4.755186432e+04   7.116022648e+04   4.6e-13  0.00  
20  3.5e-13  1.8e-13  9.8e-13  -9.70e-02  6.087336621e+04   8.664320731e+04   1.8e-13  0.00  
21  4.6e-13  1.0e-13  5.0e-13  -9.82e-02  6.702116432e+04   9.617277553e+04   1.1e-13  0.00  
22  4.6e-13  1.0e-13  5.0e-13  -5.90e-01  6.702116432e+04   9.617277553e+04   1.1e-13  0.01  
Interior-point optimizer terminated. Time: 0.01. 

Optimizer terminated. Time: 0.01    
erling-d-andersen commented 8 years ago

Your conclusion is not valid. The feasibility measures is reported for the homogeneous model we employ. So

Pfeas = || Ax-b*\tau ||

and

\tau

may converge towards 0. In fact I fairly sure that it is the case. Since the PRSTATUS column does NOT converge towards 1 or -1. The absolute value of PRSTATUS should converge to 1 when the problem is "nice". Being strictly infeasible is also nice.

Btw if you would give the problem to me we would put on cblib.zib.de. Since we would like to have some real world ill-posed problems.

emreyamangil commented 8 years ago

Thanks!! That explains it! I will generate a couple instances for you in cblib format asap! So in this case it certainly doesn't make sense to return x.. any information that might be kind of ok to return in this case??

erling-d-andersen commented 8 years ago

We can do that for you. If you provide a file in the MOSEK task format.

2016-04-08 1:41 GMT+02:00 Emre Yamangil notifications@github.com:

Thanks!! That explains it! I will generate a couple instances for you in cblib format asap! So in this case it certainly doesn't make sense to return x, any information that might be kind of ok to return in this case??

— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/JuliaOpt/Mosek.jl/issues/73#issuecomment-207138738

ulfworsoe commented 5 years ago

Closing ancient issues.