New package in alpha: blvim
I am working on a new package, blvim, currently only available on github. The goal of the package is to provide a fast implementation of Alan Wilson’s Boltzmann–Lotka–Volterra (BLV) interaction model as described in this paper.
Boltzmann–Lotka–Volterra Interaction Model
The model is based on Wilson’s maximum entropy spatial interaction models. Those models were designed in the late 60s to analyse trips or exchanges between origin locations and destination locations. In the BLV approach, one looks for an equilibrium state in which the attractiveness of the destination locations is proportional to the flow they receive.
Wilson’s maximal entropy production constrained model
This model computes flows between origin locations and destination locations using a maximum entropy principle. It uses the following data and parameters:
- a cost matrix \(c\) of size \(n\times p\): \(c_{ij}\) is the cost of having a “unitary” flow from origin location \(i\) to destination \(j\) (a classical choice it the distance between those locations)
- a vector \(X\) of size \(n\) that specifies the production constraints at the \(n\) origin locations
- a vector \(Z\) of size \(p\) that specifies the attractivenesses of destination locations
- a return to scale parameter \(\alpha\) that enhance (or reduce if smaller that 1) the attractivenesses of destination locations when they are larger than 1
- the inverse \(\beta\) of a cost scale parameter, i.e., costs are multiplied by \(\beta\) in the model
In Wilson’s model, the flow from origin location \(i\) to destination location \(j\), \(Y_{ij}\) is given by \[ Y_{ij}=\frac{X_iZ_j^{\alpha}\exp(-\beta c_{ij})}{\sum_{k=1}^pZ_k^{\alpha}\exp(-\beta c_{ik})}. \] The model is production constrained because \[ \forall i,\quad X_i=\sum_{j=1}^{p}Y_{ij}, \] that is the origin location \(i\) sends a total flow of exactly \(X_i\).
BLV model
The core assumption of the BLV model is that the destination flows should be proportional to the attractivenesses. Given a flow matrix \(Y\), the destination flows are collected in a vector \(D\) of size p, with \[ \forall j,\quad D_j=\sum_{i=1}^{n}Y_{ij}. \] At equilibrium, we want \[ \forall j,\quad D_j=\kappa Z_j, \] for a given proportionality constant \(\kappa\). To solve this fixed point equation in \(Z\), we iterate basic updates \[ \forall j, Z_j^{t+1} = Z_j^{t} + \epsilon (D^{t}_j-\kappa Z^{t}_j), \] using a small value for \(\epsilon\) to avoid instabilities.
BLV in archaeology
This approach has been quite successful in archaeology as seen in this selection of papers:
- Spatial Interaction and Structural Models in Historical Analysis
- Models of settlement hierarchy based on partial evidence
- Application of an entropy maximizing and dynamics model for understanding settlement structure
- Evolving settlement patterns, spatial interaction and the socio-political organisation of late Prepalatial south-central Crete
- Was Thebes Necessary? Contingency in Spatial Modeling
The main strength of the model is that it relies only on distances or travel costs between locations, making it very relevant for ancient mobility when material evidence is scarce. When we have only costs (the \(c\) matrix), we generally initialise the BLV model with unitary attractivenesses (and productions). This can be refined using for instance the estimated area of locations.
In my research work, using BLV models is the natural next step after evaluating carefully travel costs with the method presented in my recent paper with Clara Filet: On the roads and rivers of Late Iron Age Gaul: Adjusting least-cost path analysis to multiple means of transport and imprecise data.
State of the package
The alpha version of the blvim should be reasonably bug free (it is based on a collection of earlier scripts that were validated through heavy usage during Clara Filet’s PhD thesis). Everything is documented but the package needs at least an introductory vignette.
I will present results obtained with the package at the forthcoming CAA conference in Athens.