This is a reply to several more messages about my project to do a 
simulation of the world economy, but before I get on with replying, 
I'd like to clear up some possible misunderstandings.

Since my post containing some tentative requirements analysis the 
silence has been deafening, with even Jay Hanson being mute on the
subject.  Looking back I realize that my message was impenetrably dense.
It obviously needs a bit more explanation and motivation.

First, my suggestion that you look at a spreadsheet as a model of what
I propose may be misleading.  Some people who use spreadsheets for
ordinary business applications may be unused to the idea of using a 
spreadsheet as a programming language for writing programs that can 
simply go on and run by themselves.

Usually people set up something on a spreadsheet and then change 
various numbers to see what will happen -- the result being a change 
from one static state based on the old numbers to another static state 
based on the new ones.  That is, of course, their most common use.

But it is quite possible to use a spreadsheet as a programming 
languages for dynamical programs that have a continuous loop, which 
runs until interrupted (or until a stable equilibrium state is 
reached).   I hoped people could keep the spreadsheet model in mind
as they read though my tentative requirements, but that may not
have helped!  The requirements themselves though stand on their own, 
however, and other models could meet them -- I just thought the
spreadsheet model might ring a bell with somebody.  Sorry if it
didn't.

The requirements I posted are just rough drafts, and already have
probably proven just how rough they are by confusing people.  

Essentially, they boil down to this:  I don't want to write some
oversimplification, I want to write something that can be used
for state-of-the-art models -- something without built-in limitations,
that can be incrementally improved by adding better data.  And I'd
like to let them incorporate better data automatically by obtaining
it from remote sites, so that the resulting simulation can be
very large and powerful without requiring any of us to be experts.

This should make it possible for a simulation based on this software
to be a distributed simulation, making use of results obtained over 
the net.  If someone was to use this software (or some other) to
create a good simulation of the Canadian, U.S., or British economy,
rather than doing it over again or manually downloading data from
that other simulation, it should be possible for the simulator running 
the whole-world simulation to acquire or update it over the net on a 
regular basis.

Does that help?  Please give my your comments!  And now to comments
already received, most of them from just before I sent out my
tentative requirements analysis.

A couple of people commented on chaos and chaotic models.
Brian McAndrews <[EMAIL PROTECTED]> asked:
 
>  Didn't chaos theory grow out of weather forecasters being humbled by what
> their super computers were suggesting from simulations? Didn't it have to
> do with what happened when the number of decimal places being used were
> increased or decreased. Aren't measurements always approximations?

I interpret this as an attempt to point out problems that may dog any
attempt to model the world economy.  It is worth considering this, but
I don't worry about it too much.

There is a big difference between simulations of something profoundly
non-linear such as weather and simulations of processes that can have
a more-or-less linear representation.  Linearization is a process for
using the tools of linear algebra to handle non-linear systems, and 
where it is applicable, good models can be used.

Curve fitting, for example is quite often used to clean up or simplify
noisy real-world data by fitting a curve to it, thereby creating a 
model that is simpler than reality but captures the essential 
relationships within the data -- and even though the curves fitted to 
the data are not just straight lines, linear algebra can be used to to 
do the fitting, after a suitable linearization is found.

But weather is such a profoundly non-linear system that linearization
is either impossible or doesn't help much.  We may differ on this
point, but I think the world economy is a much simpler system than
the world's weather.  I don't know any way to prove this other than
to construct a simulation and try it, but I'd be quite surprised to 
see anything like the chaos seen with weather.

On the other hand, the world economy does depend on weather, which 
therefore does need some representation in the model.  Weather is just 
one of many sources of unpredictable data that will cause problems for 
any simulation.  But the usual way to handle that is to use random 
number generation to supply such data and then rerun the model many 
times, and I think that should work OK.

Mike Hollinshead <[EMAIL PROTECTED]>, on the other hand, wrote:

> One major problem you are going to run into is the inability of non-chaotic
> systems models to generate surprise (like innovations) as they are
> completely defined. 

