Measuring infeasibility in convex optimization, relations with dual problem
$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!
convex-optimization linear-programming duality-theorems quadratic-programming
$endgroup$
add a comment |
$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!
convex-optimization linear-programming duality-theorems quadratic-programming
$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
add a comment |
$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!
convex-optimization linear-programming duality-theorems quadratic-programming
$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
convex-optimization linear-programming duality-theorems quadratic-programming
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
add a comment |
$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
add a comment |
1 Answer
1
active
oldest
votes
$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}
$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
|
show 3 more comments
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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}
$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
|
show 3 more comments
$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}
$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
|
show 3 more comments
$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}
$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}
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
|
show 3 more comments
$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
|
show 3 more comments
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
$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