A hill climbing algorithm doesn't make any sense to me for a dependency graph, it doesn't fit the domain at all.
Is there a canonical reference you'd recommend to understand this problem or a paper I could look at that was similar to this implementation?