Wegfindung mit dem A*-Algorithmus in Java

Für unser Studienprojekt “Fertigungsanlage” habe ich als Prototypen den A*-Algorithmus in Java umgesetzt. Mit der Implementierung kann auf der Beispielanlage, die im folgenden Bild zu sehen ist, eine Wegplanung durchgeführt werden, die den optimalen Weg zwischen zwei Punkten der Anlage ermittelt.

Beispiel einer Fertigungsanlage

Auf der linken Seite sieht man ein Hochregallager und rechts oben eine LKW-Laderampe. Die Kreise sollen Drehteller darstellen und die Striche sind Förderbänder unterschiedlicher Länge. A1, A2 und B1 sind Fertigungsstationen, die die angelieferten Produkte bearbeiten.

Den optimalen Weg zwischen Hochregallager und Rampe ermittelt der Algorithmus wie im folgenden Bild dargestellt. Selbstverständlich kann man Wege zwischen allen Punkten planen, indem man die Bezeichner als Parameter beim Programmstart übergibt (siehe ProductionPlant.java).

Beispiel einer Wegplanung auf der Fertigungsanlage

Wie gesagt handelt es sich nur um einen Prototypen. Die fertige Wegplanung umfasst dynamisches Planen von Wegen in der ausgelasteten Anlage, Kommunikation mit einer Oracle-Datenbank zur Auftragsbearbeitung, Einlesen der Anlagenkonfiguration aus XML-Dateien, Kommunikation zur Anlagensteuerung per CORBA usw. Ein richtig nettes Projekt, dem ich wohl noch viele Wochenenden widmen werde 😀

Download des Quelltextes

Wegfindung mit dem A*-Algorithmus in Java

Über Stefan

Polyglot Clean Code Developer

Ein Kommentar

  1. Pingback:XML-Datei mit Java einlesen und gegen ein Schema validieren » Stefan Macke

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax