introduction Link to heading

boids Link to heading

  • Boid stands for bird-oid object, signifying how it has been used to realistically represent flocks of birds or schools of fish without any special intelligence and easily translatable, standardized behaviours (Vishwajith, 2021).
  • Boid simulation is the simulation of the behaviour of creatures while moving in groups, where this movement pattern can be found in the school of fish, the flock of birds. (Shrestha, 2021).
  • One application of the ideas involved in Boids and other swarm intelligence simulations is in the field of “swarm robotics”, where a key component in these systems is communication between individual robots in order to ensure that each is devoted to an appropriate task at hand (Wong, 2008).

terminology Link to heading

Some terminology (Pemmaraju, 2013)

  • Agent: A single entity or character, which is the boid.
  • Velocity vector: An agent’s current velocity.
  • Neighborhood: A certain area around the agent, used to look for other agents.
  • Resultant: The vector obtained from the calculations of the rule.

velocities Link to heading

There are velocities due to forces (von Mammen & Jacob, 2008)

  • alignment
  • cohesion
  • separation
  • wander
  • bound
  • containment

motion parameters and sets Link to heading

  • Each boid $i$ has velocity $\vec{v}_i$ and position $\vec{p}_i$.
  • For boid $i$ there is set of neighbors $N_i$, the perceived ones.
  • There is also subset $S_i \subseteq N_i$ for $r_{ij} < d_{\rm min}$.

forces Link to heading

alignment Link to heading

  • It directs boid $i$ to average direction of its neighbors.
    $$ \vec{v} _{a, i} = \frac{1}{|N_i|} \sum _{j \in N_i} \vec{v} _j. $$

cohesion Link to heading

  • It attracts boid $i$ to center of its neighbors.
    $$ \vec{v} _{c, i} = \frac{1}{|N_i|} \sum _{j \in N_i} \vec{p} _j. $$

separation Link to heading

  • It pushes away boid $i$ from center of its sub-neighbors.
    $$ \vec{v} _{s, i} = \frac{1}{|S_i|} \sum _{j \in N_i} \vec{v} _j. $$

wander Link to heading

  • It represent “free will” of boid $i$ using random number in limited range radius $v_0$.
    $$ \vec{v} _{r, i} = v_0 \hat{v} + v_0 (\theta \in [0, 2 \pi]) \hat{\theta}. $$

bound Link to heading

  • It directs boid $i$ to center of its neighbors if it is outside the world region.
    $$ \vec{v} _{b, i} = \vec{w} - \vec{p}_i. $$

containment Link to heading

  • It forces boid $i$ to enter defined and limited region if it is outside.
    $$ \vec{v} _{t, i} = \left\{ v_t \hat{v} - v_t (\theta \in [0, 2 \pi]) \hat{\theta} \right\} \ {\rm for} \ \vec{p} _i \in \Omega. $$

simulation Link to heading

typical lengths Link to heading

  • Length used is fish body length or $(\rm BL)$.
  • It is chosen that $1 {\rm unit \ length} \ {\rm or} \ {\rm BL} \approx {\rm 16px}$.

parameters Link to heading

  • For cohesion $d_{\rm min} = 3 \ {\rm BL}$.
  • For separation $d_{\rm min} = 0.3 \ {\rm BL}$.
  • Due to Unity limitation for real time step it uses $\Delta t = 0.025 \ {\rm s}$.
  • Simulation time $t \in [0, 600] \ {\rm s}$
  • Maximum velocity $v_{\rm max} = 15$ unit length per second.
  • Not all previous forces are considered at the same time in each simulation.

update Link to heading

For boid $i$

  • Acceleration $$ \vec{a}_i = \sum_i c_a \vec{v} _{a,i} + c_c \vec{v} _{c,i} + c_s \vec{v} _{s,i} + c_r \vec{v} _{r,i} + c_b \vec{v} _{b,i} + c_t \vec{v} _{t,i}. $$
  • Velocity $$ \vec{v}_i (t + \Delta t) = \vec{v}_i (t) + \vec{a}_i. $$
  • Position $$ \vec{p}_i (t + \Delta t) = \vec{p}_i (t) + \vec{v}_i(t + \Delta t). $$

aci Link to heading

  • Interaction matrix, e.g 4 boids $$ M = \left[ \begin{matrix} 0 & 1 & 1 & 0 & 0 \newline 1 & 0 & 0 & 1 & 0 \newline 1 & 0 & 0 & 0 & 1 \newline 0 & 1 & 0 & 0 & 0 \newline 0 & 0 & 1 & 0 & 0 \end{matrix} \right] $$
  • Matrix element
    • $m_{ij} = 1 - \delta_{ij}$ or $$ m_{ij} = \left\{ \begin{matrix} 0, & i = j, \newline 1, & i \ne j \end{matrix} \right. $$
    • $m_{ij} = m_{ji}$
  • Alignment clustering index $$ \alpha_t = \frac{\frac12 {\rm Tr}(M_t^2)}{\frac12 N(N-1)} $$

results Link to heading

coefficients Link to heading

  • cohesion
  • alignment
  • separation
  • containment
  • (wander)

70-10-10-00 (cohesion dominant) Link to heading

10-70-10-00 (alignment dominant) Link to heading

10-10-70-00 (separation dominant) Link to heading

10-10-10-70 (containment dominant) Link to heading

aci Link to heading

aci-acsc Link to heading

Force1234567
Alignment10203040506070
Cohesion70605040302010
Separation10101010101010
Containment10101010101010

aci-acscw Link to heading

Force123456
Alignment102030405060
Cohesion605040302010
Separation101010101010
Containment101010101010
Wander101010101010

wander influence Link to heading

  • Random motion is introduced through wander.
  • It shows saturated ACI when weight of alinment ≥ 40.

closing Link to heading

conclusion Link to heading

  • ACI is increasing as alignment increasing with other besides cohesion is held constant.
  • Addition of wander will introduce saturated ACI.
  • ACI can show the merge of two or more clusters of boids.

future plan Link to heading

  • Investigate further variation of weights and relate them to ACI or other indices in characterizing motion patterns of boids.
  • Modify existing indices or propose new ones to obtain more suitable paremeters for boid behaviours.

notes Link to heading

  • Day: 2 / 13 Sep 2023
  • Time: 14.40 - 14.50
  • Room: Balangan Room
  • Topic/scope: Fisheries - sustainable fisheries management, EAFM, IUU fishing
  • Code: ICM112
  • Title of Paper: Weight Parameter and Alignment Clustering Index Analysis in Boid Simulation: A Study of Multiple Fish Species → Analysis of Boid Algorithm Weights using Alignment Clustering Index → Alignment Clustering Index for Boid.
  • Presenter: Sparisoma Viridi