Skip to content

Commit

Permalink
Merge pull request #11 from SOMAS2020/main
Browse files Browse the repository at this point in the history
update
  • Loading branch information
walkeronwater authored Jan 15, 2021
2 parents d5234fa + 57083ba commit 741b2ca
Show file tree
Hide file tree
Showing 18 changed files with 924 additions and 125 deletions.
1 change: 1 addition & 0 deletions 04_environment/design.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
\chapter{Environment}
\section{Foraging}
\label{sec:enviroment:foraging}

\begin{definition} \label{def:Welfare}
\textbf{Welfare} is defined as the state of wealth and can either be personal or collaborative (social).
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 04_environment/images/deer_pop_prob.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
186 changes: 186 additions & 0 deletions 04_environment/infra.tex

Large diffs are not rendered by default.

Binary file added 05_iigo/images/IIGO2v2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
673 changes: 583 additions & 90 deletions 05_iigo/index.tex

Large diffs are not rendered by default.

23 changes: 11 additions & 12 deletions 06_iito/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,26 @@ \section{Design}
\subsection{Inter-Island Communication}
\label{subsec:IITO:inter_island_communication}

Islands which can communicate separately from the main governing body level of interactions (i.e. IIGO) makes more complex island behaviour possible. With the implemented systems, islands can:
Islands which can communicate separately from the main governing body level of interactions (i.e. IIGO) makes more complex island behaviour possible. It was intended to allow the islands to be able to:

\begin{itemize}
\item Form a group with other islands for collective foraging.
\item Decide where their foraging group will forage.
\item Inform other islands of the amount they intend to to donate to the common pool.
\item Share voting history with other islands.
\item Share tax amount history with other islands.
\item Inform other islands of the amount of resources they currently have in their private pool.
\item Inform other islands of the amount they intend to donate to the common pool.
\item Share voting history with other islands\footnote{\label{footnote:IITO:future_work}This is not implemented in the final system, left as future work.}.
\item Share tax amount history with other islands$^{\ref{footnote:IITO:future_work}}$.
\item Inform other islands of the amount of resources they currently have in their private pool$^{\ref{footnote:IITO:future_work}}$.
\end{itemize}

\textbf{Team Foraging}: Allows islands to decide between each other whether they will forage together and where they will forage. In this way, islands can cooperate with the others that they trust while avoiding other islands that they deem to have misbehaved or broken rules in the past. If islands suspect that some specific islands have deliberately freeloaded in the previous forages, they may also want to avoid foraging with such islands that have contributed less than what they were supposed to.

\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{Voting History}: 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{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}: 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{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}: 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.
\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{Gifting}
\label{subsec:IITO:gifting}
Expand Down Expand Up @@ -61,4 +61,3 @@ \subsection{Gifting Session}
\caption{Overview of client-server interactions in gifting session.}
\label{fig:IITO:gifting_session_diagram}
\end{figure}

4 changes: 3 additions & 1 deletion 15_simulations/index.tex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ \section{Introduction}

\begin{itemize}
\item Does the benefit of running the IIGO outweigh its cost?
\item Can the agent strategies overcome the foraging dilemma outlined in Section INSERT REF LATER?
\item Can the agent strategies overcome the foraging dilemma outlined in Section~\ref{sec:enviroment:foraging}?
\item Do the agents act selflessly or selfishly?
\item How important is collaboration to an island's survival?
\item How do the island's organise themselves under different conditions? %maybe change
Expand All @@ -27,6 +27,7 @@ \section{Metrics}
\item \textbf{Gini Index}: A measure of how fair the distribution of resources is across the archipelago.
\item \textbf{Disasters Survived}: Number of disasters the archipelago has survived (At least one island is alive after the disaster).
\item \textbf{Island Gifting$^{\ref{foot:Simulations:per_island}}$$^{\ref{foot:Simulations:graph}}$}: Amount of resources an island has gifted to other islands.
\item \textbf{Average Disaster Damage Taken (ADDT)}: Average disaster damage taken by all the islands after mitigation.
\item \textbf{Average Disaster Damage Mitigated (ADDM)}: Average disaster damage mitigated by the common pool.
\item \textbf{Island Foraging Statistics(IFS)$^{\ref{foot:Simulations:per_island}}$}: Amount of resources an island has invested and gained from foraging.
\item \textbf{Archipelago Foraging Sustainability (AFS)}: The average net forage returns across all islands.
Expand Down Expand Up @@ -59,6 +60,7 @@ \subsection{Baseline Numeric Metrics}
\textbf{First Island Death} & 100 \\
\textbf{Gini Index} & 0.39 \\
\textbf{Disasters Survived} & 20 \\
\textbf{ADDT} & 32.17 \\
\textbf{ADDM} & 341.7 \\
\textbf{AFS} & 1.92 \\ \hline
\end{tabular}
Expand Down
83 changes: 83 additions & 0 deletions 16_results_and_eval/iigo.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
\section{No-IIGO Simulation}
\label{sec:ResultsAndEval:no-iigo}

