Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1415:futtersuche_bei_ameisen_-_simulation

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1415:futtersuche_bei_ameisen_-_simulation [2015/01/22 16:26]
xan7 [Planung der Umsetzung (Deadlines, erste Ziele, ...)]
ws1415:futtersuche_bei_ameisen_-_simulation [2016/05/10 14:46] (aktuell)
Zeile 21: Zeile 21:
 Ameisen verlassen ihr Nest mehr oder weniger zufällig, orientieren sich jedoch an Temperatur und Licht (, worauf wir in unserer Simulation jedoch nicht eingehen). Ihren Weg markieren sie mit verschiedenen Pheromonen, abhängig von ihren Erlebnissen. Das Pheromon, auf das wir uns konzentrieren,​ wird bei der Futtersuche genutzt. Die Braunschwarze Rossameise, die wir als Vorbild nehmen, ernährt sich in Trophobiose (Symbiose von Ameisen und Blattläusen - Schutz durch Ameise gegen Nahrungsversorgung mit Honigtau durch Blattläuse) und Zoophagie (Ernährung von anderen Tieren, Carnivorismus),​ allerdings arbeiten wir mit stationären Nahrungsquellen,​ also konzentrieren wir uns auf die Trophobiose. Ameisen verlassen ihr Nest mehr oder weniger zufällig, orientieren sich jedoch an Temperatur und Licht (, worauf wir in unserer Simulation jedoch nicht eingehen). Ihren Weg markieren sie mit verschiedenen Pheromonen, abhängig von ihren Erlebnissen. Das Pheromon, auf das wir uns konzentrieren,​ wird bei der Futtersuche genutzt. Die Braunschwarze Rossameise, die wir als Vorbild nehmen, ernährt sich in Trophobiose (Symbiose von Ameisen und Blattläusen - Schutz durch Ameise gegen Nahrungsversorgung mit Honigtau durch Blattläuse) und Zoophagie (Ernährung von anderen Tieren, Carnivorismus),​ allerdings arbeiten wir mit stationären Nahrungsquellen,​ also konzentrieren wir uns auf die Trophobiose.
 {{:​ws1415:​herausbildung_hauptweg.jpg?​200 |}} {{:​ws1415:​herausbildung_hauptweg.jpg?​200 |}}
 +
 +1: Die erste Ameise findet eine Futterquelle (F), benutzt den Weg (a), dann erreicht sie das Nest (N), und hinterlässt eine Pheromonspur.
 +
 +2: Andere Ameisen folgen der ersten auf 4 möglichen Pfaden.
 +
 +3: Die Ameisen folgen dem kürzesten Pfad.
 +
 Konsistente Pheromonspuren entstehen durch die Überlagerung von Pheromonspuren verschiedener Ameisen, die auf unterschiedlichen Routen das gleiche Ziel angesteuert haben. Konsistente Pheromonspuren entstehen durch die Überlagerung von Pheromonspuren verschiedener Ameisen, die auf unterschiedlichen Routen das gleiche Ziel angesteuert haben.
 Ameisen nehmen Pheromone über die Fühler am Kopf war und bewegen sich zur höchsten Pheromonkonzentration,​ es sei denn, ein Artgenosse ist im Weg. In dem Fall versuchen sie auszuweichen.{{ :​ws1415:​circularmill.jpeg?​200|}} Ameisen nehmen Pheromone über die Fühler am Kopf war und bewegen sich zur höchsten Pheromonkonzentration,​ es sei denn, ein Artgenosse ist im Weg. In dem Fall versuchen sie auszuweichen.{{ :​ws1415:​circularmill.jpeg?​200|}}
 Jedoch kann der Drang, einer Kollision auszuweichen,​ durch eine entsprechend hohe Pheromonkonzentration ausgeschaltet werden, wodurch sogenannte "Ant mills" entstehen: Kreise von Ameisen, die auf ihren eigenen Spuren weiterlaufen,​ da die Konzentration durch die schiere Menge an Ameisen so hoch ist, dass sie ihre eigenen Artgenossen tot trampeln, woher der alternative Name "Death Circle"​ stammt. Jedoch kann der Drang, einer Kollision auszuweichen,​ durch eine entsprechend hohe Pheromonkonzentration ausgeschaltet werden, wodurch sogenannte "Ant mills" entstehen: Kreise von Ameisen, die auf ihren eigenen Spuren weiterlaufen,​ da die Konzentration durch die schiere Menge an Ameisen so hoch ist, dass sie ihre eigenen Artgenossen tot trampeln, woher der alternative Name "Death Circle"​ stammt.
 +
 Wenn eine Ameise auf eine konsistente Pheromonspur gerät, verfällt sie in eine Art "​Zickzack"​-Kurs,​ da sie im Versuch zur höchsten Pheromonkonzentration zu gelangen, immer wieder die Spur überqueren. Wenn eine Ameise auf eine konsistente Pheromonspur gerät, verfällt sie in eine Art "​Zickzack"​-Kurs,​ da sie im Versuch zur höchsten Pheromonkonzentration zu gelangen, immer wieder die Spur überqueren.
 {{:​ws1415:​irritation_gerade_linie_pheromon.jpg?​200|}} {{:​ws1415:​irritation_gerade_linie_pheromon.jpg?​200|}}
 +
 +====Größen und Werte====
 +Unser Modell orientiert sich an der Braunschwarzen Rossameise. Deshalb nutzen wir folgende Werte:
 +
 +Länge [lenght]: 10mm
 +
 +Fühler Reichweite (Pheromonwahrnehmung) [head_radius]:​ 4mm
 +
 +Winkel zwischen den Fühlern [head_angle]:​ 100°
 +
 +Radius um den Körpermittelpunkt (Wahrnehmung anderer Objekte, u.a. Artgenossen) [center_radius]:​ 5mm
 +
 +maximale Geschwindigkeit [max_speed]:​ 200 mm/s
 +
 +minimale Geschwindigkeit [min_speed]:​ 5 mm/s
 +
 +Geschwindigkeit [speed]: 100 mm/s
 + 
 +maximaler Drehwinkel [max_turn_angle]:​ 20°
 ====Technische Herangehensweise==== ====Technische Herangehensweise====
   *  Abbildung in Python als UML   *  Abbildung in Python als UML
