MERCURY extension: population 1.0.0
This model is an extended version of the original MERCURY model (https://www.comses.net/codebases/4347/releases/1.1.0/ ) . It allows for experiments to be performed in which empirically informed population sizes of sites are included, that allow for the scaling of the number of tableware traders with the population of settlements, and for hypothesised production centres of four tablewares to be used in experiments.
Experiments performed with this population extension and substantive interpretations derived from them are published in:
Hanson, J.W. & T. Brughmans. In press. Settlement scale and economic networks in the Roman Empire, in T. Brughmans & A.I. Wilson (ed.) Simulating Roman Economies. Theories, Methods and Computational Models. Oxford: Oxford University Press.
The following list details the changes made to the original model to enable the experiments presented in this chapter. The “original model” refers to the following publication:
Brughmans, T. 2015. MERCURY: an ABM of tableware trade in the Roman East. CoMSES Computational Model Library. https://www.comses.net/codebases/4347/releases/1.1.0/.
Changes to the original model:
1.Input files: the set of 264 eastern sites by Hanson and their population estimates by Hanson and Ortman are used to inform the model, through two input files (need to be saved in the same folder as the model):
a. “Hanson_sites_east.txt”: a list of all site names in alphabetical order. Note the order of [who] of sites corresponds to the alphabetical order of site names.
b. “Hanson_population_east.txt”: a list of all population estimates, in alphabetical order of the site names.
2.New variables used to set up experiments:
a. scaling-exponent: the scaling exponent used in experiments. Values tested in experiments presented here are “0.83”, “0.9” and “1”.
b. constant: the constant (float number) used in experiments.
c. equal-max-degree: used in experiments where the maximum degree of traders scales with population (FALSE). By default (as in the original model), the maximum degree of traders is equal and fixed to the variable maximum-degree (TRUE). (see point 7e below).
d. linear-demand: used in experiments (not presented in this chapter) where demand of traders is forced to scale linearly (TRUE). By default (and as presented in all experiments in this chapter) demand scales with the number of traders at sites which will reflect the (sublinear, linear, superlinear) scaling tested in experiments (FALSE). (see point 7f below).
e. production-sites: if “random” then the production sites will be randomly selected. If “input” then the sites in the input boxes producer-A-input, producer-B-input, producer-C-input and producer-D-input will be selected to become respectively the production sites of ESA, ESB, ESC, ESD. The [who] numbers of the four hypothesized production sites used in experiments presented here are: 28 (Antioch, ESA); 108 (Ephesos, ESB); 188 (Pergamon, ESC); 166 (Paphos, ESD). (see point 8 below).
3.New value “data-Hanson” for variable traders-distribution.
4.The ‘network’ extension is no longer used because it was replaced by the ‘nw’ extension from Netlogo 6.x.x onwards. This only led to the removal of the reporter average-shortest-path-length.
5.New sites-own variables:
a. site-name: the name of each of the 264 sites included in the input file “Hanson_sites_east.txt”
b. population: the population estimate of the settlement from Hanson and Ortman 2017 included in the file “Hanson_population_east.txt”
6.New traders-own variables:
a. maximum-degree-trader: the maximum degree of each individual trader. Only used when equal-max-degree = FALSE
b. max-demand-trader: the maximum demand of eachtrader, which will equal max-demand if liner-demand = FALSE
7.Setup procedure:
a. num-sites is set to 264 by default to reflect the input dataset of 264 eastern sites.
set num-sites 264
b. Labels and population estimates are attached to sites from input data:
file-open "Hanson_sites_east.txt" foreach sort-on [who] sites [ the-turtle -> ask the-turtle [ set site-name file-read ] ] file-close file-open "Hanson_population_east.txt" foreach sort-on [who] sites [ the-turtle -> ask the-turtle [ set population file-read ] ] file-close
c. num-traders is set such that it scales with population estimates:
set num-traders sum [ceiling (constant * ( population ^ scaling-exponent ))] of sites
d. If traders-distribution = “data-Hanson” then target-distribution of sites is set to reflect a distribution that scales with population:
if traders-distribution = "data-Hanson" [ask sites [ set target-distribution ceiling (constant * (population ^ scaling-exponent))] ]
e. To allow for experiments in which the maximum degree of traders scales with population, the section in bold was added in the setup procedure:
ask traders [ set site-number [who] of one-of sites-here ; make a note of which site a trader is located at (needed to reposition traders after layout) ifelse equal-max-degree = TRUE [ set maximum-degree-trader maximum-degree ] [ set maximum-degree-trader [ceiling (0.18 * ( population ^ 0.33 ))] of one-of sites-here] ]
f. To allow for experiments in which the demand of traders scales linearly with population and assuming a value for constant, the following was added to the setup procedure:
ifelse linear-demand = TRUE [ask traders [set max-demand-trader ((ceiling( constant * [population] of one-of sites-here) / count traders-here) * max-demand)]] [ask traders [set max-demand-trader max-demand]]
8.To allow for experiments where production sites could either be selected at random or via input boxes (see point 2e above) the select-production-sites procedure was modified (only if equal-traders-production-sites = FALSE):
if production-sites = "random" [ ask one-of sites [set production-site true set producer-A true set color blue set size 0.8] ask one-of sites with [production-site != true] [set production-site true set producer-B true set color blue set size 0.8] ask one-of sites with [production-site != true] [set production-site true set producer-C true set color blue set size 0.8] ask one-of sites with [production-site != true] [set production-site true set producer-D true set color blue set size 0.8] ] if production-sites = "input" ; make different towns producers of products A, B, C and D [ ask turtle producer-A-input [ set producer-A true set size 2] ask turtle producer-B-input [ set producer-B true set size 2] ask turtle producer-C-input [ set producer-C true set size 2] ask turtle producer-D-input [ set producer-D true set size 2] ]
9.setup-data-Hanson-distribution added to distribute-traders-on-sites procedure:
if traders-distribution = "data-Hanson" [setup-data-Hanson-distribution]
10.A new procedure setup-data-Hanson-distribution was added:
to setup-data-Hanson-distribution ifelse equal-traders-production-site = "true" [ ask sites with [production-site != true] [set target-distribution ceiling (random-exponential ((count traders with [moved? = false]) / num-sites))] ; round up, this ensures we have as many sites with the target number of traders as possible. ; an exponential distribution is created with a mean equal to the mean number of traders per site (excluding traders that have already been moved to the four production sites) ask traders with [moved? = false] ; ask each trader that has not been moved to a site yet in turn [ifelse count sites with [count traders-here < target-distribution] = 0 [ move-to one-of sites with [production-site != true] set moved? true ] ; move to a randomly selected site if all sites already reached their desired number of traders [ move-to one-of sites with [count traders-here < target-distribution] set moved? true ] ; if some sites did not yet reach their desired number of traders then move to one of these sites ] ] [ ask sites [ ask traders with [moved? = false] ; ask each trader that has not been moved to a site yet in turn [ifelse count sites with [count traders-here < target-distribution] = 0 [ move-to one-of sites with [production-site != true] set moved? true ] ; move to a randomly selected site if all sites already reached their desired number of traders [ move-to one-of sites with [count traders-here < target-distribution] set moved? true ] ; if some sites did not yet reach their desired number of traders then move to one of these sites ] ] ] end
THE ORIGINAL MODEL’S FULL DESCRIPTION STARTS HERE
This agent-based model aims to represent and explore two descriptive models of the functioning of the Roman trade system that explain the observed strong differences in the wideness of distributions of Roman tableware.
A detailed technical description of the model is published as:
Brughmans, T., & Poblome, J. (in review). MERCURY: an agent-based model of tableware trade in the Roman East. Journal of Artificial Societies and Social Simulation.
The archaeological research context and interpretation of experiments’ results are published as:
Brughmans, T., & Poblome, J. (in press). Roman bazaar or market economy? Explaining tableware distributions in the Roman East through computational modelling. Antiquity.
The tablewares (fine thin-walled ceramics with shapes including bowls, plates, cups, and goblets; each ware has a distinct production centre or region) produced in the Eastern Mediterranean between 25BC and 150AD show an intriguing distribution pattern. Some wares like Eastern Sigillata A (ESA) were distributed very widely all accross the Mediterranean, whilst others (ESB, ESC, ESD) had a more limited regional distribution. Archaeologists and historians have suggested many aspects of the Roman trade system as the key to explaining tableware distribution patterns: physical transport mechanisms, tributary political systems, military supply systems, connectivity. In this model we focus on exploring the potential role of social networks as a driving force. The concept of social networks is here used as an abstraction of the commercial opportunities of traders, acting as a medium for the flow of information and the trade in tableware vessels between traders. We aim to formalise and evaluate two very different hypotheses of the Roman trade system in which such social networks are key: Peter Bang’s ‘The Roman Bazaar’ (2008) and Peter Temin’s ‘The Roman Market Economy’ (2013). In his model, Bang considers three factors crucial to understanding trade and markets in Roman Imperial times: bazaar-style markets, the tributary nature of the Roman Empire, and the agrarianate nature of ancient societies. The engine of the model, however, is clearly the concept of the bazaar: local markets distinguished by a high uncertainty of information, relative unpredictability of supply and demand, leading to poorly integrated markets throughout the empire. Bang argues that different circuits for the flow of goods could emerge as the result of different circuits for the flow of information. In other words, the observed distribution patterns of tablewares and different workshops’ products (when these can be identified) are at least in part a reflection of the structure and functioning of past social networks as defined above. Temin agrees with Bang that the information available to individuals was limited and that local markets are structuring factors. However, contrary to Bang he believes that the Roman economy was a well-functioning integrated market where prices are determined by supply and demand. Temin’s model can be considered to offer an alternative approach, where the structure of social networks as a channel for the flow of information must have allowed for integrated markets.
This model is designed to illustrate that certain aspects of Bang’s and Temin’s hypotheses can be tested through computational modelling.
Release Notes
The info tab of the model and the documentation file detail the changes made to the original model to enable the experiments presented in this chapter. The “original model” refers to the following publication:
Brughmans, T. 2015. MERCURY: an ABM of tableware trade in the Roman East. CoMSES Computational Model Library. https://www.comses.net/codebases/4347/releases/1.1.0/.