Zum Hauptinhalt springen

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)