greedy solver now keeps its own copy of graph state that it wants to mutate. capacity functions are now member functions to access the mutated state
prog solver now solves with the greedy solver to access the time at which the cbc solver crosses the greedy solver