Skip to content

Commit

Permalink
edit, anm. mueller
Browse files Browse the repository at this point in the history
  • Loading branch information
Sven Albert-Pedersen committed Apr 9, 2018
1 parent 4e65c7e commit 6bc1d44
Show file tree
Hide file tree
Showing 9 changed files with 59 additions and 24 deletions.
11 changes: 11 additions & 0 deletions references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,17 @@ @mastersthesis{dingding
journal={U.U.D.M. Project Report},
volume = {25}
}
@mastersthesis{inhomogen-agent,
author={Steffen Ritter},
title={{Autonome Multi-Agenten-Systeme in der Industrie}},
institution={Hochschule Offenburg},
school={Hochschule Offenburg},
year={2015},
type={Masterarbeit},
note={\url{https://opus.hs-offenburg.de/files/963/Master-Thesis.pdf};
abgerufen am 09. April 2018.}
}



%== PDFs ==%
Expand Down
5 changes: 3 additions & 2 deletions tex/000-multiagentensysteme.tex
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
\section{Die Simulationsumgebung und \enquote{LightJason}}
\label{sec:simulationsumgebung}

Als Simulationsumgebung für die geplanten Tests der Modelle wurde eine modifizierte Version einer Java-Software benutzt, welche im September 2017 für einen Workshop\footnote{siehe \url{https://lightjason.github.io/news/2017-09-workshop/}} mit Doktoranden genutzt wurde.
Als Simulationsumgebung für die geplanten Tests der Modelle wurde eine %modifizierte Version
Software verwendet, die Elemente einer Java-Software nutzt, welche als \enquote{Traffic Simulation Game} im September 2017 für einen Workshop\footnote{siehe \url{https://lightjason.github.io/news/2017-09-workshop/}} mit Doktoranden entwickelt wurde.
Die Steuerung des Agentenverhaltens wird dabei von LightJason, vorgestellt in \cite{lightjason}, übernommen.

Es handelt sich um ein BDI-Multi-Agenten-Framework zum Erstellen von Multiagentensystemen mit Java, welches nebenläufige Ausführung unterstützt.
Es handelt sich bei LightJason um ein BDI-Multi-Agenten-Framework zum Erstellen von Multiagentensystemen mit Java, welches nebenläufige Ausführung unterstützt.
Dabei wurde versucht einen Rahmen zu schaffen, der es ermöglicht, AI-Algorithmen zu einer bestehenden Softwarearchitektur hinzuzufügen.
Das Framework kombiniert klassische Methoden der Künstlichen Intelligenz mit Optimierungs- und Fuzzy-Logik-Konzepten.
(nach \cite{lightjason-web})
Expand Down
5 changes: 3 additions & 2 deletions tex/01-einleitung.tex
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ \section{Einleitung}
%Das Modell setzt allerdings Homogenität der Verkehrsteilnehmer voraus.
Dies stellt sich natürlich in der Realität vollkommen anders dar.
Vom \enquote{Schleicher auf der linken Spur} bis hin zum \enquote{Verkehrsrowdy} gibt es eine Vielzahl von Autofahrertypen und von der \enquote{Ente} bis zum Porsche die unterschiedlichsten Fahrzeuge.
Das Konzept der Agentenprogrammierung erlaubt jetzt, anstatt homogenen Verkehrs eine große Vielfalt unterschiedlicher Verkehrssubjekte (und -objekte) darzustellen und diese miteinander agieren zu lassen.

Mit dieser Arbeit soll gezeigt werden, ob sich das Multiagentenframework \enquote{LightJason} dazu eignet, Verkehrsverhalten nachzubilden.
In Multiagentensystemen ist diese Gleichartigkeit nicht zwingend erforderlich \cite[S. 2]{inhomogen-agent}. Anstatt homogenen Verkehrs kann eine große Vielfalt unterschiedlicher Verkehrssubjekte (und -objekte) dargestellt werden und diese können miteinander agieren.

Mit dieser Arbeit soll gezeigt werden, ob sich das Multiagentenframework \enquote{LightJason} mit \enquote{AgentSpeak(L++)} dazu eignet, das Grundkonzept des Nagel-Scheckenberg-Modells für die Steuerung von Agenten zu übernehmen und Verkehrsverhalten unter Beachtung realer Ge"-schwin"-dig"-keits-, Abstands- und Beschleunigungswerte nachzubilden.



Expand Down
5 changes: 5 additions & 0 deletions tex/05-realisierung.tex
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ \section{Realisierung}

Aufgrund von Spezifikationsvorgaben für die Simulationsumgebung wurde vom ursprünglichen Entwickler eine Software realisiert, die einen Teil der Architektur des Workshops übernehmen konnte, Teile, wie z.B. das User-Interface, ausschloss und neue Komponenten wie z.B. die Kreisform der Strecke implementierte.

Hauptaugenmerk lag auf der Herstellung des Fahrzeugverhaltens.
So wurden u.a. die Zustandsautomaten in \cref{sec:zustandsautomat,sec:zustandsautomat-multi} entwickelt und die Feinabstimmung der Szenariodatei (\cref{lst:scenariofile}) vorgenommen.
Außerdem wurde das Agentenverhalten in den Agentenplänen (\cref{lst:nasch,lst:multi-lane}) definiert.

%Für die Zwecke dieser Arbeit musste die Software weiter angepasst werden.
Während der Tests der ersten Agentenpläne mussten Korrekturen vorgenommen werden, da eine fehlerfreie Simulation sonst nicht möglich gewesen wäre.
Mehr dazu nachfolgend in \cref{sec:anpassungen-probleme}.
Expand Down Expand Up @@ -47,6 +51,7 @@ \subsection{Entwicklung des Agentenverhaltens}


\subsubsection{Zustandsautomat}
\label{sec:zustandsautomat}

Das oben beschriebene Verhalten wurde zuerst mit Hilfe eines endlichen Automaten beschrieben, siehe \cref{figure:fsm-nasch}.

Expand Down
1 change: 1 addition & 0 deletions tex/06-multilane.tex
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ \subsection{Veränderungen für die Mehrspurigkeit}
Gegenüber der Einspurversion muss das Agentenverhalten um die Spurwechselkomponenten erweitert werden.

\subsubsection{Zustandsautomat}
\label{sec:zustandsautomat-multi}

Für die Simulation mehrspuriger Fahrbahnen kann der ursprüngliche Zustandsautomat (\cref{figure:fsm-nasch}), der die Veränderung der Geschwindigkeit beinhaltet, unverändert bleiben.
Das Spurwechselverhalten wird in einem separaten Automaten abgebildet, siehe \cref{figure:fsm-pull}.
Expand Down
21 changes: 15 additions & 6 deletions tex/09-fazit.tex
Original file line number Diff line number Diff line change
@@ -1,14 +1,23 @@
\section{Fazit}
\label{sec:fazit}

Das Ziel dieser Arbeit, das Agentenkonzept für die realistische Verkehrssimulation nutzen zu können, konnte erreicht werden.
Im Gegensatz zu anderen Arbeiten dient die Gridumgebung ausschließlich als Darstellung der Straße.
Die Zellgröße wurde gegenüber des ursprünglichen Nagel-Schreckenberg-Modells verkleinert.
%Das Ziel dieser Arbeit, das Agentenkonzept für die realistische Verkehrssimulation nutzen zu können, konnte erreicht werden.
Anders als bei den Simulationen zur ursprünglichen Arbeit von Nagel und Schreckenberg \cite{na-sch} konnte mit dem Agentenkonzept eine Simulation von Verkehr mit Werten durchgeführt werden, die ähnlich den real auftretenden sind.
Die Interaktionen zwischen den Agenten/Fahrzeugen finden ausschließlich aufgrund von Größen wie Abstand und (relativer) Geschwindigkeit statt.
Dies ist vergleichbar zur Situation im realen Straßenverkehr.

Interaktionen zwischen den Agenten/Fahrzeugen finden ausschließlich aufgrund \enquote{realer} Größen wie Abstand und (relativer) Geschwindigkeit statt.
Dies ist vergleichbar zur Situation im Straßenverkehr.
Die Gridumgebung dient ausschließlich als Darstellung der Straße.
\\
Die Fahrspuren sind, auch bei Mehrspurigkeit, anders als bei \cite{multi-fuzzy}, keine miteinander kommunizierenden Automaten, sondern die Zellen darauf \enquote{Verankerungspunkte} für die Fahrzeuge.
Zwischen den Fahrspuren kann hin und her gewechselt werden.
Die Verantwortung für die Einhaltung von Vorgaben liegt bei jedem Agenten.
\\
Die Zellgröße wurde gegenüber dem ursprünglichen Nagel-Schreckenberg-Modell verkleinert.
Eine weitere Verkleinerung scheint möglich, wenn die Inkonsistenzen in den Beliefbases abgestellt werden können.

Dadurch dass die Auslösung des Kollisionsereignisses bereits bei Unterschreitung eines Mindestabstandes stattfindet, der abhängig von der aktuell gefahrenen Geschwindigkeit ist, gelang es nicht eine realistische Unfallhäufigkeit zu erreichen. Ebenso wurde die Möglichkeit einer engen Fahrzeugfolge dadurch beeinflusst.
Die Kollisionsfreiheit des Originalmodells konnte bei zu großen Geschwindigkeitsunterschieden nicht dargestellt werden.
Dadurch dass die Auslösung des Kollisionsereignisses bereits bei Unterschreitung eines Mindestabstandes stattfindet, der abhängig von der aktuell gefahrenen Geschwindigkeit ist, gelang es ebenfalls nicht, eine realistische Unfallhäufigkeit zu erreichen.
Ebenso wurde die Möglichkeit einer engen Fahrzeugfolge dadurch beeinflusst.

Bei der Verkehrsfluss/Verkehrsdichte-Ebene des Fundamentaldiagrammes gelang nur die Darstellung des aufsteigenden Astes, die frei fließenden Verkehr bedeutet.

Expand Down
23 changes: 9 additions & 14 deletions tex/10-anhang-listings.tex
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,7 @@ \subsection*{Code-Listings}
CurrentSpeed < AllowedSpeed
&& ~>>( view/vehicle( _, data( _, static( lane( FwdLane ), cell( FwdCell ), speed( FwdSpeed ), distance( FwdDist ), direction( FwdDir ) ) ) ),
bool/equal( generic/type/tostring( FwdDir ), "forward[]" )
&& FwdDist < CurrentSpeed
&& FwdDist < 1.5*CurrentSpeed
&& FwdSpeed < CurrentSpeed
)
<-
Expand Down Expand Up @@ -168,7 +168,7 @@ \subsection*{Code-Listings}
// --- and own speed is higher than distance ---
: >>( view/vehicle( _, data( _, static( lane( FwdLane ), cell( FwdCell ), speed( FwdSpeed ), distance( FwdDist ), direction( FwdDir ) ) ) ),
bool/equal( generic/type/tostring( FwdDir ), "forward[]" )
&& FwdDist < CurrentSpeed
&& FwdDist < 1.5*CurrentSpeed
) <-
vehicle/decelerate(1);
!decelerate
Expand All @@ -189,9 +189,9 @@ \subsection*{Code-Listings}
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\own{Listing kommentare entfernen etc.}

\begin{lstlisting}[style=asl,
keywords={+!cruise,+!accelerate,+!linger,+!decelerate,+!vehicle/collision},
keywords={+!cruise,+!accelerate,+!linger,+!decelerate,+!vehicle/collision,+!pulloutworkaround,+!pullinworkaround},
keywords={[2]},
keywords={[3]},
caption={Agentenscript: NaSch-Modell, mehrspurig},
Expand All @@ -204,12 +204,12 @@ \subsection*{Code-Listings}

// --- start all other plans ---
+!cruise <-
CorrectedLanes = Lanes-1;
!accelerate;
!decelerate;
!linger;
// !pullout;
// !pullout(CorrectedLanes);
// !pullin;
CorrectedLanes = Lanes-1;
!pulloutworkaround(CorrectedLanes);
!pullinworkaround;
!cruise
Expand Down Expand Up @@ -259,8 +259,6 @@ \subsection*{Code-Listings}
.

// --- pull-out, change lane to overtake ---
// --- (maybe add "relative speed" condition ---
// --- (overtaker speed (CurrentSpeed) must be higher than overtakee speed) ---
// --- should work, but doesn't ---
// --- BUG in framework
// --- use + !pulloutworkaround instead ---
Expand Down Expand Up @@ -350,15 +348,12 @@ \subsection*{Code-Listings}
vehicle/decelerate(0.05);
!decelerate
*/
// --- if traffic is ahead only decelerate if ---
// --- CurrentSpeed is higher than speed of traffic ahead ---
// --- (avoids unnecessary breaking down to 0 kph) ---
// --- decelerate if traffic is ahead ---
// --- and own speed is higher than distance ---
: >>( view/vehicle( _, data( _, static( lane( FwdLane ), cell( FwdCell ), speed( FwdSpeed ), distance( FwdDist ), direction( FwdDir ) ) ) ),
bool/equal( generic/type/tostring( FwdDir ), "forward[]" )
&& math/floor( FwdLane ) == CurrentLane
// && FwdSpeed < CurrentSpeed
// && FwdSpeed-CurrentSpeed < 0.05*FwdSpeed
&& FwdDist < CurrentSpeed
&& FwdDist < 1.5*CurrentSpeed
) <-
vehicle/decelerate(1);
!decelerate
Expand Down
11 changes: 11 additions & 0 deletions tex/10b-anhang-cd.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\subsection*{CD-ROM}

Die beiliegende CD-ROM enthält diese Bachelorarbeit im PDF-Format.
Zudem sind die Szenariodateien für Single- und Multilane-Versuche (YML) und jew. eine entsprechende Datei mit den Agentenplänen

Zusätzlich enthält diese die Simulationssoftware als ausführbare JAR-Datei in der Version vom \own{DATUM einfügen}
Mit dieser Version wurden die Versuche getätigt.
1 change: 1 addition & 0 deletions thesis.tex
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@
\include{tex/10-anhang-listings}
% --- COMMENTED OUT, because PDF file gets too big ---
\include{tex/10a-anhang-plots}
\include{tex/10b-anhang-cd}

\end{appendices}

Expand Down

0 comments on commit 6bc1d44

Please sign in to comment.