Open Project to Investigate Money and Economic Systems

Barter Agent

:: results, Uncategorized

I added the “barter” agent to the preceding experiment.

Barter agents use a very naive bartering algorithm whereby agents attempt to swap what they need for what they have a surplus of … with neighbours who have opposite requirements. (See code here.)

The result :

And you can see that bartering ends up indistinguishable from selfish foraging.

For this reason, I’m not entirely sure about this yet. It looks so bad that I think there may be a bug in the code. I’ll try to let you know tomorrow. (All eyeballs welcome to have a look in the meantime.)

Alternatively I guess it could be that opportunities for bartering are so rare that they have no visible effect.




OPTIMAES is an Open Project To Investigate Money And Economic Systems.

It consists of two things :

  • agent based computer simulations to experiment with different economic systems
  • an online conversation. (It used to be in a wiki that documented both the experiments and the discussions around them, but that's slightly deprecated. We're figuring out where we go next.)


We wanted to help build a better world, and this seemed something we could do about it.

Building a better world is a political and contentious project. And it started to look to us as if economics (in the broadest sense), was the first key (of several) to unlock it. What you believe the economic facts to be will influence your political position. (Though for some people it maybe vice versa.) And understanding how economic systems work is a good way to start making some that work better. In particular, we were intrigued by Ideas That Were Being Advocated; by some feminists, ecologists and critics of globalization; for alternative economic systems such as InterestFreeMoney and GiftEconomies.

Although these sounded plausible (or at least interesting) we felt they could be tested. It’s hard to get a pet country or community to experiment with, but as one of us was a programmer with some free time, we decided the next best thing was to do it in computer simulation. At least this would help us personally to get a handle on the issues. (We have enough hacker genes to conjecture that the best way to understand something is to build it; we also have holistic genes that doubt the conjecture; but genes don’t fight, they collaborate.) Furthermore, other people might find it informative. And if these experiments did show some advantage in the alternative systems, that would be a good way to get them taken more seriously.

How does it work?

We’re not claiming any kind of expertise here. This is a project that’s born of our own ignorance of mainstream economics. But what we’d like, and think is possible, is to do some research openly, and to try to apply the collective intelligence of the internet to investigating this stuff. A smart-mob may just have the edge over current expertise. That’s why this project is open for anyone to get involved with.

If you want to help out, an easy and valuable thing is to criticise. (See WeNeedYourCriticism for more in the philosophy of this, though note we need a new mechanism for collecting feedback now the wiki is deprecated.) We know so little, that almost any intelligent comment you can make is going to be useful. And hopefully you can find an appropriate place to put the criticism on this wiki.

Another thing you can do is come up with new questions. Probably there are things you’ve always wondered about. Or deeply held economic / political beliefs you’d like to see demonstrated properly. After looking at the way this model works, you may be able to see how it can be adapted to answer your own questions. The code is freely available for you (under the GnuGeneralPublicLicense) to take and work from. Unlike some open source projects, we don’t have a problem with forking into custom versions. If you develop your own project out of this, we can link to each other to get a conversation going.

Final Thought

The results from these simulations are always provisional. If you think that they confirm your political position, remember that tomorrow, someone may come along with a refinement that shows things to be different. (See the DialogueOfModels)

How Low Can You Go?

:: Uncategorized

I got curious looking at the last results … does the population decline continue or does it bottom out?

Intuitively you’d think that it will bottom out somewhere because there is a sub-population who are self-sufficient (ie. for all resources, they can get more than they consume).

Does the gift economy eventually decay to the same level or can it sustain itself somewhere above that?

Here’s the same experiment run for 1000 time-steps. (As before you’re seeing an aggregate of 10 runs of a population that starts with 100 agents and declines to something around 20 to 30 … it looks like 1000 because of some quirks I encountered with decimals in the spreadsheet so I scaled up by x10 to whole numbers).

As you can see, although the gift-economy sustains itself for longer than the selfish foragers, it does also decline. This might be because there is still some randomness in the way the simulation works.

At each time-step, a random agent is chosen to forage, consume and optionally donate its surplus to needy neighbours. But it’s possible that for some needy, but unlucky, agents, their neighbours are never chosen and so never donate. Donation is not systematic as it was in earlier versions of OPTIMAES.

It remains to be seen if the decline of the gift economy will eventually fall to selfish forager levels.

New OPTIMAES code and first graph

:: Uncategorized

I just couldn’t resist posting this tonight :

I’m refactoring / rewriting the original OPTIMAES python code-base. When I first wrote it I was just coming out of Java and I wrote in a very inefficient, Java-like way. I’ve changed my coding style considerably since then, and frankly I was appalled at the original code when I came back to it.

I’m reinventing it in my new, dynamic style (influenced by functional programming and using a lot of closures) and it’s a lot smaller. I’m really only keeping the actual algorithms from the previous version. Everything else is new.

I’m also going to make heavy use of online resources. As well as making the code available, I’ll put the results in Google documents, which means (and I’m still finding this pretty cool) I’ll be able to publish the graphs directly to this blog.

So here’s the first experiment with that. So far, in the code re-write I’ve got the original non-interacting “independent” agents and the “gifting” agents … and you can see what happens to two populations starting with 100 members.

This experiment has three kinds of necessary resources and each agent has a getting capacity between 1 and 5 per step, and a consumption of between 1 and 5 per step. Agents who consume a particular resource faster than they create it will end up with negative (and will soon die thereafter).

In the population of “independent” agents have no economic interactions with their neighbours. They live or die on their own capacity to forage all necessary resources.

In the gifting economy, each turn, a random agent donates its surplus of each resource to the neediest neighbour. As you can see, the population declines, but less steeply.

I see these two principles : independence and gifting as the two limits for investigating economic circulation strategies. Barter exchange will improve on the independent foragers, but won’t get the same performance as gifting, because of the deadlocks (you need two agents who’s needs complement for a successful transaction).

Money is supposed to solve the problems of barter, but we’ll see how effectively we can actually make a money system that does that.

Of course, we’re ate a very preliminary stage here … over the next few days (and blog-posts) I think I’ll be able to finish the rewrite of the original experiments in the new code-base and I’ll post results from the other agent types. I’ll also go and find some of the writing I did when OPTIMAES first started for those who are new to the project and want to catch up.

After that, I have an entirely different model (on competitive networks, in Erlang!) that I want to write about and post some results for, and then we can start taking the models further and talking about the broader OPTIMAES vision of “open-source science” and education.

OPTIMAES is definitely “back”.

RepastPy model

:: Uncategorized

At the end of 2006, I taught a brief extension course at the University of Brasilia, introducing the idea of computer simulations in the social sciences. For this I used RepastPy (a Python-like variant of RePast)

RePast has some nice, GUI and dynamic chart generating capabilities. And useful examples such as Schelling’s model of emergent racial segregation.

And I finished the course, running similar experiments to those already presented in this blog, using basic economic agents derived from OPTIMAES.

For a while I even thought that moving to RepastPy was the future of OPTIMAES, but ultimately the subset of python offered was too limited. Repast is really a Java framework. And RepastPy grafts a very restricted scripting language sharing Python’s syntax on top. But it is not possible, for example, to define classes.

Those who are already using RepastPy, though, may find these simple versions of OPTIMAES agents interesting. Code in the code-base.

Lewis Pound

:: Uncategorized

Haven’t linked the Lewis Pound yet. Seems to be the hot alt.money in the UK. And it’s just round the corner from my old stomping ground in Brighton. (…)

Many Eyes

:: sharing, visualization

Cool! Many Eyes is an online data visualization service where you can upload and share your own data-sets.

Perfect for amateur research mobs.