Xiaoguang Gong and Renbin Xiao (2007)
Research on Multi-Agent Simulation of Epidemic News Spread Characteristics
Journal of Artificial Societies and Social Simulation
vol. 10, no. 3 1
<https://www.jasss.org/10/3/1.html>
For information about citing this article, click here
Received: 22-Feb-2006 Accepted: 13-Mar-2007 Published: 30-Jun-2007
Figure 1. The description of the spread process of epidemic and epidemic news |
Figure 2. The organization of the model of multi-agent simulation of ENS |
Table 1: The attributes and default values of the circumstance agent class | |||
Attributes | Data Types | Default values | Explanations |
NBAF | real | 3 | The number of the initial infected spread agents |
BegainRange | real | 80 | The radius of spread of the initial infected agents |
NIFT | real | 0 | The number of the infected agents |
BegainCentreY | real | 0 | The Y-coordinate value of the spread circle center of the initial infected agents |
BegainCentreX | real | 0 | The X-coordinate value of the spread circle center of the initial infected agents |
NHED | real | 0 | The number of the agents who have heard of epidemic news directly, excluding the infected agents |
NHEN | real | 0 | The number of the agents who have heard of epidemic news, including the infected agents |
NUHD | real | 0 | The number of the agents unheard of epidemic news |
NFEN | real | 0 | The number of the agents who have forgotten epidemic news |
TimeBegin | real | 0.00001 | The delay time to make some agents infected after the simulation begins |
Table 2: The attributes and default values of the spread agent class | |||
Attributes | Data Types | Default values | Explanations |
TrustRate | real | uniform (0.01, 0.5) | the degree of trust in epidemic news when the agent heard epidemic news indirectly |
ContactRange | real | uniform (600) | Communication radius of the agent |
InfectRange | real | 9 | Infecting range radius of the infecting circle range |
InfectRate | real | 0.5 | Contagious probability in the infecting circle range |
KnowRange | real | 21 | Circle range of an infected agent known by other agents |
isListened | boolean | false | Whether heard epidemic news or not |
NumDistred | real | 0 | Number of objects spreaded out from the agent |
TgetNews | real | -1 | Time when heard of epidemic news |
NumContact | real | uniform (0, 10) | The number of social relationships of a spread agent |
Newgetnews | boolean | false | Whether hear the epidemic news newly or not |
Tmoved | real | -1 | The begin time of the last movement |
OldY | real | uniform (600) | Y-coordinate value of the agent position at the beginning |
OldX | real | uniform (600) | X-coordinate value of the agent position at the beginning |
color | Color | Color.light gray | Be used to mark agents' state |
y | real | uniform (600) | Recent Y-coordinate value of the agent position |
x | real | uniform (600) | Recent X-coordinate value of the agent position |
TimePinkDist | real | uniform (0.01, 0.5) | The delay time to spread epidemic news after the agent heard epidemic news directly |
TimeInfectDis | real | uniform (0.01, 0.2) | The delay time to spread epidemic news after the agent found himself infected |
TimeInfect | real | uniform (1, 4) | The delay time to be found infected |
TimeKnow | real | uniform (0.02, 1) | The delay time to be known by the agent around the infected agent |
TimeBlueDist | real | uniform (0.02, 1) | The delay time to spread epidemic news after the agent heard epidemic news indirectly |
TimeMove | real | uniform (0.5, 4 ) | The time interval between movements |
TimeForget | real | uniform (2, 6 ) | The time span to forget the epidemic news |
Model | Main | (Main)getOwner() | A reference of the container object (circumstance agent) |
Figure 3. The state change and behavior of spread agents |
Figure 4. Runtime state of the model of multi-agent simulation of ENS[1] |
Figure 5. The influence of 'NumContact' on NHEN [2] |
RHEI = (NHEN - NHED - NIFT) / NHEN
Figure 6. The influence of 'NumContact' on RHEI |
Figure 7. The influence of 'TrustRate' on NHEN |
Figure 8. The influence of 'TrustRate' on RHEI |
Figure 9. The influence of 'InfectRange' on NIFT |
Figure 10. The influence of 'InfectRange' on RHEI |
Figure 11. The influence of 'InfectRange' on NHEN |
Figure 12. The influence of 'NumContact' on NFEN |
2 Anylogic™ gets statistic variables' values of all changes of simulation time points and simulation events, and the original simulation data exceed 150000 groups, which goes beyond the capacity of one sheet with maximum capacity of 65536 groups in Microsoft Excel. So we developed a program to get simulation statistic data of an interval time of 0.01 day and export the new data to Microsoft Excel for analysis.
BENSAID L, Bouron T, Drogoul A (2002) Agent-based Interaction Analysis of Consumer Behavior, Proceedings of the First International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS'02), Bologna, Italy, 2002, pp. 183-189.
BOUSQUET F, Cambier C, Mullon C and Quensiere J (1992) Simulating Fishermen Society. In : Gilbert N. (ed.) Simulating Societies. Guilford : University of Surrey, 1992, pp. 63-79. http://horizon.documentation.ird.fr/exl-doc/pleins_textes/pleins_textes_5/b_fdi_31-32/35494.pdf.
CHAUSSALET TJ, Mann JA, Perry JN and Francos-Rodriguez JC (2000) A Nearest Neighbour Approach to the Simulation of Spread of Barley Yellow Dwarf Virus. Computers and Electronics in Agriculture, 2000, 28, pp.51-65.
DEMETRIOS E, Andreas L, Symeonidis, Pericles A, Mitkas (2005) GeneCity: A Multi Agent Simulation Environment for Hereditary Diseases. Third European Workshop on Multi-Agent Systems (EUMAS) 2005, pp. 137-147.
DENG H Z, CHI Y, TANG Y J (2004) Multi agent-Based Simulation of Disease Infection. Computer simulation, 2004, 21(6), pp. 167-175.
DIETRICH S and Muhammad S. (2006) Discrete simulation of the dynamics of spread of extreme opinions in a society. Physica A, 364, pp. 537-543.
DROGOUL A, Corbara B, Fresneau D, MANTA (1995) New Experimental Results on the Emergence of (Artificial) Ant Societies, in Artificial Societies: the computer simulation of social life, Gilbert N. & Conte R. (Eds), UCL Press, London, 1995.
DROUGOUL A, Ferber J (1992) Multi-Agent Simulation as a Tool for Modelling Societies: Application to Social Differentiation in Ant Colonies. Proceedings of Maamaw '92, Rome, C. CastelFranchi and E. Werner (Ed.), North-Holland, 1992.
ELLIOTT R, Danzig, Pouf W Thayer and Lila R (1958) Galanter: The Effects of a Threatening Rumor on a Disaster-Stricken Community, National Academy of Science National Research Council, Washington, D. C.
GILBERT N (1993) Computer simulation of social processes. Social Research Update 6, 1993 http://sru.soc.surrey.ac.uk/SRU6.html.
GILBERT, N (2005). Agent-Based Social Simulation: Dealing with Complexity. http://www.complexityscience.org/NoE/ABSS-dealing with complexity-1-1.pdf.
GOLDSPINK C (2002) Methodological Implications of Complex Systems Approaches to Sociality: Simulation as a Foundation for Knowledge. Journal of Artificial Societies and Social Simulation, 2002, 5. https://www.jasss.org/5/1/3.html.
GONG X G and LI Z C (2003) Study on Multi-Agent Simulation of New Product Market Diffusion. System Engineering Theory and Practice, 2003, 12, pp. 60-63,110.
HANSEN M T (1999) The Search-transfer Problem: the Role of Weak Ties in Sharing Knowledge Across Organization Subunits. Administrative Science Quarterly, 1999, 44, pp. 82-111.
HETHCOTE H W (2000) The Mathematics of Infectious Diseases. SIAM Review, 2000, 42, pp. 599-653.
HOLLAND J H (1998) Emergence. New York: Addison-Wesley, 1998.
HUANG C Y, Sun C T, Hsieh J L, and Lin H (2004) Simulating SARS: Small-World Epidemiological Modelling and Public Health Policy Assessments. Journal of Artificial Societies and Social Simulation, 2004,7(4). https://www.jasss.org/7/4/2.html.
JØRGENSEN E (2000a) Calibration of a Monte Carlo Simulation Model of Disease Spread in Slaughter Pig Units. Computers and Electronics in Agriculture, 2000, 25, pp. 245-259. http://citeseer.ist.psu.edu/54117.html. KAPFERER J N (1990) Rumors: Uses, Interpretations, and Images. New Brunswick, CT: Transaction Publishers, 1990.
KARSTEN S, Rave G and Krieter J (2005) Monte Carlo simulation of classical swine fever epidemics and control. I. General concepts and description of the model. Veterinary Microbiology, 2005,108, pp. 187-198.
KARSTEN S, Rave G and Krieter J (2005) Monte Carlo simulation of classical swine fever epidemics and control. II. Validation of the model. Veterinary Microbiology, 2005, 108, pp. 199-205.
KUPERMAN M, Abramson G (2001) Small World Effect in an Epidemiological Model. Phys Rev Lett, 2001, 86, pp. 2909-2912.
LAI G and Wong O (2002) The Tie Effect on Information Dissemination: The Spread of a Commercial Rumor in Hong Kong. Social Networks, 2002, 24(1), pp. 49-75.
LI H L and Xiao R B (2006) A multi-agent virtual enterprise model and its simulation with Swarm. International Journal of Production Research, 2006, 44(9), pp. 1719-1737.
LI Z C, HU B, FU X H and GONG X G (2005) The Theory and Application of Qualitative Simulation in Management System. Science Press, Beijing, 2005.5.
LITMAN J A and Pezzo M V (2005) Individual Differences in Attitudes Towards Gossip. Personality and Individual Differences, 2005, 38, pp. 963-980.
LPEZ-SNCHEZ M, Noria X, Rodríquez JA, and Gilbert N (2005) Multi-agent Based Simulation of News Digital Markets. International Journal of Computer Science & Applications, 2005, 2(1), pp. 7-14.
NEWMAN M E J (2003) The Structure and Function of Complex Networks. SIAM Review, 2003, 45, pp. 167-256.
ROSNOW R L (1988) Rumor as Communication: a Contextualist Approach, Journal of Communication, 1988, 38(l), pp. 12-28.
SANDER L M, Warren C P, et al (2002) Percolation on Disordered Networks As a Model for Epidemics. Math Biosci, 2002, 180, pp. 293-305.
SCHWEITZER F, Zimmermann J (2001) Communication and Self-Organization in Complex Systems: A Basic Approach, in: Knowledge, Complexity and Innovation Systems (Eds. M. M. Fischer, J. Fröhlich), Springer, Berlin, 2001.
TRAN A and Raffy M (2006) On the Dynamics of Dengue Epidemics From Large-scale Information. Theoretical Population Biology, 2006, 69(1), pp. 3-12.
WANG X F (2002) Complex Networks: Topology, Dynamics and Synchronization. Int J Bifurcation & Chaos, 2002, 12, pp. 885-916.
WATTS D. J, Strogatz S H (1998) Collective Dynamics of 'Small world' Networks. Nature, 1998, 393, pp. 440-442.
WERT S R and Salovey P (2004) A Social Comparison Account of Gossip. Review of General Psychology, 2004, 8, pp. 122-137.
WOOLDRIDGE J, Jennings N, and Kinny D (1999) A Methodology for Agent-Oriented Analysis and Design. In International Conference on Autonomous Agents, New York, 1999, pp. 69-76.
XIAO G and Xi B (2005) Swarm Based Logistics Supply Structure Evolving Simulation for Strategic Decision. 2005 International Conference on Machine Learning and Cybernetics, ICMLC 2005, pp. 3624-3628.
ZAWADOWSKIA A G, Karadia R and Kertesza J (2002) Price Drops, Fluctuations, and Correlation in a Multi-Agent Model of Stock Markets. Physica A, 2002, 316, pp. 403-412.
ZHOU H (2005) Research of the Small-World Character During Rumor's Propagation. Journal of Wuhan University of Science and Engineering, 2005, 18(1), pp. 113-116.
// timeout is "TimeInfectDis" // the infected agent spread out the rumor if (color == Color.red) { for( int i=0; i< model.people.size() && numdistred<=NumContact; i++ ) { person p = Model.people.item(uniform_discr( Model.people.size() - 1 )); if( distance( p.x, p.y ) <= ContactRange) { NumDistred++; if( p.color==Color.lightGray ) { p.StateTrans.fireEvent( "unknowntoknow" ); // state change (3) } if(p.color==Color.blue ) { p.StateTrans.fireEvent( "listoknow" ); // state change (6) } }; }; }; Model.setModified();
// timeout is "TimeKnow" // their neighhour find the infected fact if (color == Color.red ) { for( int i=0; i< model.people.size() ; i++ ) { person p = Model.people.item(i); if(distance( p.x, p.y )<= KnowRange) { if(p.color==Color.blue) { p.StateTrans.fireEvent("listoknow"); // state change (6) }else if( p.color==Color.lightGray ) { p.StateTrans.fireEvent("unknowntoknow"); // state change (3) } }; } }; Model.setModified();
// timeout is "TimeInfect" // the infect process if (color == Color.red ) { for( int i=0; i< model.people.size() ; i++ ) { person p = Model.people.item(i); if((distance( p.x, p.y )<= InfectRange) && (uniform ()<=InfectRate)) { if (p.color==Color.lightGray) { p.StateTrans.fireEvent("unknowntoinfect"); // state change (4) }else if (p.color==Color.pink) { p.StateTrans.fireEvent("knowtoinfect"); // state change (7) }else if (p.color==Color.blue) { p.StateTrans.fireEvent("listoinfect"); // state change (5) } } } };Java source code for [4]
// timeout is "TimePinkDist" Model.setModified(); //the agent heard rumor directly spread out the rumor if (color == Color.pink) { for( int i=0; i< model.people.size() && numdistred<=NumContact; i++ ) { person p = Model.people.item(uniform_discr( Model.people.size() - 1 )); if( distance( p.x, p.y ) <= ContactRange) { NumDistred++; if( p.color==Color.lightGray ) { p.StateTrans.fireEvent( "tolis" ); // state change (2) }; if(p.color==Color.blue ) { p.NewgetRumor= true; p.TgetNews=getTime(); }; }; }; };
// timeout is "TimeBlueDist" Model.setModified(); //the agent heard rumor indirectly will spread out the rumor if ((color == Color.blue) && (NewgetRumor==true)) { NewgetRumor=false; int k=0; for( int i=0; i< model.people.size(); i++ ) { if ( numdistred<=NumContact && k <= NumContact * TrustRate) { Person p = Model.people.item(uniform_discr( Model.people.size() - 1 )); if( distance( p.x, p.y ) <= ContactRange ) { k++; NumDistred++; if( p.color==Color.lightGray ) { p.StateTrans.fireEvent( "tolis" ); // state change (2) } if(p.color==Color.blue ) { p.NewgetRumor=true; p.TgetNews=getTime(); } } } } }; Model.setModified();
Entry action Model.NHEN++; isListened=true; Model.setModified(); Forgeted = false; Exit action Model.NHEN--; Model.setModified();
Model.NUHE++; //Model.NHEN++; Model.setModified(); isListened=false; color=Color.lightGray; Exit action Model.NUHE--; Model.setModified();
Model.NHEN++; isListened=true; Model.NIFT++; Model.setModified(); Exit action //Model.NHEN--; Model.NIFT--; Model.setModified();
Entry action Model.NHEN++; isListened=true; Model.NHED++; Model.setModified(); Exit action Model.setModified(); Model.NHED--; Model.NHEN--;
Return to Contents of this issue
© Copyright Journal of Artificial Societies and Social Simulation, [2007]