Volume Allocation in 3D (Polynomial Constraint)

17 views
Skip to first unread message

Sohail Khan

unread,
Sep 17, 2014, 4:35:43 AM9/17/14
to yal...@googlegroups.com
In this problem i am splitting an ellipsoid in two ellipsoids with each one contributing to the volume by a quadratic cost function. The summary of the objective and constraints is

Obj:
Quadratic scalar (real, 6 variables, current value : 0)

Constraints:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   ID|      Constraint|                            Type|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|   #1|   Numeric value|                Element-wise 3x1|
|   #2|   Numeric value|                Element-wise 3x1|
|   #3|   Numeric value|   Element-wise (polynomial) 1x1|
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Default solver is used for finding the solution. But the result is that "no feasible solution found".

Please find my code at:
https://www.dropbox.com/s/b3k00mfbvrxxfyo/Code.txt?dl=0

My question is that: Which solver is most feasible for solving this problem? I have used "sedumi" but i was not able to achieve acceptable results for up to 3rd order (e.g., objective gets negative or the values A/B become very large.)
How to solve such a problem in general?

I am new to such polynomial type constraints.

Thanks.

Johan Löfberg

unread,
Sep 17, 2014, 4:59:58 AM9/17/14
to yal...@googlegroups.com
SeDuMi can never be used for this model so I don't understand how you can claim that you had any kind of solution. Your model has a nonconvex polynomial constraint.

The global built-in solver BMIBNB solves the problem rather easily

ops = sdpsettings(options,'solver','bmibnb','bmibnb.uppersolver','fmincon')
sol = solvesdp([Const,[A B]<=100],Obj,ops)
* Starting YALMIP global branch & bound.
* Branch-variables : 8
* Upper solver     : fmincon
* Lower solver     : CPLEX
* LP solver        : CPLEX
 
Node       Upper      Gap(%)       Lower    Open
   
1 :    8.251E+01   142.72      1.296E+01   2    
   
2 :    8.251E+01   142.72      1.296E+01   3    
   
3 :    8.251E+01   127.39      1.752E+01   4    
   
4 :    8.251E+01   127.39      1.752E+01   5    
   
5 :    8.251E+01    78.10      3.560E+01   6    
   
6 :    8.251E+01    78.10      3.560E+01   7    
   
7 :    8.251E+01    65.56      4.128E+01   8    
   
8 :    8.251E+01    65.56      4.128E+01   7  Poor bound  
   
9 :    8.251E+01    54.49      4.675E+01   8    
   
10 :    8.251E+01    54.49      4.675E+01   9    
   
11 :    8.251E+01    51.97      4.806E+01   8  Infeasible  
   
12 :    8.251E+01    51.97      4.806E+01   9    
   
13 :    8.251E+01    36.71      5.661E+01  10    
   
14 :    8.251E+01    36.71      5.661E+01  11    
   
15 :    8.251E+01    33.59      5.850E+01  12    
   
16 :    8.251E+01    33.59      5.850E+01  11  Infeasible  
   
17 :    8.251E+01    31.70      5.966E+01  10  Infeasible  
   
18 :    8.251E+01    31.70      5.966E+01  11    
   
19 :    8.251E+01    31.59      5.973E+01  12    
   
20 :    8.251E+01    31.59      5.973E+01  11  Infeasible  
   
21 :    8.251E+01    23.69      6.483E+01  10  Infeasible  
   
22 :    8.251E+01    23.69      6.483E+01  11    
   
23 :    8.251E+01    18.36      6.847E+01  10  Infeasible  
   
24 :    8.251E+01    18.36      6.847E+01   9  Poor bound  
   
25 :    8.251E+01    13.72      7.179E+01   8  Infeasible  
   
26 :    8.251E+01    13.72      7.179E+01   7  Infeasible  
   
27 :    8.251E+01     4.72      7.866E+01   6  Poor bound  
   
28 :    8.251E+01     4.72      7.866E+01   7    
   
29 :    8.251E+01     4.44      7.889E+01   8    
   
30 :    8.251E+01     4.44      7.889E+01   9    
   
31 :    8.251E+01     1.76      8.106E+01  10    
   
32 :    8.251E+01     1.76      8.106E+01  11    
   
33 :    8.251E+01     1.58      8.120E+01  12    
   
34 :    8.251E+01     1.58      8.120E+01  11  Poor bound  
   
35 :    8.251E+01     1.46      8.131E+01  10  Infeasible  
   
36 :    8.251E+01     1.46      8.131E+01  11    
   
37 :    8.251E+01     1.01      8.168E+01  12    
   
38 :    8.251E+01     1.01      8.168E+01  11  Poor bound  
   
39 :    8.251E+01     0.97      8.171E+01  12    
* Finished.  Cost: 82.5135 Gap: 0.9691
* Timing: 20% spent in upper solver (25 problems solved)
*         4% spent in lower solver (46 problems solved)
*         72% spent in LP-based domain reduction (997 problems solved)

PS, don't use strict inequalities
http://users.isy.liu.se/johanl/yalmip/pmwiki.php?n=Blog.Prepare-your-code

Sohail Khan

unread,
Sep 17, 2014, 6:30:53 PM9/17/14
to yal...@googlegroups.com
Thank you Johan!. It solves the problem for the test case.
Reply all
Reply to author
Forward
0 new messages