У меня есть одноуровневая древовидная структура:
Где 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]]
Я думаю, что это все из них. =) * +1022 *
Как это может быть достигнуто автоматически в Python для произвольных деревьев этой структуры, то есть число p: s, c: s и b: s произвольно.
EDIT:
Это не дерево, а двудольный направленный ациклический граф