17#ifndef DAISI_CPPS_LOGICAL_ALGORITHMS_ASSIGNMENT_ITERATED_AUCTION_ASSIGNMENT_INITIATOR_H_
18#define DAISI_CPPS_LOGICAL_ALGORITHMS_ASSIGNMENT_ITERATED_AUCTION_ASSIGNMENT_INITIATOR_H_
23#include "assignment_initiator.h"
24#include "auction_initiator_state.h"
25#include "cpps/common/cpps_communicator.h"
26#include "layered_precedence_graph.h"
27#include "material_flow/model/material_flow.h"
28#include "utils/structure_helpers.h"
44 std::shared_ptr<CppsLoggerNs3> logger);
54 void addMaterialFlow(std::shared_ptr<material_flow::MFDLScheduler> scheduler)
override;
56 void logMaterialFlowContent(
const std::string &material_flow_uuid)
override;
62 daisi::util::Duration prepareInteraction();
66 void startIteration();
71 void finishIteration();
81 void winnerResponseProcessing();
85 void callForProposal();
90 void iterationNotification(
const std::vector<daisi::material_flow::Task> &tasks);
94 void notifyWinners(
const std::vector<AuctionInitiatorState::Winner> &winners);
96 void setPreparationFinished();
99 const OrderStates &order_state);
103 std::unordered_map<amr::AmrStaticAbility, std::vector<daisi::material_flow::Task>,
105 getTaskAbilityMapping(
const std::vector<daisi::material_flow::Task> &tasks)
const;
109 std::shared_ptr<LayeredPrecedenceGraph> layered_precedence_graph_;
112 std::unique_ptr<AuctionInitiatorState> auction_initiator_state_;
116 std::unordered_map<amr::AmrStaticAbility, std::string, amr::AmrStaticAbilityHasher>
117 ability_topic_mapping_;
120 bool preparation_finished_ =
false;
135 std::shared_ptr<material_flow::MFDLScheduler> material_flow_;
Algorithm for assigning tasks from a material flow to fitting AMRs. This algorithm is initiating and ...
Definition assignment_initiator.h:33
Definition bid_submission.h:30
The initiator class for auction-based assignment, based on the TePSSI algorithm from Nunes,...
Definition iterated_auction_assignment_initiator.h:41
daisi::util::Duration subscribe_topic
Delay between the consecutive subscribing to topics in the prepareInteration method.
Definition iterated_auction_assignment_initiator.h:125
daisi::util::Duration waiting_to_receive_bids
Delay between the scheduling and execution of the bidProcessing method.
Definition iterated_auction_assignment_initiator.h:128
void addMaterialFlow(std::shared_ptr< material_flow::MFDLScheduler > scheduler) override
Storing bid submission information in a helper class to determine winners.
Definition iterated_auction_assignment_initiator.cpp:36
daisi::util::Duration waiting_to_receive_winner_responses
Delay between the scheduling and execution of the winnerResponseProcessing method.
Definition iterated_auction_assignment_initiator.h:131
Definition winner_response.h:28
Modified Round Robin Algorithm that centrally assigns tasks of incoming material flows to the corresp...
Definition algorithm_config.h:22
Definition amr_static_ability.h:57