Skip to content

Commit

Permalink
Merge branch 'main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
NGovani authored Jan 15, 2021
2 parents 8d482a7 + 97f7ade commit 0dd07e5
Show file tree
Hide file tree
Showing 3 changed files with 77 additions and 10 deletions.
28 changes: 24 additions & 4 deletions 06_iito/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,19 @@ \subsection{Inter-Island Communication}
\end{itemize}


\textbf{Common Pool Donations}: Allows islands to broadcast how much they plan to donate to the common pool and let them declare to the other islands if they plan to donate more than the specified tax amount put forward by the President as a form of virtue signalling. This may help an island redeem itself if it had previously lost trust. Note that an island can lie about the amount it will donate to the common pool if it is trying to maliciously gain favour.
\textbf{Common Pool Donations}: Allows islands to broadcast how much they plan to donate to the common pool and let them declare to the other islands if they plan to donate more than the specified tax amount put forward by the President as a form of virtue signalling. This may help an island redeem itself if it had previously lost trust. Note that an island can lie about the amount it will donate to the common pool if it is trying to maliciously gain favour. A further explanation of this part can be found in section \ref{subsec:IITO:intended_contribution}

\textbf{Voting History$^{\ref{footnote:IITO:future_work}}$}: Islands can request voting history from other islands or provide their own one unprompted. This interaction enables islands to verify whether the Speaker has been honest when counting the votes for a previously held election. Note that the islands can lie in the voting history that they provide, meaning that the islands may want to only take heed of information from those islands that they already trust.

\textbf{Tax History$^{\ref{footnote:IITO:future_work}}$}: Similarly to providing and requesting voting history, islands can request taxation history (i.e. how much the islands were told to contribute in the form of tax by the President) from other islands. Note that an island may choose not to provide this tax history, or it can be dishonest about it. If the islands report the true level of taxation, this interaction allows islands to form an opinion about whether the President has decided on a fair\footnote{Note that this fairness metric will be unique to each island, meaning that it is subjective.} amount of taxation.

\textbf{Current Resources$^{\ref{footnote:IITO:future_work}}$}: Islands are also able to share the value of the resources that they currently have in their private pool. This information may guide islands when making decisions regarding gifts (Section~\ref{subsec:IITO:gifting}). For example, if an island requests a gift because they are low on resources, the island receiving the request may want to ask how many resources the requesting island has. This can also give an island an indication of the overall level of richness in the archipelago. Similarly to sharing the intended common pool donations along with voting and tax history, the islands can decide not to report or lie about their current amount of resources.

\subsubsection{Future Work}
Unfortunately, the full extent of what was planned for the IITO did not come to fruition by the end of the project deadline due to time constraints. One of the main reason for this decision was the fact that the entire class also wanted to allocate some significant amount of time for improving the complexity of the agents (i.e. the islands) in the archipelago. Complexity in this case, meaning exploring deeper the features already present rather than introducing more. Therefore, some inter-island communication methods listed above are left as future work. It is left as an exercise for the imagination of the reader to infer how such additional features would have been exploited by the islands in the archipelago.
\subsection{Future Work}
\label{subsec:IITO:futurework}
The full extent of what was discussed for the IITO was not implemented in the end. One of the main reason for this decision was to accommodate the need for a significant amount of time for improving the complexity of the agents (i.e. the islands) in the archipelago. Complexity in this case, meaning exploring deeper the features already present rather than introducing more. Therefore, some inter-island communication methods listed in section \ref{subsec:IITO:inter_island_communication} are left as future work. It is left as an exercise for the imagination of the reader to infer how such additional features would have been exploited by the islands in the archipelago. Team formation for foraging was also discussed, but ultimately abandoned
\subsubsection{Team formation}
This was intended as mechanic for allowing teams to explicitly forage together, in one way or another. One idea on how to implement this was to give members of already established teams the ability to accept or reject new members, and the main idea was that the islands would then decide on a foraging method and perform the action together, allowing for more explicit and formal communication. This was abandoned partially because the collaboration dilemma is already present in the current foraging design, so adding this added layer of formality and structure seemed to mostly just increase the complexity, without adding any new dilemmas. Even so, it would have been interesting to see if these explicit teams would have introduced more long-term strategies for foraging leading, and how it would have affected trust.

\subsection{Gifting}
\label{subsec:IITO:gifting}
Expand All @@ -36,13 +39,16 @@ \subsection{Gifting}

Islands are also able to offer gifts without a request being made, meaning they can reach out to other islands if they want to boost their popularity.

