\documentclass[12pt,fleqn,a4paper]{report}
\usepackage[austrian]{babel}
\usepackage{german}
\usepackage{amsfonts}
\usepackage{latexsym}
\usepackage{xspace}
\usepackage{epsfig}
\usepackage{psfrag}
\usepackage{graphicx}

\textheight	680pt
\textwidth	460pt
\topmargin	-40pt
\oddsidemargin	  5pt
\evensidemargin	  5pt
\parindent	  0pt

\begin{document}
\begin{titlepage}
\centerline{\large  PS Programmierpraktikum SS 2001}
\vspace{0.5cm}
\hspace {2.3cm}
PP-001-2001
\hspace{5.2cm}
\today

\vspace{2cm}
\centerline{\Large\bf Entwicklung eines Multi-Agenten-Systems (MAS) unter Java }
\vspace{0.2cm}
\centerline{\Large\bf }

\vspace{1cm}
\centerline{\bf Report}
\centerline{\bf }

\vspace {1cm}
\centerline{\large Mohamed Elkhattaf \hfill Manfred Weyrer \hfill Sebastian Gumpold }
\vspace{0.2cm}
\centerline{melkhatt@cosy.sbg.ac.at \hfill mweyrer@cosy.sbg.ac.at \hfill sgumpold@cosy.sbg.ac.at}
\vspace {1cm}
\centerline{Academic Supervisor Mag. Dipl.-Ing. Schwaiger Roland}

\vspace{1cm}
\centerline{\large Department of Computer Science}
\vspace{0.2cm}
\centerline{\large University of Salzburg}

