habe gerade Dein Skript gefunden und getestet und bin beeindruckt, wie du einen Algorithmus zur Ermittlung der Cliquen entwickelt und mit Python umgesetzt hast . Ich selbst hatte eine eigene Idee für einen Algorithmus aus Bequemlichkeit nicht weiterverfolgt – nachdem ich entdeckt hatte, dass networkx mir einiges an Mühe ersparen konnte.
Interessant finde ich, dass dein Algorithmus quasi "subtraktiv" vorgeht, während mir ein "additiver" Ansatz vorschwebte. Du gehst von der Gesamtmenge der mit der Hauptpflanze verträglichen Pflanzen aus und baust sukzessive Konflikte ab, bis zuletzt die Cliquen/Mischkulturen übrig bleiben. Meine (nicht ausgeführte) Idee war hingegen, mit den kleinstmöglichen Cliquen – also den vetrtäglichen Früchtepaaren – zu beginnen und diese so lange sukzessive und konfliktfrei um einzelne Pflanzen zu erweitern, bis ich die maximalen Mischkulturen erhalte. Spontan und vom Gefühl her erscheint mir dein Ansatz effizienter zu sein.
Im Übrigen ist dein Post, finde ich, auch eine verdienstvolle Zusammenfassung der Problemstellung und der bisherigen Lösungswege. Nur eine kleine Korrektur möchte ich anbringen.
Das stimmt nicht ganz. Es hatte einer längeren Diskussion mit michaa7 bedurft, bis ich begriffen hatte, dass auch neutrale/undefinierte Pflanzenpaare zugelassen sein sollen. In unserem Beispiel kommt, um nur ein Beispiel zu nennen, das Paar (Dattel, Papaya) weder in "friends.csv" noch in "enemies.csv" vor. Aber unsere Skripte berücksichtigen dies ja: Alle Pflanzen einer Mischkultur müssen explizit mit der Hauptpflanze befreundet sein, dürfen aber untereinander auch in neutraler Beziehung stehen.chrbr hat geschrieben:01.04.2023 22:07:47Jede beliebige Kombination der Pflanzen aus der Liste der 11 Arten findet sich entweder in friends.csv oder enemies.csv wieder.