У меня есть своего рода одноуровневая древовидная структура как:
Где p - родительские узлы, c - дочерние узлы, а b - гипотетические филиалов.
Я хочу найти все комбинации ветвей при ограничении, что только один родительский элемент может перейти только к одному дочернему узлу, а две ветви не могут совместно использовать родитель и / или дочерний элемент.
Например, если combo
- это набор комбинаций:
combo[0] = [b[0], b[3]]
combo[1] = [b[0], b[4]]
combo[2] = [b[1], b[4]]
combo[3] = [b[2], b[3]]
Я думаю, что это все. =)
Как это может быть достигнуто автоматически в Python для произвольных деревьев этих структур, то есть количество p: s, c: s и b: s произвольно.
EDIT:
Это не дерево, а двудольный направленный ациклический граф