\vspace{8cm}
Correspondence to: \\
\centerline{Universit\"{a}t Salzburg} \\
\centerline{Institut f\"{u}r Computerwissenschaften und Systemanalyse} \\
\centerline{Jakob--Haringer--Stra\ss e 2} \\
\centerline{A--5020 Salzburg} \\
\centerline{Austria}

\clearpage
\end{titlepage}

\title{\Large\bf Entwicklung eines Mulit-Agenten-Systems (MAS) unter Java }

\author{{\large Mohamed Elkhattaf and Manfred Weyrer and Sebastian Gumpold}\\
{\small Department of Computer Science} \\
{\small University of Salzburg} \\
{\small A--5020 Salzburg, Austria} \\
{\small \{melkhatt\}, \{mweyrer\},  \{sgumpold\}@cosy.sbg.ac.at}}

\date{}

\maketitle

%\begin{abstract}
%\end{abstract}

\tableofcontents


\chapter{Introduction}

Die Aufgabe, die uns im Programmier-Praktikum gestellt wurde,
ist die Entwicklung und Implementierung eines Multi-Agenten-Systems (MAS)
unter Java. Dieses MAS besteht aus einer festen Anzahl von Agenten, die in einer
Umgebung (der Welt) zuf\"{a}llig ausgesetzt werden.\\

Diese Welt wird mit einem 'Gitter' in gleich gro\ss e Quadrate eingeteilt.\\

Aufgabe bzw. Ziel der Agenten ist es in ihrer beschr\"{a}nkten Lebenszeit eine
m\"{o}glichst gro\ss e Fl\"{a}che der Welt zu erforschen/besuchen (wobei auch mit einer
m\"{o}glichst gro\ss en Anzahl von anderen Agenten kommuniziert werden soll).\\

In welche Richtung (vorw\"{a}rts, links, rechts, r\"{u}ckw\"{a}rts) ein Agent sich bewegt,
wird durch seinen Neuro-Controller entschieden. Der Controller besteht aus zwei
Input-Neuronen (Radius, Winkel), einer variablen Anzahl von versteckten Neuronen
(max. vier) und vier Output-Neuronen. Die m\"{o}glichen Ausgaben sind 'FRONT', 'BACK',
'LEFT', 'RIGHT', wobei die Ausgabe nach dem 'winner-takes-all' Prinzip implementiert
ist.\\


Um diese Aufgabe zu bew\"{a}ltigen wird die 1. Generation der Agenten mit einem
zuf\"{a}llig erzeugtem \emph{Genetischen Algorithmus (GA)} ausgestattet (hinter
dem ein k\"{u}nstliches neuronales Netz -- ein ANN -- steht). In jeder weiteren
Generation (also nach jedem weiteren Evolutionsschritt) wird das 'genetische
Material' der erfolgreichsten Agenten ein wenig mutiert und an die n\"{a}chste
Generation weitergegeben.\\

Wie erfolgreich ein Agent war, wird durch einen Fitness-Test festgestellt.
Auf diese Weise werden die Agenten in der Bew\"{a}ltigung ihrer Aufgabe immer
erfolgreicher (auf lange Sicht gesehen).\\


Der Lebenszyklus der Agenten:

\begin{itemize}

\item Wenn das System das erste Mal gestartet wird, werden die Position der Agenten
  und ihre Neuro-Controller (zuf\"{a}llig) initialisiert. Handelt es sich nicht um
  die erste Generation, dann werden die 'evolvierten' Neuro-Controller der
  Vorg\"{a}nger-Generation importiert.

\item In jedem Schritt (w\"{a}hrend der Lebensspanne) eines Agenten machen die Agenten
  eine Bewegung in die Richtung, die ihnen von ihrem Neuro-Controller vorgegeben
  wird.

  Falls ein Agent einen anderen Agenten trifft, dann 'spielen' beide ein
  \emph{Naming Game}.

\item Am Ende der Lebensspanne eines Agenten wird seine Fitness bestimmt. Dies geschieht
  durch eine \emph{mulit-objective fitness function} . Der Erfolg eines Agenten
  hat dann Einflu\ss\ auf die Adaption der Verbindungs-Gewichte im Neuro-Controller.

  Die verschiedenen Selektions-Kriterien (Anzahl der besuchten Pl\"{a}tze oder Anzahl
  der Kommunikations-Partner) werden f\"{u}r die 'multi-objective tournament Selektion'
  (f\"{u}r den mating-Pool) verwendet. Evolution\"{a}re Mechanismen bilden den Ausgangspunkt
  f\"{u}r die n\"{a}chste Generation, die ihren Lebenszyklus wie oben beschrieben startet.

\end{itemize}

Die Agenten 'lernen' also durch Evolution, d.h. sie verbessern sich nicht w\"{a}hrend
ihrer Lebenszeit, sondern geben ihre Erfahrungen der n\"{a}chsten Generation weiter.\\

Die Agenten in unserem System weisen folgende Eigenschaften auf:

\begin{enumerate}

\item Reaktiv: sie erkennen andere Agenten in Ihrem Sensorradius und reagieren
   auf diese (kommunizieren mit ihnen und bewegen sich -- wenn m\"{o}glich -- an ihnen
   vorbei).

\item Autonom: sie kontrollieren ihre Kommunikation und ihre Bewegungen selbst.

\item Indirekt zielorientiert: sie reagieren auf ihre Umgebung, aber
   haben die Mittel um zielorientiert zu agieren (in Hinsicht auf das Generationenziel).

\item Zeitlich kontinuierlich (fortlaufend): je Generation, da wir ein generationenbasiertes
   Evolutions-System beobachten (im Gegensatz zu einem System, dass seinen
   momentanen Status st\"{a}ndig h\"{a}lt).

\item Kommunikativ: sie kommunizieren mit anderen Agenten \"{u}ber Agenten.

\item Nicht lernend: sie lernen durch Evolution aber nicht w\"{a}hrend ihrer Lebenszeit.

\item Mobil: sie bewegen sich von einem Punkt (ihrer Umwelt) zu einem anderen.

\item Nicht-flexible Charakt\"{a}re: Ihre Handlungen sind vordefiniert (zuerst kommunizieren,
   dann die Bewegungsrichtung festlegen).

\end{enumerate}


\section{Erweiterungen}
Eine Verbesserung (Erweiterung) des Systems ist m\"{o}glich indem man die Sensoren
der Agenten ebenfalls in die Evolution einbaut. D.h. statt gleich vieler Sensoren in alle
Richtungen, kann ein Agent z.B. besser sein, wenn er nach vorne mehr wahrnimmt als nach
hinten.


\section{Anwendungen}
Eine m\"{o}gliche Anwendung dieses MAS ist die Kategorisierung eines Satellitenbildes.
D.h. es werden Agenten auf der Karte zuf\"{a}llig verteilt, die dann m\"{o}glichst schnell
die gesamte Karte 'erforschen' (kategorisieren) sollen.



%\cite{bib99}...

\chapter{Next Section}
... here goes your text...

\appendix
\chapter{Protocolls}
\section{Date}
Insert information s.a.
\begin{enumerate}
\item Person responsible for protocoll
\item Participating persons
\item Topics talked about
\item New assignments
\item Open questions
\item etc.
\end{enumerate}


\bibliographystyle{ieeetr}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliography{Paper}
\end{document}
