Class ActiveSetSolver

All Implemented Interfaces:
Optimisation, Optimisation.Solver, UpdatableSolver
Direct Known Subclasses:
DirectASS, IterativeASS

abstract class ActiveSetSolver extends ConstrainedSolver
  • Field Details

    • ACC

      private static final NumberContext ACC
    • FEASIBILITY

      private static final NumberContext FEASIBILITY
    • LAGRANGE

      private static final NumberContext LAGRANGE
    • SLACK

      private static final NumberContext SLACK
    • SOLUTION

      private static final NumberContext SOLUTION
    • myActivator

      private final IndexSelector myActivator
    • myConstraintToInclude

      private int myConstraintToInclude
    • myExcluded

      private transient int[] myExcluded
    • myIncluded

      private transient int[] myIncluded
    • myInvQC

      private MatrixStore<Double> myInvQC
    • myIterationX

      private final R064Store myIterationX
    • myShrinkSwitch

      private boolean myShrinkSwitch
    • mySlackI

      private final R064Store mySlackI
  • Constructor Details

  • Method Details

    • handleIterationSolution

      private void handleIterationSolution(R064Store iterX, int[] excluded)
    • shrink

      private void shrink()
    • suggestUsingLagrangeMagnitude

      private int suggestUsingLagrangeMagnitude()
    • suggestUsingVectorProjection

      private int suggestUsingVectorProjection()
    • countExcluded

      protected final int countExcluded()
    • countIncluded

      protected final int countIncluded()
    • exclude

      protected void exclude(int indexToExclude)
    • extractSolution

      protected MatrixStore<Double> extractSolution()
      Overrides:
      extractSolution in class BasePrimitiveSolver
    • getExcluded

      protected final int[] getExcluded()
    • getExcluded

      protected int getExcluded(int indexAmongExcluded)
    • getIncluded

      protected final int[] getIncluded()
    • getIncluded

      protected final int getIncluded(int indexAmongIncluded)
    • getLastExcluded

      protected final int getLastExcluded()
    • getLastIncluded

      protected final int getLastIncluded()
    • include

      protected void include(int indexToInclude)
    • initialise

      protected boolean initialise(Optimisation.Result kickStarter)
      Overrides:
      initialise in class ConstrainedSolver
      Returns:
      true/false if the main algorithm may start or not
    • isIteratingPossible

      protected boolean isIteratingPossible()
      Overrides:
      isIteratingPossible in class BasePrimitiveSolver
    • needsAnotherIteration

      protected boolean needsAnotherIteration()
      Specified by:
      needsAnotherIteration in class BasePrimitiveSolver
    • suggestConstraintToExclude

      protected int suggestConstraintToExclude()
      Find the minimum (largest negative) lagrange multiplier - for the active inequalities - to potentially deactivate.
    • suggestConstraintToInclude

      protected int suggestConstraintToInclude()
      Find minimum (largest negative) slack - for the inactive inequalities - to potentially activate. Negative slack means the constraint is violated. Need to make sure it is enforced by activating it.
    • toActivatorString

      protected final String toActivatorString()
    • checkFeasibility

      boolean checkFeasibility()
    • countIterationConstraints

      int countIterationConstraints()
      Description copied from class: ConstrainedSolver
      The number of rows in ConstrainedSolver.getIterationA() and ConstrainedSolver.getIterationB() without having to actually create them.
      Specified by:
      countIterationConstraints in class ConstrainedSolver
    • getConstraintToInclude

      int getConstraintToInclude()
    • getInvQC

      MatrixStore<Double> getInvQC()
    • getIterationA

      MatrixStore<Double> getIterationA()
      Specified by:
      getIterationA in class ConstrainedSolver
    • getIterationB

      MatrixStore<Double> getIterationB()
      Specified by:
      getIterationB in class ConstrainedSolver
    • getIterationC

      MatrixStore<Double> getIterationC()
      Specified by:
      getIterationC in class ConstrainedSolver
    • getIterationX

      R064Store getIterationX()
    • getSlackI

      PhysicalStore<Double> getSlackI()
    • getSlackI

      MatrixStore<Double> getSlackI(int[] rows)
    • handleIterationResults

      void handleIterationResults(boolean solved, R064Store iterX, int[] included, int[] excluded)
    • resetActivator

      void resetActivator()
    • setConstraintToInclude

      void setConstraintToInclude(int constraintToInclude)