Konditionale Konstrukte "trainieren"
-
Hallo!
Ich bin hier gerade dabei, meinen Code zum "Draggen" von Punkten/Kanten in orthogonalen Linienbäumen zu verbessern. Die ganzen Spezialfälle und verschachtelten if-Blöcke wachsen mir da allmählich über den Kopf und ich mache mir ernsthafte Gedanken, ob ich da noch richtig an das Problem herangehe.Ich hatte jetzt die Idee, meinen Quelltext sozusagen an Beispielen zu trainieren. Also ich erstelle einen Satz von Operationen, die ich zur Laufzeit als Anweisung geben kann und einen Satz von boole'schen Eigenschaften auf den einzelnen Probleminstanzen. Immer wenn mein Algo eine Probleminstanz erkennt, die noch nicht gewesen ist, fragt er mich sozusagen, was zu tun ist (welche der Operationen oder eventuell mehrere). Wenn ich beim rumprobieren erkenne, dass Eigenschaften fehlen, um bestimmte Fälle voneinander zu trennen, kann ich neue einfügen und der Algo übernimmt die alten Probleminstanzen, mit der neuen Eigenschaft im "any"-Status. Wenn ich meine, dass ich so ziemlich mit allen Problemfällen durch bin, gibt mir der Algo alle Eigenschaften aus, die unnötig sind und alle Kombinationen von Eigenschaften, die bislang nicht vorkamen. Diese prüfe ich dann auf Sinn durch. Am Ende kann ich entweder den Algo im Nicht-lernen-modus betreiben, oder die ganze Sache dann sauber runtercoden (oder den code meinetwegen generieren lassen).
Hat jemand sowas schonmal gemacht? Gibts da vielleicht schon was? Ist die Idee abstrus?
Viele Grüße,
Michael
-
Rein aus Interesse: Was sind (orthogonale) Linienbäume? Google spuckt nix aus.
-
Ahhh, ich ging völlig davon aus, das erschließt sich, aber ich da gerade so total versunken drin, dass ich das nicht in Frage gestellt habe.
Ich meine grafische verästelte Linienzüge, wobei jede Teillinie entweder horizontal oder vertikal ist. Also sowas, was man bei Simulink oder so zB. sieht, wenn man Knoten verbindet.