<< lsqnonneg Symphony Toolbox qpipoptmat >>

Symphony Toolbox >> Symphony Toolbox > qpipopt

qpipopt

Solves a linear quadratic problem.

Calling Sequence

xopt = qpipopt(nbVar,nbCon,Q,p,LB,UB,conMatrix,conLB,conUB)
xopt = qpipopt(nbVar,nbCon,Q,p,LB,UB,conMatrix,conLB,conUB,x0)
xopt = qpipopt(nbVar,nbCon,Q,p,LB,UB,conMatrix,conLB,conUB,x0,param)
[xopt,fopt,exitflag,output,lamda] = qpipopt( ... )

Parameters

nbVar :

a double, number of variables

nbCon :

a double, number of constraints

Q :

a symmetric matrix of double, represents coefficients of quadratic in the quadratic problem.

p :

a vector of double, represents coefficients of linear in the quadratic problem

LB :

a vector of double, contains lower bounds of the variables.

UB :

a vector of double, contains upper bounds of the variables.

conMatrix :

a matrix of double, contains matrix representing the constraint matrix

conLB :

a vector of double, contains lower bounds of the constraints.

conUB :

a vector of double, contains upper bounds of the constraints.

x0 :

a vector of double, contains initial guess of variables.

param :

a list containing the the parameters to be set.

xopt :

a vector of double, the computed solution of the optimization problem.

fopt :

a double, the function value at x.

exitflag :

Integer identifying the reason the algorithm terminated.

output :

Structure containing information about the optimization. Right now it contains number of iteration.

lambda :

Structure containing the Lagrange multipliers at the solution x (separated by constraint type).It contains lower, upper and linear equality, inequality constraints.

Description

Search the minimum of a constrained linear quadratic optimization problem specified by : find the minimum of f(x) such that

We are calling IPOpt for solving the quadratic problem, IPOpt is a library written in C++.

Examples

//Find x in R^6 such that:
conMatrix= [1,-1,1,0,3,1;
-1,0,-3,-4,5,6;
2,5,3,0,1,0
0,1,0,1,2,-1;
-1,0,2,1,1,0];
conLB=[1;2;3;-%inf;-%inf];
conUB = [1;2;3;-1;2.5];
lb=[-1000;-10000; 0; -1000; -1000; -1000];
ub=[10000; 100; 1.5; 100; 100; 1000];
//and minimize 0.5*x'*Q*x + p'*x with
p=[1; 2; 3; 4; 5; 6]; Q=eye(6,6);
nbVar = 6;
nbCon = 5;
x0 = repmat(0,nbVar,1);
param = list("MaxIter", 300, "CpuTime", 100);
[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param)
// Press ENTER to continue

Examples

//Find the value of x that minimize following function
// f(x) = 0.5*x1^2 + x2^2 - x1*x2 - 2*x1 - 6*x2
// Subject to:
// x1 + x2 ≤ 2
// –x1 + 2x2 ≤ 2
// 2x1 + x2 ≤ 3
// 0 ≤ x1, 0 ≤ x2.
Q = [1 -1; -1 2];
p = [-2; -6];
conMatrix = [1 1; -1 2; 2 1];
conUB = [2; 2; 3];
conLB = [-%inf; -%inf; -%inf];
lb = [0; 0];
ub = [%inf; %inf];
nbVar = 2;
nbCon = 3;
[xopt,fopt,exitflag,output,lambda] = qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB)

Authors


Report an issue
<< lsqnonneg Symphony Toolbox qpipoptmat >>