Measuring infeasibility in convex optimization, relations with dual problem












0












$begingroup$


A question regarding convex optimization and (maybe) duality.



I have a problem in the form
begin{align}
x^* = mathrm{arg} min_x f(x) quad text{s.t.} quad A x leq b, C x = d,
end{align}

where $f$ is either quadratic or, if it makes things easier, linear. Let's also assume that $P = { x mid A x leq b }$ is bounded and not empty.



I would like to design an auxiliary optimization problem that:




  • if the original problem is feasible returns the solution $x^*$ of the original problem,

  • if the original problem is infeasible returns the minimum perturbation (according to some norm) $e^*$ that I should add to $d$ to make the problem feasible (remember $P neq emptyset$).


A naive approach could be, for example, something like
begin{align}
min_{x,e} f(x) + M | e | quad text{s.t.} quad A x leq b, C x = d + e,
end{align}

where $M$ is "big enough". This however is very unpractical since the high value of $M$ would lead to numeric problems.



Do you have any better idea?



Do you think duality can help in some way here?
If I solve the dual of the original problem, and I detect unboundedness (we know that, under these assumptions, the primal infeasible implies the dual unbounded) can I elaborate the result to get something related to $e^*$?
For example, could an extreme ray of the dual feasible set help?



Thank you very much!










share|cite|improve this question









$endgroup$












  • $begingroup$
    If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:03










  • $begingroup$
    You could add a binary variable to deal with infeasibility, but I doubt it is faster.
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:17










  • $begingroup$
    In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:20










  • $begingroup$
    This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:23


















0












$begingroup$


A question regarding convex optimization and (maybe) duality.



I have a problem in the form
begin{align}
x^* = mathrm{arg} min_x f(x) quad text{s.t.} quad A x leq b, C x = d,
end{align}

where $f$ is either quadratic or, if it makes things easier, linear. Let's also assume that $P = { x mid A x leq b }$ is bounded and not empty.



I would like to design an auxiliary optimization problem that:




  • if the original problem is feasible returns the solution $x^*$ of the original problem,

  • if the original problem is infeasible returns the minimum perturbation (according to some norm) $e^*$ that I should add to $d$ to make the problem feasible (remember $P neq emptyset$).


A naive approach could be, for example, something like
begin{align}
min_{x,e} f(x) + M | e | quad text{s.t.} quad A x leq b, C x = d + e,
end{align}

where $M$ is "big enough". This however is very unpractical since the high value of $M$ would lead to numeric problems.



Do you have any better idea?



Do you think duality can help in some way here?
If I solve the dual of the original problem, and I detect unboundedness (we know that, under these assumptions, the primal infeasible implies the dual unbounded) can I elaborate the result to get something related to $e^*$?
For example, could an extreme ray of the dual feasible set help?



Thank you very much!










share|cite|improve this question









$endgroup$












  • $begingroup$
    If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:03










  • $begingroup$
    You could add a binary variable to deal with infeasibility, but I doubt it is faster.
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:17










  • $begingroup$
    In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:20










  • $begingroup$
    This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:23
















0












0








0





$begingroup$


A question regarding convex optimization and (maybe) duality.



I have a problem in the form
begin{align}
x^* = mathrm{arg} min_x f(x) quad text{s.t.} quad A x leq b, C x = d,
end{align}

where $f$ is either quadratic or, if it makes things easier, linear. Let's also assume that $P = { x mid A x leq b }$ is bounded and not empty.



I would like to design an auxiliary optimization problem that:




  • if the original problem is feasible returns the solution $x^*$ of the original problem,

  • if the original problem is infeasible returns the minimum perturbation (according to some norm) $e^*$ that I should add to $d$ to make the problem feasible (remember $P neq emptyset$).


A naive approach could be, for example, something like
begin{align}
min_{x,e} f(x) + M | e | quad text{s.t.} quad A x leq b, C x = d + e,
end{align}

where $M$ is "big enough". This however is very unpractical since the high value of $M$ would lead to numeric problems.



Do you have any better idea?



Do you think duality can help in some way here?
If I solve the dual of the original problem, and I detect unboundedness (we know that, under these assumptions, the primal infeasible implies the dual unbounded) can I elaborate the result to get something related to $e^*$?
For example, could an extreme ray of the dual feasible set help?



Thank you very much!










share|cite|improve this question









$endgroup$




A question regarding convex optimization and (maybe) duality.



I have a problem in the form
begin{align}
x^* = mathrm{arg} min_x f(x) quad text{s.t.} quad A x leq b, C x = d,
end{align}

where $f$ is either quadratic or, if it makes things easier, linear. Let's also assume that $P = { x mid A x leq b }$ is bounded and not empty.



I would like to design an auxiliary optimization problem that:




  • if the original problem is feasible returns the solution $x^*$ of the original problem,

  • if the original problem is infeasible returns the minimum perturbation (according to some norm) $e^*$ that I should add to $d$ to make the problem feasible (remember $P neq emptyset$).


A naive approach could be, for example, something like
begin{align}
min_{x,e} f(x) + M | e | quad text{s.t.} quad A x leq b, C x = d + e,
end{align}

where $M$ is "big enough". This however is very unpractical since the high value of $M$ would lead to numeric problems.



Do you have any better idea?



Do you think duality can help in some way here?
If I solve the dual of the original problem, and I detect unboundedness (we know that, under these assumptions, the primal infeasible implies the dual unbounded) can I elaborate the result to get something related to $e^*$?
For example, could an extreme ray of the dual feasible set help?



Thank you very much!