Creating a baseline for comparison opened up the opportunity for more novel simulations. This section details an experiment on the IIGO - specifically, the impact of \emph{not} running the IIGO for an entire simulation. The impact of doing so is quantified using the metrics described in Section~\ref{sec:Simulations:Metric}.
This experiment was conducted by arbitrarily setting the cost of each action in the IIGO so high that there would be insufficient resources in the common pool to fund any of the roles. All other game configuration parameters were kept as a constant.

The simulation was run ten times to account for the inherent stochasticity within various aspects of the game and the agents. The following subsections report the somewhat surprising results observed before analysing further and drawing conclusions about the importance of the IIGO.

\subsection{Results of No-IIGO Simulations}
\label{subsec:ResultsAndEval:no-iigo:results}

The most striking trend across all ten simulations was the state of the common pool. Inspection of the obtained resource-time graphs revealed that the common pool contained little to no resources (e.g. less than 20) by the end of each of the simulations. The outcomes of the simulations were also far less deterministic than in the baseline case, with large variations seen most noticeably in 'Archipelago Survivability' metric defined in Section~\ref{sec:Simulations:Metric}).
Two resource-time graphs from the simulations are presented in Figure~\ref{fig:ResultsAndEval:no_iigo_unpredictable} below as representative samples of the outcomes of the experiment.


\begin{figure}[h]
\centering
\subfigure[Third simulation.]{
\centering
\includegraphics[width=.48\linewidth]{16_results_and_eval/images/no_iigo_1.png}
}
\subfigure[Sixth simulation.]{
\centering
\includegraphics[width=.48\linewidth]{16_results_and_eval/images/no_iigo_2.png}
}
\caption{Unpredictability of outcomes in no-IIGO simulations.}
\label{fig:ResultsAndEval:no_iigo_unpredictable}
\end{figure}

Both simulations of the same experimental setup, Figures ~\ref{fig:ResultsAndEval:no_iigo_unpredictable}(a) and ~\ref{fig:ResultsAndEval:no_iigo_unpredictable}(b) show a depleted common pool (i.e. light green line) with close to 0 resources throughout the entire simulation. While all agents were able to survive the full $100$ turns in the former, only one agent was able to make it past the $30^{th}$ turn in the latter, eventually dying at the $60^{th}$ turn.

The same metrics used to quantify the baseline results in Table ~\ref{table:Simulations:num_metric} were monitored and aggregated for this experiment, as well as ten simulations of the baseline configuration, where the IIGO was allowed to proceed at the usual cost. Table ~\ref{table:ResultsAndEval:iigo_vs_no_iigo} shows the results obtained:

\begin{table}[h]
\centering
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Metric} & \multicolumn{2}{c}{\textbf{Mean}} & \multicolumn{2}{c}{\textbf{Standard Deviation}} \\ \hline
& \textbf{IIGO} & \textbf{No IIGO} &\textbf{IIGO} & \textbf{No IIGO} \\
\textbf{Archipelago Survivability} & 100 & 93 & 0 & 16.36 \\
\textbf{First Island Death} & 100 & 55.2 & 0 & 42.64 \\
\textbf{Gini Index} & 0.39 & 0.59 & 0.024 & 0.11 \\
\textbf{Disasters Survived} & 20 & 18.4 & 0 & 3.66 \\
\textbf{ADDM} & 332.7 & 86.4 & 81.77 & 48.27 \\
\textbf{AFS} & 1.91 & 1.57 & 0.11 & 0.17 \\ \hline
\end{tabular}
\caption{Metrics across ten simulations, with and without IIGO.}
\label{table:ResultsAndEval:iigo_vs_no_iigo}
\end{table}


\subsection{Analysis of No-IIGO Simulation Results}
\label{subsec:ResultsAndEval:no-iigo:analysis_non_iigo_results}

\subsubsection{Comparison of Means}
\label{subsec:ResultsAndEval:no-iigo:comparison_of_means}
Comparing the means of the computed metrics shows a clear deterioration in performance of the agents when the IIGO does not run for the entire simulation.
On average, an agent dies halfway through the simulation (turn $55$) and the archipelago is unable to survive past $93$ turns.

Wealth is also observed to be far less equally distributed. The Average Gini Index is $50\%$ higher for the simulations without the IIGO. This can be attributed to the shorter lifespan of poorer islands, and the absence of the proportional tax system that is typically implemented in IIGO sessions.

