Ich bin vor ein paar Tagen auf ein Rätsel gestoßen. Es ist leicht von Hand lösbar. Aber ich habe versucht, einen Algorithmus zu entwickeln, um es zu lösen. Aber ich weiß nicht, wie ich vorgehen soll.
Hier können Sie sehen, dass ich alle Paare von farbigen Punkten verbinden muss. Zum Beispiel muss ich den gelben Punkt mit einem anderen gelben Punkt verbinden, grün mit anderen grünen, blau mit blau und so weiter.
Hier ist ein Beispiel, wie es gelöst werden sollte. wenn die Beschreibung nicht klar war.
So können Sie sehen, dass ich gelben Punkt mit einem anderen gelben Punkt verbunden habe. Und blau mit einem anderen Blau. Aber das verursacht ein Problem. Ich habe den Weg der Aqua-Farbe blockiert, wie Sie sehen können. Ich hoffe, du hast eine Idee.
Also ich möchte es lösen. Brute Force-Ansatz würde funktionieren, aber es wird eine lange Zeit dauern, und ich bin nicht daran interessiert. Ich habe versucht, Breathth First Search, Depth First Search und Dijkstra-Algorithmus zu implementieren. Aber ich denke, dass sie in diesem Fall nicht gut sein werden. Korrigiere mich bitte, wenn ich falsch liege. A * Suche funktioniert vielleicht, aber was ist die Heuristik?
Kann mir jemand eine Intuition geben, wie ich das Problem lösen kann?
Chromosom:
Fitness-Funktion von der Spitze meines Kopfes
Mutation
Cross-Over / Zucht Von der Spitze meines Kopfes