From 75d6242496a7296e9f96f40af172568e95f8bfb5 Mon Sep 17 00:00:00 2001 From: Jason Zheng Date: Mon, 17 Jan 2022 05:59:00 +0000 Subject: [PATCH] Formatting (#43) --- 000_introduction/000_introduction.tex | 2 +- .../001_organisation_structure.tex | 6 ----- .../002_simulation_structure.tex | 2 +- 003_data_logging/003_data_logging.tex | 2 +- .../004_team_2_agent_design.tex | 2 +- .../006_team_4_agent_design.tex | 24 +++++++++---------- .../007_team_5_agent_design.tex | 1 - 010_experiments/010_experiments.tex | 21 +++++++--------- main.tex | 5 ++-- references.bib | 11 +++++++-- 10 files changed, 35 insertions(+), 41 deletions(-) delete mode 100644 001_organisation_structure/001_organisation_structure.tex diff --git a/000_introduction/000_introduction.tex b/000_introduction/000_introduction.tex index 54438fe..117e0e2 100644 --- a/000_introduction/000_introduction.tex +++ b/000_introduction/000_introduction.tex @@ -1,6 +1,6 @@ \chapter{Introduction}\label{introduction} -Co-operative survival games refer to a subset of political choice games wherein `players' must work together to overcome disaster, else suffer the consequences through both personal and communal damage. Instances of co-operative survival exist in varying media: computer games (\emph{e.g.}, ``Don't Starve,'' ``Rust,'' ``Minecraft''), board games (\emph{e.g.}, Ravine) or sociological constructs (\emph{e.g.}, Reducing viral transmission ) all of which exhibit a necessity for collective action, with such notions of survival supported by extensive literature \cite{su10030652}. Survival games are often identified within the context of ``Common Pool Resource Management'' (CPR) \cite{ostromCollectiveAction} \cite{smartHome} problems, where to facilitate co-operative survival, a pool of shared resources must be maintained to help mitigate disaster. In the general case of such survival games, following a disaster, if 1 player dies, all players die. +Co-operative survival games refer to a subset of political choice games wherein `players' must work together to overcome disaster, else suffer the consequences through both personal and communal damage. Instances of co-operative survival exist in varying media: computer games (e.g., ``Don't Starve,'' ``Rust,'' ``Minecraft''), board games (e.g., Ravine) or sociological constructs (e.g., Reducing viral transmission ) all of which exhibit a necessity for collective action, with such notions of survival supported by extensive literature \cite{su10030652}. Survival games are often identified within the context of ``Common Pool Resource Management'' (CPR) \cite{ostromCollectiveAction} \cite{smartHome} problems, where to facilitate co-operative survival, a pool of shared resources must be maintained to help mitigate disaster. In the general case of such survival games, following a disaster, if 1 player dies, all players die. This project proposes a twofold bifurcation from conventional CPR problems: firstly, there are no provisions made to the common pool, meaning that we cannot refer to this problem as a linear public goods (LPG) game. Instead, players must maintain a collective resource without offering replenishment from their personal pool. This effectively constructs a scenario where all players make appropriation with insufficient provision, yielding a system of \textit{N free-riders}. diff --git a/001_organisation_structure/001_organisation_structure.tex b/001_organisation_structure/001_organisation_structure.tex deleted file mode 100644 index c31349f..0000000 --- a/001_organisation_structure/001_organisation_structure.tex +++ /dev/null @@ -1,6 +0,0 @@ -\chapter{Organisation Structure}\label{organisation_structure} - -Could introduce each of the teams and a one liner about their agent strategy. This will obviously be expanded upon in the agent sections. -Should contain an org chart and describe important parts of it. -Justify certain organisational choices. -Maybe consider what could have been done better? diff --git a/002_simulation_structure/002_simulation_structure.tex b/002_simulation_structure/002_simulation_structure.tex index 2f8b01e..7dfbc0a 100644 --- a/002_simulation_structure/002_simulation_structure.tex +++ b/002_simulation_structure/002_simulation_structure.tex @@ -367,7 +367,7 @@ \subsection{Cost of Living: \texorpdfstring{\texttt{hpDecay}}{hpDecay}}\label{hp \texttt{newHP} =\max\left\{\texttt{MaxHP}, \texttt{currentHP}-\left[b + s(\texttt{currentHP}-\texttt{WeakLevel})\right]\right\} \end{equation} -For agents in the critical state that gain \texttt{HPReqCToW} HP in a single day, i.e. their HP after eating is +For agents in the critical state that gain \texttt{HPReqCToW} HP in a single day, i.e. their HP after eating is: \begin{equation}\label{HPReqCToW} \texttt{currentHP} \geq \texttt{HPCritical}+\texttt{HPReqCToW}, diff --git a/003_data_logging/003_data_logging.tex b/003_data_logging/003_data_logging.tex index 25eec42..b68ea04 100644 --- a/003_data_logging/003_data_logging.tex +++ b/003_data_logging/003_data_logging.tex @@ -102,4 +102,4 @@ \section{Dashboard} \label{fig:design_ui} \end{figure} -The "new simulation" button pops a configuration form where the user is able to fill in the different simulation parameters. The navigation area allows the user to switch between existing simulation results. Finally, numerical cards and different graph types have been included to visualise the results. The final frontend implementation can be tested online on \href{https://somas-2021-568r2.ondigitalocean.app}{https://somas-2021-568r2.ondigitalocean.app} or locally by following the guidelines on the \href{https://github.com/SOMAS2021/SOMAS2021#building-locally}{github repo}. \ No newline at end of file +The ``new simulation'' button pops a configuration form where the user is able to fill in the different simulation parameters. The navigation area allows the user to switch between existing simulation results. Finally, numerical cards and different graph types have been included to visualise the results. The final frontend implementation can be tested online on \href{https://somas-2021-568r2.ondigitalocean.app}{https://somas-2021-568r2.ondigitalocean.app} or locally by following the guidelines on the \href{https://github.com/SOMAS2021/SOMAS2021#building-locally}{GitHub repository}. \ No newline at end of file diff --git a/004_team_2_agent_design/004_team_2_agent_design.tex b/004_team_2_agent_design/004_team_2_agent_design.tex index cac5fdc..0e1b22d 100644 --- a/004_team_2_agent_design/004_team_2_agent_design.tex +++ b/004_team_2_agent_design/004_team_2_agent_design.tex @@ -84,7 +84,7 @@ \subsubsection{Design of State Space} The first three observations served to fulfil the first aim of the task, as they could effectively reflect the health condition of our agent. The last observation was used to assess the impact of the action of our agent on the neighbouring agent, which is useful for the second aim of the task. Subsequently, we found the resolution of each observation by trial and error. Having a high resolution, the agent would be able to perceive tiny changes within the environment at the cost of increased number of states, and thus slowing the learning process. Having a low resolution, the agent would not be able to adapt to changes in the environment effectively and promptly. Finally, the state space of our agent is defined by ten state intervals for agent’s HP (0 – 9, 10 – 19, …, 80 – 89, 90 – Max HP), ten state intervals for the food on platform (0 – 9, 10 – 19, …, 80 – 89, 90 – Max food), four states for Days at critical (0, 1, 2, 3), and eleven state intervals for neighbouring agent’s HP (-1, 0 – 9, …, 80 – 89, 90 – Max HP), with an additional unknown state represented by –1, as the neighbouring agent might refuse to share such information. Table below illustrates the state space definition. -\begin{table} +\begin{table}[h] \centering \begin{adjustbox}{width=\columnwidth,center} diff --git a/006_team_4_agent_design/006_team_4_agent_design.tex b/006_team_4_agent_design/006_team_4_agent_design.tex index 25fd6d9..fe707db 100644 --- a/006_team_4_agent_design/006_team_4_agent_design.tex +++ b/006_team_4_agent_design/006_team_4_agent_design.tex @@ -84,31 +84,31 @@ \subsection{Agent Performance Metrics} \hline \hline Global Lifespan & - - Attempted to maximise lifespan of all agents including itself + -- Attempted to maximise lifespan of all agents including itself - - Struck a balance between self preservation and global welfare. + -- Struck a balance between self preservation and global welfare. & - - Didn't reach optimum strategy with no deaths + -- Didn't reach optimum strategy with no deaths - - Agent had little effect on global lifespan. \\ + -- Agent had little effect on global lifespan. \\ \hline Team Four Agent Lifespan & - - Maximised agent 4 survival (attempted to satisfy itself) + -- Maximised agent 4 survival (attempted to satisfy itself) - - Actions of others had less effect on survival of agent. + -- Actions of others had less effect on survival of agent. & - - Disregarded other agents in the tower + -- Disregarded other agents in the tower - - Failed to create stable system as all food was consumed by agent. \\ + -- Failed to create stable system as all food was consumed by agent. \\ \hline Other Agent Lifespan & - - Attempted to reach optimum state of co-operation + -- Attempted to reach optimum state of co-operation - - Worked for the betterment of society (for the satisficing of each agent). + -- Worked for the betterment of society (for the satisficing of each agent). & - - Put itself at risk while eating minimal amount of food + -- Put itself at risk while eating minimal amount of food - - Agent had little effect on global lifespan. \\ + -- Agent had little effect on global lifespan. \\ \hline \end{tabular}} \caption{Pros and cons of different averaging methods chosen for agent parameter optimisation.} diff --git a/007_team_5_agent_design/007_team_5_agent_design.tex b/007_team_5_agent_design/007_team_5_agent_design.tex index 7ad5ef2..78658a8 100644 --- a/007_team_5_agent_design/007_team_5_agent_design.tex +++ b/007_team_5_agent_design/007_team_5_agent_design.tex @@ -384,7 +384,6 @@ \subsubsection*{Simulation Length} \label{fig:team5-exp-food-per-agent} \end{minipage} \end{figure} -\ToDo{Check this result: is it actually true?} Figure \ref{fig:team5-exp-sim-length} shows the relationship between the length of the simulation and the average age of Team 5 agents when they die: the graph shows a positive trend of increasing average age, implying that Team 5 agents perform better over time. \subsubsection*{Food Per Agent} diff --git a/010_experiments/010_experiments.tex b/010_experiments/010_experiments.tex index 4f0896f..8aed16d 100644 --- a/010_experiments/010_experiments.tex +++ b/010_experiments/010_experiments.tex @@ -52,7 +52,6 @@ \subsection{Results and Discussion} \begin{tikzpicture} \begin{axis}[ width=0.8\textwidth, - axis y line*=left, ymin=0, xmin=0, xlabel=Available Food Per Agent, @@ -123,7 +122,7 @@ \subsection{Results and Discussion} \label{fig:team1-robustness-food-scarcity} \end{figure} -\Cref{team1-robustness-food-scarcity} illustrates the change in the frequency of treaty proposals as the constraints from the economy of scarcity are levied. The experiment enforces that there is 100 food initially available on the platform, with the number of agents parameterised to allow for an average amount of food per agent. This simulation lasts 400 days. +\Cref{fig:team1-robustness-food-scarcity} illustrates the change in the frequency of treaty proposals as the constraints from the economy of scarcity are levied. The experiment enforces that there is 100 food initially available on the platform, with the number of agents parameterised to allow for an average amount of food per agent. This simulation lasts 400 days. The general tendency for this system is that, as the availability of food rises (and hence the economy of scarcity becomes less constrictive), the rate of treaty proposals decreases. We propose that this experiment yields insight into the importance of treaties, demonstrating that agents in general rely heavily on treaty formation to self-organise when survivability is hindered by a lack of resources. Contrarily, as the food availability reaches an abundance, we see the rate of treaty proposals tend to 0, suggesting that agents are able to survive without the need for treaties as they offer little utility. @@ -134,7 +133,6 @@ \subsection{Results and Discussion} \begin{tikzpicture} \begin{axis}[ width=0.8\textwidth, - axis y line*=left, ymin=0, xmin=0, xlabel=Available Food Per Agent, @@ -181,7 +179,7 @@ \subsection{Results and Discussion} \label{fig:team1-robustness-food-scarcity-disruptive-agents} \end{figure} -\Cref{team1-robustness-food-scarcity-disruptive-agents} shows how the number of deaths is affected when different disruptive agents are added. It shows that, as expected, the number of deaths is higher when disruptive agents are present. However, the effect of selfish agents and random agents seems to be similar which suggests that it it not the amount of food being taken by the agents that is disruptive, rather it is the fact that they do not communicate that causes a higher death rate. This makes it harder to self-organise and makes it much harder to survive in the tower. +\Cref{fig:team1-robustness-food-scarcity-disruptive-agents} shows how the number of deaths is affected when different disruptive agents are added. It shows that, as expected, the number of deaths is higher when disruptive agents are present. However, the effect of selfish agents and random agents seems to be similar which suggests that it it not the amount of food being taken by the agents that is disruptive, rather it is the fact that they do not communicate that causes a higher death rate. This makes it harder to self-organise and makes it much harder to survive in the tower. By making it harder to survive in the tower, the chances of reaching a stable system are also decreased when disruptive agents are added. The only system to stabilise with ten food per agent was the one with no disruptive agents, all systems were stable with a tower of 20 food per agent. \subsection{Conclusion} \label{subsec: E1-Conclusion} @@ -201,10 +199,9 @@ \subsection{Results and Discussion} \begin{tikzpicture} \begin{axis}[ width=\textwidth, - axis y line*=left, ymin=0, xmin=0, - xlabel=Shuffle Period (no. of days), + xlabel=Shuffle Period (number of days), ylabel=Total Deaths, ymajorgrids=true, xmajorgrids=true, @@ -241,7 +238,7 @@ \subsection{Results and Discussion} For this reason, we propose that it is the rapid redistribution of agents throughout the tower, allowing them to experience varying levels of available food, that accounts for the disparity in survival rate: if an agent is consistently assigned to a low floor, they have a low chance of being satisficed if all agents act individually. Having a rapid reshuffle period results in a higher probability of reaching a higher floor, allowing for the agent to replenish its health. -The average age of agents, denoted by \Cref{Average-Age-as-Shuffle-Period-Decreases}, can be seen to follow the inverse trend to death rates, as expected. This indicates that the longer the reshuffle period the lower the average age of an agent upon death. +The average age of agents, denoted by \Cref{fig:Average-Age-as-Shuffle-Period-Decreases}, can be seen to follow the inverse trend to death rates, as expected. This indicates that the longer the reshuffle period the lower the average age of an agent upon death. \begin{figure}[H] %Average Age As Shuffle Period Decreases \centering \begin{minipage}{0.8\textwidth} @@ -250,7 +247,7 @@ \subsection{Results and Discussion} width=\textwidth, ymin=0, xmin=0, - xlabel=Shuffle Period (no. of days), + xlabel=Shuffle Period (number of days), ylabel=Average Age of All Agents, ymajorgrids=true, xmajorgrids=true, @@ -294,10 +291,9 @@ \subsection{Results and Discussion} \begin{tikzpicture} \begin{axis}[ width=\textwidth, - axis y line*=left, ymin=0, xmin=0, - xlabel=Shuffle Period (no. of days), + xlabel=Shuffle Period (number of days), ylabel=Total Accepted Treaties, ymajorgrids=true, xmajorgrids=true, @@ -339,15 +335,14 @@ \subsection{Results and Discussion} \begin{tikzpicture} \begin{axis}[ width=\textwidth, - axis y line*=left, ymin=0, xmin=0, - xlabel=Shuffle Period (no. of days), + xlabel=Shuffle Period (number of days), ylabel=Total Rejected Treaties, ymajorgrids=true, xmajorgrids=true, grid style=dashed, - legend pos=outer north east + legend style={at={(1.3,1)},anchor=north east}, ] \addplot[mark=*,blue] coordinates{ diff --git a/main.tex b/main.tex index 2618c6e..433e163 100644 --- a/main.tex +++ b/main.tex @@ -10,7 +10,7 @@ \usepackage{longtable} \usepackage{cleveref} \Crefformat{figure}{#2Fig.~#1#3} % makes referencing customizable (e.g. \Cref{}). See: https://texblog.org/2013/05/06/cleveref-a-clever-way-to-reference-in-latex/) \usepackage[nottoc, notlof, notlot]{tocbibind} % includes bibliography in table of contents (TOC) -\usepackage[square]{natbib} % sets reference style +\usepackage[numbers]{natbib} % sets reference style \usepackage{graphicx} % required to include images \usepackage[svgnames]{xcolor} \usepackage{tikz} @@ -140,7 +140,6 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \input{000_introduction/000_introduction} -\input{001_organisation_structure/001_organisation_structure} \input{002_simulation_structure/002_simulation_structure} \input{003_data_logging/003_data_logging} \input{004_team_2_agent_design/004_team_2_agent_design} @@ -161,7 +160,7 @@ \newpage \nocite{*} \bibliography{references} -\bibliographystyle{IEEEtranN} +\bibliographystyle{unsrtnat} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Document End % diff --git a/references.bib b/references.bib index f95b35d..5218105 100644 --- a/references.bib +++ b/references.bib @@ -523,11 +523,18 @@ @article{ober_athens doi = {10.1515/9781400828807} } - @movie{elhoyo2019, title = {El Hoyo}, producer= {Carlos Juárez}, director = {Ángeles Hernández}, year = {2019}, publisher = {Netflix} -} \ No newline at end of file +} + +@misc{JeremyPittSlides, + author = {Jeremy Pitt}, + title = {Lecture Notes on the Trust Framework}, + month = {November}, + year = {2021}, + publisher={} +}