Labyrinth Algorithmus (mutierend) Tipps?

Guten Tag,

ich habe mich mal an mutierende Algorithmen als Amateur Programmierer herangewagt. Mein erstes Projekt ist ein Algorithmus, welcher den effizientesten Weg durch ein Labyrinth finden soll (Ich weiß, dass A* besser ist).

Ich bin wie folgt vorgegangen:

  1. Labyrinth als zwei dimensionales Array (0 = Frei, 1 = Mauer)
  2. Start- und Endpunkt festgelegt
  3. STart Population erstellt aus zufälligen Pfaden (Ein Pfad ist ein Array, welches als Elemente 0,1,2 oder 3 enthalten, welche wiederum die Bewegungsrichtung vorgeben, die anschließend abgelaufen wird. Bspw. Hoch, hoch, links, rechts, runter.
  4. Dann score für jeden Agent aus Entfernung zum Ziel (Satz des Pythagoras) und Länge des Pfades gebastelt. Kürzere Entfernung gibt mehr Punkte, unnötiger Weg Abzug
  5. Danach werden für die 500 neuen agents jeweils zwei Eltern mit der Wahrscheinlichkeit basierend auf dem Score ausgewählt.
  6. Das „Kind“ wird aus den zwei Hälften der Pfade der Eltern erstellt, wobei jedes Element des neuen Pfades eine Chance hat zu mutieren (Hier sehe ich bedarf zur Verbesserung)
  7. Dies wiederholt sich solange ich will

Mein Problem ist, dass es bei kleinen Labyrinths den weg auch findet, aber die Wege noch teilweise sehr unnötig sind, obwohl ab dem Punkt, wo die meisten agents das Ziel erreichen, ja der längere weg rausselektiert werden sollte. Hatte überlegt auch minus punkte zugeben, wenn eine wand oder der Rand berührt wird, aber das hat nicht so funktioniert.

Mich würden eure Gedanken dazu interessieren und einfach ein paar Tipps zu der Thematik.

Code: https://hastebin.skyra.pw/aboladewoc.java

JavaScript, Algorithmus, maschinelles Lernen
Wie schnell sind Qbits?

Guten Abend,

ich befasse mich momentan intensiv mit dem Thema Quantencomputer, da ich diese Woche noch einen Vortrag dazu halten werde. Ich möchte eine Formel, mit welcher ich zeigen kann, wie viel schneller Qbits als Bits sind. Qbits habe ich dabei so verstanden, dass diese in ihrer Superposition zwei verschiedene Werte annehmen könnten 0 und 1. Des Weiteren können sie miteinander verschränkt sein, was diesen Effekt exponentiell verstärkt. Trotzdem heißt es immer Qbits können 2^n viele Bit-Zustände annehmen, was jedoch genauso viele wären, wie normale Bits oder? Auf einer Info-Seite http://www.quantencomputer-info.de/quantencomputer/quantencomputer-einfach-erklaert/ habe ich noch eine andere herangehensweise gefunden.

Hier wurde gesagt, dass es 256 Bits bedürfte um 1 Qbit darzustellen. Dieser Wert würde sich mit jedem Qbit verdoppeln. Daraus habe ich dann folgende Formel abgeleitet: 256*2^(n-1). Trotzdem bin ich mir jetzt nicht sicher, welche ich für den Wow-Effekt verwenden soll.

Vielleicht verstehe ich die erste Formel 2^n auch falsch und die angezeigten Bit-Zustände stehen für die gleichzeitig annehmbaren zustände, was natürlich deutlich schneller wären als Bits. Z.B. 2^3 Bits können zwar 8 Zustände annehmen, aber bilden halt nur einen wieder. 2^3 Qbits hingegen nehmen alle 8 Zustände gleichzeitig an und entscheiden sich dann für die richtige.

Ich hoffe ihr könnt mir da etwas Klarheit verschaffen

LG

Computer, Informatik, Physik, Quantenphysik, theoretische Physik, Quantencomputer
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.