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”.