\subsection{Intended contribution}
\label{subsec:IITO:intended_contribution}
When contributing to the common pool it would be great know how much other islands were planning on giving as well and thus be able to coordinate how much archipelago, as a whole, is actually planning on giving. A pattern similar to gifting could have established to encourage more explicit communication and discussion this contribution but in consideration for the other teams and to keep complexity low, the intended contribution was, instead, simply broadcast in the same way as in IIFO. Islands have the option to say how much they intend to contribute and to which islands they want to share this information and islands then receive the signaling information from the islands that explicitly shared their information with them. There is no further discussion past this point, so there is no good way of signaling a change of tactic based on the new information. It still has merit however, as it allows islands to build a history of how much other islands contribute to the main pool, assuming that the information sent is truthful obviously.
\section{Implementation}
\label{sec:IITO:Implementation}

\subsection{Server Client Infrastructure}
\label{subsec:IITO:server_client_infrastructure}

During a turn, once IITO has started, a series of sessions are run, and the conclusion of all these sessions indicates that the IITO is also complete. In the current implementation, these sessions include gift giving and common pool donations, and they all follow the same client-server interaction format\footnote{Server and Client are defined in Definition~\ref{def:server} and Definition~\ref{def:client} respectively}. The server acts an intermediary for all client to client communication, and prompts clients to make decisions or formulate messages during the session. At each stage in a session the server compiles a list of messages from the clients, following that sessions' protocols, and then uses that list as input for the next stage. While a bit abstract this is better explained through an example.
During a turn, once IITO has started, a series of sessions are run, and the conclusion of all these sessions indicates that the IITO is also complete. In the current implementation, these sessions include gift giving and common pool donations, and they all follow the same client-server interaction format\footnote{Server and Client are defined in Definition~\ref{def:server} and Definition~\ref{def:client} respectively}. The server acts an intermediary for all client to client communication, and prompts clients to make decisions or formulate messages during the session. In IITO there are two sessions ran in sequence, gifting (section \ref{subsec:IITO:gifting_session}) and intended contribution signaling (section \ref{subsec:IITO:intended_contribution_session}). Together they facilitate trust based interaction and cooperation.

\subsection{Gifting Session}
\label{subsec:IITO:gifting_session}
Expand All @@ -61,3 +67,17 @@ \subsection{Gifting Session}
\caption{Overview of client-server interactions in gifting session.}
\label{fig:IITO:gifting_session_diagram}
\end{figure}

\subsection{Intended Contribution Session}
\label{subsec:IITO:intended_contribution_session}
The are only two steps to the Intended Contribution Session: The server side implementation is identical to the structure described in \ref{sec:IIFO:implementation}
\begin{itemize}
\item \textbf{Share Intended Contribution Info}: This part collects the intended contribution information from all clients. This information includes the amount the client intends to contribute to the common pool and who they wish to share this information with.
\item \textbf{Receive Intended Contribution Info}: In this stage the clients receive the other clients' contribution intentions. A client only receives these intentions from clients who explicitly said they wanted to share their intention with them.
\end{itemize}
The information passed has the only one single number representing how much the agent intends to contribute to the common pool.
\begin{verbatim}
struct IntendedContribitionInformation = {
IntendedContribution = Resources
}
\end{verbatim}
Binary file added 07_iifo/images/Information_share_graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
59 changes: 53 additions & 6 deletions 07_iifo/index.tex
Original file line number Diff line number Diff line change
@@ -1,21 +1,68 @@
\chapter{Inter Island Forecasting Organisation (IIFO)}

\section{Design}
The role of IIFO is to allow islands to make predictions about the likelihood and severity of disasters, and the amount of returns from foraging. The former is related to the long term collective risk dilemma (ltCRD), and the latter is related to the short term risk dilemma (stCRD).

\section{Long Term Collective Risk Dilemma (ltCRD)}
\label{sec:IIFO:ltCRD}
\subsection{Long Term Collective Risk Dilemma (ltCRD)}
\label{subsec:IIFO:ltCRD}

Islands may build a model to try and predict the likelihood and severity of upcoming disasters. If desired, the islands are then able to share their predictions with other islands along with a confidence level for their predictions. This confidence level allows islands to signal how much confidence they have in their own prediction. Accordingly, in the case where the island's prediction turns out to be wrong, the other islands might not condemn them as harshly if the island's confidence level was indeed low. On the other hand, a higher confidence level indicates that other islands should potentially place more trust in this prediction with the risk that the island offering the information will be condemned more harshly if the prediction turns out to be wrong.

