Skip to content
Snippets Groups Projects
Commit 8c217578 authored by Alex's avatar Alex
Browse files

supervisor model added to report

parent b2a2213d
No related branches found
No related tags found
No related merge requests found
......@@ -48,8 +48,8 @@ The agent unstashes all previous \informVal{} stashed messages and sends a \kick
The agent will then transition to \continue{}.
During \initRandomVal{\val.domain}, the agent's variable $x_i$ is initialised at a random value $v_i \in d_i$.
When the Supervisor received \kickStart, it will send back a \whatToDo{Continue} message needed to get going.
This artificial trigger of \whatToDo{Continue} is used only once, at the begining of the algorithm.
When the Supervisor received \kickStart, it will send back a \continueAlgo{} message needed to get going.
This artificial trigger of \continueAlgo{} is used only once, at the begining of the algorithm.
\end{itemize}
......@@ -60,8 +60,8 @@ Messages received in this state: \begin{itemize}
\item \informVal{someVal}: neighbour's \informVal{someVal} are stashed to be dealt with when leaving \waitingForRole{}.
\item \giveGo{}: If the agent has reached this state after completing a round where it had been committed but could not act because it did not win the neighbourhood's delta competition, it will receive its partners' \giveGo{} or \giveNoGo{} here, but nothing should be done about it.
\item \giveNoGo{}: If the agent has reached this state after completing a round where it had been committed but could not act because it did not win the neighbourhood's delta competition, it will receive its partners' \giveGo{} or \giveNoGo{} here, but nothing should be done about it.
\item \whatToDo{Stop}: agent transitions to \final{} with the whole process terminating
\item \whatToDo{Continue}: agent called \reset{} method, emptying\linebreak \receivedOffers{}, \neighbourValues{} and \neighbourDeltas{}.
\item \stopAlgo{}: agent transitions to \final{} with the whole process terminating
\item \continueAlgo{}: agent called \reset{} method, emptying\linebreak \receivedOffers{}, \neighbourValues{} and \neighbourDeltas{}.
early received \informVal{} messages are unstashed, then the agent sends its own value via \informVal{\val} to all its neighbours. It performs \determineSubset{} and send the outcome to self via \chooseSubset{} before transitioning to \waitingForRole{} where \chooseSubset{} will be dealt with as well as unstashed \informVal{}.
\end{itemize}
......@@ -202,7 +202,7 @@ In order to carry out negotiations, exchange information and coordiante themselv
Each message can only be handled in dedicated states and will therefore be stashed for later use when received in a non-dedicated state.
\subsubsection{Standard agent messages}
\begin{itemize}
\item \kickStart{}: is sent by the agent at the very begining of the process to indicate to the Supervisor that it needs to send it the initial \whatToDo{Continue} message.
\item \kickStart{}: is sent by the agent at the very begining of the process to indicate to the Supervisor that it needs to send it the initial \continueAlgo message.
\item \chooseSubset{Offerer/Receiver}: is sent by the agent to itself, sent in the \waitingForRole{} state and then causing the transition towards either \offWaitingValues{} or \recWaitingOffers{}. This message determines the path the agent threads for the next two states before joigning again in the \uncommitted{}/\uncommitted{} states.
\item \informVal{someVal}: is sent by an agent to all neighbouring agents in state \waitingForRole{}.
\item \informDelta{\neighbourDeltas.get(self.variable)}: is sent by an agent which has computed its solo or joint delta to its neighbourhood upon transitioning to either \uncommitted{} or \uncommitted{} states.
......@@ -225,11 +225,51 @@ Each message can only be handled in dedicated states and will therefore be stash
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Supervisor agent behaviour}
\subsection{Supervisor behaviour}
The supervisor has a simple behaviour based on mainly two states.
In one of them, it awaits for all the agent's values.
Once all values have been collected, it switches to the second state, evaluating whether the full process had ended or not.
From there, it will branch, either back to the other state or to the final one once the condition for ending is reached.
\subsection{Supervisor states}
\subsubsection{General overview}
\begin{itemize}
\item \waitingAgentValues{}: the main state where supervisor waits for agents' information.
\item \startState{}: the state in which the supervisor starts, from there it broadcasts the \trigger message to all agents and directly goes to \waitingAgentValues.
\item \decidingStopContinue{}: state in which the supervisor checks whether the stopping condition has been met or not.
\item \finishState{}: the final state the supervisor ends in after the full algorithm has ended and the stopping condition is met.
\end{itemize}
\subsubsection{\waitingAgentValues}
This is the main state the supervisor spends most time in. Here it collects values from agents in order to make its decision.
Messages received in this state: \begin{itemize}
\item \kickStart{}: this is directly answered with a \continueAlgo{} message.
\item \informVal{someVal}: these messages are put into the supervisors' \currentContext until it is filled.
The last one triggers a transition to \decidingStopContinue{}.
\end{itemize}
\subsubsection{\startState}
Transiant state where the supervisor doesn't stay, no messages can be received here.
\subsubsection{\decidingStopContinue}
Here the supervisor either continues or stops, according to the message it send itself before transitioning here from \waitingAgentValues{}.
Messages received in this state: \begin{itemize}
\item \informVal{}: is stashed to be handled in \waitingAgentValues{}.
\end{itemize}
\subsubsection{\finishState}
Final state of the automaton, no messages are received here.
\subsection{Supervisor's mental state}
The supervisor only handles one mental state variable: \currentContext{}.
In it it stores the current values all variables have.
\subsection{Supervisor messages}
\begin{itemize}
\item \beginAlgo{}: is the initial message sent once by the supervisor to all agents to launch the process.
\item \whatToDo{Continue}: is sent by the supervisor to indicate that another round shoudld be carried out.
\item \whatToDo{Stop}: is sent by the supervisor when the halting condition has been met.
\item \continueAlgo{}: is sent by the supervisor to indicate that another round shoudld be carried out.
\item \stopAlgo{}: is sent by the supervisor when the halting condition has been met.
\end{itemize}
......@@ -80,6 +80,10 @@
\newcommand{\continue}{\texttt{Continue}}
\newcommand{\final}{\texttt{Final}}
\newcommand{\decidingStopContinue}{\texttt{DecidingToStopOrContinue}}
\newcommand{\waitingAgentValues}{\texttt{WaitingForAgentValues}}
\newcommand{\startState}{\texttt{Start}}
\newcommand{\finishState}{\texttt{Finish}}
%MESSAGES
......@@ -95,10 +99,11 @@
\newcommand{\giveNoGo}{\texttt{GiveNoGo}}
\newcommand{\beginAlgo}{\texttt{Trigger}}
\newcommand{\kickStart}{\texttt{KickStartMe}}
\newcommand{\whatToDo}[1]{\texttt{WhatToDo}(#1)}
\newcommand{\stopAlgo}{\texttt{StopAlgo}}
\newcommand{\continueAlgo}{\texttt{ContinueAlgo}}
\newcommand{\trigger}{\texttt{Trigger}}
%MENTAL STATE
......@@ -111,6 +116,8 @@
\newcommand{\neighbourDeltas}{\texttt{mind.deltas}}
\newcommand{\currentBestOffer}{\texttt{mind.currBestOffer}}
\newcommand{\currentContext}{\texttt{supervisorMind.currentContext}}
%METHODS
\newcommand{\initRandomVal}[1]{\texttt{mind.choose(variable)}(#1)}
\newcommand{\reset}{\texttt{mind.reset()}}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment