Dies ist eine Folgefrage zu Combinatorics in PythonPython Kombinatorik, Teil 2
Ich habe einen Baum oder azyklische Graph gerichtet, wenn Sie mit einer Struktur wie:
Wo r Wurzel Knoten, p sind Elternknoten, c sind Kindknoten und b sind hypothetische Verzweigungen. Die Wurzelknoten sind nicht direkt mit den übergeordneten Knoten verbunden, sondern nur eine Referenz.
ich intressted bin alle Kombinationen von Zweigen unter den Einschränkungen bei der Suche nach:
- Ein Kind kann gegeben durch eine beliebige Anzahl von übergeordneten Knoten gemeinsam genutzt werden, dass dieser übergeordnete Knoten keine Wurzelknoten nicht teilen.
- eine gültige Kombination sollte keine Teilmenge einer anderen
nur zwei gültige Kombinationen sind möglich unter den Einschränkungen In diesem Beispiel Kombination sein:
combo[0] = [b[0], b[1], b[2], b[3]]
combo[1] = [b[0], b[1], b[2], b[4]]
Die Datenstruktur, wie beispielsweise B ist ist eine Liste von Zweigobjekten mit den Eigenschaften r, c und p, zB:
b[3].r = 1
b[3].p = 3
b[3].c = 2
Haben Sie bereits einen Algorithmus ausgearbeitet, den Sie in Python zu implementieren versuchen, oder fragen Sie nach einem allgemeinen Algorithmus, der Ihr Problem löst? Oder beides? – katrielalex
@katrielalex - nun, der einzige Algorithmus, an den ich denken kann, ist die Liste der Zweige zu "teilen", wo zwei Zweige Kind und Wurzel teilen, aber ich weiß nicht, wie effektiv das wäre. – Theodor
@Theodor, welches Programm Sie verwenden, um das zu machen. Es ist sehr sauber. – wheaties