Download presentation
Presentation is loading. Please wait.
Published byHortense Mills Modified over 9 years ago
1
A case study with Malaria Anopheles reproduction modeling using an Individual Based Model (IBM) framework soundtrack: http://www.youtube.com/watch?v=vgB1XYVxk6khttp://www.youtube.com/watch?v=vgB1XYVxk6k
2
Epischisto.org History Projects 2
3
Definition of a Cellular Automaton Cellular automaton A is a set of four objects A =, where G – set of cells Z – set of possible cells states N – set, which describes cells neighborhood f – transition function, rules of the automaton: – Z |N|+1 Z (for automaton, which has cells “ with memory ” ) – Z |N| Z (for automaton, which has “ memoryless ” cells)
4
Cellular automata - generic models for complex systems Definition of a Fuzzy Set Neighborhood of cell Ci,j is global SCA G i,j := {(C k,l, Υ C i,j, C k,l ) |for all C k,l Є C, 0 ≤ Υ C i,j, C k,l ≤ 1} C is a set of all cells in the CA. Υ C i,j, C k,l represents an interaction coefficient that controls all possible interactions between a cell Ci,j and its global neighborhood Gi,j. A function of inter-cell distance and cell population density.
5
Two-Dimensional Grids Cells that have a common edge with the involved are named as “ main neighbors ” of the cell (are showed with hatching) The set of actual neighbors of the cell a, which can be found according to N, is denoted as N(a)
6
Definition of the Rings Formally, if R(a, i) is a set of cells of i-th ring of cell a, then if N describes cells neighborhood as the set of its nearest neighbors, following formula will take place
7
Rings for Grid of … Different rings are showed with hatching or color
8
Definition of the Metrics Distance function D(a, b) for retrieving remoteness between cells a and b can be denoted as follows It is proved that this function satisfies to all metrics properties The notion of ring may be generalized for multi- dimensional grids and the distance function, given by last formula, will remain the same
9
9 Difference Between ABM & CA Cellular automata (CAs) are always homogeneous and uniformly densely populated on the grid (all cells are identical), whereas in ABM the agents are heterogeneous and do not necessarily occupy all spaces within the grid. CAs frequently won’t interact with agents outside their immediate ‘neighborhood’
10
10 Agent Based Modeling Computer simulation that represents individual actors in a dynamic social system. ‘Agents’ represent heterogeneous individuals who interact with each other and/or their environment based on set rules. From these interactions, macro-scale behaviors may emerge.
11
11 Agents Agents have: Internal data representations (memory or state) Means for modifying their internal data representations (perceptions) Means for modifying their environment (behaviors) Copyright © 2000 by Swarm Development Group
12
12 CA Diffusion Model with ‘Seeds’ Influence Level = -2 Indifference Point = 0 SUM (Surrounding Squares) = 2(-2 ) + 5(1) –1 = 0 Therefore: cell remains negative Excel-Example
13
13 Netlogo http://ccl.northwestern.edu/netlogo/ http://ccl.northwestern.edu/netlogo/ This particular cellular automaton is called the Parity Model. There is only one rule, which all the cells follow. The rule is that each cell looks at its four neighbours (the ones immediately to its left, right, above and below) and if an odd number of them (that is, 1 or 3) of them are 'on', it switches itself 'on'. If there are an even number 'on' (2 or 4), it switches itself off. by Nigel Gilbert (Submitted: 9/15/2002 )
14
14 Ascape www.brook.edu/dybdocroot/es/dynamics/models/ascape In Ascape, agent objects exist within scapes; collections of agents such as arrays and lattices. These scapes are themselves agents, so that typical Ascape models are made up of "collections of collections" of agents. Ascape manages graphical views and collection of statistics for scapes and provides mechanisms for controlling and altering parameters for scape models.
15
15 Starlogo/Sugarscape http://education.mit.edu/starlogo/ http://education.mit.edu/starlogo/ StarLogo is a programmable modeling environment for exploring the workings of decentralized systems -- systems that are organized without an organizer, coordinated without a coordinator. With StarLogo, you can model (and gain insights into) many real-life phenomena, such as bird flocks, traffic jams, ant colonies, and market economies. www.brook.edu/SUGARSCAPE
16
16 RePast/Sugarscape The name RePast is an acronym for REcursive Porous Agent Simulation Toolkit. Our goal with RePast is to move beyond the representation of agents as discrete, self-contained entities in favor of a view of social actors as permeable, interleaved and mutually defining, with cascading and recombinant motives. We intend to support the modeling of belief systems, agents, organizations and institutions as recursive social constructions.
17
17 SWARM www.swarm.org/ Swarm is a software package for multi-agent simulation of complex systems, originally developed at the Santa Fe Institute. Swarm is intended to be a useful tool for researchers in a variety of disciplines. The basic architecture of Swarm is the simulation of collections of concurrently interacting agents: with this architecture, we can implement a large variety of agent based models.
18
18 AgentSheets http://agentsheets.com/ AgentSheets is an authoring tool that allows non-programmers to create agents with behaviors and missions, teach agents to react to information and process it in personalized ways, and combine agents to create sophisticated interactive simulations and models. Our customers use AgentSheets to create interactive games, virtual worlds, training simulations, information gathering and personalizing agents, and other interactive content.
19
Why Python? http://www.levenez.com/lang/ Timeline of General Purpose Programming Languages… 2012 programming languages in progress… 19
20
Python… Simple – Python is a simple and minimalistic language in nature – Reading a good python program should be like reading English – Its Pseudo-code nature allows one to concentrate on the problem rather than the language Easy to Learn Free & Open source – Freely distributed and Open source – Maintained by the Python community High Level Language –memory management Portable – *runs on anything c code will PyCUDA - parallel programming using CUDA 20 http://www.python.org/
21
What is Parallel Programming? Single Data Stream Multiple Data Stream Single Instruction Stream SISD uniprocessors SIMD Processor arrays Multiple Instruction Stream MISD Systolic arrays MIMD Multiprocessors multicomputers 21 https://computing.llnl.gov/tutorials/parallel_comp/
22
A Framework for Megascale Agent Based Model Simulations on GPU http://jasss.soc.surrey.ac.uk/11/4/10.html Journal of Artificial Societies and Social Simulation vol. 11, no. 4 10 22
23
Installing Python, Packages, CUDA NVIDIA hardware Python – packages CUDA Windows X Linux? Bill Gates!!!! http://200.17.137.109:8081/xiscanoe/projeto/ibm-ca- project-mosimbio/python-for-scientific-computing 23
24
Malaria Vector - Life Cycle [http://www.ocvcd.org]http://www.ocvcd.org
25
Eckhooff Malaria Journal 2011, 10:303 S.J. de Almeida et al. Environmental Modeling & Software 25(2010), 1490-1507 Silver, John B. Mosquito Ecology – Field Sampling Methods. Springer, 3rd Edition, 2008. Malaria Vector – life periods
26
Mosquito – individual as an object in Python A python object http://docs.python.org/reference/datamodel.html “Objects are Python’s abstraction for data. All data in a Python program is represented by objects or by relations between objects. (In a sense, and in conformance to Von Neumann’s model of a “stored program computer,” code is also represented by objects.)” class mosquito: def __init__(self, sex, eggstate, stage, state, energy, fertility, positionX, positionY): self.sex = sex #sex of the mosquito self.eggs = eggstate #level of development of eggs self.stage = stage #stage of life of the mosquito self.state = state #state of a mosquito self.energy = energy #energy level of the mosquito self.fertility = fertility #fertility of the mosquito self.positionX = positionX #coordinate X at the world self.positionY = positionY #coordinate Y at the world 26
27
Mosquito – IBM Parameters INDIVIDUAL states_of_a_mosquito = 5 #Mosquito Status: 0- mating, 1- feeding, 2- digesting, 3- ovoposition (females), 4- hatching (females) stages_of_life_cycle = 5 #Mosquito Stage: 0- egg, 1- larva, 2- pupa, 3- young, 4- adult energy_level_of_a_mosquito = 4 #Energy level: 0- no energy (dead), 1- low, 2- medium, 2- high, 3- full sex_of_a_mosquito = 2 #Sex: 0- male, 1- female fertility_of_a_mosquito = 2 #fertility: 0- sterile, 1- fertile development_of_eggs_of_a_mosquito = 4 #Eggs: 0-no eggs (males), 1- incomplete, 2- in process, 3- complete size_of_mosquito_population = 3500000 #total mosquitoes in the world ENVIRONMENT #states_of_a_human = 4 #SEIR: 0-susceptible, 1-exposed, 2-infected, 3-recovered human_population = (500) #total humans in the world time_to_simulate = 43200 # 1440 minutes in a day, 43200 minutes in a month, 518400 minutes in a year... n-dimensional world x,y,... – tam_world_y = tam_world_y = 10 states_of_a_cell = 2 #water: 0-no water, 1-water max_human_population_per_cell = (5) #max amount of humans in a cell of the world max_animal_population_per_cell = (4) #max amount of animals in a cell of the world 27
28
Mosquito – IBM Parameters (cont.) Days_between_feeds = 3 Female_eggs_per_female_oviposition = 100 Adult_life_expectancy = 10 Duration_of_immature = 4 Temperature_of_cell = [12..34] 28
29
Mosquito – Functionalities def grow_up(self) #birth … death def feed(self) #adult state def digest(self) #adult state def mate(self) #adult state def lay_eggs(self) #female no sterile state def hatch(self) #eggs state 29
30
Computation of the individuals 30 N-dimensional parameters of a cell Cell of the world Composition of the N-dimensional matrices of parameters water human...... animals
31
Works… 31 ------------------- The World of the Mosquitoes --- ---------- ------ dimensional parameters: water, human, animal, indoor/outdoor [array([[1, 0, 0, 0, 0, 0, 0, 1, 1, 1], [0, 0, 1, 0, 1, 1, 0, 1, 0, 0], [0, 0, 1, 1, 1, 1, 1, 0, 1, 0], [1, 1, 1, 1, 0, 0, 1, 1, 0, 0], [1, 0, 0, 0, 0, 0, 0, 1, 1, 0], [0, 0, 0, 1, 1, 0, 1, 1, 1, 1], [1, 1, 0, 0, 1, 0, 0, 1, 1, 0], [0, 0, 1, 0, 1, 1, 1, 0, 0, 1], [0, 1, 1, 0, 0, 1, 0, 1, 1, 1], [0, 0, 1, 1, 0, 1, 0, 0, 1, 1]]), array([[3, 1, 2, 2, 4, 1, 4, 3, 3, 4], [3, 0, 4, 0, 1, 0, 0, 3, 4, 4], [0, 2, 2, 2, 4, 0, 0, 2, 1, 0], [0, 2, 0, 1, 2, 1, 1, 3, 4, 0], [3, 3, 4, 3, 4, 4, 2, 0, 4, 1], [4, 0, 0, 2, 3, 2, 0, 1, 2, 0], [2, 2, 0, 4, 3, 1, 2, 1, 1, 0], [3, 4, 1, 2, 4, 4, 1, 4, 4, 1], [3, 3, 4, 1, 4, 2, 2, 4, 4, 3], [3, 4, 0, 4, 1, 4, 0, 4, 0, 2]]), array([[1, 2, 2, 0, 2, 3, 0, 3, 0, 3], 2999961 : Hola! Yo soy un(a) mosquito joven y soy varon y fertile y estoy en la cell ( 6, 3 ) del mundo de Jones! 2999962 : Hola! Yo soy un(a) pupa y soy hembra y sterile y estoy en la cell ( 2, 5 ) del mundo de Jones! 2999963 : Hola! Yo soy un(a) egg y fertile y estoy en la cell ( 2, 6 ) del mundo de Jones! 2999964 : Hola! Yo soy un(a) egg y sterile y estoy en la cell ( 8, 7 ) del mundo de Jones! 2999965 : Hola! Yo soy un(a) mosquito adulto y soy hembra y fertile y estoy a poner ovos en la cell ( 9, 9 ) del mundo de Jones!
32
Simulations Reproduction cycle: – Water and no water – Indoor and outdoor – Fertile and no fertile – Temperature varying – ??????? To talk to THE entomologist… 32
33
Comparing results… 33 WATER RESOURCES RESEARCH, VOL. 44, W12445, doi:10.1029/2008WR006917, 2008 Hydrology of malaria: Model development and application to a Sahelian village
34
Some results 34 Comparing mosquito quantity (temperature varying in 0,5) simulated With WATER RESOURCES RESEARCH, VOL. 44, W12445, doi:10.1029/2008WR006917, 2008 Do we need real experiment…?
35
GPU vs CPU running IBM´s simple problems 35 SpeedUp = Exec time CPU --------------------- Exec time GPU GPU 2Processors 2.12 faster than CPU! In a SONY VAIO CORE i5 NVIDIA GEFORCE SpeedUp superlinear!! Pero…
36
Considerations CUDA is simple, cheap and easy! 2 months Python is simple, free, easy 2 months Environment configuration is complex Mosquito behavior is more complex! 36
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.