'Calculate initial refcounts for execution of this graph.
Parameters
initial_terms : iterable[Term]
An iterable of terms that were pre-computed before graph execution.
Each node starts with a refcount equal to its outdegree, and output
nodes get one extra reference to ensure that they\'re still in the graph
at the end of execution.'

def initial_refcounts(self, initial_terms):

    refcounts = self.graph.out_degree()
    for t in self.outputs.values():
        refcounts[t] += 1
    for t in initial_terms:
        self._decref_depencies_recursive(t, refcounts, set())
    return refcounts
