Evolving Street Plans from Shops and Shoppers


C.P. Mottram, BA, MSc.

Bartlett School of Architecture, UCL, London,UK.






Using an agent based model where the agents use vision as their main method of navigation combined with a simple economic model we attempt to derive simple cities.

Within the cities the "shops" and the agent "shoppers" develop a topology, as shops survive either through visits from the agents or are destroyed by the agents "stealing" their goods, eventually the shape of the city settles to some optimum form where all the shops make money and the shoppers endlessly wander.


1. Introduction

Architecturally we might consider the various town plans as aesthetic entities which derive their aesthetic from both the economic background and the nature of the people who inhabit the city.

Here we are going to use agents to try and simulate aspects pertaining to both of these, we shall try to alter the economic landscape and the nature of the agents and see what happens.

The two kinds of agents are going to be called “shops” which stay still and “shoppers” who move.

We hope to evolve solutions from the location of the “shops” which have the appearance of street plans that might be found in a real city.

We want the street plans themselves to be sustainable, that they conduct the movement of the “shoppers” in such a way as to optimize the income for the sedentary “shops”, that a diverse range of shops is maintained over an appreciable time, that an agent should always be able to find the correct shop with a minimum number of steps.

These are fairly difficult criteria so many of our solutions are unstable. We shall look mainly at the areas where we have found stable solutions and consider, if possible, the implications and character of these “solutions”, how to strengthen and weaken the solutions by alterations to the model.

We will also try to guess at the existence of other solutions, where the simulation is moving from its current state to something which more closely resembles reality. From this we might try and derive which are the most important characteristics which should be added to the simulation.


1.1 The Basic Economic Model

This economic simulation takes two simple elements, a shopper who moves and a shop which stays still.

The shopper moves among the shops “purchasing” items, each time a shopper makes a purchase, a number is added to the “shops” balance and the “shopper” agent is reset to try and purchase some thing else.

If the “shopper” agent cannot find a shop selling the item it seeks then the shopper agent attempts to become a “shop” agent.

The shops are “taxed” at each iteration, ie a small amount is subtracted from their balance, if the balance gets to zero the shop agent becomes a shopper.

Thus if there are too few shoppers the less successful shops will become shoppers. If there are lots of shoppers but not enough shops, some of the shoppers will become shops.

We wish to use this natural balance to manage the self regulation of this agent economy.

This balances “supply” shops and “demand” shoppers which can be a problem in economic models.

This allows us to concentrate on the shape or topology of the city, to drive it towards various optima. These optima might be thought of what is the city “best for”, is the overall revenue the best criteria, or maybe the stability or perhaps the shortest travel distance for the purchase of any particular item, these are all points of view, say the city government, the shops’ or the agents’. Other views might be considered as we seek to define different optima. The total sum of these “best for” scenarios we might define as the “aesthetic” of  the city, or the “beauty” of the city if you like, as the city in the real world will combine many different features within a single whole.

Perhaps it might be possible at this moment to clarify that the agents’ purchases are not subdivided into groceries, insurance etc. but remain as abstract concepts, we could imagine that these are the kind of purchases necessary for the shopping agent to live and that the probability of an agent seeking out a particular kind of shop has a critical bearing on the form of the city, the tension then between supply and demand provides one of the major dynamics for the city as a whole.

To summarise the basic factors which alter the economic profile of the simulation are:-

            Shop income,

Based on number of visits of agents to front of shop, shop balance is increased by the shop price.


Based on the number of agents passing by, (relative attractiveness of location).

If a shop is in a busy area while not doing much business it is probably unsuitable for the area and will go out of business.

            Poll tax

                        Decrements balance every iteration, so shops need visitors to keep solvent.


            Thief tax

                        Agents approaching shops from behind decrement shop balance to

encourage back to back shops systems.

            Dynamic tax.

                        The Rent and the Poll tax can be incremented or decremented automatically by a fixed amount depending on either the proportion of shops to people or the average shop life of the shops.


The metrics for considering the viability of the system are

1. Average shop life,

2. Number of steps between purchases,

3. Total tax income generated

These are all recorded in a spreadsheet

Clarity of road plan, agents trails are marked by dark lines, if lots of agents walk the same way the trail becomes progressively darker, and shops are less likely to be placed on the trail.

