Chapter 4. Decision Making

Table of Contents

Dependency Expression Evaluation
Delayed Evaluation of Disjunctive Dependency Choices
Look-Ahead
Constraint Propagation
Expanded Search Space

Dependency Expression Evaluation

In terms of boolean logic, a dependency expression can be expressed in disjunctive normal form (DNF), which is a disjunction of conjunctive clauses. Each conjunctive clause represents one possible alternative combination of dependency atoms capable of satisfying the dependency expression.

Delayed Evaluation of Disjunctive Dependency Choices

Disjunctive dependencies, of which virtuals are a special case, can be satisfied by multiple choices of dependency atoms. These choices are delayed until as late as possible in the dependency calculation, after packages have been selected to satisfy as many non-disjunctive dependencies as possible. As a consequence of this delayed evaluation, there is maximal information available which makes it possible to optimize choices such that the total number of packages required to satisfy all dependencies is minimized.