Packages

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

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MacroSwarmSupport
  2. Consensus
  3. CollectivePlanner
  4. LeaderBasedMovement
  5. CoordinatedMovement
  6. CoreMovement
  7. FastBlocks
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MacroSwarmSupport(incarnation: E)

    incarnation

    the incarnation to enrich

Type Members

  1. 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
  2. trait ConsensusLib extends AnyRef
    Definition Classes
    Consensus
  3. 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
  4. 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
  5. 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
  6. 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
  7. trait ProcessFix extends E.CustomSpawn
    Definition Classes
    FastBlocks
  8. 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
  9. 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
  10. 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

  1. 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

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  8. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  9. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @IntrinsicCandidate() @native()
  10. val incarnation: E
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @IntrinsicCandidate() @native()
  15. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  16. def toString(): String
    Definition Classes
    AnyRef → Any
  17. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from Consensus[E]

Inherited from CollectivePlanner[E]

Inherited from LeaderBasedMovement[E]

Inherited from CoordinatedMovement[E]

Inherited from CoreMovement[E]

Inherited from FastBlocks[E]

Inherited from AnyRef

Inherited from Any

Ungrouped