We can also make the program save a bitmap of the city at repeated intervals, this allows us to make animated avi’s or “movie” files, these can be useful to watch the development of the city over many 1000s of iterations. This makes it possible to find those areas which are stable over long periods and those which are constantly changing.


Initially we started these simulations where price and item were separate, the same “item” might be sold at different locations by different shops at different prices.

This was meant to uncover detail to do with different pricing levels in different neighbourhoods, unfortunately it was impossible to “see” this on the maps, without radically changing the visualisation. So the maps presented have only a single factor, the price, effectively the price and the item become the same thing. Where red is expensive and blue is cheap. 


1.2 The Agent Model

The agents’ “world” is a simple two dimensional field which can be coloured to provide areas of relative attractiveness, the agent “sees” the world using a simple sampling method using three vectors. One directly ahead, and two at a variable angle to this to the left and to the right. The agent chooses its path either by choosing the longest line or by choosing the most attractive shop, which will be chosen by a variety of criteria such as price, item and distance, the distance viewed is weighted by the colour of the ground, where black is zero and white is one.

The variable angle is randomly set at each iteration dependent on the distance “seen” by the agent, if the distance is very short the angle is set wider until if the distance is very short the angle is set to provide 180 degree vision, remember this is a sample so the agent will not always choose the longest possible line.


1.2.1 Ways of changing gaols.

We have experimented with various methods of choosing where an agent goes next having made a purchase. There are two parts to this, firstly how is the new “taste” or preference chosen and secondly how does one get there. We’ve made some attempts also to ask, “what would the agent want if it knew how far away it was or how expensive it was?” we shall discuss this in the “how does one get there” section. How to choose a taste.

weighted random v multiple needs

The original method was to use a weighted random, where the current taste was used as an input to the next taste. So the next taste was defined as the current taste plus or minus a random number to the size of the current taste.

This meant that small current taste would lead to the next taste being at most twice the current taste and at lowest zero which we pad up to one. If however the current taste is high we have an equal chance of the next taste being anything. This was meant to provide a weighted random, where expensive purchases occur rarely, and that cheaper purchases occur in proximity to each other and possibly in progression.

We also tried a “normal random” where new taste is assigned in a purely random fashion.

The multiple need method assumes an agent has a range of needs which occur at different time intervals, so you might want a snack every couple of hours and maybe buy a new TV every three to five years and want to go to the supermarket every week, to this end we have an agent continually review its “need state”, and whenever a need goes critical this becomes the agent current taste, and the agent starts searching for the new need, once this is satisfied, it resumes the quest it had before, or deals with any other need which has become critical. As a further complexity the satisfaction of one need can be set to lead to a suppression of adjacent needs, also the visibility of  a taste will accentuate a need, thus if an agent can see something and its close, the critical need is accentuated to make the agent more likely to purchase this item.

The speed at which these different needs become critical can be randomly set over a profile, so no two agents will have the same order of purchasing, this we speculate might be termed a “personality” as defined by a purchasing profile.

Personality could be defined as a predilection for a certain range of purchases, thus for an individual agent this might be the probability distribution of the taste change at each new purchase.

Variations of random distribution, or a specific profile working within the multiple need set. How does one get there?

Either the agent wanders aimlessly following the longest line and its taste vectors or we can build a model of memory for the agent, so it can remember where it purchased something.

There are two ways we have done this, one is to give each agent a map of all the places it has visited, the second is to allow the agents to access a common memory map of the whole city.

We have tried both, the computer memory needs of the first method, led to some problems and we also felt it was slightly unrealistic, as when we as people are lost we can always ask somebody or look at a map, to be only able to access one memory is not typical human behaviour! Unless you’re a visitor to a city, who speaks none of the language of the city and can’t read maps, and has done no preparation. We thought this was probably an unusual situation, though there might be reason to examine this more closely in the future, especially when agents get a “home” which would include a home area or neighbourhood, where they would behave differently than in the rest of the city.

So most of the time we allowed the agent full knowledge of the city, to allow it to make a decision based on its current location related to is current need set. At this point the metric between distance, price and how closely an item matched a need became very important. The cost of distance becomes crucial to avoid all the agents choosing the same shop ( the cheapest ), even then we might expect the best shop to become hidden behind shops of the same item but a higher price, in practise this didn’t happen much, so the cost of distance became central and crucial once knowledge was added to the system.

Knowledge, partial and complete, cost of distance v specialization of purchases.( purchaser discrimination)


1.2.1 When does a shopper become a shop.

There are some strategic goals here, in that we wish to build village settlements, so shops should be built where and when they are needed, the need then is provided by the shoppers, so the weight of “need” in any particular area is balanced by the shops available

Generally we use a combination of the following factors to decide this.

When it’s walked more than a certain many steps without finding a shop or when the average number of steps per purchase becomes too great.

When it finds an opportunity, sufficient space.

When it’s made a particular number of purchases.

We can set the proportion of shops to people to limit the number of shops, alternatively we can use the average shop life to increase taxes when the numbers get too high or when the proportion of shops gets to high, and similarly the taxes get decremented when the numbers of shops is low. This control tends to be useful in getting an idea of what the optimum tax or proportion of shops should be for a given configuration.

Generally different methods lead can lead to different patterns initially, though on longer runs these tend to disappear as the old adage of location takes control, and the surviving shops from whichever method assume similar patterns.


1.2.2 Rules for shop placement.

A shop will be placed at a location relative to the “shopper” location not more than three times the size of the shop at the location, firstly that is not already occupied by another shop, and secondly that has the lowest count of shopper trace steps ( where the background is lighter). This will mean that shops generally are placed beside the places where shoppers are walking. This also tends to reinforce the routes created by the shoppers.


2. Interim Results

Initially we will show results using different methods of choosing the next item. We can compare results from agents which are using the multi-need model to agents using a simple weighted random. This will be done with the tax set at two levels as this accentuates the differences between the results.

The main measure we will use from the data gathered is the average shop balance, where a city is successful the average balance will be high and rising quickly. This data is gathered every 100 iterations, we can use this in conjunction with the mean price of the shops and the deviation from this mean which will give us a measure of diversity.

We can see easily enough that for the low tax situation in Figs 1 and 2 the maps are fairly similar, they are fairly maze like in that few long straight vistas have opened up, in Figs 3 and 4, a medium tax example, we can see the differences have appeared. The multi-need version has become a kind of grid and the weighted random one has broader curves, taking on a simpler pattern. In Fig 5 a high tax sample using the weighted random, we now have something which looks like the multi-need model.

This gives us a good idea of the critical function of the shopper behaviour on the survival of the shops when stress, as in higher taxes, are applied to the model.

We used 3000 agents in these simulations, setting a shop size to be 10, and where the actual size of the city was about 808 x 377 pixels, the proportion of shops to shoppers was set to be 0.3, though in none of the runs was this number reached, we were in fact packing them to maximum sustainable density. Low tax was 0.1 high tax was set to 1.0 and very high tax was set to 2.0. A shop is given an initial balance of a 100, so if a shop was unvisited in the high tax situation it would survive 100 iterations.

Fig 1. Low tax with simple weighted random method of choosing target


Fig 2. Low tax with multi need decisions.

Fig 3. High tax with simple weighted random

Fig 4. High tax with multi-need decision making

Fig 5. Very high tax with simple weighted random

It can be seen in Fig 5 that the dark horizontal bands starting on the right fade out as they move to the left, this indicates that we are on the edge of stability, the following graph indicate the average balances of the five.

Fig 6. Average balance of shops compared

We can see here that the high tax multi need never really gets off the ground we might assume that this is an example where we haven’t found a reasonable solution. The shops haven’t found a configuration which works with the shoppers’ method of choosing their target!

The very interesting and slightly unbelievable thing about this graph is that the high tax weighted random has a higher average balance than the low tax and the very high tax, this would seem to suggest that the tax can within certain ranges force the map into a more efficient pattern which can negate the effect of higher taxes. In other words, shops which were “in the way”, preventing shoppers from reaching their destinations are no longer able to survive and the actual “efficiency of the system” is improved. Remember too that this effect is due to a flat rate or “poll tax” also note that as the tax is raised again the average balance is reduced, so this suggests a curve which reaches an optimum and then goes down again. To investigate the shape of this curve we would have to plot points on it by rerunning the experiment with a finer range of different tax levels. 

