This is the basic algorithm, it implements ordered solving of dependencies in the ordered and it solves Recommends only after Depends, and one-by-one.
We can call this a partial ordered maxsat problem. Let Si..Sn be the soft clauses, then a partial ordered maxsat problem is equivalent to a partial weighted maxsat problem with weights
Wi = 2**(n-i)
It has a (2**n)/2n lower complexity than an unordered partial maxsat problem where n is the number of soft clauses.