ADMM difficulty in finding active inequality constraints.

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
0
down vote

favorite












I have implemented a convex optimization algorithm based on the ADMM approach for quadratic programming of the form below:



$$ beginarrayll textminimize & x^T Q x + px\ textsubject to & Ax + b = 0\ text & Dx + E <=0endarray$$



the problem is that when some of the inequalities become active in the optimal solution, ADMM get too slow and actually it can't find the active ones, I thought it might be caused by ill-scaled matrices and I used a preconditioning method from "An Operator Splitting Solver for Quadratic Programs" article, but nothing changed and it still cannot find active inequalities. I have used Active-Set method to polish the solution obtained by the ADMM method, but as the active set is not known after running the ADMM algorithm it takes too many iterations to reach the optimal solution, Do you know any method other than the Active-Set method for polishing the solution?










share|cite|improve this question



















  • 1




    Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
    – littleO
    Sep 11 at 0:26










  • @littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
    – MAh2014
    Sep 11 at 6:46










  • For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
    – littleO
    Sep 11 at 6:54










  • @littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
    – MAh2014
    Sep 11 at 7:26











  • @littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
    – MAh2014
    Sep 12 at 12:16














up vote
0
down vote

favorite












I have implemented a convex optimization algorithm based on the ADMM approach for quadratic programming of the form below:



$$ beginarrayll textminimize & x^T Q x + px\ textsubject to & Ax + b = 0\ text & Dx + E <=0endarray$$



the problem is that when some of the inequalities become active in the optimal solution, ADMM get too slow and actually it can't find the active ones, I thought it might be caused by ill-scaled matrices and I used a preconditioning method from "An Operator Splitting Solver for Quadratic Programs" article, but nothing changed and it still cannot find active inequalities. I have used Active-Set method to polish the solution obtained by the ADMM method, but as the active set is not known after running the ADMM algorithm it takes too many iterations to reach the optimal solution, Do you know any method other than the Active-Set method for polishing the solution?










share|cite|improve this question



















  • 1




    Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
    – littleO
    Sep 11 at 0:26










  • @littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
    – MAh2014
    Sep 11 at 6:46










  • For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
    – littleO
    Sep 11 at 6:54










  • @littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
    – MAh2014
    Sep 11 at 7:26











  • @littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
    – MAh2014
    Sep 12 at 12:16












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I have implemented a convex optimization algorithm based on the ADMM approach for quadratic programming of the form below:



$$ beginarrayll textminimize & x^T Q x + px\ textsubject to & Ax + b = 0\ text & Dx + E <=0endarray$$



the problem is that when some of the inequalities become active in the optimal solution, ADMM get too slow and actually it can't find the active ones, I thought it might be caused by ill-scaled matrices and I used a preconditioning method from "An Operator Splitting Solver for Quadratic Programs" article, but nothing changed and it still cannot find active inequalities. I have used Active-Set method to polish the solution obtained by the ADMM method, but as the active set is not known after running the ADMM algorithm it takes too many iterations to reach the optimal solution, Do you know any method other than the Active-Set method for polishing the solution?










share|cite|improve this question















I have implemented a convex optimization algorithm based on the ADMM approach for quadratic programming of the form below:



$$ beginarrayll textminimize & x^T Q x + px\ textsubject to & Ax + b = 0\ text & Dx + E <=0endarray$$



the problem is that when some of the inequalities become active in the optimal solution, ADMM get too slow and actually it can't find the active ones, I thought it might be caused by ill-scaled matrices and I used a preconditioning method from "An Operator Splitting Solver for Quadratic Programs" article, but nothing changed and it still cannot find active inequalities. I have used Active-Set method to polish the solution obtained by the ADMM method, but as the active set is not known after running the ADMM algorithm it takes too many iterations to reach the optimal solution, Do you know any method other than the Active-Set method for polishing the solution?







linear-algebra optimization convex-optimization numerical-linear-algebra numerical-optimization






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Sep 10 at 22:31









Royi

3,16512147




3,16512147










asked Sep 10 at 11:59









MAh2014

1439




1439







  • 1




    Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
    – littleO
    Sep 11 at 0:26










  • @littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
    – MAh2014
    Sep 11 at 6:46










  • For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
    – littleO
    Sep 11 at 6:54










  • @littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
    – MAh2014
    Sep 11 at 7:26











  • @littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
    – MAh2014
    Sep 12 at 12:16












  • 1




    Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
    – littleO
    Sep 11 at 0:26










  • @littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
    – MAh2014
    Sep 11 at 6:46










  • For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
    – littleO
    Sep 11 at 6:54










  • @littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
    – MAh2014
    Sep 11 at 7:26











  • @littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
    – MAh2014
    Sep 12 at 12:16







1




1




Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
– littleO
Sep 11 at 0:26




Have you spent much time tuning the ADMM step size? That can make a big difference. For diagnosing the problem it would be useful to see a plot of the residuals $|Ax^k + b|$ and $sum(max(Dx^k + E,0))$ versus iteration number.
– littleO
Sep 11 at 0:26












@littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
– MAh2014
Sep 11 at 6:46




@littleO Actually, I once used a method to calculate the step size it was something related to the eigenvalues of matrices, but it wasn't helpful that much so I dropped it.
– MAh2014
Sep 11 at 6:46












For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
– littleO
Sep 11 at 6:54




For debugging, you could try solving a version of the problem that uses artificially constructed matrices that are well conditioned. You can see if that works at least.
– littleO
Sep 11 at 6:54












@littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
– MAh2014
Sep 11 at 7:26





@littleO I create my test cases by using matrices with random elements and it works for some range of elements values, but when I change the range of values it gets inaccurate.
– MAh2014
Sep 11 at 7:26













@littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
– MAh2014
Sep 12 at 12:16




@littleO Do you know any method that can be used for polishing the solution obtained by ADMM? because it can obtain the solution with modest accuracy.
– MAh2014
Sep 12 at 12:16















active

oldest

votes











Your Answer




StackExchange.ifUsing("editor", function ()
return StackExchange.using("mathjaxEditing", function ()
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix)
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
);
);
, "mathjax-editing");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "69"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2911843%2fadmm-difficulty-in-finding-active-inequality-constraints%23new-answer', 'question_page');

);

Post as a guest



































active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes















 

draft saved


draft discarded















































 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f2911843%2fadmm-difficulty-in-finding-active-inequality-constraints%23new-answer', 'question_page');

);

Post as a guest













































































這個網誌中的熱門文章

Why am i infinitely getting the same tweet with the Twitter Search API?

Is there any way to eliminate the singular point to solve this integral by hand or by approximations?

Strongly p-embedded subgroups and p-Sylow subgroups.