The motivation behind sharing these predictions is that with more islands contributing to the common pool, the effects of the disaster(s) can be more heavily mitigated. Therefore, sharing predictions allows islands to manage their resources in a more informed way, as they have a better idea of when and how much they should donate to the common pool in order to mitigate a future disaster.

Inaccurate predictions may result in a situation where the islands are not at all prepared for the incoming disaster. An example of this is to predict an incoming disaster belatedly, meaning that the common pool may not yet be sufficient enough to mitigate the disaster effectively when it hits the archipelago. Alternatively, the islands may also overprepare and donate too much to the common pool when, in fact, a disaster is not imminent, meaning they have unnecessarily reduced their own resources, making it harder for them to forage and build up resources again.

\section{Short Term Collective Risk Dilemma (stCRD)}
\label{sec:IIFO:stCRD}
\subsection{Short Term Collective Risk Dilemma (stCRD)}
\label{subsec:IIFO:stCRD}

Predicting the returns from foraging in different locations is beneficial to the islands as it allows them to potentially maximise the returns if such predictions turn out to be accurate. IIFO enables the communication of these predictions between islands.

The benefit of sharing these predictions about foraging returns is due to the fact that foraging is typically performed by a group of islands. The more resources the islands put in, the greater the returns they are more likely to receive for each amount of input resource. This means that if an island is relatively confident about where the best returns can be found for foraging, it is in its interest to let other islands know in the hope that they will also decide to forage with them.

If the prediction proves to be inaccurate, the returns from foraging will be less than expected, and the islands that joined the foraging may lose faith in the future predictions of the island that originally proposed the inaccurate prediction. This may make it harder for the island whose predictions turn out to be wrong to convince others to forage together in the future.
\subsection{Future work}
As in IITO \ref{subsec:IITO:futurework} there were alot of features in IIFO which were discussed but did not make in to the final project. The same justification applies in this section as in IITO for why they were not implemented. There are a couple of features however that would have assisted current dilemmas by allowing agents to deliberate over them.
\subsubsection{Deer Population Sustainability}
With the deer population dropping as a result of foraging there are points of optimality in this dilemma where the deer population is not overhunted and maintains a stable population giving the islands high output. For this to be properly exploited the islands would need to have some sense of how many deer are in the population or the average output. A forum for discussing this or a new mechanic like scouting or population mapping would allow for exploring sustainable and responsible foraging.
\section{Implementation}
\label{sec:IIFO:implementation}
Disaster predictions (\ref{subsec:IIFO:disaster_pred}), foraging results (\ref{subsec:IIFO:foraging_history}) and common pool contribution intentions (\ref{subsec:IITO:intended_contribution_session}) are all shared through the same pattern described in figure \ref{fig:IIFO:information_share_infra}. To allow agents to choose freely who to communicate to the server asks the clients the following information:
\begin{verbatim}
struct Information = {
Information = the information they want to send
ShareTo = list of islands they want to share the information with
}
\end{verbatim}
The server then figures out what information goes to which agent and keeps track of which agent it was shared from and sends this information back out to the agents in the following format:
\begin{verbatim}
dictionary Information = {
SharedFrom: Information
}
\end{verbatim}
\begin{figure}[!htb]
\centering
\includegraphics[width=0.6\linewidth]{07_iifo/images/Information_share_graph.png}
\caption{IIFO and intended contribution information sharing}
\label{fig:IIFO:information_share_infra}
\end{figure}
\subsection{Disaster Prediction}
\label{subsec:IIFO:disaster_pred}
Each round all agents are asked to share their predictions for when the next disaster happens. Disaster predictions, foraging history and common pool contribution intentions are all discussed in the same format described in \ref{sec:IIFO:implementation}. The information passed allows agents to share information about when they think the next disaster will happen, where it will strike, how strong it will be and how confident they are in their own prediction. The information passed has the format:
\begin{verbatim}
struct DisasterPredictionInformation = {
Magnitude = number,
X,Y = coordinates,
TimeToPrediction = turns,
Confidence= percentage
}
\end{verbatim}

\subsection{Foraging History}
\label{subsec:IIFO:foraging_history}
Foraging returns depend on other island's contribution and foraging decisions. It is therefore important to know how much other islands spent on foraging, what resource they foraged and how much they got in return. This information allows agents to update their strategies in accordance to the other client's foraging tactics. The information: below is passed using the pattern described in \ref{sec:IIFO:implementation}
\begin{verbatim}
struct ForagingReturnsInformation = {
ForagingReturn = resources,
ForageType = deer or fishing,
ResourcesSpentOnForaging = resources,
}
\end{verbatim}

0 comments on commit 0dd07e5

Please sign in to comment.