für meine Totosoftware suche ich einen Algorithmus, der mir vorgegebene Tippreihen zu einem -1 oder -2-System runterkürzt. Ich habe verschiedene Möglichkeiten ausprobiert, aber keine bringt mich zu einer wirklich akzeptablen Lösung. Hier meine bisherige Vorgehensweise.
1. Ich errechne zunächst für jede Tippreihe, wie viele andere Tippreihen von dieser abgedeckt werden.
2. Anschließend suche ich die Trefferbilder mit dem höchsten Vorkommen.
3. Ich nehme die Tippreihe mit den meisten Abdeckungen und dem am häufigsten vorkommenden Trefferbild uns streiche alle "angrenzenden" Tippreihen, also jene mit einem bzw. zwei unterschiedlichen Tipps
4. Das geht solange, bis nur noch eine Restmenge nicht kürzbarer Tippreihen zurückbleibt, diese werden dann auch übernommen.
Dazu zwei Beispiele:
Bei einem 4-Dreiwege-System erreiche ich damit auch die optimale Kürzung gemäß dieser Tabelle.
Vollvariation:
Code: Alles auswählen
111111111111111111111111111000000000000000000000000000222222222222222222222222222
111111111000000000222222222111111111000000000222222222111111111000000000222222222
111000222111000222111000222111000222111000222111000222111000222111000222111000222
102102102102102102102102102102102102102102102102102102102102102102102102102102102
1102
1021
1210
0120
0012
0201
2111
2000
2222
Soweit, so gut. Schon bei einer 3-Dreiweg-Kürzung versagt die Vorgehensweise:
Code: Alles auswählen
111111111000000000222222222
111000222111000222111000222
102102102102102102102102102
102
021
210
111
120
012
000
201
222
Was mache ich falsch? Welche Bedingung muss ich formulieren, damit ich eine effizientere Kürzung erreiche? Gibt es überhaupt eine einheitliche Vorgehensweise? Es kann doch nicht sein, dass man - gerade bei komplexen Systemen - eine Brute-Force-Attacke auf alle möglichen Kombinationen starten muss, denn da kommt man ja schon bei 8 Dreiwegen auf die Fakultät von 729.
Falls es noch von Interesse ist: Ich greife in meinem Programm natürlich auch auf vorgefertigte Systeme zurück und passe die entsprechend an. Ich hätte nur gerne eine Möglichkeit, um die Vollvariation ERST zu filtern und DANN zu kürzen. Mit vorgefertigten Systemen geht das nur in der anderen Richtung.
Ich hoffe, ich habe alles einigermaßen verständlich auf den Bildschirm gebracht. Wäre toll, wenn sich ein Programmierexperte finden könnte (bin selbst nur Hobby-Programmierer)