pao.duality.plugins.create_linear_dual issue when bilinear terms are present
barguel opened this issue · 5 comments
barguel commented
When a term of the force u*x exists in a constraint where u is binary and x is continuous, this term is overlooked when collecting dual data.
whart222 commented
Do we have a simple example that illustrates this? I'm not sure what error I'm looking for.
anyacastillo commented
I need to modify the example in test file *_indexed.py to test. I think that the only modification needed is to make x1, x2 variables part of an Indexed Var type. I can try that later today unless you see where I’m referring to.
Anya
…Sent from my iPhone
On Mar 15, 2020, at 10:30 AM, William Hart <notifications@github.com> wrote:
Do we have a simple example that illustrates this? I'm not sure what error I'm looking for.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub<#21 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ACKZTUYTPY3I6CDYDSHOG2DRHT7DLANCNFSM4LFEUSVQ>.
barguel commented
Would it help if I created a small example?
From: William Hart <notifications@github.com>
Sent: Sunday, March 15, 2020 10:31 AM
To: pyomocommunity/pao <pao@noreply.github.com>
Cc: Arguello, Bryan <barguel@sandia.gov>; Author <author@noreply.github.com>
Subject: [EXTERNAL] Re: [pyomocommunity/pao] pao.duality.plugins.create_linear_dual issue when bilinear terms are present (#21)
Do we have a simple example that illustrates this? I'm not sure what error I'm looking for.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#21 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALMKKGITZMQVZA2NUYMJ55DRHT7DLANCNFSM4LFEUSVQ>.
whart222 commented
Yes, that would be very helpful. I’m not sure how to recreate this issue.
Let’s discuss this afternoon.
From: barguel <notifications@github.com>
Sent: Tuesday, March 17, 2020 10:32 AM
To: pyomocommunity/pao <pao@noreply.github.com>
Cc: Hart, William E <wehart@sandia.gov>; Assign <assign@noreply.github.com>
Subject: [EXTERNAL] Re: [pyomocommunity/pao] pao.duality.plugins.create_linear_dual issue when bilinear terms are present (#21)
Would it help if I created a small example?
From: William Hart <notifications@github.com<mailto:notifications@github.com>>
Sent: Sunday, March 15, 2020 10:31 AM
To: pyomocommunity/pao <pao@noreply.github.com<mailto:pao@noreply.github.com>>
Cc: Arguello, Bryan <barguel@sandia.gov<mailto:barguel@sandia.gov>>; Author <author@noreply.github.com<mailto:author@noreply.github.com>>
Subject: [EXTERNAL] Re: [pyomocommunity/pao] pao.duality.plugins.create_linear_dual issue when bilinear terms are present (#21)
Do we have a simple example that illustrates this? I'm not sure what error I'm looking for.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<#21 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ALMKKGITZMQVZA2NUYMJ55DRHT7DLANCNFSM4LFEUSVQ>.
—
You are receiving this because you were assigned.
Reply to this email directly, view it on GitHub<#21 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AAFRX6GSGVCEJRBKOWAPFJLRH6QXNANCNFSM4LFEUSVQ>.
anyacastillo commented
We are testing the collect_dual_representation() with script: pao/bilevel/tests/test_bilevel_dualize.py to dualize the SubModel in barguel.py. Issues:
- We should throw an error if the constraint bodies have nonlinear terms
- We are currently providing _create_using() for 'pao.duality.linear_dual' with the block to dualize and the fixed variables on that block; however the collect_dual_representation() is not create a constraint and objective expression for one of the variables (e.g., in this model there is the expression u*y in the SubModel where u is fixed; there is no associated constraint in the dual problem or expression in the dual problem's objective).
- We did the dual by hand and noted it in the bottom of pao\bilevel\tests\auxiliary\barguel.py