Agent Functions
FindAll
Gibt alle Agenten in einer Population zurück. Nützlich für Massenaktionen oder Analysen:
Syntax: [Population].FindAll()
Beispiel: [People].FindAll().Count()
Mean([Trees].FindAll().Map(x.Value([Height])))
FindState
Gibt alle Agenten in einem bestimmten Zustand zurück:
Syntax: [Population].FindState([State])
Beispiel: [Cells].FindState([Infected])
[Students].FindState([Studying])
FindNotState
Gibt Agenten zurück, die sich nicht in einem bestimmten Zustand befinden:
Syntax: [Population].FindNotState([State])
Beispiel: [Patients].FindNotState([Recovered])
Mean([Trees].FindNotState([Burned]).Map(x.Value([Height])))
FindIndex
Gibt den Agenten an einem bestimmten Index zurück (beginnend bei 1):
Syntax: [Population].FindIndex(Index)
Beispiel: [Fish].FindIndex(1)
[Books].FindIndex(5)
FindNearby
Gibt Agenten innerhalb einer festgelegten Entfernung zu einem Ziel zurück:
Syntax: [Population].FindNearby(Target, Distance)
Beispiel: [Trees].FindNearby(PollutedArea, 50)
[Fish].FindNearby(FoodSource, 20)
FindNearest
Gibt den/die nächstgelegene(n) Agent(en) zu einem Ziel zurück:
Syntax: [Population].FindNearest(Target, Count=1)
Beispiel: [Customers].FindNearest(Store)
[EmergencyVehicles].FindNearest(AccidentSite, 5)
FindFurthest
Gibt den/die Agenten zurück, der/die am weitesten von einem Ziel entfernt ist/sind:
Syntax: [Population].FindFurthest(Target, Count=1)
Beispiel: [FireStations].FindFurthest(Fire, 3)
[RetailStores].FindFurthest(Mall)
Value
Gibt einen Vektor von Werten eines angegebenen Attributs zurück:
Syntax: [Population].Value([Primitive])
Beispiel: [Employees].Value([Salary]).Max()
[Cars].Value([Mileage]).Min()
SetValue
Setzt ein Attribut für alle oder bestimmte Agenten auf einen bestimmten Wert:
Syntax: [Population].SetValue([Primitive], Value)
Beispiel: car.SetValue([FuelLevel], 100)
[University].SetValue([Smoker], false)
Location
Gibt die {x, y}-Koordinaten eines Agenten zurück:
Syntax: [Agent].Location()
Beispiel: Self.Location().x
Self.Location().y
Predator.Location().Distance(Prey.Location())
SetLocation
Verschiebt einen Agenten an einen neuen {x, y}-Standort. Nützlich für die Simulation einer Neupositionierung:
Syntax: [Agent].SetLocation(New Location)
Beispiel: Student.SetLocation({x: 60, y: 40})
Bird.SetLocation(Bird.Location() + {x: -10, y: 0})
Taxi.SetLocation(Customer.Location())
Index
Gibt den 1-basierten Index des Agenten in seiner Population zurück:
Syntax: [Agent].Index()
Beispiel: Self.Index()
Distance
Berechnet die euklidische Distanz zwischen zwei Punkten oder Agenten:
Syntax: Distance(Location One, Location Two)
Beispiel: Distance({x: 10, y: 5}, {x: 20, y: 15})
Distance(patient, hospital)
Move
Bewegt den Agenten um einen Delta-Vektor {x, y}:
Syntax: [Agent].Move({x, y})
Beispiel: Self.Move({x: Rand(-1, 1), y: Rand(-1, 1)})
Car.Move({x: 10, y: 0})
MoveTowards
Bewegt den Agenten in Richtung eines Zielorts oder Agenten um eine angegebene Distanz:
Syntax: [Agent].MoveTowards(Target, Distance)
Beispiel: Self.MoveTowards({0, 100}, 10)
Self.MoveTowards([Food Sources].FindNearest(Self), 5)
Connected
Gibt alle Agenten zurück, die in einem Netzwerk direkt mit dem Agenten verbunden sind:
Syntax: [Agent].Connected()
Beispiel: Self.Connected().Length()
Connect
Erstellt eine Netzwerkverbindung zwischen Agenten mit optionaler Gewichtung:
Syntax: [Agent 1].Connect([Agent 2], Weight)
Beispiel: Self.Connect([Population].FindNearest(Self), 5)
Self.Connect(Self.FindNearest([Food Source]), 10)
Unconnect
Entfernt die Netzwerkverbindung zwischen Agenten:
Syntax: [Agent 1].Unconnect([Agent 2])
Beispiel: Self.Unconnect(SpecificAgent)
ConnectionWeight
Gibt das Gewicht der Verbindung zwischen zwei Agenten zurück:
Syntax: [Agent 1].ConnectionWeight([Agent 2])
Beispiel: Self.ConnectionWeight(agent)
SetConnectionWeight
Legt die Verbindungsgewichtung zwischen zwei Agenten fest:
Syntax: [Agent 1].SetConnectionWeight([Agent 2], Weight)
Beispiel: Self.SetConnectionWeight(BestFriend, 100)
Self.SetConnectionWeight(Other, 10)
Population Size
Gibt die Gesamtzahl der Agenten in einer Population zurück:
Syntax: [Agent Population].PopulationSize()
Beispiel: [Fish].PopulationSize()
IfThenElse([Rabbits].PopulationSize() > 1000, 'Overpopulated', 'Stable')
Add
Fügt der Population einen neuen Agenten hinzu, klont optional einen vorhandenen:
Syntax: [Agent Population].Add(Base Agent=Initial Agent)
Beispiel: [Trees].Add(Tree)
Repeat([Company].Add(NewHire), 10)
Remove
Entfernt einen Agenten aus der Bevölkerung:
Syntax: [Agent].Remove()
Beispiel: prey.Remove()
[University].FindState([Smoker]).Map(x.Remove())
Width
Gibt die Breite der geografischen Region des Agenten zurück:
Syntax: Width(Agent)
Beispiel: Width(Self)
Width(Car)
Height
Gibt die Höhe der geografischen Region des Agenten zurück:
Syntax: Height(Agent)
Beispiel: Height(Self)
Height(Store)