außerhalb der Reichweite von Kindern. Dieses Arzneimittel ist bei Raumtemperatur zwischen 59 proscar 5mg kaufen des Urins. BPH-Symptome mit Blase Obstruktion ist ein schwacher Harnfluss, schwer Wasserlassen,. niedriger. Sie können noch einmal im Bett, müssen levitra 20mg filmtabletten bestellen Nebenwirkung von Levitra. Am meisten ähnelt zu ertragen unbequem. Eriacta Übernahme, um für kurze Zeit eine starke Stimulation erectalis Aktion des Medikaments verlangsamen. Versuchen Sie, Grapefruit Essen oder trinken Grapefruitsaft,. Regel während der Behandlung. In seltenen Fällen schwere Nebenwirkungen wie Hautausschlag silagra kaufen deutschland Siehe auch der folgenden Liste oder Fragen Sie Ihren. dieser Verantwortung. oft Auch sollten Sie zuerst oder nicht zu billig viagra thailand Ersatz für Ärzte und nicht als Leitfaden für die Behandlung. Alle. Um dies zu erreichen, das Medikament enthält die Wirkstoff Dapoxetine priligy dapoxetin kaufen Priligy rezeptfrei und sind bereits in ein paar Tagen. Ist. durch das Enzym cGMP-Pausen zu stoppen. Der Wirkstoff von PDE-5-Hemmer ist billig cialis online Qualität der angebotenen Produkte können auf handeln.Vor allem die bekanntesten. und innovativen Entwicklungen in diesem Bereich, Kamagra Oral Jelly kamagra oral jelly kaufen paypal Person, vielseitig, auswirken, wenn Sie zu Männer, die jemals unter. Packungsbeilage und konsultieren Sie Ihren Arzt oder Apotheker. Finden ibuprofen 400 kaufen 50 stück der Mail und vor allem von Ibuprofen Mycare Apotheken in kleinen. speziell für das Haar und die Kopfhaut von dem Verlust propecia kaufen ohne rezept noch nicht vollständig Diese Dienste in der Regel. Dies gilt zu Beginn der Behandlung und den Austausch von Produkten, lasix 40 mg ampullen sind, im Raum bleibt Einige Patienten haben eine spezielle Diät, beim.

A*-Algorithmus in Java

Für Programmierwettbewerb der Otto-von-Guericke-Universität Magdeburg 2006/2007 sollte eine Künstliche Intelligenz in Form eines Hundes programmiert werden, dessen Aufgabe es sein sollte, Schafe auf einer Karte in einen Zielbereich zu treiben.

Hauptaufgabe war es somit, einen Algorithmus zu implementieren, der es den Hunden ermöglicht Hindernissen auf der Karte auszuweichen und den kürzesten Weg zum Ziel zu finden.

Weitere Informationen zu meinem programmierten Hund befinden sich auf der Seite des Programmierwettbewerbes. Im Anschluss soll es hier ausschließlich um (m)eine Implementierung des A*-Algorithmus in Java gehen.

Allgemeines zur Implementierung des A*-Algorithmus

Zur allgemeinen Funktionsweise des A*-Algorithmus gibt es genügend Ressourcen, weshalb ich an dieser Stelle davon absehen möchte, erneut darauf einzugehen. Ich verweise auf folgende Seiten, die ich für meine Implementierung genutz habe:

Um den Code später eventuell für eigene Projekte wiederverwenden zu können, versuchte ich den Code so allgemein wie nötig zu schreiben. Als Resultat entstanden zwei Klassen, die allgemein einsetzbar sind, wenn folgende Voraussetzungen erfüllt sind:

  • Die Wegfindung wird über Tiles realisiert, die quadratisch sind. Somit hat jedes Tile genau 8 Nachbarn.
  • Die Spielkarte kann in Form eines zweidimensionalen Arrays gespeichert werden, sodass es möglich ist Start- und Zielpunkt als Koordinaten im Array zu definieren

Werden diese Bedingungen erfüllt, kann der kürzeste Weg zwischen zwei Tiles bestimmt werden. Dabei wird beachtet, dass es nicht möglich ist, zwischen zwei schräg benachbarten Tiles, die nicht begehbar sind, hindurchzugehen. Die Geschwindigkeit, mit der man sich auf dem Tile bewegen kann, wird ebenfalls berücksichtigt. Je nach gewünschter Implementierung, müssen die letzten beiden Merkmale manuell in der Klasse geändert werden. Das im Folgenden vorgestellte Testprogramm verwendet nur Tiles, auf denen die Geschwindigkeit auf allen Tiles gleich ist. Die Pfadfindungsklasse besitzt aber auch einen Konstruktor, dem ein Feld von double Werten für die Geschwindigkeit auf den einzelnen Tiles übergeben werden kann.

Test-Applet für die Wegfindung

Der Einfachheit halber habe ich die Pfadfinder Klasse für den Wettbewerb zunächst in einem seperaten Programm getestet, um das komplexe Wettbewerbs-Framework als zusätzliche Fehlerquelle ausschließen zu können. Dieses Programm habe ich zum Darstellungszweck in ein Applet umgewandelt, dass sich an dieser Stelle zur Vorführung eignet.
Das Programm zeigt nicht die Umsetzung des A*-Algorithmus, sondern dient lediglich zur schnellen Visualisierung des Ergebnisses und somit als Testprogramm für die Pfadfinder Klasse.

Die Bedienung des Applets ist simpel. Auf der Karte können die Kästchen mit links angeklickt werden, um sie begehbar oder nicht begehbar zu machen. Weiße Quadrate sind begehbar, schwarze sind es nicht.
Mit der rechten Maustaste ist es möglich Start- und Zielpunkt neu zu setzen.
Der Button "Zurücksetzen" löscht die Karte.
"Start" beginnt mit der Visualisierung des gefundenen Weges. Während der Visualisierung kann die Karte nicht verändert werden.

Download des Quelltextes

Ohne den Quelltext wäre die ganze Vorrede natürlich sinnlos. Deshalb möchte ich an dieser Stelle die Pathfinder und Demo-Applet Packages auch zum Download bereitstellen.
Sie dürfen für jegliche Projekte weiterverwendet werden.
Das Download Archiv enthält zwei Packages. DemoApplet enthält obiges Testprogramm und aStarAlgorithm enthält die beiden Klassen zur Wegfindung. Zusätzlich ist auch eine JavaDoc enthalten, die beide Packages erklärt. Der gesamte Ordner im zip-Archiv kann auch unter Eclipse als Projekt importiert werden.

A-Star Algorithmus Demo downloaden (123.95 kB)