# Opportunistic Network Algorithms for Internet Traffic Offloading in Music Festival Scenarios
## 3 A Festival Mobility Model
### A Proposed Festival Mobility Model (FMM)
Moreover, it randomly chooses a cell for a group, without exceeding the maximum number of hosts allowed in that cell. Lastly, it generates coordinates for every host in a group. This process is done randomly, but only after further partitioning the cell, so the nodes of a group do not appear scattered across the cell. Depending on the dimensions of the grid, the area of the cell can be divided by its width or by its height. The model randomly places a maximum of two groups in the same partition, after the division of the cell area. The results of this approach can be noticed in Figure 4, which shows screenshots captured from the MobEmu simulator, where nodes with the same color are part of the same community. Figure 4a displays community placement without partitioning the cell area. Some of the groups appear to be composed of nodes far away from each other, which is very unlikely in a festival crowd. Figure 4b, which shows the case where the partitioning mechanism is employed, looks more similar to a real crowd distribution. The model keeps the CMM and HCMM node categories, i.e., hosts and travelers. The hosts are the nodes belonging to a custom-sized community and might play the role of festival attendees, while the travelers are independent nodes, community-free, which might play the role of festival staff. In terms of movement, a node can move by itself or can move along with its community. Given this behavior, three types of movement are distinguishable:  
* Move alone towards a target destination;
* Move with the whole group towards a target destination;
* Return to the community after having spent a certain time at the destination. FMM has been configured to perform the first type of movement three times more often than moving an entire community with the help of a Zipf distribution of size 4. The reason behind this choice is that, during a short simulation (30 min-1 h), it is more likely that a festival attendee will move alone to the food court or the restroom area and then get back to the group rather than an entire group relocating. As for the target destinations which drive the movement, we have identified two main categories: edge cells (assumed to be the food court area or restroom area) and friend cells (where determining the friend cells of a node is a process very similar to the one employed by CMM). For a given node, the process consists of the following steps:  
* For every cell on the grid, compute a metric called cell attractivity, defined as the sum of the social relationship weights of the nodes present in that cell with regards to the given node;
* Normalize the sum by the total number of nodes present in that cell. It is only natural that a node would choose as its target a cell where more friends will be. Another aspect of node movement is the time it would take for a node wandering away from its community to get back. FMM will pick a time between two ranges depending on the type of movement. For instance, a node moving towards a friend cell will be away from the community for a time interval of 10-20 min. Given the fact that a festival stage is a crowded place, we have chosen a threshold that measures how many nodes are moving at every time instance \(t\) of the simulation. This limit is configurable and is currently set at 5% of the number of nodes in the simulation. Thus, as shown here, the proposed festival mobility model generates the movements of nodes inside a given space. Then, based on the protocol that we want to test and analyze, we consider a contact whenever two nodes are closer to each other than the range of the short-distance protocol employed. The mobility model is therefore decoupled from the actual routing algorithm implementation, which comes on top of the contacts generated by the model. At each contact (per the model), the routing decision function is run on the two encountering nodes, thus deciding which messages are exchanged.