Week 9 - OptSolvX Integration into SBSCL and Bridge Preparation

In the past week, I focused on implementing the OptSolvX integration in SBSCL, adding tests and documentation, and preparing the groundwork for the SBML-to-LP bridge.

Progress:

  • SBSCL – OptSolvX Adapter:

    • Implemented org.simulator.optsolvx.OptSolvXSolverAdapter (implements LPSolverAdapter) with checks for model != null and model.isBuilt().

    • Added debug logging via MessageFormat, including before/after states and runtime measurement.

    • Solver calls are delegated to the existing CommonsMathSolver.

  • New Demo in SBSCL:

    • Added org.simulator.optsolvx.OptSolvXDemo running a minimal LP example (max x + y, with constraints x + 2y ≤ 4 and x ≤ 3).

    • Expected result: x = 3.0, y = 0.5, objective 3.5, feasible true.

  • New Tests:

    • Created OptSolvXSolverAdapterTest covering:

      • Null model handling (IllegalArgumentException)

      • Build requirement check (IllegalStateException)

      • Minimization case with equality and bounds (x = 0, y = 5, objective 5).

    • All double literals explicitly marked with d suffix for clarity.

  • Documentation:

    • Extended SBSCL README with “Using OptSolvX (LP) in SBSCL” section, explaining how to run the demo, enable debug mode, and use the build check.

    • Added “Quick Demo” to the OptSolvX README, including Maven/IDE instructions, expected output, and optional debug activation.

  • Bridge Preparation:

    • Created a Mermaid sequence diagram to illustrate the SBML→LP pipeline.

    • Wrote a short explanation on how the bridge could be implemented (OptSolvX is LP-generic and does not directly handle SBML).

  • Java Compatibility Discussion:

    • Outlined options for either creating a dual artifact with a compat8 build for SBSCL or upgrading SBSCL to a newer Java version (decision pending).

  • PR Preparation:

    • Prepared a short pull request text for SBSCL including adapter, demo, tests, and documentation.

Next Steps:

  • Finalize and submit the PR for OptSolvX integration in SBSCL.

  • Start implementation of the SBML-to-LP bridge.

  • Continue Java compatibility discussions and decide on the approach.

  • Extend integration tests once the bridge is in place.

That’s it for this week, see you next week!

Project Details:

Kommentare

Beliebte Posts aus diesem Blog

OptSolvX in SBSCL: A Solver-Agnostic LP Core (GSoC 2025 Final Report)

Week 2 – Community Bonding Wrap-Up

Week 5 - Unit Testing, OjAlgo Integration, and Code Cleanup