The jungle is a graph whose vertices are host/parasite associations and whose arcs correspond to arcs in the parasite tree. Each arc suggests a set of co-evolutionary events and its cost is calculated.
Since we can treat subtrees of the parasite (associate) tree independently, we can utilise the fact that many components of solutions will occur in many different complete solutions - in the same way that individual clades occur in many different evolutionary trees. So we can adopt a Dynamic Programming approach, in which the global optimisation can be achieved by optimising in stages.