The removal of the IIGO also highlights the relationship between the long-term Collective Risk Dilemma (ltCRD) and the foraging dilemma. Without taxation, the common pool loses its most significant source of income.
Without the IIGO, an island only contributes to the common pool when it believes a disaster is imminent. However, this contribution is entirely discretionary and at the mercy of the island's disaster prediction ability -- consequently, the common pool is often depleted (as per Figure~\ref{fig:ResultsAndEval:no_iigo_unpredictable}).
Therefore, as the drastic reduction in the mean ADDM suggests, the burden of the cost of disasters falls on the islands. This also explains the reduction in the mean number of disasters survived by the archipelago. Islands with fewer resources are less likely to make optimal foraging decisions, resulting in the significant $17.8\%$ reduction in mean AFS shown in Table~\ref{table:ResultsAndEval:iigo_vs_no_iigo}.

The analysis shows that, paradoxically, parting with some resources in the form of taxation allows islands to make better investment decisions while foraging. Without the safety net of the common pool, the inability of the archipelago to address the ltCRD also affects its ability to address the foraging dilemma.


\subsubsection{Comparison of Standard Deviations}
\label{subsec:ResultsAndEval:no-iigo:comparison_of_std_devs}
Table~\ref{table:ResultsAndEval:iigo_vs_no_iigo} also shows a marked increase in the standard deviations of all the metrics used, with the exception of the ADDM. However, this can be attributed to the nearly four-fold reduction in its mean; expressing the standard deviation as a fraction of the mean shows that the uncertainty in the value of the ADDM increases more than two-fold without the IIGO.
The increase in uncertainty of all the metrics is supported by Figure ~\ref{fig:ResultsAndEval:no_iigo_unpredictable}, which provides a visual representation of how two simulations of the same experiment can have vastly different outcomes.
These results reinforce the idea of the sensitivity of the agents to stochasticity, both within in the game environment (where the returns of foraging and damages from disasters are variable) and within the agents themselves (who, purely out of self-interest, may lie to each other during gift exchange sessions).


\subsection{Conclusion: Importance of the IIGO}
\label{subsec:Simulations:no-iigo:conclusion}

The above analysis shows that not only does the IIGO improve the performance of the archipelago across all the metrics of interest, it also acts as a stabilizing force in the game, making it far more deterministic.
The main benefit of the IIGO is the taxation and allocation system it provides. By ensuring a stable, significant amount of resources in the common pool, this system provides damage mitigation against disasters, leaving agents with more resources for foraging.
It also serves as a safety net for islands that are falling into the critical threshold, extending their lifespan and reducing the Gini Index of the archipelago.

While the IIGO might be a somewhat simplified implementation of modern governmental systems, the benefits it brings to the simulation are undeniable as seen from the experiments discussed in this section.
Binary file added 16_results_and_eval/images/no_iigo_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added 16_results_and_eval/images/no_iigo_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions 16_results_and_eval/index.tex
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\chapter{Results \& Evaluation}

\include{16_results_and_eval/iigo.tex}
\include{16_results_and_eval/foraging.tex}
\include{16_results_and_eval/disaster.tex}
\input{16_results_and_eval/iigo.tex}
\input{16_results_and_eval/foraging.tex}
\input{16_results_and_eval/disaster.tex}
26 changes: 24 additions & 2 deletions 20_appendix_roles/index.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\chapter{Roles}

\section{Overall Group Responsibilities}
\section{Collective Responsibilities Across Teams}
\label{sec:roles_appendix:overall}

\begin{table}[!h]
Expand All @@ -16,10 +16,32 @@ \section{Overall Group Responsibilities}
5 & Enviroment & Asimina & Enviroment & James T. \\ \hline
6 & Voting & Tae & Voting & Ning \\ \hline
\end{tabular}
\caption{List of roles across the entire class}
\caption{List of design and infrastucture roles across the entire class.}
\label{table:roles_appendix:overall}
\end{table}



\section{Responsibilities Within Each Team}
\label{sec:roles_appendix:individual}

\begin{table}[!h]
\centering
\begin{tabular}{|l|l|}
\hline
\textbf{Key} & \textbf{Meaning} \\ \hline
Infra & Worked on infrastructure code or assisted in code review. \\
Design & Worked on the design aspects of the game. \\
Vis & Worked on the visualisation and/or website. \\
Report & Contributed to the reports and documentation. \\
Sim & Worked on the simulation and analysis. \\
Agent & Worked on the team's agent. \\ \hline
\end{tabular}
\caption{Key areas of work that members of each team have contributed to.}
\label{table:roles_appendix:ind}
\end{table}


\input{20_appendix_roles/teams/team1.tex}
\input{20_appendix_roles/teams/team2.tex}
\input{20_appendix_roles/teams/team3.tex}
Expand Down
Loading

0 comments on commit 741b2ca

Please sign in to comment.