Polarith AI
1.8
ConstraintSolver< T > Class Template Reference

Description

Used for solving multicriteria optimization (MCO) problems by implementing the epsilon constraint method.

Given a MCO problem with a certain number of objectives, there is always one unlimited/unrestricted objective to be optimized. All other objectives are constraint to specific Epsilons so that the solver does not accept any solutions violating the constraints.

This solver always finds one best solution which is Pareto optimal considering all objectives without violating the constraints. If there are no solutions which satisfy the constraints, the solver still picks the solution which is closest to the constraints.

The IProblem<T>.IsObjectiveMinimized(int) flag is considered in order to handle problems to be minimized as well as problems to be maximized.

Template Parameters
TType of the objective values defining the objective space.
Type Constraints
T :IComparable 
T :IComparable<T> 
Inheritance diagram for ConstraintSolver< T >:
ISolver< T >

Public Fields

int Unlimited
 The index of the unrestricted objective. More...
 
List< T > Epsilons = new List<T>()
 Specifies the epsilon-constraints for each corresponding objective of an IProblem<T>. More...
 

Public Methods

 ConstraintSolver ()
 Constructs a ConstraintSolver<T> instance. More...
 
ReadOnlyCollection< int > Solve (IProblem< T > problem)
 Solves a defined IProblem<T> and returns a Pareto optimal solution which does not violate the set Epsilons (constraints). More...
 
Imprint