diff options
author | Harpreet | 2015-12-29 00:38:48 +0530 |
---|---|---|
committer | Harpreet | 2015-12-29 00:38:48 +0530 |
commit | eb9ca1191c94059cd7adcf69805906c809fe9712 (patch) | |
tree | f98e728341812b8a0eb46aa4159b062a22225f05 /tests/general_tests/qpipopt | |
parent | 0eee95dfb1edec6ce52ec3065a3adb1bf169c9f9 (diff) | |
download | symphony-eb9ca1191c94059cd7adcf69805906c809fe9712.tar.gz symphony-eb9ca1191c94059cd7adcf69805906c809fe9712.tar.bz2 symphony-eb9ca1191c94059cd7adcf69805906c809fe9712.zip |
Bugs fixed 4
Diffstat (limited to 'tests/general_tests/qpipopt')
25 files changed, 182 insertions, 220 deletions
diff --git a/tests/general_tests/qpipopt/qpipopt_conMatrix1.sce b/tests/general_tests/qpipopt/qpipopt_A1.sce index 96ee3eb..e78326d 100644 --- a/tests/general_tests/qpipopt/qpipopt_conMatrix1.sce +++ b/tests/general_tests/qpipopt/qpipopt_A1.sce @@ -1,7 +1,7 @@ //Find x in R^6 such that: // Check if a user gives unequal number of constraints as given by him -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1;]; @@ -9,15 +9,17 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The number of constraints is not equal to the number of constraint given i.e. 5 //at line 181 of function qpipopt called by : //[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_conMatrix2.sce b/tests/general_tests/qpipopt/qpipopt_A2.sce index f5e3106..1392cb1 100644 --- a/tests/general_tests/qpipopt/qpipopt_conMatrix2.sce +++ b/tests/general_tests/qpipopt/qpipopt_A2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: //Check for the size of constraints -conMatrix= [-1,1,0,3,1; +A= [-1,1,0,3,1; -1,0,-3,-4,5; 2,5,3,0,1 0,1,0,1,2; @@ -9,15 +9,17 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The size of constraints is not equal to the number of variables //at line 175 of function qpipopt called by : //[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_LB1.sce b/tests/general_tests/qpipopt/qpipopt_LB1.sce index b2b92ce..f87ada4 100644 --- a/tests/general_tests/qpipopt/qpipopt_LB1.sce +++ b/tests/general_tests/qpipopt/qpipopt_LB1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check if the user gives lower bound unequal to the number of variables -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,17 @@ conLB=[1;2;3;-%inf;-%inf]; conUB = [1;2;3;-1;2.5]; lb=[-1000;-10000; 0; -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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The Lower Bound is not equal to the number of variables -//at line 191 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 236 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_LB2.sce b/tests/general_tests/qpipopt/qpipopt_LB2.sce deleted file mode 100644 index e6df705..0000000 --- a/tests/general_tests/qpipopt/qpipopt_LB2.sce +++ /dev/null @@ -1,23 +0,0 @@ -//Find x in R^6 such that: -// Check if the user gives lower bound as a row vector -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) - -//Error -//qpipopt: The Lower Bound should be a column vector -//at line 188 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) diff --git a/tests/general_tests/qpipopt/qpipopt_Q1.sce b/tests/general_tests/qpipopt/qpipopt_Q1.sce index 06cceea..94e4d7d 100644 --- a/tests/general_tests/qpipopt/qpipopt_Q1.sce +++ b/tests/general_tests/qpipopt/qpipopt_Q1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: -// Check for the size of Q matrix -conMatrix= [1,-1,1,0,3,1; +// Check for the size of H matrix +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,16 +9,18 @@ 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(5,5); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(5,5); 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) //error -// -//qpipopt: The Size of Q is not equal to the number of variables -//at line 158 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//qpipopt: The Size of H is not equal to the number of variables +//at line 210 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_Q2.sce b/tests/general_tests/qpipopt/qpipopt_Q2.sce index ea23ee4..f10b7c5 100644 --- a/tests/general_tests/qpipopt/qpipopt_Q2.sce +++ b/tests/general_tests/qpipopt/qpipopt_Q2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: -// Check for the Q to be a symmetric matrix -conMatrix= [1,-1,1,0,3,1; +// Check for the H to be a symmetric matrix +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,16 @@ 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,5); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(6,5); 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) //Error -//qpipopt: Q is not a symmetric matrix -//at line 152 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//qpipopt: H is not a symmetric matrix +//at line 204 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) diff --git a/tests/general_tests/qpipopt/qpipopt_UB1.sce b/tests/general_tests/qpipopt/qpipopt_UB1.sce index 155c695..7422085 100644 --- a/tests/general_tests/qpipopt/qpipopt_UB1.sce +++ b/tests/general_tests/qpipopt/qpipopt_UB1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: - // Check if the user gives unequal size of Upper Bound as of the number of variables -conMatrix= [1,-1,1,0,3,1; +// Check if the user gives unequal size of Upper Bound as of the number of variables +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,17 @@ 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]; -//and minimize 0.5*x'*Q*x + p'*x with -p=[1; 2; 3; 4; 5; 6]; Q=eye(6,6); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The Upper Bound is not equal to the number of variables -//at line 201 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 242 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_UB2.sce b/tests/general_tests/qpipopt/qpipopt_UB2.sce deleted file mode 100644 index a4f5270..0000000 --- a/tests/general_tests/qpipopt/qpipopt_UB2.sce +++ /dev/null @@ -1,23 +0,0 @@ -//Find x in R^6 such that: -// Check if the user gives Upper Bound matrix as a row vector -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) - -//Error -//qpipopt: The Upper Bound should be a column vector -//at line 224 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) diff --git a/tests/general_tests/qpipopt/qpipopt_conLB1.sce b/tests/general_tests/qpipopt/qpipopt_conLB1.sce index 09105e7..f01a32e 100644 --- a/tests/general_tests/qpipopt/qpipopt_conLB1.sce +++ b/tests/general_tests/qpipopt/qpipopt_conLB1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Checking if a user gives less or number of constraints Lower Bound -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ conLB=[1;2;3;-%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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The Lower Bound of constraints is not equal to the number of constraints -//at line 211 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 248 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_conLB2.sce b/tests/general_tests/qpipopt/qpipopt_conLB2.sce deleted file mode 100644 index d0236c0..0000000 --- a/tests/general_tests/qpipopt/qpipopt_conLB2.sce +++ /dev/null @@ -1,23 +0,0 @@ -//Find x in R^6 such that: -// Checking if a user gives a column vector -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) - -//Error -//qpipopt: The Lower Bound should be a column vector -//at line 208 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) diff --git a/tests/general_tests/qpipopt/qpipopt_conUB1.sce b/tests/general_tests/qpipopt/qpipopt_conUB1.sce index 2c4bfa6..ab7bfe6 100644 --- a/tests/general_tests/qpipopt/qpipopt_conUB1.sce +++ b/tests/general_tests/qpipopt/qpipopt_conUB1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check for the Upper Bound of constraints is which should be equal to the number of constraints -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,17 @@ conLB=[1;2;3;-%inf;-%inf]; conUB = [1;2;3;-1]; 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: The Upper Bound of constraints is not equal to the number of constraints //at line 221 of function qpipopt called by : //[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_conUB2.sce b/tests/general_tests/qpipopt/qpipopt_conUB2.sce index 33b3f2d..9aab4a8 100644 --- a/tests/general_tests/qpipopt/qpipopt_conUB2.sce +++ b/tests/general_tests/qpipopt/qpipopt_conUB2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check for the Upper Bound of the constraints which should be a column vector -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; f=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) //Error //qpipopt: The Upper Bound should be a column vector //at line 218 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_infeasible.sci b/tests/general_tests/qpipopt/qpipopt_infeasible.sci new file mode 100644 index 0000000..49bb233 --- /dev/null +++ b/tests/general_tests/qpipopt/qpipopt_infeasible.sci @@ -0,0 +1,33 @@ +// qpipopt infeasibility test + +H = [2 0;0 8]; +f = [0 -32]; +A = [-1 0; 0, -1; 1 1]; +conUB = [-6 -6 11]; +conLB = -1*[%inf %inf %inf]; +nbVar = 2; +nbCon = 3; +ub = [%inf %inf]; +lb = -1*ub; + +// Output +//Converged to a point of local infeasibility. +// lamda = +// +// lower: [0x0 constant] +// upper: [0x0 constant] +// constraint: [0x0 constant] +// output = +// +// Iterations: 0 +// exitflag = +// +// 5 +// fopt = +// +// 0. +// xopt = +// +// [] + +[xopt,fopt,exitflag,output,lamda] = qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB) diff --git a/tests/general_tests/qpipopt/qpipopt_input.sce b/tests/general_tests/qpipopt/qpipopt_input.sce index 08bd468..520ad97 100644 --- a/tests/general_tests/qpipopt/qpipopt_input.sce +++ b/tests/general_tests/qpipopt/qpipopt_input.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check for the number of inputs -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,16 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) //Error //qpipopt: Unexpected number of input arguments : 8 provided while should be 9, 10 or 11 //at line 91 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB) +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB) diff --git a/tests/general_tests/qpipopt/qpipopt_input2.sce b/tests/general_tests/qpipopt/qpipopt_input2.sce index decc8a8..70c2e8d 100644 --- a/tests/general_tests/qpipopt/qpipopt_input2.sce +++ b/tests/general_tests/qpipopt/qpipopt_input2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check if the number of input is more -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ 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,5); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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,[]) //Error //qpipopt: Unexpected number of input arguments : 12 provided while should be 9, 10 or 11 //at line 91 of function qpipopt called by : //[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param,[]) + + diff --git a/tests/general_tests/qpipopt/qpipopt_logical_1.sce b/tests/general_tests/qpipopt/qpipopt_logical_1.sce index 03853a7..52d5493 100644 --- a/tests/general_tests/qpipopt/qpipopt_logical_1.sce +++ b/tests/general_tests/qpipopt/qpipopt_logical_1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // A simple example with constraints -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,12 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=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) - -disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda) //Output // @@ -49,3 +46,9 @@ disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda // - 3.1155623 // // xopt + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param); + +disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda) + + diff --git a/tests/general_tests/qpipopt/qpipopt_logical_2.sce b/tests/general_tests/qpipopt/qpipopt_logical_2.sce index 933508b..a61e416 100644 --- a/tests/general_tests/qpipopt/qpipopt_logical_2.sce +++ b/tests/general_tests/qpipopt/qpipopt_logical_2.sce @@ -1,16 +1,14 @@ // A simple example without constraints -conMatrix= []; +A= []; conLB=[]; conUB = []; lb=[]; ub=[]; -p=[2 -35 -47]'; -Q =[5 -2 -1; -2 4 3; -1 3 5]; +f=[2 -35 -47]'; +H =[5 -2 -1; -2 4 3; -1 3 5]; nbVar = 3; nbCon = 0; -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB) -disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda) //Output @@ -40,3 +38,8 @@ disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda // 7. // // xopt + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB); +disp("xopt",xopt,"fopt",fopt,"exitflag",exitflag,"output",output,"lambda",lambda); + + diff --git a/tests/general_tests/qpipopt/qpipopt_options1.sce b/tests/general_tests/qpipopt/qpipopt_options1.sce index 6cebc51..23d6b2b 100644 --- a/tests/general_tests/qpipopt/qpipopt_options1.sce +++ b/tests/general_tests/qpipopt/qpipopt_options1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: //Check if the user gives uneven number of parameters -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,17 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); nbVar = 6; nbCon = 5; x0 = repmat(0,nbVar,1); param = list("MaxIter", "CpuTime", 100); -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) //Error //qpipopt: Size of parameters should be even -//at line 120 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 145 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_options2.sce b/tests/general_tests/qpipopt/qpipopt_options2.sce index ba5208b..2c07536 100644 --- a/tests/general_tests/qpipopt/qpipopt_options2.sce +++ b/tests/general_tests/qpipopt/qpipopt_options2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check if the user gives different parameter other than predefined -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); nbVar = 6; nbCon = 5; x0 = repmat(0,nbVar,1); param = list("MaxIter", 300, "Time", 100); -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) //Error //qpipopt: Unrecognized parameter name 'Time'. -//at line 137 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 162 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_options3.sce b/tests/general_tests/qpipopt/qpipopt_options3.sce index b267d77..1612c21 100644 --- a/tests/general_tests/qpipopt/qpipopt_options3.sce +++ b/tests/general_tests/qpipopt/qpipopt_options3.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check if the user for a list for the param -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,17 @@ 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); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6]; H=eye(6,6); nbVar = 6; nbCon = 5; x0 = repmat(0,nbVar,1); param = ["MaxIter", "CpuTime"]; -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) //Error //qpipopt: param should be a list -//at line 120 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//at line 140 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_p1.sce b/tests/general_tests/qpipopt/qpipopt_p1.sce index 2e9ed37..4d05f47 100644 --- a/tests/general_tests/qpipopt/qpipopt_p1.sce +++ b/tests/general_tests/qpipopt/qpipopt_p1.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: // Check if the user gives unequal size of 'p' as of the number of variables -conMatrix= [1,-1,1,0,3,1; +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ 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]; Q=eye(6,6); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5; 6; 7]; H=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) //Error //qpipopt: The Size of p is not equal to the number of variables //at line 168 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_p2.sce b/tests/general_tests/qpipopt/qpipopt_p2.sce index 2e9ed37..2a58870 100644 --- a/tests/general_tests/qpipopt/qpipopt_p2.sce +++ b/tests/general_tests/qpipopt/qpipopt_p2.sce @@ -1,6 +1,6 @@ //Find x in R^6 such that: -// Check if the user gives unequal size of 'p' as of the number of variables -conMatrix= [1,-1,1,0,3,1; +// Check if the user gives unequal size of 'f' as of the number of variables +A= [1,-1,1,0,3,1; -1,0,-3,-4,5,6; 2,5,3,0,1,0 0,1,0,1,2,-1; @@ -9,15 +9,18 @@ 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]; Q=eye(6,6); +//and minimize 0.5*x'*H*x + f'*x with +f=[1; 2; 3; 4; 5]; H=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) //Error -//qpipopt: The Size of p is not equal to the number of variables -//at line 168 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) +//qpipopt: The Size of f is not equal to the number of variables +//at line 216 of function qpipopt called by : +//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,H,f,lb,ub,A,conLB,conUB,x0,param) + + diff --git a/tests/general_tests/qpipopt/qpipopt_x0.sce b/tests/general_tests/qpipopt/qpipopt_x0.sce deleted file mode 100644 index ef69b3d..0000000 --- a/tests/general_tests/qpipopt/qpipopt_x0.sce +++ /dev/null @@ -1,23 +0,0 @@ -//Find x in R^6 such that: -// Check if the user gives initial guess matrix as a row vector -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,1,nbVar); -param = list("MaxIter", 300, "CpuTime", 100); -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) - -//Error -//qpipopt: The initial guess should be a column vector -//at line 228 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) diff --git a/tests/general_tests/qpipopt/qpipopt_x01.sce b/tests/general_tests/qpipopt/qpipopt_x01.sce index 6a57269..bb37c50 100644 --- a/tests/general_tests/qpipopt/qpipopt_x01.sce +++ b/tests/general_tests/qpipopt/qpipopt_x01.sce @@ -15,7 +15,6 @@ nbVar = 6; nbCon = 5; x0 = repmat(0,5,1); param = list("MaxIter", 300, "CpuTime", 100); -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) //Error // WARNING: qpipopt: Ignoring initial guess of variables as it is not equal to the number of variables @@ -41,3 +40,6 @@ param = list("MaxIter", 300, "CpuTime", 100); // - 4.9884023 // 0.6054943 // - 3.1155623 + +[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) + diff --git a/tests/general_tests/qpipopt/qpipopt_x02.sce b/tests/general_tests/qpipopt/qpipopt_x02.sce deleted file mode 100644 index 52b0b89..0000000 --- a/tests/general_tests/qpipopt/qpipopt_x02.sce +++ /dev/null @@ -1,23 +0,0 @@ -//Find x in R^6 such that: -// Check if the user gives unequal size of initial guess as of the number of variables -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,5,1); -param = list("MaxIter", 300, "CpuTime", 100); -[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) - -//Error -//qpipopt: The initial guess of variables is not equal to the number of variables -//at line 231 of function qpipopt called by : -//[xopt,fopt,exitflag,output,lambda]=qpipopt(nbVar,nbCon,Q,p,lb,ub,conMatrix,conLB,conUB,x0,param) |