Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIP multiple constraints and small violation #92

Open
evrenmturan opened this issue Jun 23, 2021 · 4 comments
Open

SIP multiple constraints and small violation #92

evrenmturan opened this issue Jun 23, 2021 · 4 comments

Comments

@evrenmturan
Copy link
Contributor

evrenmturan commented Jun 23, 2021

Hi!
I have been trying to solve a problem with multiple SIP constraints with EAGO using SIPResRev().

  1. What is the recommended way to use multiple SIP constraints? I have been writing it as gSIP(x,p)=max(con1,con2). However I think this is leading to a violation of a constraint as at one p con1 =0 while con2 >0 .
  2. Does SIPHybrid not work? At some iteration I get the following, which seems to me that something is going wrong.

First Solution Found at Node -1
LBD = Inf
UBD = Inf
Solution is :

-----------------------------------------------------------------------------------------------------------------------------
|  Iteration  |     Nodes    | Lower Bound  |  Upper Bound  |      Gap     |     Ratio    |     Time     |    Time Left   |
-----------------------------------------------------------------------------------------------------------------------------
|         1000  |         1001 |     0.100E-1 |          Inf  |         Inf  |          Inf |     0.918E-1 |       0.600E3  |
@mewilhel
Copy link
Member

@evrenmturan Thanks for the feedback!

  1. The routines accept either a function gSIP as an argument or a vector of functions gSIP = [gSIP1, gSIP2, gSIP3,...]. So that's one option.
  2. We've done fairly minimal testing on SIPHybrid, so it's quite possible that there is currently an error in the algorithm. Would you mind sharing the example that produced that result? I'd like to get this bug resolved before I push a new release in a couple days and have a reproducible example on hand will make that much easier.

@evrenmturan
Copy link
Contributor Author

  1. Ah okay, I didn't notice the vector of functions was an option, thank you.
  2. I'll try put together a MWE to share soon.

@evrenmturan
Copy link
Contributor Author

evrenmturan commented Jun 25, 2021

A note on error messages - I don't know if this would be important to you but when running some test problems from Watson (1983) the SIPResult does not report that there was an issue.

I think that this test problem gives odd behaviour (have comments explaining). Or at least, I don't immediately understand why the error is not being caught and reported (even though the issue is obvious to notice when typing the problem).

On Test problem 5 there's a similar issue (I think?). No errors are reported but when using
x_l = Float64[-1000.0, -1000.0,-1000.0] x_u = Float64[1000.0, 1000.0,1000.0]
If you look at the the iteration messages it's clear that there was an issue "Error: basis matrix is singular to working precision (cond = 2.31e+217)", but when just looking at the final printout the incorrect solution is reported without an error.
SIPResult(1, 1, 4.320798635665406, 4.320798635665406, true, [1.0000918203231945, -0.011069365269669004, -0.48894097011504023], [0.0], 3.1574246883392334)

@evrenmturan
Copy link
Contributor Author

With regards to the original point 1. I changed to using a vector of functions but still have constraint violation despite the algorithm reporting that it has converged - code, with example of violation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants