swarm-modeling
[Top][All Lists]
Advanced

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

Re: Open source? -> Need to read source to model?


From: Robert
Subject: Re: Open source? -> Need to read source to model?
Date: Sun, 16 Jan 2000 14:26:41 -0500

I think the answer to Rick's questions, as well as most questions concerning
programming and modeling, is...drum roll....it depends on your application.

Understanding the source code is part of being a modeler.  I am by no means an
expert programmer....plenty of times I have left conversations with Alex,
Marcus, Benedikt, Glen, etc. with the thoughts of "uh oh...I need to read
another book and read some more source."  But studying swarm source code has
made me a better modeler and not just a better programmer.

In regards to the "typical" modeler (if there is such a thing), how much does
the modeler want to leave as unknown?   I chose to leave the details of the
graph libraries and other housekeeping chores unviewed...this is what I like
about swarm and why, I believe, it was created...I am not burdened with the
programming of tools that have not much to do with modeling, but are
necessary.  I can concentrate on the modeling. But how about the random number
generator libraries?  Different story...how they are written is crucial to my
particular modeling endeavors, so naturally I chose to  understand the source
code for these libraries.  Every modeler needs to take responsibility for
understanding their model.  It is an individual decision to determine at what
level they feel comfortable treating a library or another's program as a
"black box."  Swarm is a big tool box and the user must decide which tools to
understand (by reading source) and which to accept as is.

I disagree with the comment "we don't expect people who write models as
difference or
diffy-equations to be experts in dynamical systems."  If they are using these
equations to model dynamic systems, I do indeed expect at least a cursory
understanding of dynamic systems.  It is all part of being a modeler...it
isn't easy...it means being proficient across different disciplines, including
programming if your model is computational.

On last thought...as the level of understanding the internals of a model is
diminished (i.e. not understanding source), what is the reponsibility of the
end user/modeler for the tools they used and perhaps didn't take the time to
understand.  There's a reason software is marked with hefty amounts of
disclaimers (<rant> which I never understood with closed source...you want me
to trust the software, but you won't let me see the source...and then you
don't want to take responsibility if it doesn't work </rant>).  Caveat
emptor.  I suppose that as long as the newer "user friendly" modeling
programs/languages don't encourage the modeler to a state of blissful
ignorance, they would be a good thing.  Overall, I think Swarm does a good job
of taking care of painful details while still educating the user how it was
done....but like all useful endeavors it takes work....and the social
scientist may have to learn some programming.  The Swarm team has also done
very well at getting nonprogrammers into programming.

Cheers,
Robert


Rick Riolo wrote:

> I think this raises an interesting and difficult question
> for the future of agent-based modeling as a standard
> technique in scientists' toolkits.
> (I decided to move it to swarm-modelling, since that seems
> to be a more appropriate place for this issue.)
>
> If I recall correctly, one of the original ideas behind
> Swarm was to come up with a system that would make it
> easier for biologists, economists, anthropologists, political
> scientists, etc, to do experiments with agent-based models.
> Part of the idea was that these people are not
> professional computer programmers, and never will be, and
> to the extent they have to get in and get dirty with source
> codes is a mis-use of their comparative advantage,
> ie., they are spending time 'programming' (in the broad
> sense of that activity, which includes reading complex source codes)
> instead of being biologists, economists or whatever.
> I think this sentiment has led to the recent
> (and I think very useful) MAML project, for instance.
>
> On the other hand, one would not expect someone to
> be able to make good equation based models if they were
> not at least somewhat mathematically skilled.
> So why is it not equally reasonable to expect people
> trying to implement computer based models to be at
> least somewhat skilled in the art/craft/science of programming?
>
> As many of you know, I have taugh and continue to teach
> a modeling course (in swarm) to students from a varitey
> of disciplines, most of whom are beginning programmers.
> So in some sense you know where my prior biases fall...
> (I do make grep my friend!)   ...However...
>
> Its not clear to me where the expectations should
> be wrt programming skills and need to read underlying source
> for systems like Swarm to be able to use them.
> Certainly one needs to be able to read the user-level documentation,
> but does the 'typical' modeller really have to read the
> source codes for the underlying tools?
> We don't expect people who write models as difference or
> diffy-equations to be experts in dynamical systems.
> Is asking them to regularly read the source for Swarm the
> equivalent of asking them to be expert programmers?
> yes, there may be some cases where they
> might need to if they want to do something non-standard,
> but should that be the norm, as opposed to the exception?
> (just as its the norm to right and use equation-based
> models quite usefully, and only sometimes does one need
> to dig into the theory for those cases where one is
> trying to push what can be typically be done with those
> equations).
>
> Well, where am I going with this?  I don't know!
> It just struck me as not obvious that all people
> using a system like Swarm should be expected to,
> or regularly need to, read the source for Swarm.
> (as I said, reading documentation is a different question...
> which also raises the question of what is adequate
> documentation...for another thread...)
>
> So I just thought I'd raise this issue (which I suspect has
> been kicked around in these lists before) because
> I think the answers are not so obvious (at least not to me),
> and the questions are quite deep (e.g., it raises
> questions about the appropriate conceptual modeling langauge
> for ABMs, and the relationship between that and some
> underlying implementation of the basic elements).
>
> I'm sure there is a broad variety of opinions on
> this out there in the Swarm community...I'd be
> interested in hearing people's reasons for where
> they fall on the spectrum.
>
> - r
>
> Rick Riolo                           address@hidden
> Center for Study of Complex Systems (CSCS)
> 4477 Randall Lab
> University of Michigan         Ann Arbor MI 48109-1120
> Phone: 734 763 3323                  Fax: 734 763 9267
> http://www.pscs.umich.edu/PEOPLE/rlr-home.html



                  ==================================
   Swarm-Modelling is for discussion of Simulation and Modelling techniques
   esp. using Swarm.  For list administration needs (esp. [un]subscribing),
   please send a message to <address@hidden> with "help" in the
   body of the message.
                  ==================================


reply via email to

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