The average balance is calculated by adding together the balances of all the shops and dividing it by the total number of shops and shoppers together, this gets around possibilities of false high readings where we might have very few shops and lots of shoppers.

Fig 7.This shows the actual tax deducted in the scenarios described above.


Fig 8. Steps between purchases compared.

Here we show the average number of steps between purchases, this if you like is the cost to the shopper, you can see that for the shopper the very high tax reduces distance between purchases.

Its also best for the city as it gives the highest tax revenue, unfortunately its not the best for the shops, the highest average balance was found in the high tax bracket.

Also when we count the actual number of purchases over the first 53300 iterations the very high tax comes first with 6693 followed by the high tax weighted need at 5649, followed by the multi need high tax at 4195.

Both the low tax situations gave the lowest number of purchases with the weighted need on 3109 and the multi need low tax getting the least number of purchases at 3027.

Shoppers have to find shops for purchases to occur so possibly this is the best indicator of  the navigability of the city by very stupid shoppers.


3. Discussion

We have shown that various parameters can alter the visual look and the economic wealth of the city. From the view of the shopper, the shop and the city different parameters can sometimes work in unison.

In our simulation we have shown that a critical facility such as a tax can have a function to improve the quality of the city, by improving the shape of the city to improve life for the agents the shops and for the city, there can be a consensual optima which is dependent on the subtle alteration of simple parameters.

Why are we doing this? Internet shopping might make high street shopping redundant. Thence our need, in cities, is for areas for socializing which have different economic driving forces, which will be different from the ones presented here. Perhaps we will have to define an economics of social intercourse to replace the economics of material exchange?

This is closer to theories of knowledge and the way information is disseminated, which has a rich semantic, its graph theories, theories of social networks etc.

In another guise we might become historians rather than planners, guessing something of the nature of the people and their economics by the kind of street plans they leave behind.

The other thing we like to think of is how intelligent the cities are as a means of optimising the stresses we impose through the simulation. Can all these little decisions made by the agents add up to something which is really useful? Is the summation of multiple aesthetics really an ideal of beauty or are we entering the economic basement of the lowest common denominator, finding the solutions with the most winners and discarding the losers. To this end we have to consider that the more complex agents did not produce solutions, the city configuration could not be optimised on their behaviour. These were agents who were endlessly distracted, forever changing gaols as their various diverse needs came to the fore. Its interesting to see that they still managed to make similar numbers of purchases within the same number of steps as Fig 8. shows. So even though no stable configuration appeared the economy was still working at almost the same rate as the weighted random samples. It is possible that some other behavioural key would make this simulation work to produce a world where the shops survived as well.



4. Further Work


We haven’t presented the effect of knowledge on the behavioural patterns within this paper, This is mainly due to a shortage of space. Our findings were that the cost of distance was critical to avoiding simple monopolistic outcomes, indeed to create a homogenous multi centre city, where the shoppers always know the location of where to find the “best deal” becomes very difficult. There is an instability in the concept of total knowledge which means that the centres are dynamic and frequently move around.

To this end we thought that we might try and stabilise this by reducing the agents’ knowledge to a neighbourhood, within which they might have perfect knowledge, but outside, and when they wish to purchase some thing which does not reside in their neighbourhood, they will have very little knowledge. This is work which we are in the process of conceiving

Another dynamic we thought to introduce is that associated with the daily flows from home to work and back again, for this would add a third agent representation, that of the home with the associated need for space and quiet. This has a simple economic, which would site home in areas where the shopper count is low, its “value” as a home with some restorative effect combined with its closeness to shops to reduce travel costs,  might need some zonal statistics, to establish areas of low v high activity, these zonal statistics would also enable us to establish where the actual centres of activity were in our city, and find out if there is shopper movement from centre to centre, or whether all movement is from centre to periphery and back again.

To this end we also want to run the simulation where shoppers will only purchase within a limited range, then if there are two groups, each only purchasing within a range, will the groups separate spatially, and what will the pattern of the interface?

We will also be analyzing the results produced so far in an attempt to see if the simulations show features which can be reliably observed in real cities.