pietrobraione / sushi

The SUSHI test case generator

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Replace GLPK with ojAlgo

pietrobraione opened this issue · comments

Ideally SUSHI should be a pure Java application. Currently the only native part is GLPK, and apparently the only pure Java replacement that is actively developed is ojAlgo (http://ojalgo.org/). Evaluate whether it is the case to replace GLPK with ojAlgo.

Is it an LP or a MIP? How large? I have no experience with GLPK, but ojAlgo is far from as fast as CPLEX, GUROBI or MOSEK for larger/harder problems.

One good thing with ojAlgo is that you can plug in and use other solvers. The are already integrations for CPLEX, GUROBI and MOSEK. Writing one for GLPK should be easy. This way you can switch between using different solvers without changing any code.

It is a MIP with binary variables, an instance of a minimal coverage problem. Its description is here. I would not give data about how large the problem should be, because it all depends on the software SUSHI is generating tests for, and of course the larger the better. Right now I would be happy with an order of magnitude of tens from hundred of thousand of variables and hundred to thousand of linear constraint. Consider that solving the MIP is not the slowest part of the procedure: symbolic execution and genetic test generation are waaaay slower and dominate completely the execution time of SUSHI. The fact that ojAlgo can also be used as an interface to other solvers is definitely a plus.

Integrated ojAlgo with commit ebe9b5a.