aeroimperial-optimization/mpYALMIP

Question about examples

parfenyev opened this issue · 3 comments

Hello everyone!

I am looking through Van Der Pol example and try to increase the value of degPvals up to 12 as was done in the arXiv paper. I have several questions:

  1. For the set of parameters specified in the example, the solver gives a value U=5.82, but returns a code pdINF, which means that the solution is expected to be infeasible. How can we trust such a result?
  2. For the degPvals=10 I found a strange behavior. For most of the runs the solver founds only the trivial result U=0, but for about 10% of runs it founds U=5.09 (with the same starting parameters). So, the output of the solver is stochastic. If we change parameters opts.sdpa_gmp.epsilonDash = 1.0e-20 and opts.sdpa_gmp.precision = 150 then the result becomes stable, but the return code is still pdINF.
  3. For degPvals=12 , opts.sdpa_gmp.epsilonDash = 1.0e-20, opts.sdpa_gmp.precision = 150 the matlab stops working after the solver run.

Is this all expected behavior or may be there are some problems related to the fact that I use sdpa_gmp on Windows? If everything is OK, so what is the trick? How we can get robust estimates for degPvals=12? @giofantuzzi could you comment, please?

Hi @parfenyev,

Thanks for your message. Unfortunately I cannot replicate your issue: on my machine, the example with default parameters returns U=5.82 with status pdOPT (see the attached log file). For degPvals=10 I consistently find U=5.02, again with status pdOPT. I ran these tests on a Linux machine with MATLAB R2022a.

I suggest checking if you installed sdpa-gmp correctly. Does the solver run correctly if you call it directly from the command line?

If not, you should contact the SDPA-GMP developers directly, as mpYALMIP is meant to simply write the solver input files and read them back into MATLAB.

I hope this helps,
Giovanni
default-output.txt

Thank you for the answer, @giofantuzzi. I can run the solver from the command line. Also, when I have updated gmp from 6.1.2 to 6.2.1 I started to get pdOPT status for default parameters and degPvals=6.

Which parameters (precision and epsilonDash) do you use for degPvals=10 to consistently find U=5.02? What version of gmp is installed on your machine?

Hi @parfenyev,

Here is my setup:
GMP v6.2.1
SDPA-GMP v7.1.3

The parameters file on my machine reads

200     unsigned int    maxIteration;           
1e-25     double          0.0 < epsilonStar;      
1000000     double          0.0 < lambdaStar;       
2     double          1.0 < omegaStar;        
-1e+25     double          lowerBound;             
1e+25     double          upperBound;             
0.1     double          0.0 <= betaStar <  1.0; 
0.2     double          0.0 <= betaBar  <  1.0, betaStar <= betaBar;
0.7     double          0.0 < gammaStar <  1.0; 
1e-10     double          0.0 < epsilonDash;      
100     precision

Hope this helps!