convex-optimization linear-programming duality-theorems quadratic-programming






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Nov 28 '18 at 18:55









Tobia MarcucciTobia Marcucci

354112




354112












  • $begingroup$
    If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:03










  • $begingroup$
    You could add a binary variable to deal with infeasibility, but I doubt it is faster.
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:17










  • $begingroup$
    In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:20










  • $begingroup$
    This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:23




















  • $begingroup$
    If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:03










  • $begingroup$
    You could add a binary variable to deal with infeasibility, but I doubt it is faster.
    $endgroup$
    – LinAlg
    Nov 28 '18 at 19:17










  • $begingroup$
    In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:20










  • $begingroup$
    This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:23


















$begingroup$
If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
$endgroup$
– LinAlg
Nov 28 '18 at 19:03




$begingroup$
If the primal is infeasible, the dual may also be infeasible. Why not solve 2 problems?
$endgroup$
– LinAlg
Nov 28 '18 at 19:03












$begingroup$
You could add a binary variable to deal with infeasibility, but I doubt it is faster.
$endgroup$
– LinAlg
Nov 28 '18 at 19:17




$begingroup$
You could add a binary variable to deal with infeasibility, but I doubt it is faster.
$endgroup$
– LinAlg
Nov 28 '18 at 19:17












$begingroup$
In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:20




$begingroup$
In the quadratic case, the dual is always feasible, but in general you are right: the dual can also be infeasible. I guess solving two problems is always an option. I wanted to understand if I'm trowing away some useful information from the solution of the dual of the original problem.
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:20












$begingroup$
This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:23






$begingroup$
This would be actually a lower level QP/LP solver of a branch and bound code for mixed integer programming (reason why I have the solution of the dual almost for free). Yes, the binary would work, but in practice it's equivalent to solve two problems...
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:23












1 Answer
1






active

oldest

votes


















0












$begingroup$

Well, if the original problem is infeasible, you can just solve for
begin{align}
min_{x,e} |e|: & \
Ax&le b, \
e &= d-Cx.
end{align}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:25










  • $begingroup$
    You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:36










  • $begingroup$
    I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:44










  • $begingroup$
    Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:56








  • 1




    $begingroup$
    It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 20:33











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',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
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%2f3017547%2fmeasuring-infeasibility-in-convex-optimization-relations-with-dual-problem%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0












$begingroup$

Well, if the original problem is infeasible, you can just solve for
begin{align}
min_{x,e} |e|: & \
Ax&le b, \
e &= d-Cx.
end{align}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:25










  • $begingroup$
    You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:36










  • $begingroup$
    I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:44










  • $begingroup$
    Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:56








  • 1




    $begingroup$
    It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 20:33
















0












$begingroup$

Well, if the original problem is infeasible, you can just solve for
begin{align}
min_{x,e} |e|: & \
Ax&le b, \
e &= d-Cx.
end{align}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:25










  • $begingroup$
    You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:36










  • $begingroup$
    I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:44










  • $begingroup$
    Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:56








  • 1




    $begingroup$
    It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 20:33














0












0








0





$begingroup$

Well, if the original problem is infeasible, you can just solve for
begin{align}
min_{x,e} |e|: & \
Ax&le b, \
e &= d-Cx.
end{align}






share|cite|improve this answer









$endgroup$



Well, if the original problem is infeasible, you can just solve for
begin{align}
min_{x,e} |e|: & \
Ax&le b, \
e &= d-Cx.
end{align}







share|cite|improve this answer












share|cite|improve this answer



share|cite|improve this answer










answered Nov 28 '18 at 19:11









HansHans

4,98021032




4,98021032












  • $begingroup$
    Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:25










  • $begingroup$
    You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:36










  • $begingroup$
    I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:44










  • $begingroup$
    Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:56








  • 1




    $begingroup$
    It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 20:33


















  • $begingroup$
    Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:25










  • $begingroup$
    You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:36










  • $begingroup$
    I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 19:44










  • $begingroup$
    Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
    $endgroup$
    – Hans
    Nov 28 '18 at 19:56








  • 1




    $begingroup$
    It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
    $endgroup$
    – Tobia Marcucci
    Nov 28 '18 at 20:33
















$begingroup$
Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:25




$begingroup$
Unfortunately I do not know a priori if the problem is infeasible. Your approach would then boil down to just solve two problems, right?
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:25












$begingroup$
You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
$endgroup$
– Hans
Nov 28 '18 at 19:36




$begingroup$
You will have to first check the feasibility of the original problem anyway. Besides, this new problem is always feasible.
$endgroup$
– Hans
Nov 28 '18 at 19:36












$begingroup$
I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:44




$begingroup$
I do not agree that I have to first check the feasibility of the original problem anyway: the example I described with the big M in the objective function is a single problem, where I do not need that check first. No?
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 19:44












$begingroup$
Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
$endgroup$
– Hans
Nov 28 '18 at 19:56






$begingroup$
Your requirement is to solve for the original problem if the domain is feasible. Your objective function with the big M violates that requirement. The bigger the M is, the further away your solution deviates from the true solution, when the original problem is feasible. My formulation, on the other hand, fulfills exactly your two requirements.
$endgroup$
– Hans
Nov 28 '18 at 19:56






1




1




$begingroup$
It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 20:33




$begingroup$
It's clear that solving two problems as you are suggesting would work: my question is in fact how to avoid that...
$endgroup$
– Tobia Marcucci
Nov 28 '18 at 20:33


















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3017547%2fmeasuring-infeasibility-in-convex-optimization-relations-with-dual-problem%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Plaza Victoria

In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...