abstract class MacroSwarmSupport[E <: Dependency] extends FastBlocks[E] with CoreMovement[E] with CoordinatedMovement[E] with LeaderBasedMovement[E] with CollectivePlanner[E] with Consensus[E]
This trait provides the support for the MacroSwarm library, i.e., it provides the implementation of the swarm
behaviours expressed in CoreMovement, CoordinatedMovement, LeaderBasedMovement, and CollectivePlanner. It enriches
an incarnation without extending it, so that it can be mixed in with other traits. To use it, you need to extend it
and provide the incarnation you want to enrich. e.g., object MyMacroSwarmSupport(ScafiIncarnationForAlchemist)
extends MacroSwarmSupport[MyIncarnation]
After that, you have to import the incarnation accordingly to the one you
provided, e.g., import MyMacroSwarmSupport.incarnation._
- E
the incarnation of the aggregate system
- Alphabetic
- By Inheritance
- MacroSwarmSupport
- Consensus
- CollectivePlanner
- LeaderBasedMovement
- CoordinatedMovement
- CoreMovement
- FastBlocks
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new MacroSwarmSupport(incarnation: E)
- incarnation
the incarnation to enrich
Type Members
- trait PlanMovementLib extends AnyRef
The plan library.
The plan library.
It is based on the concept of plan, which is a couple of computation and condition. The computation is a function that returns the velocity of the agent.
The condition is a function that returns a boolean value that indicates if the plan is still valid. The plan is executed until the condition is false.
The plan is selected by the leader of the swarm and broadcasted to the other agents.
- Definition Classes
- CollectivePlanner
- trait ConsensusLib extends AnyRef
- Definition Classes
- Consensus
- trait FlockLib extends AnyRef
This trait provides a set of methods to implement flocking algorithms.
This trait provides a set of methods to implement flocking algorithms.
- Definition Classes
- CoordinatedMovement
- trait BaseMovementLib extends AnyRef
This trait contains the basic movement libraries for the MacroSwarm.
This trait contains the basic movement libraries for the MacroSwarm. It includes movements like standStill, brownian, maintainTrajectory, maintainUntil, obstacleAvoidance.
- Definition Classes
- CoreMovement
- trait GPSMovement extends AnyRef
This trait contains the basic movement based of GPS.
This trait contains the basic movement based of GPS. The movements includes goto, explore, isClose.
- Definition Classes
- CoreMovement
- trait BlocksWithShare extends AnyRef
This trait provides a set of blocks that can be used to implement the fast gradient algorithm and share operator.
This trait provides a set of blocks that can be used to implement the fast gradient algorithm and share operator. These are twice as fast as the standard blocks.
- Definition Classes
- FastBlocks
- trait ProcessFix extends E.CustomSpawn
- Definition Classes
- FastBlocks
- trait LeaderBasedLib extends AnyRef
This library provides the basic movement primitives for the leader-based movement.
This library provides the basic movement primitives for the leader-based movement. It mainly consist in function for aligning, sinking, and spinning around a leader, i.e., a node that is responsible for the movement of a subset of the nodes. Indeed, the leader-based movements are based of G, therefore they create areas of influence around the leader.
- Definition Classes
- LeaderBasedMovement
- trait PatternFormationLib extends AnyRef
a library for creating spatial patterns in the swarm.
a library for creating spatial patterns in the swarm. The behaviour is based on the gradient of a potential field.
Therefore, for creating a shape, it should exist a leader responsible for that shape.
Team formation and pattern formation can be used together to create a shape with a team of nodes.
Currently, the shapes supported are: line, circle, and v-shape.
- Definition Classes
- LeaderBasedMovement
- trait TeamFormationLib extends AnyRef
This library provides the basic blocks to create logical teams, i.e., a subset of node that have a persistent common goal.
This library provides the basic blocks to create logical teams, i.e., a subset of node that have a persistent common goal. One a team is formed, the nodes cannot leave it. Inside a team, there will be a logic influenced by the leader-based movement, i.e., the leader will be responsible for the movement of the team. This library provides a way to create this teams based on intra-distance and extra-distance. The foster is the distance between nodes that are in the same team. The latter is influence of the leader during the formation of the team.
- Definition Classes
- LeaderBasedMovement
Abstract Value Members
- implicit abstract def ordering: Ordering[E.ID]
It is needed for ordering the IDs of the nodes.
It is needed for ordering the IDs of the nodes. Indeed, the ID might be of any type, so we need to provide an ordering for it.
- returns
the Ordering type class for the IDs
- Definition Classes
- LeaderBasedMovement
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- val incarnation: E
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)