Hello everyone,
For the last few months, I’ve been working on Solverl, Erlang/Elixir interface to MiniZinc and a supplemental project, SolverView,
which is a web application based on Phoenix/LiveView.
MiniZinc is a generic framework for solving optimization problems typical for Operations Research.
IBM CPLEX,
Google OR-Tools and many other popular OR products have an interface to MiniZinc.
So having Elixir interface to MiniZinc opens up a gateway to industrial-strength optimization tools.
But there is more. Currently, MiniZinc team hosts MiniZinc Python project, the idea is to assist
the solving of complex OR problems through incremental solving techniques driven by the Python code .
Spending quite a bit of time with MiniZinc Python, I’m confident that the similar Elixir-based product will be a much better option. This is mainly due to better asynchronicity/concurrency support.
Solverl already matches the most significant features of MiniZinc Python, and some Solverl features are not available in MiniZinc Python.
SolverView was started as a set of examples that visualize the solving process using Phoenix/LiveView.
You can try it by using Docker image:
docker run -p 4000:4000 bokner/solverview
I have several plans for extending it, one is to build Web IDE for MiniZinc,
with pluggable Elixir components for visualization, post-processing of solutions etc.
I’m very new to Phoenix/LiveView, and web design is not my thing yet, so any advice and/or contribution would help tremendously.
In particular, if anyone is willing to help with Web IDE pages, please let me know.