Dominance

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

Defines a dominance relation used to compare and prune states during the exploration of decision diagrams or search spaces.

Dominance relation provides a way to determine whether one state of the problem is at least as good as (i.e., dominates) another, allowing the solver to discard redundant or inferior subproblems.

The dominance check is an essential optimization mechanism in decision diagram–based solvers, as it helps reduce the search space by recognizing equivalent or dominated states that do not need to be further expanded.

Type parameters

T

the type representing the problem state

Attributes

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

Members list

Value members

Abstract methods

override def isDominatedOrEqual(state1: T, state2: T): Boolean

Test whether state1 is dominated by or equivalent to state2.

Test whether state1 is dominated by or equivalent to state2.

A state state1 is said to be dominated by state2 if every feasible continuation from state1 cannot yield a better objective value than one from state2. In other words, state2 is at least as good as state1 in all relevant aspects of the problem.

Value parameters

state1

the first state to compare

state2

the second state to compare against

Attributes

Returns
  • true if state1 is dominated by or equivalent to state2
  • false otherwise
Definition Classes
Dominance
def key(state: T): Any

Returns a canonical key associated with a given state.

Returns a canonical key associated with a given state.

This key is typically used to identify equivalent states or to group states that share the same dominance characteristics. Implementations should ensure that two states with identical keys are comparable under the same dominance criteria.

Value parameters

state

the state for which a dominance key is requested

Attributes

Returns

an object uniquely (or canonically) representing the given state

Concrete methods

final override def getKey(state: T): AnyRef

Used by the solver. Convert the input and output of key from Java to Scala and vice versa.

Used by the solver. Convert the input and output of key from Java to Scala and vice versa.

Attributes

Definition Classes
Dominance