-
Notifications
You must be signed in to change notification settings - Fork 4
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
MathProgBase interface #12
Comments
I was just talking to @jakebolewski at lunch about SMT, really cool to see this. My understanding is limited too, I didn't realize they could do nonlinear math on reals until I saw this. |
It can solve a slightly relaxed version of your problem to a global minimum. Your problem can be an arbitrary boolean combination of arbitrary nonlinear functions, both continuous and discontinuous. DReal is a satisfiability solver. You can (and we do) view optimization as a satisfiability problem. That is, an optimisation problem has the form does there exist some using DReal
f(x) = x^2+cos(x)
x = Var(Float64)
y = ForallVar(Float64)
add!(f(x) <= f(y))
is_satisfiable()
optimal_sol = model(x) There are a few other ways to do it. If you use the As @IainNZ just said, most SMT solvers are linear, we are working on nonlinear solving. One other difference is that the constraints you can compose are much more general than you normally think of in constrained optimization. Of course this is all in principle, performance will depend on the problem, and there are surely many bugs :-). |
This is very cool indeed. Are you translating from MathProgBase format into the standard SMT-LIB format that Z3 and Gecode could also use? Extending the MPB nonlinear API to include logical constraints, then teaching JuMP or an extension to handle them probably wouldn't be too hard. |
No I'm using the DReal c-api. I get the expression using https://github.com/dreal/DReal.jl/blob/master/src/SolverInterface.jl#L94 |
Hi All, Thanks a lot for your interest. Indeed, SMT with nonlinear real constraints http://dl.acm.org/citation.cfm?doid=2562059.2562139 The optimization solver is an on-going work right now and we'd love to hear On Fri, Jul 10, 2015 at 1:03 AM, Zenna Tavares notifications@github.com
|
Very cool to see this hooked up through MathProgBase. I'm not familiar at all with SMT solvers, could you explain or point me to a reference on which classes of problems DReal can solve? Can it solve nonconvex problems to a global optimum?
Also, let us know of any difficulties you've had with the MathProgBase interface and if there are structures which you'd like to communicate which aren't currently supported. I'm guessing that the boolean logic aspect is missing.
CC @IainNZ @joehuchette @tkelman
The text was updated successfully, but these errors were encountered: