Skip to Content.
Sympa Menu

cgal-discuss - [cgal-discuss] CGAL QP solver versus Matlab quadprog()

Subject: CGAL users discussion list

List archive

[cgal-discuss] CGAL QP solver versus Matlab quadprog()


Chronological Thread 
  • From: DaniCamps <>
  • To:
  • Subject: [cgal-discuss] CGAL QP solver versus Matlab quadprog()
  • Date: Sat, 29 Sep 2018 10:46:41 -0500 (CDT)
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None ; spf=SoftFail ; spf=Pass
  • Ironport-phdr: 9a23:JfTm+Bxyd7sgdLDXCy+O+j09IxM/srCxBDY+r6Qd1OsVIJqq85mqBkHD//Il1AaPAd2Eraocw8Pt8InYEVQa5piAtH1QOLdtbDQizfssogo7HcSeAlf6JvO5JwYzHcBFSUM3tyrjaRsdF8nxfUDdrWOv5jAOBBr/KRB1JuPoEYLOksi7ze+/94HRbglSmDaxfa55IQmrownWqsQYm5ZpJLwryhvOrHtIeuBWyn1tKFmOgRvy5dq+8YB6/ShItP0v68BPUaPhf6QlVrNYFygpM3o05MLwqxbOSxaE62YGXWUXlhpIBBXF7A3/U5zsvCb2qvZx1S+HNsDwULs6Wymt771zRRHmiCkJKT03/nzYhcNsg6xWuw6hqh5jz4LIfI2ZKORyc6XAdt0aX2pBWcNRWjRPDIymaYsPDvQMMvxdr4nlvFsFsByzChS2C+Ppyz9HmmX53agi0+Q6EgzKwRctH90LsHvOrdX1ML0eXvyyzKnN1DjOae5d1zn66IjNaB8hoPeMUKp2ccXL0kYgDAfFgUuKpYP5ODOV0+IAuHWY4ep4Te+jlmoqpgVrrjWhxcogkIrEi4MPxl3F9Ch0xps+K8eiR05he9GkFYNdtyGEOItyRcMvW2dotSkgxr0Ao5G0ZzMFyJA5yBLFd/OHdI2I7griVOaXPzh4mGpodK+7ihu260StxO7xWtO33VtLtCZIk9jBumgI1xPJ68iHTvV9/l2m2TaKzw3c9/tLIUY1laXHMZEhx6YwloEQvEjeBSL2l0D2g7WXdkUg4OSn9+PnYrD+qp+GK4B0kh3+MrgpmsGnHes4PRIBX2yC9euh1b3j5lH2QKhRjv0tiaTZq5DbJcEDpqGjGQNV04Aj6wy+Dzi8ytgYk2MHfxp5f0eMgIHtfl3PO/vlFuyXglK2kT4tyeqVEKfmB8DhJ37Cu77kZa01v0JVzgs4xNVH/MINIr4EKfP3HET2sYqLXVcCLwWozrO/W51G3YQEVDfXW/7LAObpqVaNo9kXDayJbY4Rtiz6LqF8tfHrhH4931QaePvyhMdFWDWDBv1jZn6hTz/0mN5YSDUFuwM/SKrhj1jQCWcONUb3ZLo143QAMKzjDYrHQdnw0rrdmiGyFJdSayZNDVXeSHo=

Dear all,

I am finding that CGAL returns INFEASIBLE for a problem that Matlab
quadprog() can solve. I do not know if this is normal, or I am making a
mistake somewhere. I leave here the input of the program and would
appreciate if anyone can give me a hint.

BR

Daniel

Input of the program
=============

D
==
D[0][0]=0.000050
D[0][1]=0.000050
D[0][2]=0.000000
D[0][3]=0.000000
D[1][0]=0.000050
D[1][1]=0.000050
D[1][2]=0.000000
D[1][3]=0.000000
D[2][0]=0.000000
D[2][1]=0.000000
D[2][2]=0.000050
D[2][3]=0.000050
D[3][0]=0.000000
D[3][1]=0.000000
D[3][2]=0.000050
D[3][3]=0.000050

c:
==
c[0][0]=-0.002359
c[1][0]=-0.002359
c[2][0]=-0.002399
c[3][0]=-0.002399

A:
==
A[0][0]=1.000000
A[0][1]=0.000000
A[0][2]=1.000000
A[0][3]=0.000000
A[1][0]=0.000000
A[1][1]=1.000000
A[1][2]=0.000000
A[1][3]=1.000000

b:
==
b[0][0]=1.000000
b[1][0]=1.000000

ub:
==
ub[0][0]=0.914808
ub[1][0]=0.933087
ub[2][0]=1.061726
ub[3][0]=1.028364

lb:
==
lb[0][0]=0.000000
lb[1][0]=0.000000
lb[2][0]=0.000000
lb[3][0]=0.000000

The problem has equality constraints. Matlab quadprog() returns the
following solution:

Cost function
========
fval:[0][0]=-0.004717

x:
=
x[0][0]=0.293237
x[1][0]=0.306496
x[2][0]=0.706763
x[3][0]=0.693504

I configure the program in CGAL as follows:

// choose exact integral type
#ifdef CGAL_USE_GMP
#include <CGAL/Gmpzf.h>
typedef CGAL::Gmpzf ET;
#else
#include <CGAL/MP_Float.h>
typedef CGAL::MP_Float ET;
#endif

// program and solution types
typedef CGAL::Quadratic_program<double> Program;
typedef CGAL::Quadratic_program_solution<ET> Solution;

Solution s = CGAL::solve_quadratic_program(qp, ET());







--
Sent from: http://cgal-discuss.949826.n4.nabble.com/



Archive powered by MHonArc 2.6.18.

Top of Page