HomePage | RecentChanges | Preferences

Past and present experience of some relevance to this project:


I have this vague notion that the project would add a lot of value, if it could create a small, clean, well considered base for economic modeling in Python. Have you looked at the simpy module (http://simpy.sourceforge.net/)? People are doing industrial strength things with it, and the whole project is a shining example of keeping it neat and simple, and making it easy for users to get their own work done, whatever it is. If we put in the effort to generalise and implement elegant contraptions for Resource, Agent, Market, Network, Economy, World (at least), others will come and put them together into experiments we can't even think of at the moment. On the other hand, if everyone here wants to experimentally test ideas X and Y, then perhaps we should all just go and use Logo, where the scaffolding is in place already.

Hi Pijus,

Welcome to OPTIMAES. And thanks for the questions and comments. All of which are good, and I'll try to give some straight answers. :-)

is this project for real? ... Are the founders still persevering?'

It is for real, in this sense : this is a subject and a project I care deeply about, and am commited to continuing work on.

But ...

... basically I wrote the first OPTIMAES code last year, over a couple of months when I was wasn't working, and was very enthused by this idea. I got a lot of encouragement from my friends who are also members of the project. Since then I've made contact with other people in groups like UnitedDiversity and TheTransitioner who have pushed me to think further. And I'm starting to talk and exchange ideas with more people in the alt.money community around the world. At the same time, I am currently the only coder on this project. What hasn't happened yet are other people coming forward with an interest in either extending or discussing the code-base.

Today, I have a day job, and two other personal projects which are getting a larger slice of my attention. Like any amateur project, the amount of time I put into OPTIMAES depends partly on my mood, and partly on encouragement from other people.

So at this moment, if no one shows much interest, I will still definitely be working on OPTIMAES this year, and I'll produce a new version of the code, (that's likely to include ReFactoring?, and most likely some notion of agents borrowing money from each other.) But without anyone pushing me, I don't have a deadline for that. :-(

where is the game plan?

In one sense, the game plan there is, is in the RoadMap. You are right, this is limited to a discussion of the problems we're interested in. I have to admit here, that my personal taste is probably closer to "do the specific experiments in Logo" school than the "design the perfect framework" school. That's partly because I don't believe I can come up with the right abstract model of an agent or a decision making process without a lot of tinkering and feedback. I'm a person who believes very strongly in bottom-up, iterative approaches to coding. And the way I always imagined OPTIMAES was that I'd put up a very simple example, and someone would say "Phil, you're stupid because it does X but ignores Y", and I'd change it not to ignore Y and we'd see what happened next. And so it would grow. If there's any "vision" in OPTIMAES, it's of this kind of process, rather than of a particular model or code-base.

Having said that, I'm not ideological about this. I certainly believe there should be a good model, even if my approach to it is iteractive. And I'd be very interested to hash out in discussion what you think the basic elements of a good framework should be. It would be interesting and educational for me. And I'd be very up to put some work in towards developing it.

For example, I agree there's a big problem of agents spending all their resources on the first thing they need; what are your thoughts on using the BudgetCurve? and UtilityCurve? to avoid this? (I'm wondering if it's something I can code up reasonably simply.) (More on SpendingAllMoneyOnFirstRequirement)

Final thought

SimPy looks good. Thanks for the link. I've downloaded it and I'll have a look into whether it's the kind of thing I could port OPTIMAES to. Certainly it would be nice to use something like that and be able to concentrate on the economic classes. Also, making components available to people who have ideas for experiments I can't even imagine, is definitely a motivation.

I hope this gives you a reasonable impression of where we are and what you can expect. Equally, I hope it hasn't put you off becoming involved in OPTIMAES at least to the extent of continuing the discussion and offering some advice / criticism. That would be good for me, and would undoubtedly stimulate me to get back into working on the project and moving towards those good generic components for agents, economies and worlds etc. I'm actually feeling more energised just through writing this response. :-)

-- PhilJones

(Pijus, thanks for this stuff, very useful and motivating. Comments mixed in.) -- PhilJones

Phil, I see nothing that would deter me from lending a helping hand when I can, let's put it that way. ;) However, it's also clear we're at a very early stage here, and that the most important resource - programer time - is scarce; we owe it to ourselves to do a bit of homework before writing another line. At the moment, I personally think SimPy is the perfect engine for OPTIMAES. Check out a paper on it that was presented at PyCon? '04: http://python.org/pycon/dc2004/papers/16/. The problem space is different, but the quality of SimPy is self-evident. After all, discrete time simulation is what you're after here, no? Not only the tricky plumbing (model management, scheduling, concurrency, etc.), but even straightforward reporting and graphing of results comes for free. Also, I suspect that if you subscribe to SimPy's mailing list and say, "Hey, I am working on an economics simulation", you will find a few people doing similar things.

Yep, I'll have read of the papers. I definitely like the look of SimPy. Agree with you, my next mission is to get it running and see whether it's suitable for OPTIMAES. Also, good point about the mailing list ...

I think it would be a good idea to pin down the basic object model for OPTIMAES. It's precisely this bit of planning that will make your iterative development mode possible. If in order to tinker with an isolated component, I need to understand and rip out conceptually unrelated but accidentally involved parts, the barrier to contribution may just be too great. But if it's easy to add a Network, knowing that it won't break Agents, things will be easier.

I think I see what you're getting at here. Maybe some kind of diagram is in order. This isn't the really important part of your question but Agent? is independent of the Network?. You can experiment with different shapes of social-network without breaking the Agent and vice-versa. At the moment all the other kinds of agent such an GiftAgent and MoneyAgent etc. subclass Agent which might be a bit naive. I'm wondering about changing that.

Now, at the moment, I don't have a full proposal yet, but I intend to make a literature (well, Web, really) survey, and report the results in this space in 500 words or less; I would like to do this within a month (by 2004-05-11). ;) If you can take a good close look at SimPy in the meanwhile, and simply confirm that it would make OPTIMAES as it is now easier rather than harder to write, we'll be on our way. Once we know what abstractions we want, we can figure out how to express them in SimPy (assuming you decide it's fit for use) and get to business. No point taking on more than we can chew, it will just lead to burn-out.

Agreed again.

p.s. Apropos, I am not exactly a socialist. I hope my low level of class consciousness won't be a problem. :P

no problem at all :-) Increasingly I believe people's political differences are grounded in which things they notice. And OPTIMAES is very much about me, and hopefully others, trying to get a handle on what the hell is going on in an economic system. I think the wider variety of political perspectives we can bring to that, the more likely it is that someone will notice each of the important things.

-- PhilJones

Here's the presentation of the Natural Language Toolkit (NLTK) given at PyCon? '04: http://www.python.org/pycon/dc2004/papers/35/nltk.pdf. I would like to draw your attention to page 2: the design goals presented there summarise nicely an attractive "mentality" for OPTIMAES design as well (at least it seems attractive to me).

I am bit late with my literature review (which, I realised, is a steep undertaking), but I am almost ready to put forth what I have collected (or maybe give up? ;)). I have drawn a few schematic pictures: is there any way to post them here, or should I put them on my server and include only links in the wiki?

Hi Pijus, I'm very late too. Sorry. I've posted my initial reactions to SimPy and ongoing plans to use it (on that page) and would, of course, be vary grateful for your comments, literature review stuff. If you want to mail me stuff to host here I can, or you can keep it elsewhere if you prefer. I'll set up a semi-disposable email address (don't publish real email because of spam.)


-- PhilJones

HomePage | RecentChanges | Preferences
This page is read-only | View other revisions
Last edited June 8, 2004 4:00 pm by PhilJones (diff)