Problem

org.ddolibscala.modeling.Problem
trait Problem[T] extends Problem[T]

Problem defines the state space, the transitions between states induced by decisions, and the objective values associated with those transitions. Implementations provide the essential operations required by solvers.

Type parameters

T

the type representing a state in the problem

Attributes

Graph
Supertypes
trait Problem[T]
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def domainValues(state: T, variable: Int): Iterable[Int]

Returns the domain of possible values for a given variable when applied to a specific state.

Returns the domain of possible values for a given variable when applied to a specific state.

Value parameters

state

the current state

variable

the variable index whose domain is queried

Attributes

Returns

ll feasible values for the variable in this state

override def evaluate(solution: Array[Int]): Double

Given a solution such that solution(i) is the value of the variablex_i, returns the value of this solution and checks if the solution respects the problem's constraints.

Given a solution such that solution(i) is the value of the variablex_i, returns the value of this solution and checks if the solution respects the problem's constraints.

Value parameters

solution

A solution of the problem.

Attributes

Returns

The value of the input solution.

Note

For maximization problems, the returned value is minus the computed value.

Definition Classes
Problem
override def initialState(): T

Returns the initial state of the problem.

Returns the initial state of the problem.

Attributes

Returns

the state representing the starting point of the optimization

Definition Classes
Problem
override def initialValue(): Double

Returns the initial objective value associated with the initial state.

Returns the initial objective value associated with the initial state.

Attributes

Returns

the starting value of the objective function

Definition Classes
Problem
override def nbVars(): Int

Returns the total number of decision variables in this problem.

Returns the total number of decision variables in this problem.

Attributes

Returns

the total number of decision variables in this problem

Definition Classes
Problem
override def transition(state: T, decision: Decision): T

Applies a decision to a state, computing the next state according to the problem's transition function.

Applies a decision to a state, computing the next state according to the problem's transition function.

Value parameters

decision

the decision to apply

state

the state from which the transition originates

Attributes

Returns

the resulting state after applying the decision

Definition Classes
Problem
override def transitionCost(state: T, decision: Decision): Double

Computes the change in objective value resulting from applying a decision to a given state.

Computes the change in objective value resulting from applying a decision to a given state.

Value parameters

decision

the decision to apply

state

the state from which the transition originates

Attributes

Returns

the incremental objective cost/value associated with this decision

Definition Classes
Problem

Concrete methods

final override def domain(state: T, variable: Int): Iterator[Integer]

Used by the solver. Converts the input of ouput of domainValues from Java to Scala and vice versa.

Used by the solver. Converts the input of ouput of domainValues from Java to Scala and vice versa.

Attributes

Definition Classes
Problem
def optimal: Option[Double]

Returns the optimal value of the problem if known

Returns the optimal value of the problem if known

Attributes

Returns

the optimal value of the problem if known

final override def optimalValue(): Optional[Double]

Used by the solver. Converts the input of ouput of optimal from Java to Scala and vice versa.

Used by the solver. Converts the input of ouput of optimal from Java to Scala and vice versa.

Attributes

Definition Classes
Problem