[Next] [Previous] [Up] [Top] [Contents]

9 An Example Model - Utility Learning Agents

9.4 Results


To illustrate the sort of behaviour that can be modelled using this set-up, I set up the environment with a severe structural break half way (date 50). The utility function of the agent swaps between a traditional convex utility curve (the easy curve) to a concave one with two local maxima (the hard curve), see figure 4.

T

Figure 5: The Two Utility curves (product 2 = 100 - product 1)

I then ran the set-up with agents of different memory capacities (10, 20 and 30 models) and maximum complexity of models (a depth of 5 and 10). I ran the simulation 10 times over 100 dates for each type of agent, averaging the results. I also performed these experiments with the utility curve switching from the hard curve to the easy and vice versa.

This is not the place to give the full results of this model but to give a flavour of some of the results I show the utility gained by agents with a memory of 5 and 20 models respectively where the utility curve they are learning swaps suddenly from the easy to the hard (figure 6) and visca versa (figure 7). There are also corresponding graphs for the error in their best models (figure 8 and figure 9, respectively). Note how the dynamics are not symmetrical; the first utility curve it encounters conditions the agent for when this changes. The agents had considerably more success (in terms of utility gained) going from easy to hard rather than visca versa.

Figure 6: The utility of 20-model and 5 model agents going from easy to hard utility curves



Figure 7: The utility of 20-model and 5 model agents going from hard to easy utility curve



Figure 8: The RMS Error of the best model of 20 model and 5 model agents going from easy to hard utility functions



Figure 9: The RMS Error of the best model of 20 model and 5 model agents going from hard to easy utility functions

To give a flavour of the sort of models these agents develop, in run 1 of the 30-memory agent batch the agent achieved the following model by date 75: [average [[divide [[add [[constant 1.117] [amountBoughtOf 'product-2']]] [average [[amountBoughtOf 'product-2'] [constant 4.773]]]]] [min [[amountBoughtOf 'product-2'] [cutBetween [[average [[amountBoughtOf 'product-2'] [constant 4.773]]] [constant 1.044] [add [[constant 1.117] [amountBoughtOf 'product-2']]]]]]]]].

The purpose of this simulation is not to be an efficient maximiser of utility, but to model economic agents in a more credible way. It will only be vindicated (or otherwise) when compared to real economic data. However, the model does show traits found in the real world. For example, one phenomenon that is observed is that agents sometimes get "locked" into inferior models for a considerable length of time - the model implies an inferior course of action, but this course of action is such that the agent never receives disconformation of its model. Thus this remains its best model in terms of the limited data it has, so it repeats that action. If, for example, some consumers find a satisfactory brand at an early stage in the development of their tastes and then they never try any others - their (limited) experience will never disconfirm their model of what would give them most satisfaction, even when they would like other brands better.

Other related applications have included a model of intelligent price fixing in Cournot Duopoly tournaments (Dixon, Moss & Wallis [5]), a model of a monopolist (Moss [17]) and a model of emerging markets where the agents are simultaneously building models of the economy they inhabit and mutually create (Moss and Kuznetsova [20]).


Modelling Learning as Modelling - 23 FEB 98
[Next] [Previous] [Up] [Top] [Contents]

Generated with CERN WebMaker