{"id":192,"date":"2020-02-25T20:34:30","date_gmt":"2020-02-25T20:34:30","guid":{"rendered":"http:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/?p=192"},"modified":"2021-11-08T10:27:36","modified_gmt":"2021-11-08T10:27:36","slug":"60-second-stats-agent-based-simulation","status":"publish","type":"post","link":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/2020\/02\/25\/60-second-stats-agent-based-simulation\/","title":{"rendered":"60 second stats &#8211; Agent-Based Simulation"},"content":{"rendered":"\n<p>I thought I&#8217;d try something different today, and instead of the regular post, I thought I&#8217;d try and do a bite-sized summary of a topic. To that end, please enjoy the first installment of <strong>60 second stats!<\/strong> I can&#8217;t install a clock in the post, but if you&#8217;re really keen, time yourself to see if I&#8217;ve done a good job. Today&#8217;s topic will be the area of <strong>Agent-Based Simulation.<\/strong><\/p>\n\n\n\n<p>Are you ready?<\/p>\n\n\n\n<p>&#8230;.GO!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What is Agent-Based Simulation?<\/h3>\n\n\n\n<p>Agent-based simulation is any computer simulation in which &#8220;agents&#8221; interact with each other. <\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-content\/uploads\/sites\/8\/2020\/02\/The-Matrix-Agent-Smith.jpeg\" alt=\"\" class=\"wp-image-199\" width=\"366\" height=\"274\" \/><figcaption>No, not like that.<\/figcaption><\/figure><\/div>\n\n\n\n<p>The agents can be simulated cells in a biological system, or animals in nature, or even people. You then set your simulation running to see how the agents interact.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">How do I make an agent-based simulation?<\/h3>\n\n\n\n<p>Basically, an agent-based simulation needs 3 elements:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Agents<\/li><li>Relationships\/interactions between the agents<\/li><li>An environment the agents exist in<\/li><\/ol>\n\n\n\n<p>These will often be determined by either the structure of the simulation, or by <em>parameters<\/em> inputted by the user at the start of the simulation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Are there any examples of this?<\/h3>\n\n\n\n<p>Yes! To pick just a couple of the countless examples, agent based simulation has been used to model:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Predator-Prey relationships between animals (<a href=\"http:\/\/www.math.uaa.alaska.edu\/~orca\/\">for example, killer whales and other marine mammals<\/a>)<\/li><li><a href=\"https:\/\/ieeexplore.ieee.org\/stamp\/stamp.jsp?arnumber=5429727\">Pandemic disease modelling of individuals<\/a><\/li><li><a href=\"https:\/\/escholarship.org\/uc\/item\/2zd1t887\">Prehistoric settlement patterns of early civilisations<\/a><\/li><\/ul>\n\n\n\n<p>And many others.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What do I use an agent-based simulation for?<\/h3>\n\n\n\n<p>Often it&#8217;s used to either:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>Study how the agents interact under certain conditions, because studying these conditions in real-life is difficult\/impossible<\/li><li>Predict how real-life agents would act in new situations\/environments they haven&#8217;t experienced before<\/li><\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">That seems simple enough. Are there any problems with it?<\/h3>\n\n\n\n<p>The main difficulty is <em>calibration<\/em>. That is, selecting the right parameters so that the simulation is behaving similarly to the real-life system it is modelling. Otherwise, you can&#8217;t trust any of the results you obtain from it.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"242\" height=\"209\" src=\"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-content\/uploads\/sites\/8\/2020\/02\/Rick-And-Morty.jpeg\" alt=\"\" class=\"wp-image-200\" \/><figcaption>Which can be heartbreaking when you realise this<\/figcaption><\/figure><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">How do you calibrate it?<\/h3>\n\n\n\n<p>The most common way seems to be trial-and-error &#8211; just keep testing new parameters until the output looks realistic. However, there has been a bigger post to start using heuristics to try and automatically calibrate agent-based simulations<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">That sounds familiar&#8230;<\/h3>\n\n\n\n<p>It should! It was the topic of <a href=\"http:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/2020\/02\/07\/heuristics-in-optimisation\/\">my last blog post!<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">60 seconds is nearly up. Where do I look if I want to know more about this?<\/h3>\n\n\n\n<p><a href=\"https:\/\/ieeexplore.ieee.org\/stamp\/stamp.jsp?tp=&amp;arnumber=7019874\">Macal &amp; North (2014)<\/a> give a really good overview of general agent-based simulation. For some examples for the automatic calibration, see <a href=\"https:\/\/aailab.kaist.ac.kr\/xe2\/?module=file&amp;act=procFileDownload&amp;file_srl=19010&amp;sid=f6cba86eee045dfe7ef59d5abb6f30e0&amp;module_srl=1379\">Moon and colleagues (2018)<\/a> or <a href=\"https:\/\/www.ibisc.univ-evry.fr\/~hutzler\/Documents\/CalvezHutzler_MABS05.pdf\">Calvex and Hutzler (2005)<\/a>.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Aaaand, that&#8217;s time. Hope you enjoyed that! If not, well, you only wasted one minute.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I thought I&#8217;d try something different today, and instead of the regular post, I thought I&#8217;d try and do a&hellip;<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[13,12,11,5],"class_list":["post-192","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-60-second-stats","tag-agent-based-simulation","tag-simulation","tag-statistics"],"_links":{"self":[{"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/posts\/192","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/comments?post=192"}],"version-history":[{"count":7,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/posts\/192\/revisions"}],"predecessor-version":[{"id":276,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/posts\/192\/revisions\/276"}],"wp:attachment":[{"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/media?parent=192"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/categories?post=192"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lancaster.ac.uk\/stor-i-student-sites\/hamish-thorburn\/wp-json\/wp\/v2\/tags?post=192"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}