Skip to content

Dominance Relations

Closed Feb 10, 2025 40% complete

Background

Apart from "hard" constraints, constraints problems often involve multiple values that need to be optimised.
In that case, some solutions are "dominated" by others, i.e they provide a "worse" value for one variable with no benefit to the others.
The job of the solver is to efficiently enumerate all non-dominated solutions, i.e. solutions where …

Background

Apart from "hard" constraints, constraints problems often involve multiple values that need to be optimised.
In that case, some solutions are "dominated" by others, i.e they provide a "worse" value for one variable with no benefit to the others.
The job of the solver is to efficiently enumerate all non-dominated solutions, i.e. solutions where at least one of the values can't be improved without sacrificing the others. This can be done by incrementally generating and adding new constraints during the search to progressively shrink the search space.

This involves:

  • Defining a dominance relation, i.e. a function of two solutions a,b defining what it means for a to be dominated by b
  • Generating new constraints based on this relation
  • Interfacing with the solver to add these new constraints at runtime

The work would span the parsing, rewrite, and solver adaptor layers.
See: https://ozgurakgun.github.io/files/fulltext/2020/Exploiting%20incomparability%20in%20solution%20dominance%20-%20improving%20general%20purpose%20constraint-based%20mining.pdf
And: https://ozgurakgun.github.io/files/fulltext/2019/Towards%20improving%20solution%20dominance%20with%20incomparability%20conditions%20-%20a%20case-study%20using%20Generator%20Itemset%20Mining.pdf

Loading