Zeile 54: Zeile 81:
 ===Wie verteilen sich Duftstoffe?​=== ===Wie verteilen sich Duftstoffe?​===
  
-  * Duftstoffe ​verblasen ​(verlieren an Intensität über Zeit)+  * Duftstoffe ​verblassen ​(verlieren an Intensität über Zeit)
   * Duftstoffe verteilen sich, sie diffundieren   * Duftstoffe verteilen sich, sie diffundieren
  
Zeile 117: Zeile 144:
   return in_angle   return in_angle
 </​code>​ </​code>​
 +>​**22.01**
 +>Heute haben wir eine Funktion eingeführt die die Koordinaten aus dem Modell für die visuelle Abbildung umwandelt.
 +>Dabei wir der Ursprung auf die Mitte des Fenstes verschoben und die Koordinaten werden in ganzahlige Werte umgewandelt.
 +<code python>
 +def convert_coordinates(self,​ position_vector):​
 +  screen_x, screen_y = self.screen.get_size()
  
 +  #​transformation vector
 +  transform_v = np.array([screen_x / 2, screen_y / 2])
  
 +  #convert to integer array
 +  position_int = np.array(np.rint(position_vector + transform_v),​ dtype=np.int)
 +
 +  return position_int
 +</​code>​
 +>Die Ant-Klasse hat jetzt eine ''​max_turn_rate''​ die den maximalen Drehwinkel pro Frame limitiert. ​
 +>Die Methode ''​evade''​ der Ant-Klasse funktioniert jetzt wie gewollt. Die Ameisen weichen sich aus.
 +t=0s{{:​ws1415:​screen_shot_2015-01-22_at_17.30.31.png?​350|}}t=1,​8s{{:​ws1415:​screen_shot_2015-01-22_at_17.31.00.png?​350|}}
 +>
 +>​Interaktionsradius von ''​center_radius == 75mm''​
 +t=0.25s {{:​ws1415:​screen_shot_2015-01-22_at_17.45.37.png?​200|}} t=25.25s {{:​ws1415:​screen_shot_2015-01-22_at_17.46.05.png?​200|}} t=75.25s {{:​ws1415:​screen_shot_2015-01-22_at_17.47.09.png?​200|}}
 +>​**22.01**
 +>Wir haben einen Fehler mit plötzlich viel zu großen und viel zu kleinen Zahlen während einer Durchschnittsberechnung behoben.
 +>Finde ihn selber:
 +<code python>
 +def get_weighted_collision_vector(self,​ object_list):​
 +    v_matrix = np.empty((2),​ dtype=np.float64)
 +    for o in object_list:​
 +        v = ((self.position - o.position) / np.linalg.norm(self.position - o.position))
 +        v_matrix = v_matrix + v
 +
 +    print v_matrix.dtype
 +
 +    average = np.mean(v_matrix,​ axis=0)
 +
 +    return average
 +</​code>​
 +>Ameisen folgen nun Pheromonen. (ausbaufähig)
 +>Wir haben uns graphische Auswertungsmöglichkeiten zur Darstellung unserer Simulationsergebnisse überlegt.
ws1415/futtersuche_bei_ameisen_-_simulation.1421940398.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)