Uploaded image for project: 'Commons Math'
  1. Commons Math
  2. MATH-1391

Simplex method intermediate solutions

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 4.X
    • Labels:
      None

      Description

      I suggest allowing access to intermediate solutions of simplex algorithm (not final vertexes at polyhedron). It can be useful for progress illustrating or early interrupting of process.

      It can be like this:

      SimplexSolver simplexSolver = new SimplexSolver();
      
      // ... prepare constraintSet and goalFunction
      
      simplexSolver.setSimplexSolverInterceptor(new SimplexSolverInterceptor() {
                  public boolean intercept(PointValuePair pointValuePair) {
                      // pointValuePair is intermediate solution
                      // return if the optimization must be stopped here
                      return false;
                  }
              });
      
      PointValuePair pair = simplexSolver.optimize(goalFunction, constraintSet, GoalType.MINIMIZE);
      

      I needed it, so I've done it. Commit is here: https://github.com/kosbr/commons-math/commit/20f6c3d7428b7e5d5c695af7c4f51df979245297

      Here is the description of what I've done in my blog. https://kosbr.github.io/2016/11/07/simplex-interceptor.html

      I'm able to do the same enhancement to the commons-math library respecting rules like commit name.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              kosbr Konstantin Bryazgin
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: