swarm-modeling
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Swarm-Modelling] Announce: metaABM 1.0.0


From: Marcus G. Daniels
Subject: Re: [Swarm-Modelling] Announce: metaABM 1.0.0
Date: Sat, 24 Nov 2007 10:49:05 -0700
User-agent: Thunderbird 2.0.0.9 (X11/20071115)

Hi Miles,

Consider a model of disaster response. Let's say a city planner wants to estimate how much money to put into local emergency response, so they hire an agent modeler to model their city under crisis scenarios. After a modeling framework has been implemented and has been given some exercise by the modeler. the planner would like to run it from their PC to refine their ideas. The modeler is fluent in various programming languages, but the planner has no programming experience.

Suppose a population of people in the vicinity, having different socioeconomic status, social dependencies, skill sets, work obligations, and so on. Whether or not a person gets involved in helping, and how they help is determined by factors like these. Engagement might depend on the perception of how much help is already at work, variations in feelings of social connectedness to the community, and prevalent notions of group identity. Or it might also depend on the influential city politicians or wealthy individuals.

In the model, individuals go about their business, and devote some attention to various matters, including this perturbation event. The model runs for a couple months, and `bad' consequences occur or not after the disaster. Then the modeler or planner goes back and tweaks the model to identify possible short term and long term investments that may help mitigate risk for the city overall and/or sufficiently influential stakeholders.

One thing the planner wants to consider is creating incentives for people to help in the community with the idea that will increase the probability of engagement during a crisis -- whether that's through ongoing charitable donations or through meals-on-wheels or whatever. Therefore it becomes important to study the demographics of the city in detail and find ways to match incentives to the lifestyles that exist through the city. In the end the problem is a large constraint satisfaction problem, where each individual decides to direct their energy in certain individual-specific ways from a larger set of options depending on estimates of and experience with payoff. The idea is to calibrate and validate a model over time by attempting low-cost and low-risk interventions (e.g. propaganda might be an intervention) and measuring how it works. When some success is gained, then move on to higher-cost and higher-risk interventions.

Here the division between customization and inheritance is not clear. The important parts of the model are rules that concern psychology and concern political leverage. It seems to me that such rules would always be in flux and not convenient for rigid declarative abstraction, nor will they be convenient to punt to an external class. The user will need to think in detail about the propositions they are making about city inhabitants and they will need to have flexibility in expressing those ideas. The kind of runtime that can do this ought to have a convenient and direct (not indirect or preconceived) representation for the individuals and the things those individuals can learn to do.

I don't doubt many familiar ABMs are compatible with simple domain specific languages. But in the end, I think the challenge is not to avoid programming at all cost (a.k.a. thinking and speaking carefully), it's to hide irrelevant complexity. One way is to make, use and adapt macros.¹ To the extent I'm skeptical with metaABM, it's because I don't see how the user is directly empowered to critique and specialize the macros (the developer's view of things) without dropping into Java.

As for the matter of how to get others in the academic community to accept agent-based models, I'll just say I'm not very sympathetic. Software must people read each others' code all the time. Yeah, it's hard. Try harder. If we use functional programming to make models (say iterate XSLT on XML model specifications!), making a serious effort to factor the code, and then (most importantly!) gratuitously rename all variables to be single greek characters, then after a while hopefully someone will notice ABMs are pretty much just math anyway!

Marcus

¹ I don't mean "macros" is any denigrating sense like a C #define or an editor shortcut -- I mean it in the sense of fully-general code generation up to and including runtime native code compilation -- as is possible with modern Common Lisp implementations.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]