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