H
Hans D
Ich hoff ich hab das richtige Forum erwischt, eigentlich ist es eher ein Mathematisches als Java Problem, da es dabei aber um einen Algorithmus geht, kann mir hier vielleicht doch wer helfen.
Ich habe 2 Zeilen mit je n Elementen die untereinander Verbindungen haben, diese möchte ich nun durch neu anordnen der Reihenfolge mit möglichst wenigen Überschneidungen der Verbindungen darstellen.
Meine Erste Idee war durch Permutation alle Anordnungen durchzuspielen und mir die mit den wenigsten überschneidungen zu merken. Dabei kann ich die überprüfung einer Anordnung vorzeitig abbrechen wenn es schon mehr Überschneidungen gibt als ich in meiner bissher Besten Anordnung habe, oder wenn das Ergebniss für mich ausreichend ist (zb. max. 4 Überschneidungen).
Da ich aber in der ersten Zeile zwischen 5 und 10 und in der zweiten Zeile zwischen 10 und 20 Elemente hab, hätte ich mathematisch 10! * 20! Möglichkeiten was einer Zahl mit 25 Stellen entspricht. Also eher nicht praktikabel.
Kennt wer einen Algorithmus der sich mit der Thematik beschäftigt?
Hat wer Ideen wie ich zu einer Lösung kommen könnte? - Oder zumindestens ne Idee nach was ich dabei googlen könnte?
Herzlichen Dank
Hans
Ich habe 2 Zeilen mit je n Elementen die untereinander Verbindungen haben, diese möchte ich nun durch neu anordnen der Reihenfolge mit möglichst wenigen Überschneidungen der Verbindungen darstellen.
Meine Erste Idee war durch Permutation alle Anordnungen durchzuspielen und mir die mit den wenigsten überschneidungen zu merken. Dabei kann ich die überprüfung einer Anordnung vorzeitig abbrechen wenn es schon mehr Überschneidungen gibt als ich in meiner bissher Besten Anordnung habe, oder wenn das Ergebniss für mich ausreichend ist (zb. max. 4 Überschneidungen).
Da ich aber in der ersten Zeile zwischen 5 und 10 und in der zweiten Zeile zwischen 10 und 20 Elemente hab, hätte ich mathematisch 10! * 20! Möglichkeiten was einer Zahl mit 25 Stellen entspricht. Also eher nicht praktikabel.
Kennt wer einen Algorithmus der sich mit der Thematik beschäftigt?
Hat wer Ideen wie ich zu einer Lösung kommen könnte? - Oder zumindestens ne Idee nach was ich dabei googlen könnte?
Herzlichen Dank
Hans