OPTIMAES


Open Project to Investigate Money and Economic Systems

Posts tagged Uncategorized

Homogeneous Societies

:: Uncategorized

Zby asks : why OPTIMAES assumes homogeneous societies where all agents play the same strategy, rather than mixed societies where different agents play different strategies. (And would seem to be more realistic.)

Answer :

The main reason for this at the moment is that it’s hard to see how different agent strategies would interact. Any kind of transaction is a property of a dyad (pair) that needs both to play their appropriate parts.

What would happen if a Gifting agent met a Barter agent? They’d end up having to adopt the same strategy if they were to successfully interact.

Another Move

:: Uncategorized

So, another move.

OPTIMAES has now left Ning for this WordPress blog.

True, I haven’t been doing much on OPTIMAES in the last couple of years, but it should at least have a decent home. Ning turned out to be flooded with spam. And now they plan to start charging. (I’m not against that per se, but I’m already paying for this hosting so might as well use it.)

Fortunately, the http://optimaes.net and http://optimaes.info URLs will continue to work, and I’m sure there’ll be another burst of OPTIMAES activity at some point soon.

Note, that I’ve tried to import blog posts from the old Blogger site and the Ning group. Unfortunately I seem to have lost dates on some of them so I’ve pretty much chosen arbitrary dates that suit the ordering I’d like to give the posts. Hope this isn’t too confusing.

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.

Welcome to New Members

:: back, Uncategorized

Hi to the people who just joined. If you didn’t notice the link, the OPTIMAES codebase is hosted on here on GitHub.

It’s in Python, and is a more or less complete rewrite. Currently we have selfish foragers, barter agents and gift-givers. I’m working on a new money-using agent, but haven’t yet decided the right algorithm. All suggestions are welcome.

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. (…)