I take this as the other side of the coin, expressing a perceived need 
for chaotic models to capture important aspects of the real world.  I 
don't want this simulation to be weakened by any arbitrary simplifying
assumptions, and I don't think anything I said makes any such 
over-simplifying assumptions.  

I suggested thinking of the model as being a spreadsheet, and it is 
quite possible to implement a chaotic cellular automaton such as 
Conway's "game of Life" using a spreadsheet, by just programming each 
cell in a large block of cells to display a binary value based on the 
values in the neighbouring cells.

Indeed, I think one could program a spreadsheed to display the 
Mandelbrot set, the quintessential chaotic pattern, by just coding a 
large block of cells in the obvious way.

I take the surprises produced by human innovation as similar to the
surprises produced by weather conditions -- something that cannot
be accurately modelled, but can be managed by re-running the model
with different random numbers, and averaging the results.

Michael Spencer <[EMAIL PROTECTED]> wrote about
attempts to use a model for personal gain:

>   ...  Sombody else has got more stuff that I do so I work
> hard to figure out the system within which this unsatisfactory
> circumstance has arisen.  If I'm successful, I devise a way to
> outsmart the system and start raking in the goodies.  ...

and he noted the possibility of some kind of arms-race with models
that:

>   ... recurses infinitely unless somone does figure out a completely
> general model of some domain.  ... the first corporation to own
> and implement such a model is highly likely to own it all after a few
> ticks of the clock.

Christoph Reuss <[EMAIL PROTECTED]> also noted that good models could
be used to make money:

> If we on FW -- as a team effort -- only achieve to simulate the Wall Street
> corner, we can get real rich ! ;-)

This was one reason that I wrote about coding the simulator in the 
most widely available programming language and making it freely 
available under the GNU public license.  I want a good simulation 
widely used for the public good, and I suspect that other good models 
that have been kept for the personal gain of the few have been a 
destabilizing influence behind some that massive flow of cash around 
the planet -- currency speculation, and related ways of profiting from 
good guesses.

I want to produce a good enough simulation that it will be widely
used, and I want to make it freely available in source code format
so that it will not only be used but will be maintained and improved.

The really good free open-source software products like Linux,
GNU Emacs, and the GNU gcc compiler are much, much better than they
would be if they were only the product of one person (or even one
development team) -- they are the result of large numbers of people
cooperating to collectively produce something useful to all of them.

Christoph Reuss also commented upon the use of Finite State Automata:

>  ...  Trouble is, the FSA approach for complex systems requires
> _much_ more computing power than the formula approach.  Problem is also
> to get _all_ start and bound data correct (chosing wrong or incomplete
> start data can lead to completely wrong results even if the FSA is perfect).

That may be true, but FSAs are important parts of our most reliable
pieces of software -- the compilers and interpreters for programming
languages.  How can that be, if they are so easy to get wrong?  The
answer is simple: people hardly ever write the finite-state machines
in compilers by hand, they are usually written by programs like Lex
and Yacc and their bovine relatives Bison, Zebu, and Ox.

Writing a simulator is only part of the problem, since a simulator can
only run a simulation, and a simulation is a collection of data that
amounts to a program -- a collection of data that turns the simulator
into a finite-state machine or FSA.  I see a major part of the task
I'm undertaking (with help, I hope) as the creation of software to
process and incorporate the data into the model so it will work as
intended.

Finally, Steve Kurtz <[EMAIL PROTECTED]> wrote:

> (Douglas: I urge you to have a look before attempting to re-invent the
> wheel.)

Yes, of course I will look, and I'd like as much help as possible.  If 
you hear of something that may be relevant, please let me know.  But I
do want to (re-)invent the wheel, because I don't think the ones we
have roll very well.  People have, perhaps, got them down to rough
octagons, which sure roll better than the squares they started with,
but they still make for a very bumpy ride.

      dpw

Douglas P. Wilson     [EMAIL PROTECTED]
http://www.island.net/~dpwilson/index.html

Reply via email to