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: Miles T.Parker
Subject: Re: [Swarm-Modelling] Announce: metaABM 1.0.0
Date: Sat, 24 Nov 2007 19:38:36 -0800


Thanks for the detailed reply. Perhaps we should have a debate at next year's Swarmfest -- scientific discourse has become so afraid of direct disagreement that we risk glossing the really interesting stuff. 

Reading back over your prior post and this one, I think I see your objections more clearly. This is an issue here that keeps returning -- IIRC a decade ago the context was Java v. Objective C. Perhaps it comes down to the importance of functional and dynamic indirection? If that's a reasonable characterization, could we say that the question is wether it is possible to create really interesting science from less than perfect approaches, and wether their benefits of doing so outweigh the potential to forestall truly novel discoveries. Is that close?

I'd say that one of the biggest predicators of how someone would answer that question would be wether they majored in CS or say the life or social sciences. As many of have feet in both camps I think we can appreciate the tension between the two POV. That's why I found Ding's (?) post about the ease of Java and the difficulty of modeling economic phenomenon a little baffling, no offense intended! Anyone who has spent time in a workshop trying to teach social scientists to set up an IDE, let alone write non-trivial code, can appreciate that Java *is* hard for many very bright people. OTOH, given the poverty of economic and political science theory it is sometimes hard to imagine how one could build a model *worse* than current doctrine!  

To a Computer Scientist most ABM models seem trivial and uninteresting, while to a Social Scientist most interesting computational problems seem irrelevant. Neither view is universally true, of course. I do think that:

a) we cannot let fascination with methodology wag the dog of doing meaningful, helpful science. (Economics is the perfect example of just how much damage an arid quest for elegant sequences of greek letters can do); and 
b) there is so much that we don't know about social and biological systems and we haven't really scratched the surface of what we can discover using the "simple" kinds of ABM modeling that current toolsets support.
c) we should continue to expand the limits of what our methodologies allow, but chiefly as a theoretical effort not prematurely tied to real world cases. (In contrast to the forced mathematical excursions of Econ., it has been the truly theoretical explorations that were later found to demonstrate real elegance when applied to 'actual' systems.)

On Nov 24, 2007, at 9:49 AM, Marcus G. Daniels wrote:

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.

Let me say that the above is a requirement that I would like to remove! And no, I do *not* mean thinking less rigorously or representing one's ideas less clearly then a programmer, I simply mean using a more constrained, leveraged, and transparent way to do it. Call me soft, but I do not think there is any justification for requiring someone to learn the entire set of a general purpose language's functionality before we will let them loose on any kind of algorithmic explanation for natural phenomenon.

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.

OK to this point, I think!

Here the division between customization and inheritance is not clear.

(I'm not sure what distinction you are drawing here..)

 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...

Then how are they to be (conveniently) represented? In what ways is the metaABM abstraction more rigid then say Java code? 

   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.

Yes, this is exactly my target -- I guess it is in part an aesthetic judgement about how well the metaABM approach succeeds, but could be agree that there is an unavoidable tension between flexibility and convenience and probably expressivity as well?

 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'm still not sure that you have looked at the metaABM model?? Can one have a representation without some preconceptions? 

Learning, at least as a CS person conceives it, is where we end the current representational capability of metaABM per se, so you've identified an important (current!) boundary.


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)

Foul!

, 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.

A very fair concern and worthy of focus. First, metaABM is in some sense a set of Macros, it is just that the target for those Macros is virtual. If you look at the Acts as defined they are I think quite atomic and (potentially :)) well-specified. So there is no reason to critique their implementation and I think no reason to specialize. There is reason to want to extend, aggregate and generalize and while that is something I have given thought to there is a lot of work to do there.

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!

My gratuitous knock above aside, that is what I think we can achieve very naturally by applying some reasonably palatable constraints. As a start, I think that it would be useful to be able to show that most classic ABMs can be represented as a fairly simple set of spatial structures and rules, and for the moment that is my modest goal.

Again, very helpful -- I'd like to strongly encourage you to post your thoughts on the Open ABM software forums so that the discussion can be preserved and extended.


reply via email to

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