SOLA
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions | Variables
daisi::cpps::logical Namespace Reference

Modified Round Robin Algorithm that centrally assigns tasks of incoming material flows to the corresponding centralized participants. More...

Classes

struct  AlgorithmConfig
 
class  AlgorithmInterface
 
class  AmrLogicalAgent
 
class  AmrLogicalExecutionState
 
class  AssignmentInitiator
 Algorithm for assigning tasks from a material flow to fitting AMRs. This algorithm is initiating and coordinating the procedure. There always must be a corresponding derived class from AssignmentParticipant. More...
 
class  AssignmentNotification
 Notification by a central initiator that a task has been assigned to the receiving participant. More...
 
class  AssignmentParticipant
 Algorithm for assigning tasks from a material flow to fitting AMRs. This algorithm is participating in the procedure which is beeing coordinated by an initiator. There always must be a corresponding derived class from AssignmentInitiator. More...
 
class  AssignmentResponse
 Response of a central participant as a reaction of a task assignment. Consists of the task_uuid, the acception / rejection, its connection string and of the new current status. More...
 
class  AuctionBasedTaskManagement
 
class  AuctionInitiatorState
 Helper class for the IteratedAuctionAssignmentInitiator to handle and store the state of received bids and winner responses. More...
 
struct  AuctionParticipantState
 Helper struct for the IteratedAuctionAssignmentParticipant to store the state of open auction processes, calculated bids (metrics) and insertion points. Each AuctionParticipantState is only responsible for one auction process by one dedicated initiator. More...
 
struct  AuctionParticipantTaskState
 Helper struct for the IteratedAuctionAssignmentParticipant, used inside of the AuctionParticipantState, to store information related to exactly one task. This includes the previously calculated bids (metrics) and insertion points. More...
 
class  BidSubmission
 
class  CallForProposal
 
class  CentralizedInitiator
 Algorithm that centrally assigns tasks of incoming material flows to the corresponding centralized participants. Should be implemented by any concrete centralized task assignment algorithm. More...
 
class  CentralizedParticipant
 Participant of a centralized task assignment strategy. Since the task assignment strategy is defined by the central allocator, the participant only needs to handle new task assignments. More...
 
class  IteratedAuctionAssignmentInitiator
 The initiator class for auction-based assignment, based on the TePSSI algorithm from Nunes, E., McIntire, M., & Gini, M. (2017). Decentralized multi-robot allocation of tasks with temporal and precedence constraints. Advanced Robotics, 31(22), 1193-1207. More...
 
class  IteratedAuctionAssignmentParticipant
 This class is the counterpart of the IteratedAuctionAssignmentInitiator, particpanting in the iterated auction procedure. It must be able to process, IterationNotification, and WinnerNotification messages. More...
 
class  IterationNotification
 
class  LayeredPrecedenceGraph
 Helper class to implement the pIA algorithm. A directed graph is layered into a free, second, and hidden layer. Prioritization is neglected in this modification of the algorithm. Therefore, all tasks from the free layer are automatically auctionable. More...
 
class  LogicalAgent
 
struct  LPCVertex
 
class  MaterialFlowLogicalAgent
 
class  MaterialFlowStateLogger
 
struct  MaterialFlowUpdate
 
class  Metrics
 
class  MetricsComposition
 
class  RoundRobinInitiator
 
class  SimpleTaskManagement
 
class  StatusUpdate
 might need some revision / additions in the future More...
 
class  StatusUpdateRequest
 might need some revision / additions in the future More...
 
class  StnTaskManagement
 
struct  StnTaskManagementEdge
 
struct  StnTaskManagementVertex
 
class  TaskManagement
 
class  TaskManagementHelper
 
class  WinnerNotification
 
class  WinnerResponse
 

Typedefs

using Message = std::variant< CallForProposal, BidSubmission, IterationNotification, WinnerNotification, WinnerResponse, AssignmentNotification, AssignmentResponse, StatusUpdate, StatusUpdateRequest, MaterialFlowUpdate >
 

Enumerations

enum class  AlgorithmType { kIteratedAuctionAssignmentInitiator , kIteratedAuctionAssignmentParticipant , kRoundRobinInitiator , kRoundRobinParticipant }
 
enum class  PrecedenceGraphLayer {
  kFree , kSecond , kHidden , kScheduled ,
  kNone
}
 Enum to represent the different layers tasks can be on in this precedence graph. The free layer is also referred to as T_F, the second layer as T_L, the hidden layer as T_H, and the scheduled layer as T_S.
 

Functions

std::string serialize (const Message &msg)
 
Message deserialize (const std::string &msg)
 
bool operator< (const Metrics &lhs, const Metrics &rhs)
 
bool operator<= (const Metrics &lhs, const Metrics &rhs)
 
bool operator> (const Metrics &lhs, const Metrics &rhs)
 
bool operator>= (const Metrics &lhs, const Metrics &rhs)
 
bool operator== (const Metrics &lhs, const Metrics &rhs)
 
bool operator!= (const Metrics &lhs, const Metrics &rhs)
 
bool operator== (const StnTaskManagementVertex &v1, const StnTaskManagementVertex &v2)
 

Variables

template<class >
constexpr bool kAlwaysFalseV = false
 

Detailed Description

Modified Round Robin Algorithm that centrally assigns tasks of incoming material flows to the corresponding centralized participants.