'Called on list of lists of costs, where each nested list is a separate multicost,
and returns the un-summed individual branch costs.
Arguments:
x (list): list of lists of costs as returned by multicost_recurse'

def separate_branch_costs(self, x):

    x[0] -= np.sum([(c[0] if (type(c) == list) else c) for c in x[1:]])
    for branch in x:
        if (type(branch) == list):
            self.separate_branch_costs(branch)
    return np.array([item for sublist in x for item in sublist])
