Repository navigation
Optex - Elixir bindings to HiGHS #3163
eduardosalaz
started this conversation in
Show and tell
Replies: 1 comment
|
Putting my JuMP hat on: Niceeeee! The design doc was fun reading. Agreed that persistent solver handles is hard to make work with immutability. You might be interested in ExaModels.jl (https://github.com/exanauts/ExaModels.jl), which is pretty similar to your immutability in practice design. How much is vibe coded? |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Hi all,
I've released Optex, a modeling layer and solver bindings for Elixir / the BEAM (the Erlang VM), with HiGHS as the default and always-available backend. I wanted to flag it here in case it's useful to list alongside the other language interfaces, and to say thanks for a solver that made this straightforward to build against.
HiGHS being MIT-licensed and buildable from source via CMake is what made the precompiled-binary distribution possible at all. The commercial backends can't ship that way, so HiGHS is the reason a new user can install Optex and solve a MILP without a toolchain or a license.
Details that may be relevant to you:
Two things from building against the C API that might interest you, offered in case they're useful rather than as complaints:
MipLogging callback events do not fire while output_flag is false. That's arguably reasonable, but it means a caller who wants programmatic progress data without console output has to enable logging and then suppress it, which took some experimenting to work out. Worth a line in the docs if you agree it's non-obvious.
Separately, I built an MPS emitter specifically so the in-process binding could be cross-checked against the standalone highs binary on identical input, and the results agree. Optex also holds Gurobi, CPLEX, and COPT backends to agreeing objectives and duals on the same models, with HiGHS as the reference. If a third-party consistency check across those four is ever of interest to you, the test suite is there and I'm happy to point at specifics.
Happy to add anything you'd want if you list interfaces somewhere, and glad to hear if I've misused any part of the API.
Eduardo
All reactions