There are two main dependency resolution algorithms in aptitude.
The first is an algorithm that is also used by programs such as apt-get and synaptic; I will call it 「immediate resolution」. It is invoked whenever you select a package for installation interactively, and immediately after one or more packages are marked for installation at the command-line. Immediate resolution is fast and will solve most dependency problems, but it is sometimes unable to find any solution.
The second algorithm, which I will call 「interactive resolution」, is invoked when packages have broken dependencies even after immediate resolution[11]. It can resolve more dependencies, it allows you to review a solution before applying it, and it allows you to provide feedback to the resolver, guiding it towards a better solution.