# A Cooperative Architecture of Data Offloading and Sharing for Smart
Healthcare with Blockchain

Dinh C. Nguyen1, Pubudu N. Pathirana1, Ming Ding2, Aruna Seneviratne3  1School
of Engineering, Deakin University, Australia
2Data61, CSIRO, Australia
3School of Electrical Engineering and Telecommunications, UNSW, Australia
Emails: {cdnguyen<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>
###### Abstract

The healthcare industry has witnessed significant transformations in e-health
services where Electronic Health Records (EHRs) are transferred to mobile edge
clouds to facilitate healthcare. Many edge cloud-based system designs have
been proposed, but some technical challenges still remain, such as low quality
of services (QoS), data privacy and system security due to centralized
healthcare architectures. In this paper, we propose a novel hybrid approach of
data offloading and data sharing for healthcare using edge cloud and
blockchain. First, an efficient data offloading scheme is proposed where IoT
health data can be offloaded to nearby edge servers for data processing with
privacy awareness. Then, a data sharing scheme is integrated to enable data
exchange among healthcare users via blockchain. Particularly, a trustworthy
access control mechanism is developed using smart contracts for access
authentication to achieve secure EHRs sharing. Implementation results from
extensive real-world experiments show the superior advantages of the proposal
over the existing schemes in terms of improved QoS, enhanced data privacy and
security, and low smart contract costs.

###### Index Terms:

Blockchain, smart contracts, mobile edge computing, data offloading, data
sharing, smart healthcare.

##  I Introduction

The recent advances of cloud computing, edge computing and Internet of Things
(IoT) technologies, have empowered e-health services [1], [2]. In modern
e-healthcare, health data collected from mobile devices-MD (i.e. smartphones
and wearable sensors) can be offloaded to mobile edge computing (MEC) servers
for efficient computation and analysis, then improving high quality of
services (QoS) and reducing resource burden on devices. Particularly, cloud
with resourceful servers can also be integrated to store historic health data
analysed from the offloading phase, which enables data sharing among health
users. For example, a doctor can exploit cloud data to support disease
diagnosis, and patients can gain medical benefits like health or medication
advice. The cooperation of data offloading and data sharing thus facilitates
the delivery of health care services [3].

However, realizing the promises of such a cooperative system still faces non-
trivial challenges. First, how to offload IoT healthcare data to edge-cloud
for supporting efficiently health applications while guaranteeing both high
QoS and data privacy is a critical issue. Most of traditional approaches [4-6]
only either focus on the QoS problem of network latency and energy usage or
data privacy for the healthcare offloading, while implementing a holistic
framework with all these factors taken into consideration is vitally
necessary. Second, the centralized cloud architectures remain single-point
failures which potentially disrupts the entire network [7]. Moreover, the EHRs
storage on central cloud adds communication overhead for data retrieval,
although it requires less data management efforts. Third, it is not
straightforward to implement secure data sharing in e-health networks where
there is often a lack of transparency and trust among participants [2].
Attackers or curious users can access health data without users’ permission,
leading to leakage risks of sensitive patient information. Final, the
feasibility and implementation of such a hybrid approach of data offloading
and data sharing for healthcare applications remain unsolved in most existing
works [7-13], [15], which urgently requires further innovative solutions.

To overcome the above challenges, this paper presents a novel cooperative
architecture of data offloading and data sharing for healthcare using edge-
cloud and blockchain. Edge computing is employed to offer cost-efficient
offloading services for improving QoS, while privacy in computation is ensured
by data encryption. We develop a decentralized storage system on cloud and
employ smart contracts for reliable data sharing so that system latency and
security requirements can be met. Due to resource constraints, MDs are
regarded as lightweight nodes and only participate in the blockchain network
for data collection or sharing, while mining works are done by resourceful
cloud machines. The main purpose of blockchain adoption is to use its
decentralization and security for building a distributed cloud system and a
secure data sharing scheme, which effectively solve high latency overhead and
single-point failure issues faced by conventional architectures [4-9]. We also
conduct extensive real-world experiments to verify the feasibility of the
proposed joint framework. In a nutshell, this article provides a set of
contributions as follows:

  1. 1.

We first propose an efficient data offloading scheme where IoT health data can
be offloaded to nearby edge servers for data processing with privacy
awareness.

  2. 2.

We then propose a new data sharing scheme which is integrated to enable data
exchange among healthcare users via blockchain. A trustworthy access control
mechanism is also developed using smart contracts for access authentication to
achieve secure EHRs sharing.

  3. 3.

We conduct various experiments to verify the advantages of the proposed
approach over other baseline methods in terms of offloading and sharing
performances.

The remainder of the paper is organized as follows. Section II discusses
related works. We propose an integrated architecture in Section III with
offloading and sharing formulation. Section IV presents implementation results
on various performance metrics, and Section V concludes the paper.

##  II  Related Works

In this section, we survey the related works in data offloading and data
sharing for healthcare.

###  II-A Health Data Offloading

Many data offloading approaches have been proposed to support healthcare. In
[4], mobile healthcare data can be offloaded to fog nodes or cloud for
processing, analysis, and storage. In [6], [7], a multi-cloud model was
proposed which enables offloading of mobile health data to the cloud under
latency and energy constraints. The main drawback of such proposals is the
high latency incured by offloading data to remote clouds. Also, offloading
privacy is not considered, which puts sensitive health data at risks of
external attacks. Another work in [8] proposed an IoT architecture for
executing healthcare applications on clouds, but optimization for memory usage
of MDs required to offload the data and data privacy concerns are completely
neglected. Meanwhile, other works [5], [9], [10] concentrated on offloading
security issues in healthcare. For example, [9] used hash function and key
cryptosystem for data security. Also, privacy issues for health data
offloading were also solved in [5], [10] by using consensus algorithms and
learning-based privacy preservation techniques with respect to response time
and delay. However, the above studies lack the joint consideration of all QoS
constraints (network latency, energy consumption and memory usage) and privacy
awareness, which is of significant importance for offloading performance
guarantees [2].

###  II-B Health Data Sharing

Several solutions using blockchain are proposed for health data sharing. The
work [11] introduced a privacy-preserved data sharing scheme enabled by the
conjunction of a tamperproof consortium blockchain and cloud storage.
Furthermore, [12] described a hybrid architecture of using both blockchain and
edge-cloud nodes where smart contracts are employed to monitor access
behaviours and transactions. Despite data privacy enhancements, such solutions
[11], [12] mainly rely on central cloud servers for EHRs storage, which
remains single-point failure bottlenecks and incurs high communication
overhead. Further, the performances of smart health contract have not been
evaluated. Meanwhile, [13] employed an interplanetary file system (IPFS) with
Ethereum blockchain for EHRs sharing over clouds, but data retrieval speed and
security capability, which are important performance metrics, have not been
verified. Recently, our works [3], [14] showed a first attempt to implement a
mobile cloud EHRs sharing using decentralized storage IPFS and smart contract.
The study in [15] investigated an access control protocol based on blockchain
and external public key infrastructure (PKI), but it requires complex and
expensive resources to achieve secure EHRs sharing [2].

Despite promising results, the aforementioned works fail to provide a
cooperative framework of data offloading and data sharing for healthcare. This
motivates us to develop a comprehensive solution by leveraging MEC and
blockchain to provide better healthcare services in terms of enhanced QoS,
improved privacy and security.

##  III  Proposed Architecture and System Design

We consider a healthcare system architecture in Fig. 1, consisting of four
layers as follows. (1) IoT layer consists of many smart hospitals which
monitor patients by MDs as mobile gateways in different locations from sensor
IoT devices. (2) Edge layer includes a cluster of edge cloud nodes, each edge
node manages a group of nearby IoT devices to provide distributed computing
services for healthcare. All computations including data processing and
analysis are implemented at the edge layer to offer instant healthcare
services. (3) Cloud layer which stores processed health data from edge nodes
and performs data sharing with end users. To build a cloud blockchain network,
we create four key cloud components, including admin, EHRs manager,
distributed cloud storage and smart contracts with miners and policy storage.
Their details will be described in the next section. (4) End user layer is the
network of healthcare users such as healthcare providers, caregivers and
patients, who are interested in using cloud healthcare services. For instance,
doctors use analysed health data on cloud for disease diagnosis, or patients
can track their medical record history. Note that the blockchain network here
consists of edge servers, cloud entities and end users, and are maintained by
secure transaction ledgers distributed over the blockchain participants [14].
Next, we focus on the analysis of data offloading and data sharing schemes.

Figure 1: The proposed healthcare architecture.

###  III-A Health Data Offloading

We consider that each MD has multiple health data tasks
$\mathcal{N}=\\{1,2,...,N\\}$ to be executed. We introduce an offloading
decision policy denoted by a binary variable $x_{n}^{t}\in\\{0,1\\}$, where
$x_{n}^{t}=1$ means that task $n$ is offloaded to the edge server, otherwise
it is executed locally $x_{n}^{t}=0$.

####  III-A1 Offloading Model

Motivated by experimental results of our recent work [16], in this paper we
propose an offloading architecture as Fig. 2 which includes two main modules:
task profile and decision maker on mobile devices.

\- Task profile: This module collects device information such as energy
consumption ($E$), processing time ($T$) and memory usage ($M$) when executing
data tasks, by using mobile performance measurement tools. Therefore, a task
profile with a size $D_{n}$ (in bits) can be formulated as a variable tuple
$[D_{n},E_{n},T_{n},M_{n}]$ which is then stored in a database created on the
MD for supporting offloading decisions.

\- Decision maker: This module receives task profile information collected by
the profile module to make offloading decisions. Similar to [17], [18], we
employ an integer linear programming model to develop a decision making
algorithm on MDs. By using profile information, the algorithm analyses and
makes decisions for executing locally or offloading to the MEC server. The
main objective is to determine an optimal computation decision for each task
to minimize computing latency, energy consumption and memory usage.

####  III-A2  Offloading Formulation

Motivated by healthcare offloading studies in [10] and [18], we formulate the
health data offloading problem with three main metrics, namely processing
time, energy consumption and memory usage under two computation modes.

Figure 2: The data offloading scheme.

\- Local execution: When a MD decides to execute the task n locally
($x_{n}=0$), it uses its resource to process healthcare data. We denote
$X^{l}_{n},f^{l}_{n}$ as mobile CPU utilization for task $n$ (in CPU/bit) and
mobile computational capacity (in CPU/sec), respectively. Then, the local
execution time can be calculated as $\scriptstyle
T^{local}_{n}=\dfrac{D_{n}X^{l}_{n}}{f^{l}_{n}}$. We also define
$E^{local}_{n}$ and $M^{local}_{n}$ as battery consumption (in Mah) and memory
usage (Mbyte), which can be measured by mobile measurement tools [18].

\- Offloading to MEC server: In the case of task offloading ($x_{n}=1$), the
data task needs to be encrypted for security before transmitting to the MEC.
We denote $X^{enc}_{n},X^{e}_{n},f^{e}_{n}$ as mobile CPU utilization for
encrypting the task $n$ (in CPU/bit), edge CPU utilization (in CPU/bit), and
edge computational capacity (in CPU/sec). Further, let denote $r_{n}$ as the
transmission data rate of the MD, the total offloading time can be expressed
as $\scriptstyle
T^{offload}_{n}=(\dfrac{D_{n}X^{enc}_{n}}{f^{l}_{n}}+\dfrac{D_{n}X^{e}_{n}}{f^{e}_{n}}+\dfrac{D_{n}}{r_{n}})$.
We also define $E^{enc}_{n},E^{trans}_{n}$ as encryption energy and energy for
transmitting the task $n$ to the MEC. Then, the total offloading energy is
computed by [16] $\scriptstyle
E^{offload}_{n}=(E^{enc}_{n}\dfrac{D_{n}X^{enc}_{n}}{f^{l}_{n}}+E^{trans}_{n}\dfrac{D_{n}}{r_{n}})$.
Moreover, the offloading process also incurs a memory usage cost for
encryption, defined as $M^{offload}_{n}$, which can be also obtained through
mobile measurement tools [18].

Accordingly, the total offloading time, energy cost and memory usage can be
expressed as follows.

$T_{n}=(1-x_{n})T^{local}_{n}+x_{n}T^{offload}_{n},$ (1)
$E_{n}=(1-x_{n})E^{local}_{n}+x_{n}E^{offload}_{n},$ (2)
$M_{n}=(1-x_{n})M^{local}_{n}+x_{n}M^{offload}_{n}.$ (3)

Based on above formulations, we can derive the optimization problem to jointly
optimize time latency, energy cost and memory usage under system constraints
as follows

$\displaystyle\underset{\textbf{x}}{\text{min}}$
$\displaystyle\sum_{n=1}^{N}(\alpha_{t}T_{n}+\alpha_{e}E_{n}+\alpha_{m}M_{n})$
(4) st.
$\displaystyle(C1):\sum_{n=1}^{N}(x_{n}T^{offload}_{n})\leq\sum_{n=1}^{N}(1-x_{n})T^{local}_{n},$
$\displaystyle(C2):\sum_{n=1}^{N}(x_{n}E^{offload}_{n})\leq\sum_{n=1}^{N}(1-x_{n})E^{local}_{n}),$
$\displaystyle(C3):(\sum_{n=1}^{N}(x_{n}T^{offload}_{n})+\sum_{n=1}^{N}(1-x_{n})T^{local}_{n})\leq\tau,$
$\displaystyle(C4):(\sum_{n=1}^{N}(x_{n}M^{offload}_{n})+\sum_{n=1}^{N}(1-x_{n})T^{local}_{n})\leq\zeta,$

where $\alpha_{t},\alpha_{e},\alpha_{m}$ are the cost weights and all set to
1/3, respectively. Here, the constraints (C1), (C2) represent that the
offloading cost of time delay and energy consumption should be less than the
local execution cost when computing all healthcare data tasks on a MD. In
fact, the solution of offloading tasks to the MEC should be preferred due to
its efficient computation, especially for large-size tasks for better QoS.
Further, the total task execution time should not exceed a maximum latency
value (C3). Meanwhile, (C4) defines that the memory used for task computation
must not exceed the available mobile memory. In this paper, we employed the
particle swarm optimization (PSO)111 https://github.com/topics/particle-swarm-
optimization model written in java to build the above offloading optimization
algorithm on Android phones. The PSO algorithm has proven its superior
advantages over its counterparts like Genetic Algorithm (GA) regarding
extremely low computational cost and simple implementation on Android devices
for mobile offloading applications like healthcare [19].

###  III-B Health Data Sharing

We describe main components, smart contract design and access protocol for
data sharing as follows.

####  III-B1 Main Components

In the data sharing scheme, we assume that healthcare data were processed and
stored on cloud by the offloading framework as designed in the previous
subsection. The combination of cloud computing and blockchain can enable
highly efficient data sharing with improved throughput, reduced data retrieval
and better security [2]. Note that blockchain utilizes consensus validation
[2] to achieve synchronization on distributed ledgers which are replicated
across cloud entities, avoiding single-point failures, i.e. the disruption of
an entity does not impact the operation of the cloud system thanks to strongly
linked transactions over the blockchain [2]. We propose a sharing architecture
on cloud as shown in Fig. 1, consisting of four main entities as follows.

\- EHRs manager:  It is responsible to control all user transactions on the
blockchain network, including data storage processes of MDs and data access of
mobile users. The management capability of EHRs manager is enabled by smart
contracts through strict user policies.

\- Admin: It manages transactions and operations on cloud by adding, changing
or revoking access permissions. Admin deploys smart contracts and the only
entity with the ability to update or modify policies in smart contracts.

\- Smart contract:  It defines all transactions allowed in the access control
system. Users can interact with smart contracts by the contract address and
Application Binary Interface (ABI). Smart contracts can identify, validate
access and grant permissions for healthcare data request. It is considered as
core software in our healthcare platform.

\- Decentralized IPFS storage: We deploy on cloud a decentralized peer-to-peer
file system InterPlanetary File System (IPFS), a network of distributed
storage nodes to build a storage and sharing platform in the blockchain
network [14]. Health results which were analysed from the offloading scheme
are stored in identified IPFS nodes, while their hash values are recorded by
EHRs manager and stored in Distributed Hash Table (DHT). We also integrate
smart contracts with IPFS to improve decentralized cloud storage and
controlled data sharing for better user access management. Details of IPFS
settings can be seen in our recent work [14].

####  III-B2  Smart Contract Design

We first create a sharing contract controlled by the admin to monitor
transaction operations. We denote $PK$ as the user’s public key, $userRole$ as
the user’s role, $Addr$ as the patient’s address in blockchain. The contract
mainly provides the following five functions.

  * •

AddUser(PK, userRole): (executed by Admin) This fucntion allows to add a new
user to the main contract. User is identified by their public key and is added
into the contract with a corresponding role based on their request.

  * •

DeleteUser(PK, userRole): (executed by Admin) It is used to remove users from
the network based on the corresponding public key. All personal information is
also deleted from cloud storage.

  * •

PolicyList(PK): (executed by Admin) A peer of health provider-patient can
agree on a policy which expresses their healthcare relation. For example, a
patient has an identified doctor for his health care and only this doctor has
rights to access EHRs of his patient. The policy list contains users’ public
keys in policy storage for identification when the smart contract processes
new transactions.

  * •

RetrieveEHRs(PK, Addr): (executed by EHRs manager) It allows to retrieve cloud
EHRs of patients. A blockchain entity needs to provide the address of patient
(including Patient ID and Area ID) to the smart contract. The contract then
verifies and sends a message to the EHRs manager to extract and return data to
the requester.

  * •

Penalty (PK, action): (executed by Admin) When detecting an unauthorized
request to EHRs system, the EHRs manager will inform smart contract to issue a
penalty to the requester. In our paper, we give a warning message as a penalty
to the unauthorized mobile entity.

Next, we present a data sharing protocol as summarized in the following four
steps.
Step 1: Request processing (executed by EHRs manager)
The EHRs manager receives a new request as a transaction Tx associated with
request IDs (including AreaID and PatientID) from a mobile user (i.e. a health
provider or a patient). The EHRs manager will obtain the requester’s PK by
using the Tx.getSenderPublicKey() function and send it to the contract for
validation.
Step 2: Verification (executed by the Admin)
After receiving a transaction from EHRs manager $(msg.sender=ME)$, the admin
will verify the request based on its $PK$ in the policy list of the smart
contract. If the $PK$ is available in the list, the request is accepted and
now a data access permission is granted to the requester. Otherwise, the smart
contract will issue a penalty through the penalty() function to discard this
request from the blockchain network.
Step 3: EHRs retrieval (executed by the Admin)
Once the permission is granted, the contract will decode the transaction using
the abiDecoder:decodeMethod(Tx) function to obtain the address information of
EHRs in the data field of transaction (see Section II). Now the admin can know
the Area ID and Patient ID of the request, and then forward it to EHRs manager
for data retrieval from IPFS [14].
Step 4: Data feedback (executed by EHRs manager) Once the requested data is
found, the EHRs manager will send it to the requester. Now the sharing is
finished and a new transaction is appended to blockchain and broadcasted to
network users. Note that data in such transactions are mainly patient
addresses, which are lightweight and efficient to store on the blockchain.
Algorithm 1 shows our sharing protocol, and its source code is available in
our recent work [14].

Algorithm 1 EHRs access protocol

1: Input: $Tx$ (The data request on blockchain)

2: Output: $Result$ (Access result)

3: Initialization: (by the EHRs Manager)

4: Receive a new transaction $Tx$ from an end user

5: Obtain the PK: $PK\leftarrow Tx.getSenderPublicKey()$

6: Send the public key to Admin (msg.sender = EHRs Manager)

7: Pre-processing the request (by Admin)

8: if $PK$ is available in the policy list then

9: $PolicyList(PK)\leftarrow true$

10: end if

11: $decodedTx\leftarrow abiDecoder.decodeMethod(Tx)$

12: $Addr\leftarrow web3.eth.getData(decodedTx([DataIndex])$

13: Specify DeviceID: $D_{ID}\leftarrow Addr(Index[D_{ID}])$;

14: Verification (by the smart contract)

15: while true do

16: if $PolicyList(PK)\rightarrow true$ then

17: if $PolicyList(D_{ID})\rightarrow true$ then

18: $Result\leftarrow RetrieveEHRs(PK,Addr)$

19: break;

20: else

21: $Result\leftarrow Penalty(PK;action)$

22: break;

23: end if

24: else

25: $Result\leftarrow Penalty(PK;action)$

26: break;

27: end if

28: end while

##  IV Experimental Results and Evaluations

In this section, we present experiments and perform implementation evaluations
in details.

###  IV-A Experiment Settings

Figure 3:  Experiment setting.

We implemented a full experiment with data offloading and data sharing tests
to prove the proposed scheme, as shown in Fig. 3.

2004006008001000$0$$1$$2$$3$$4$$5$Size of healthcare data file (KB)Processing
time (sec)Local execution [14]The cloud scheme [18]The proposed edge scheme
2004006008001000$0$$2$$4$$6$$8$$10$Size of healthcare data file (KB)Battery
consumption (Mah)Local execution [14]The cloud scheme [18]The proposed edge
scheme 2004006008001000$0$$20$$40$$60$$80$$100$Size of healthcare data file
(KB)Memory usage (MB)Local execution [14]The cloud scheme [18]The proposed
edge scheme

Figure 4: Experimental results for local, cloud and edge computation.

For the health data offloading implementation, we employed the Lambda Edge
[20] service enabled by an Amazon EC2 server (Intel Xeon Family), CPU 2.5 GHz,
2 GB memory and maximum network bandwidth 3500 Mbps. We used a Sony Android
mobile phone as a MD with Qualcomm Snapdragon 845 processor, 1GB memory, and a
battery capacity of 2870mAh. The MD connects with the edge cloud computing on
the wireless network via Wi-Fi with a maximum data rate of 11 Mbit/s. For data
encryption, we used a symmetric algorithm AES to preserve data due to its less
time and energy consumption [18] which is well suitable for low-latency health
applications.

Healthcare data and programming code are necessary for our test. For a
specific use case, we used Biokin sensors [3] as IoT devices to collect
simultaneously human motion data (acceleration and gyroscope time-series data)
and store in separate files to be executed by both MDs and the edge server. By
using our data analysis algorithm, we can specify human movement severity
levels (i.e. movement disorders) to serve doctors during clinical decisions
[3]. For mobile performance evaluations, we employed Firebase Performance
Monitoring service [21] to measure processing time, battery consumption, and
memory usage. The mobile application for offloading optimization mentioned in
Section III.A was implemented using Android studio 3.5. Meanwhile, for the
evaluation of edge execution, we utilized the Kinesis Data Analytics service
available on Amazon cloud to monitor data streaming and measure computation.

For data sharing experiment, we deployed a private Ethereum blockchain network
supported by Amazon cloud where two virtual machines AWS EC2 were employed as
the miners, two virtual machines Ubuntu 16.04 LTS were used as the admin and
EHRs manager, respectively. The decentralized IPFS storage was integrated with
Amazon cloud and its network configuration was presented in [14]. Our smart
contract was written by Solidity programming language and deployed on AWS
Lambda functions and its source code is available in [14]. Users can interact
with smart contracts through their Android phone where a Geth client was
installed to transform each smartphone into an Ethereum node. We also used two
Android phones to investigate sharing results. More details of hardware
configurations and parameter settings for our system are described in our
recent works [3], [14], [16].

###  IV-B Experiment Results

####  IV-B1 Data Offloading Performance

We compare our scheme with two baselines: local execution [14] (only executing
data on devices) and cloud computation [18] (offloading to the cloud server)
to prove the advantages of our scheme. A set of health data files with
different sizes (200 KB-1200 KB) [18] collected from sensors was used in
evaluations. We implement each test with 10 times to obtain average values,
and evaluate via three performance metrics: processing time, energy
consumption, and memory usage as shown in Fig. 4.

For the processing time, it consists of execution time for the local case and
encryption time, offloading time and remote execution time for the cloud and
edge case. Based on results in Fig. 4, the proposed edge scheme achieves the
best performance in terms of the average processing time. For example,
executing a 200 KB file by the edge scheme only consumes 1.1 sec, whereas it
reaches about 1.3 sec and 1.5 sec in the cloud and local schemes,
respectively. This leads to a 10-18% time saving of data execution by using
edge computing. Further, the proposed edge scheme saves up to 31% and 15% time
when computing a 1200 KB file, compared to local and cloud schemes,
respectively. We also found with the selected human motion dataset, although
data encryption is integrated in offloading, the edge-cloud offloading schemes
still achieves better offloading performances than the local scheme, showing
the efficiency of the proposed encryption technique.

For battery consumption, health data tasks consume less energy when being
executed with the edge offloading scheme. As an example, offloading a 200 KB
file consumes less 11% energy than the case of local computation and less 5%
energy than the cloud scheme. Specially, the energy usage of the edge scheme
becomes more efficient when the data size increases. For instance, executing a
1000 KB and 1200 KB file can save 21.3% and 28.1% energy, respectively when
offloading the task to the edge server, while the cloud and local schemes
consume higher energy. For memory performance, the edge and cloud schemes has
the same memory usage due to using the same encryption mechanism for security.
However, these schemes achieve greater memory performances, with 5% and 9%
memory savings compared to the local scheme when executing a 200 KB and 1200
KB file, respectively. Note that the above implementation results were
obtained from the proposed offloading application with human motion data and
current hardware settings of devices and edge servers. Different mobile
applications with other health data types such as Electroencephalography (EEG)
or video data and different hardware settings can achieve different offloading
performances [7]. However, generally the proposed edge offloading scheme
yields the best performances with enhanced time latency, energy, and memory
usage and shows superior advantages than the cloud scheme and local scheme
when the size of health data increases.

Figure 5: Data sharing results on Android phones: a) User Registration form
with Ethereum account, b) Data access results of an authorized user, c)
Transaction record of authorized access, d) Access result of an unauthorized
user, e) Transaction record of unauthorized access.

####  IV-B2 Data Sharing Performance

We investigated two main performance metrics: access control and network
overheads for the proposed data sharing.

We present two use cases with authorized and unauthorized access to evaluate
access control, as shown in Fig. 5. The goal is to enable end users to
retrieve effectively EHRs on cloud and prevent malicious access to our cloud
data. A mobile user, i.e a doctor, who wants to access EHRs of his patient on
cloud, can use an Ethereum account to register user information for joining
the blockchain (Fig. 5(a)). After his request is verified by the cloud EHRs
manager, he now starts to make a transaction to access EHRs by providing the
address of his patient (including AreaID and PatientID as defined in the
offloading scheme) as shown in Fig. 5(b). Our sharing system will then return
data access results which are also updated on his mobile interface (Fig.
5(b)). Thus, the doctor can acquire patient’s disability levels (scores)
computed from the offloading phase for medications. Once the EHRs access
process is finished, a new transaction is appended into blockchain by mining
process and broadcast to all participants. Patients thus can monitor sharing
transactions and know who uses their data (Fig. 5(c)), thus ensuring user data
ownership and network trustworthiness.

In the case of unauthorized access, the smart contract will verify and detect
by the access protocol with a predefined policy list. Such illegal request is
prevented and discarded from our EHRs database, and a warning message is
returned to the requester (see Fig. 5(d)). A corresponding transaction for
unauthorized access is also issued by the smart contract (see Fig. 5(e)).
Obviously, blockchain is capable of controlling data access and thus improve
system reliability and data privacy. Further security analysis is presented in
the next sub-section.

TABLE I: Comparison results for data retrieval speeds (in sec) Schemes | Number of mobile user
---|---
N=2 | N=4 | N=6 | N=8 | N=10 | N=12
Centralized storage [11] | 1.6 | 2.4 | 3.9 | 4.8 | 5.5 | 7.8
Proposed IPFS storage | 0.6 | 1.6 | 2.6 | 3.5 | 4.4 | 5.3
TABLE II: Smart contract cost test Contract functions | Gas used | Actual cost (ether) | USD
---|---|---|---
AddUser | 34603 | 0.00069 | 0.1168239
DeleteUser | 12098 | 0.00024 | 0.0406344
PocicyList | 90684 | 0.0018 | 0.304758
RetrieveEHRs | 862409 | 0.0172 | 2.912132
Penalty | 573783 | 0.01147 | 1.9419857
Total | 1573577 | 0.0314 | 5.316334

Furthermore, we also investigated time overhead of data sharing as shown in
Table I. Multiple MDs can access simultaneously the IPFS storage for data
retrieval and time latency is measured. Specially, we compared our design with
decentralized IPFS storage with the baseline [11] which utilized the
conventional central cloud storage for sharing. The experiment results clearly
show that the proposed decentralized storage scheme on IPFS cloud blockchain
has significantly less time overhead as compared to the conventional scheme
with centralized storage. For example, the proposed scheme can save 17% and
30% time for retrieving data on cloud in the case of 6 users and 12 users,
respectively, in comparison with the baseline, which shows a significant
advantage of the proposed IPFS-based storage approach.

###  IV-C Smart Contract Performance

To evaluate the performance of the smart contracts in our healthcare system,
we investigated the operation costs of contract functions when there are 5
mobile users on our Ethereum blockchain as listed in Table II. The cost is
calculated in gas unit and then converted into ether (cost unit of Etherum
blockchain) and US dollars by using an exchange rate of 1 Gas $\approx$
0.00000002 Ether and 1 Ether $\approx$ $169.31 at the time of this study. We
consider a realistic scenario that some new users can join the healthcare
network, some current users can leave, and therefore $AddUser$ and
$DeleteUser$ functions need to be executed. Furthermore, the contract can also
allow data retrieval with $RetrieveEHRs$ for authorized users or force
penalties with $Penalty$ for unauthorized users. All of these contract
executions incur operation costs and the users need to pay for their service
usage. From Table II, the amount of gas used for sharing services is 1573577
gas (5.316334 USD, $\approx$ 1.063 USD per user). Clearly, the financial cost
for using our contract is low, which demonstrates the practicality of the
proposed contract-based data sharing scheme.

###  IV-D Attack Models and Security Analysis

We consider two potential threat types as follows. External threats: during
data offloading and sharing, external attackers can gain access to obtain
health information. Insider threats: network participants may be untrusted and
retrieve EHRs without users’ consent. Our design can address these issues and
gain more security benefits than current works [7-12].

\- We employ an AES encryption on MDs when performing offloading to encrypt
healthcare data before transmitting to the edge server. This would establish a
new security layer between devices and edger server to protect sensitive
health information against external attack threats and thus improve data
confidentiality. Furthermore, the proposed decentralized IPFS cloud system
enables data storage on distributed virtual nodes on blockchain without
central server. Once a data file of analysed health results is uploaded to the
IPFS, its hash is automatically returned to the EHRs manager and this also
updated in DHT table. Any modifications on data files in IPFS can be easily
detected by the EHRs manager. The combination of hash checking and file
verification, and user authentication of smart contract makes our system
resistant with external attacks and significantly improves system integrity.

\- Additionally, our blockchain uses community validation to establish a
decentralized healthcare network among cloud entities, healthcare users and
smart contract, where all participants are synchronized by transaction
ledgers. Any modifications caused by curious users are reflected on the
blockchain and such malicious transactions are discarded from the network via
consensus [2]. Users also share equal data management rights with the ability
to monitor transactions, which in return guarantees data ownership and system
reliability.

##  V Conclusions

This paper proposes a novel cooperative architecture of data offloading and
data sharing for healthcare by levering edge-cloud computing and Ethereum
blockchain. We first propose a privacy-aware data offloading scheme where MDs
can offload IoT health data to the edge server under system constraints. Then,
a new data sharing is introduced by using blockchain and smart contract to
enable secure data exchange among healthcare users. Specially, we develop a
reliable access control mechanism associated with a decentralized IFPS storage
design on cloud. Various experimental results demonstrate the significant
advantages of the proposed offloading scheme over other baseline methods in
terms of reduced time latency, energy consumption, and better memory usage.
Moreover, the data sharing scheme can achieve efficient user authentication
and significantly enhance data retrieval speeds while preventing malicious
access to our healthcare system. System evaluations also prove that the
operation cost of smart contract is low, and system security is guaranteed,
showing the feasibility of our scheme for healthcare applications.

## References

  * [1] S. M. Riazul Islam et al., ”The Internet of Things for Health Care: A Comprehensive Survey,” IEEE Access, vol. 3, pp. 678-708, 2015.
  * [2] Guo, Hao, et al., ”Attribute-based Multi-Signature and Encryption for EHR Management: A Blockchain-based Solution,” in 2020 IEEE International Conference on Blockchain and Cryptocurrency (ICBC), pp. 1-5, 2020.
  * [3] Dinh C. Nguyen et al., ”A mobile cloud based IoMT framework for automated health assessment and management,” in 41st Conference of the IEEE Engineering in Medicine & Biology Society (EMBC), 2019.
  * [4] M. Asif-Ur-Rahman et al., ”Towards a heterogeneous mist, fog, and cloud based framework for the internet of healthcare things,” IEEE Internet of Things Journal, vol. 6, pp. 4049-4062, 2018.
  * [5] R. Saha et al., ”Privacy ensured e-healthcare for fog-enhanced IoT based applications,” IEEE Access, vol. 7, pp. 44 536-44 543, 2019.
  * [6] H. Wu et al., ”Mobile healthcare systems with multi-cloud offloading,” in IEEE Int. Conf. on Mobile Data Management, vol. 2, 2013, pp. 188-193.
  * [7] Navaz et al. ”Towards an efficient and Energy-Aware mobile big health data architecture.” Comput. methods and programs in bio., 2018.
  * [8] R. M. Abdelmoneem et al., ”A cloud-fog based architecture for IoT applications dedicated to healthcare,” in IEEE ICC, 2019, pp. 1-6.
  * [9] D. Giri et al., ”Sechealth: An efficient fog based sender initiated secure data transmission of healthcare sensors for e-medical system,” in IEEE Global Communications Conference, 2017, pp. 1-6.
  * [10] M. Min et al., ”Learning-based privacy-aware offloading for healthcare IoT with energy harvesting,” IEEE Internet of Things Journal, vol. 6, pp. 4307-4316, 2018.
  * [11] J. Liu et al., ”BPDS: A blockchain based privacy-preserving data sharing for electronic medical records,” in IEEE GLOBECOM, 2018, pp. 1-6.
  * [12] H. Guo et al., ”Access control for electronic health records with hybrid blockchain-edge architecture,” in IEEE Int. Conf. on Blockchain, 2019.
  * [13] S. Wang al., ”A blockchain-based framework for data sharing with fine-grained access control in decentralized storage systems,” IEEE Access, vol. 6, pp. 38437-38450, 2018.
  * [14] Dinh C. Nguyen et al., ”Blockchain for secure EHRs sharing of mobile cloud based e-health systems,” IEEE Access, pp. 66792-66806, 2019.
  * [15] M. T. de Oliveira et al., ”Towards a blockchain-based secure electronic medical record for healthcare applications,” in IEEE ICC, 2019.
  * [16] Dinh C. Nguyen et al., ”Privacy-preserved task offloading in mobile blockchain with deep reinforcement learning,” IEEE Transactions on Network and Service Management, 2020, in press.
  * [17] Sigwele, Tshiamo, et al. ”Intelligent and energy efficient mobile smartphone gateway for healthcare smart devices based on 5G” in IEEE Global Communications Conference (GLOBECOM), 2018..
  * [18] I. Elgendy et al., ”An efficient and secured framework for mobile cloud computing,” IEEE Transactions on Cloud Computing, 2018.
  * [19] W.-T. Sung and Y.-C. Chiang, ”Improved particle swarm optimization algorithm for android medical care IoT using modified parameters,” Journal of medical systems, vol. 36, no. 6, pp. 3755-3763, 2012.
  * [20] AWS Lambda with Cloud Front Lambda Edge Services [Online]. Available: https://aws.amazon.com/lambda/edge/.
  * [21] Firebase Performance Monitoring - Google [Online]. Available: https://firebase.google.com/docs/perf-mon.


# Macroscopic analysis and modelling of
multi-class, flexible-lane traffic

V. L. Knoop PhD  Delft University of Technology, Transport & Planning
Stevinweg 1, Delft, The Netherlands
+31 15 278 8413
<EMAIL_ADDRESS>W.J. Schakel PhD  Delft University of Technology,
Transport & Planning
Stevinweg 1, Delft, The Netherlands
<EMAIL_ADDRESS>T.P. van Oijen MSc  Delft University of Technology,
Transport & Planning
Stevinweg 1, Delft, The Netherlands
<EMAIL_ADDRESS>prof. L. Leclercq PhD  Univ. Gustave Eiffel – Lyon
<EMAIL_ADDRESS>
## abstract

An excessive demand of vehicles to a motorway bottleneck leads to traffic
jams. Motorbikes are narrow and can drive next to each other in a lane, or in-
between lanes in low speeds. This paper analyses the resulting traffic
characteristics and presents numerical scheme for a macroscopic traffic flow
model for these two classes. The behavior included is as follows. If there are
two motorbikes behind each other, they can travel next to each other in one
lane, occupying the space of one car. Also, at low speeds of car traffic, they
can go in between the main lanes, creating a so-called filtering lane. The
paper numerically derives functions of class-specific speeds as function of
the density of both classes, incorporating flexible lane usage dependent on
the speed. The roadway capacity as function of the motorbike fraction is
derived, which interesting can be in different types of phases (with
motorbikes at higher speeds or not). We also present a numerical scheme to
analyse the dynamics of this multi-class system. We apply the model to an
example case, revealing the properties of the traffic stream , queue dynamics
and class specific travel times. The model can help in showing the relative
advantage in travel time of switching to a motorbike.

Key words: Traffic flow theory, multi lane traffic, multi class traffic,
macroscopic traffic modelling, cell transmission model

##  1 Introduction

In freeway traffic, there are various types of vehicles. Most freeway traffic
is lane bound: passenger cars and trucks mostly stay behind each other within
their lane (or change lanes to another lane. On a microscopic scale (i.e., at
the level of the vehicle), this behaviour is hence modelled often as car-
following (see e.g. [Treiber et al., 2000, Newell, 2002]), combined with a
lane change model (e.g., MOBIL [Kesting et al., 2007] or LMRS [Schakel et al.,
2012]). Motorbikes have a different type of behavior. They can follow the
traffic stream in case of high speeds. However, when the speeds are low, they
can go in-between two lanes, a phenomenon called filtering, studied by real-
world trajectories for instance by Lee et al. [2012]. Moreover, if there are
two motorbikes, they can drive next to each other in one lane. On motorways,
the nature of traffic is hence in-between lane-bound and two dimensional
flows. The microscopic processes can hence qualitatively be understood. In
this paper, we address how motorbikes with that dual nature character can
influence travel times. To do so, we aim to reconstruct the aggregate dynamics
of a combined traffic stream with traditional approaches like a fundamental
diagram and density dependent evolution of the traffic stream.

The generic idea of motorbikes is that they can reduce travel times. This is
because indeed they can drive next to each other, hence effectively doubling
the roadway capacity if only motorbikes are present. Moreover, they might in
low speeds create an additional lane in between the lanes. So even if the
(assumed) headway-speed relationship might be the same for motorbikes as for
cars, the effective road capacity can be higher for motorbikes. It is unknown,
however, which traffic states will emerge at capacity and which capacities and
travel times will result from a mix of cars and motorbikes.

Traditionally, traffic engineers have solved multi-class traffic so with a
passenger car equivalent. This tells how for how many passenger cars a
particular vehicle type counts in terms of capacity. For instance, the Dutch
Highway Capacity Manual does provide a number for trucks, stating that a truck
“consumes” the same amount of capacity as 2.0 passenger cars [Dienst Water,
Verkeer en Leefomgeving, 2015]. Several studies have considered the PCE factor
for motorbikes or motorized two-wheelers in urban environments (e.g., ; this
is for instance mainly in India with urban traffic with many motorized two
wheelers a major step. A more advanced model tries to capture the dynamical
nature of the space a motorbike takes. For instance, Nair et al. [2011] models
the flow as porous flow, where motorbikes can go through the gaps at lower
speeds. This is validated by Ambarwati et al. [2014]. This has been further
formalized and mathematically analyzed by Gashaw et al. [2018]. Note they
explicitly take into account speed functions for both classes which depend on
the densities of both classes.

For two-wheelers and motorcars have also been analysed to have independent
densities. This continuous approach does not take into account the dual nature
of the motorbike behaviour at motorways: being bound to main lanes sometimes,
and sometimes being able to use an addtional filtering lane.

Other approaches merely exploit the passenger car equivalents. The idea is
that traffic can be split into classes, each with their own density. The
concept started by Hoogendoorn and Bovy [1999] is that these densities then
can be combined into one aggregated density. Wong and Wong [2002] show that
this can be made into a model with different vehicle classes, which operate at
different speeds for the same aggregated density. Based on this, for instance,
[Ngoduy and Liu, 2007] presents a model where speeds in congestion are the
same and speeds in free flow are different. Chanut and Buisson [2003] present
a case where they implement variations in vehicle lengths. This is also the
basis for the model presented by Van Lint et al. [2008], further developed by
[van Wageningen-Kessels et al., 2014], which come up with speed-dependent
passenger car equivalent factors. A clear overview of the various preceding
works is given in Logghe and Immers [2008], which themselves present a
combination where vehicle classes have different speeds, and some can be in
congestion and some not. The above works all have in common that the main idea
is that there is one main aggregated density which determines the traffic
states for both classes.

Wierbos et al. [2019] presents a model for bicyclists and cars. Their model is
also based on independent densities for cars and bicycles. Depending on the
densities, cars can pass cyclists (low densities) or cyclists can pass cars
(when cars are stopped, for instance). Whereas not as rigorous with lane bound
traffic, their main line of thought is can be applied to the problem at hand
here. The model they develop, however, is formulated in Lagrangian coordinates
[Leclercq, 2007, Laval and Leclercq, 2013]. This means that the speed of
travellers is calculated and their positions are updated. It is harder to
analyse typical bottlenecks in road networks, which are usually positioned in
particular locations. For this, a discretisation scheme fixed in space would
be preferred.

There are various ways of discretizing traffic streams, of which the Cell
Transmission Model [Daganzo, 1994] is probably the most well known. In this
case, the road is split into cells of fixed length, and the flow between the
cells is calculated, which yields new densities. The densities then in turn
determine the new flow. This have lead to multi-lane extensions, of which
Nagalur Subraveti et al. [2019] present a recent example. Laval and Daganzo
[2006] introduced a reduction of flow as function of lane changes, caused by
voids due to bounded acceleration. Several models include these concepts into
macroscopic models, e.g. [Leclercq et al., 2016, Jin and Laval, 2018]. These
models are limited to applying to a case with a fixed number of lanes.

For multi-class modelling, we should also look into the work of Daganzo
[2002]. He proposed that there can be two phases of traffic. One in which all
the lanes travel at the same speed, a so-called one-pipe regime, and one in
which some lanes travel at higher speeds than other lanes, a two-pipe regime.
In his paper, he points at speed and lane choices for drivers. In the current
paper, these assumptions will not be used. However, we will refer to “one pipe
regime” for a situation where all traffic moves at the same speed and “two
pipe regime” for a situation where one traffic stream (the motorbikes in a
filter lane) travel at a different speed than another traffic stream (the cars
in the main lanes).

All in all, the gap we work on in this paper is (i) qualitative equilibrium
description of traffic with switching lane discipline (sometimes a filtering
lane, sometimes not), and (ii) a macroscopic traffic operations in Eulerian
coordinates which is able to describe traffic dynamics for a traffic with
switching lane discipline.

The approach we have in the remainder of the paper is as follows. We first
discuss the traffic behaviour and resulting traffic states in a static way in
section 2. That section also analyses the capacity as function of the fraction
of motorbikes. Then, this is incorporated in a dynamic model. Section 3
presents this dynamic model, and presents the application thereof to an
example case. Also some properties of dynamic states are being shown there.
The last section presents the discussion and conclusions.

##  2 Fundamental diagrams and capacities

The study does the following assumptions:

  * •

Traffic operations of cars and motorbikes both follow the same triangular
fundamental diagram if driving in line behind each other.

  * •

If the speed of the main lane traffic drops to under 50 km/h, motorbikes can
move in between. The speed difference is at maximum 20 km/h (safety
constraint, in line with Dutch traffic guidelines).

  * •

Motorbikes will take the fastest lane (i.e., they will not remain in the
filtering lane when the speed of the filtering lane is lower than in the main
lanes).

  * •

If two motorbikes travel one behind another in one of the main lanes, they can
drive next to each other, hence occupying only one “spot” and needing only one
headway to the predecessor. Note this is a binary event: the motorbikes either
are behind each other in the same line or not.

The goal of this section is to show fundamental diagrams, in this case speed
for a class of vehicles as function of density of both classes. Graphically
they are represented as surfaces (one surface for each class). As it turns
out, there are various distinct traffic phases or regimes. For reasons of
simplicity, the remainder of this section will first derive the phase diagrams
and fundamental diagrams for the case that motorbikes cannot drive next to
each other. Then, the problem is further expanded by including the fact that
motorbikes can drive next to each other. Finally, we will derive the capacity
of the combined section. To make the work more tangible, we will explain and
compute the situations based on a situation of a 3 lane road, where a 4th lane
of motorbikes can go in-between. The principles are equally applicable to
roads with another number of lanes.

###  2.1 Phase diagrams and fundamental diagrams

a Phase 1: low speeds, high motorbike fractions, so motorbike traffic in an
additional filtering lane and in between the main travel lanes as well;
filtering lane at the same speed as main travel lane

b Phase 2: high speeds, so motorbike traffic in the main travel lanes and all
travelling at the same speed

c Phase 3: low speeds, low motorbike fractions, so motorbike traffic in an
additional filtering lane travelling at a higher speed than the car traffic in
the main travel lanes

Figure 1: The 3 phases

In this section we will first indicate the various phases that can exist in
equilibrium. Figure 2 shows the various phases possible, and figure 2 shows
them in a phase diagram, as function of the independent variables, being the
density of cars and the density of motorbikes. After we have discussed the
phases, we derive the speeds for the respective classes in each of the phases.

Recall that in this section we assume that motorbikes cannot drive next to
each other in one lane, only at speeds lower than 50 km/h, they might go in
between lanes. Hence, for combined densities which cause the speed in the main
lanes to be exceeding 50 km/h, cars and motorbikes are in the main lanes. This
is called Phase 2 in the phase diagram in figure 2. The combined density at
which this phase ends is from the regular fundamental diagram where the speed
is equal to 50 km/h. For higher densities, the road changes from a 3 lane road
into a 4 lane road, with (some) motorbikes in the additional lane.

Figure 2: The various regions in the density-density plane

The remaining traffic conditions can be separated in two phases. Phase 3 is
the phase where motorbikes in the additional lane actually go quicker than
cars (and perhaps some motorbikes) in the main lane. Phase 1 is the phase
where all speeds are equal. Intuitively, the difference is understood. If the
amount of motorbikes is low, they can go in between. For higher fraction of
motorbikes, they are too numerous to all fit in the filtering lane and will
also contribute to lower speeds in the main lanes. The speed at which they do
not any more have benefit from the fitering stops if the speed in the
filtering lane is equal to the speed in the main lanes. At the red line
indicating the difference between the phases, the speeds are hence equal.

We can explicitly find this line by the following procedure. For all
combinations of densities in phase 1 and 3, we can determine the speed of the
filtering lane if all motorbikes would drive there. We can also find the speed
for the remaining lanes if there are only cars. If the speed in the filtering
lane is lower, traffic will be mixed (phase 1) and otherwise, it will not
(phase 3).

We now have the phases in the phase diagram. To find the class-specific
speeds, we do the following, per phase:

  1. 1.

In phase 1, we have all 4 lanes operating at the same speed. The combined
density of cars and motorbikes can hence be distributed over 4 lanes, and the
speed can be read from the fundamental diagram. The speed is the same for cars
and motorbikes.

  2. 2.

In phase 2, all traffic is mixed in a 1 pipe regime, over 3 lanes. We
determine the combined density which is distributed over 3 lanes, and with the
regular fundamental diagram, we find the speed, being the speed for both cars
and motorbikes.

  3. 3.

In phase 3, we find the speed of the 3 main lanes by taking the car density
and divide that over 3 lanes. This yields the lane-specific density for which
a car speed can be found in the fundamental diagram. The motorbikes are in the
filter lane, so their speed is based on the minimum of (1) the speed matching
the density of the motorbikes in one lane according to the fundamental diagram
and (2) the speed of the cars plus 20 km/h. In this phase, the speed of
motorbikes is to a large extent independent on the car density, and vice versa
due to the fact that the classes are separated.

###  2.2 Adding that motorbikes can drive next to each other in one lane

In previous section, we derived a speed function as function of density. We
did not take into account that the motorbikes can drive next to each other.
This is what we will introduce in this section.

####  2.2.1 Correcting for motorbikes next to each other

The previous speed functions were based on how many “spots” were occupied on
the road. As it turns out now, sometimes there can be two vehicles (i.e.,
motorbikes) in one spot – but only if two motorbikes follow each other
directly. We will now analytically derive which density of cars and motorbikes
(and hence which fraction of motorbikes) will lead to how many occupied spots.

We represent the demand as an infinite random sequence, sampled from the set
$\\{m,c\\}$, where $m$ represents a motorbike and $c$ represents a car. The
sampling probability of $m$ and $c$ are $P(m)$ and $P(c)=1-P(m)$ respectively.
Vehicles cannot overtake, but two consecutive motorbikes in the sequence are
assumed to occupy one single spot if possible. The resulting number of
occupied spots per length unit is defined as the density in the remainder of
this analysis.

In order to calculate this density, we notice that each infinite random
sequence of vehicles can be uniquely written as an infinite sequence of sub-
chains, drawn from the set $\\{c,m\rightarrow c,m\rightarrow m\\}$, where
$m\rightarrow c$ represents a motorbike followed by a car and $m\rightarrow m$
represents a motorbike followed by a motorbike. The special property of this
representation of the demand is that the full width of the lane is guaranteed
to be occupied after each element in the sequence, which makes that the number
of occupied spots of a sub-chain does not depend on previous sub-chains. The
sampling probability of sub-chains $c$, $m\rightarrow c$ and $m\rightarrow m$
are respectively $P(c)=1-P(m)$, $P(m\rightarrow c)=P(m)\cdot(1-P(m))$ and
$P(m\rightarrow m)=P(m)^{2}$. The number of spots that sub-chains $c$,
$m\rightarrow c$ and $m\rightarrow m$ occupy, are 1, 2 and 1 respectively.

Now, we select the first $i$ elements from the transformed sequence. The
expected number of vehicles in this sequence equals

$\displaystyle E(N)$ $\displaystyle=i\cdot(1\cdot P(c)+2\cdot P(m\rightarrow
c)+2\cdot P(m\rightarrow m))$ (1)
$\displaystyle=i\cdot((1-P(m))+2\cdot(P(m)\cdot(1-P(m)))+2\cdot P(m)^{2})$ (2)
$\displaystyle=i\cdot(1+P(m))$ (3)

The expected number of occupied spots of these vehicles equals

$\displaystyle E(L)$ $\displaystyle=i\cdot(1\cdot P(c)+2\cdot P(m\rightarrow
c)+1\cdot P(m\rightarrow m))$ (4)
$\displaystyle=i\cdot((1-P(m))+2\cdot(P(m)\cdot(1-P(m)))+1\cdot P(m)^{2})$ (5)
$\displaystyle=i\cdot(1+P(m)-P(m)^{2})$ (6)

Now, we have the expected number of vehicles and the expected number of slots.
Relating them to each other, we get the number of expected slots from the
number of expected vehicles.

$E(L)=E(N)\frac{1+P(m)-P(m)^{2}}{1+P(m)}=E(N)\left(1-\frac{P(m)^{2}}{1+P(m)}\right)$
(7)

In traffic engineering terms, $E(N)$, the expected number of vehicles, is the
density, whereas $E(L)$ is the density of occupied slots. The main takeaway
from this analysis is hence we can obtain a correction factor to change the
(actual) density into a new (effective) density if motorbikes are allowed to
drive next to each other. This is found from the ratio
$\frac{E(L)}{E(N)}=\left(1-\frac{P(m)^{2}}{1+P(m)}\right)$.

####  2.2.2 Resulting combined traffic operations

This means we can redo the steps mentioned in the previous section, but taking
into account the changes in density. These correction needs to be taken into
account for finding the boundaries and for the speeds in the zones. Moreover,
the fraction of traffic which is motorbike is not constant if a part of the
motorbikes can use the filtering lane. Therefore, we re-iterate here the steps
but now with this distinction.

Let’s consider again the 3 phases of figure 2. We take the following steps:

  1. 1.

Consider all combinations of density of cars and motorbikes. Determine a joint
density is called $k_{\textrm{tot}}$.

  2. 2.

This can be transformed into an _effictive_ density $k_{\textrm{eff}}$,
indicating what the speed would be if there all vehicles would drive in the
main driving lanes. This transformation can be done with equation 7.

  3. 3.

From the effective density, using the one-class fundamental diagram a speed
can be derived.

  4. 4.

Determine the boundaries between the zone 1 and 2, i.e., where does the
traffic drive a lower speed than 50 km/h, based on the effective density. For
these areas, the speed is determined based on the single-class FD

  5. 5.

For the remaining combinations of density, determine for each possible density
of motorbikes in the filtering lane:111this step is illustrated with an
example in figure 3.

    1. (a)

The speed of the motorbikes in the motorbike lane, based on the single-class
single-lane fundamental diagram. This will be decreasing with the number of
motorbikes in the motorbike lane for higher densities. For lower densities in
the filtering lane and congested conditions in the main lines, the speed is
determined by the restriction of 20 km/h higher than the car speed.

    2. (b)

The density of motorbike traffic in the remaining lanes, and the fraction of
motorbike traffic in these remaining lanes

    3. (c)

The speed of the traffic in the remaining lanes, which will be increasing with
the number of motorbikes in the filtering lane, accounting for the correction
based on the motorbike fraction, equation 7.

    4. (d)

The traffic state in the filtering lane. This is found by either (a) the main
lanes cannot handle the remaining traffic even if the filtering lane is filled
till jam density. In this case, the state is not possible (inaccessible
region, right top of figure 2. (b) a density for the filtering lane exist
which gives the filtering lane the same speed as the remaining lanes. In that
case, we are in the 1 pipe regime. (c) a state exist which even if all
motorbikes are in the filtering lane, they have a higher speed than if they
were joining the main line. In that case, we are in a 2 pipe regime where
motorbikes use the filtering lane. The traffic state in the main lines are
determined by the car; the traffic density in the filtering lane is determined
by all the motorbikes, and the speed in the filtering lane is the maximum of
the speed according to the 1 lane fundamental diagram with motorbike density
and the car speed plus 20 km/h. Note that this procedure implicitly separates
the 1 and 2 pipe regimes.

Figure 3: The speed in the various lanes as function of the density in the
filtering lane. The case considers a motorbike density of 45 veh/km and a car
density of 150 or 200 veh/km. A part of that density is moved to the filtering
lane.

This way we find the final class specific fundamental diagrams. We numerically
evaluate them and shwom them in figure 4.

Figure 4: Fundamental diagrams

Note how the lines of the phase transition between phase 2 and 3 is clearly
visible. Note moreover how the speed of the motorbikes in phase 3 depends on
the density of motorbikes (reduces with increase of motorbikes), but also with
the density of the cars, since the limitation can be the speed difference with
the cars. The total flow is shown as iso-flow lines in figure 5a.

###  2.3 Capacity

For traffic operations, capacity of the joint system is relevant. We hence add
the flows of cars and motorbikes, and consider the total flow. Following the
analyses of section 2.2, this flow is a function of the density of both
classes. This is shown in figure 5a.

In this section we will determine the capacity as function of the fraction of
motorbikes. Note that the fraction of motorbikes can be expressed as fraction
of the flow and fraction of the density. From a practical point of view, one
might consider the effects of certain fraction of drivers being stimulated to
change to a motorbike. This means a certain fraction of the flow is changing
modes, and hence we are considering a fraction of the flow.

Figure figure 5a shows iso-flow lines if we add up flow of cars and
motorbikes. As side note, straight lines from the origin represent the same
ratio of density of motorbikes and density of cars. Since we are interested in
the fraction of flows, the “iso-fraction lines” (i.e., lines over which the
fraction of flows is equal) are different. They are shown in figure 5b.

a Iso flow lines

b Fraction of car traffic

c Capactiy as function of car traffic

Figure 5: Capacity

For each of this fractions, we find the point where the total flow is
maximized. This is the capacity point for that fraction. The resulting
capacity curve as function of fraction of cars is shown in figure 5c. (The
curve is slightly fluctuating due to the numerical nature it has been
created.) The extremes are not surprising: at 100% car traffic, the capacity
is 2000 veh/h as set in the fundamental diagram. At 0% car traffic, and hence
100% motorbike traffic, the capacity is 4000 motorbikes/h, which is caused by
the fact that motorbikes can drive side-by-side, which hence doubles the
capacity. It could be expected that the capacity gradually decreases with
higher car fractions. However, at around 70% car traffic, the graph shows
another capacity than the other gradually decreasing trend. This is because
the capacity state is in another phase. For the states with high fraction of
cars, the capacity state is with all cars and motorbikes in capacity in the
main lane. For low car fraction, the capacity state is with all main lanes at
capacity. Recall that the filtering lane can only be used if the speed in the
main lane is below 50 km/h. For these speed, the flow reduces and to
compensate the flow in the filtering lane should be high. For very low
fraction of motorbikes, there are simply not enough motorbikes to fill this
lane. For higher fractions of motorbikes, the flow across all lanes reduces
too much. However, at a moderately high motorbike fractions, the highest flows
are found in a two-pipe regime, phase 3. In these conditions, the speed for
motorbikes is higher than the speed for cars.

##  3 Dynamics

In this section we describe the dynamics of the model. We first indicate the
way we solve the model, and then show the outcomes of the working in a case
study. We also use the case study to extract some insights on the effect of
the fraction of motorbikes.

###  3.1 Dynamic model

As indicated in the introductions, most recurrent bottlenecks are at one
location. From a modelling persepective, a dynamic model in Lagrangian
coordinates (i.e., coordinates that move with traffic [Leclercq, 2007,
Leclercq et al., 2007]) might be preferred. This has already been developed
[Wierbos et al., 2019]. However, from a practical perspective on applying this
to a bottleneck (fixed in space), this is not convenient to work with.
Vertical queuing approaches are not useful either. If chosen, this would (1)
not provide information on the location of the queue, and (2) not do justice
to the delicate balance in speeds in the queue between the classes. Therefore,
we rather prefer a macroscopic model in which cells which remain fixed in
space.

As input to this model we use the traffic demand at the beginning of boundary
1, as well as capacity constraints (lane restrictions) inside the model. The
model should then predict the future traffic conditions. The hard part is that
there are two pairs of fundamental diagrams – i.e., both classes compete for
the same scarce space. For this, a generic solution is available.

Let’s consider system from a more formal mathematical view. We have a
conservation of vehicles for each class, so in equations:

$\begin{cases}\dfrac{\partial k_{c}}{\partial t}+\dfrac{\partial
k_{c}v_{c}(k_{c},k_{m})}{\partial x}&=0\\\ \dfrac{\partial k_{m}}{\partial
t}+\dfrac{\partial k_{m}v_{m}(k_{c},k_{m})}{\partial x}&=0\end{cases}$ (8)

This can also be expressed in a vectorial form:

$\dfrac{\partial V}{\partial t}+A(V)\dfrac{\partial V}{\partial x}=0,$ (9)

with $V=\begin{pmatrix}k_{c},k_{m}\end{pmatrix}$. Then, $A(V)$ is

$A(V)=\begin{pmatrix}v_{c}+k_{c}\dfrac{\partial v_{c}}{\partial
k_{c}}&k_{c}\dfrac{\partial v_{c}}{\partial k_{m}}\\\ k_{m}\dfrac{\partial
v_{m}}{\partial k_{c}}&v_{m}+k_{m}\dfrac{\partial v_{m}}{\partial
dens_{m}}\end{pmatrix}$ (10)

For reasons of convenience, and reference to hyperbolic papers, we simplify
the notation to:

$A(V)=\begin{pmatrix}\beta_{1}&\alpha_{1}\\\
-\alpha_{2}&\beta_{2}\end{pmatrix}$ (11)

The eigenvalues of A(V) give the (characteristic) wave speeds. For the systems
as presented, we have the following two eigenvalues

$\begin{cases}\lambda_{1}&=\dfrac{1}{2}\left(\beta_{1}+\beta_{2}-\sqrt{D}\right)\\\
\lambda_{2}&=\dfrac{1}{2}\left(\beta_{1}+\beta_{2}+\sqrt{D}\right)\end{cases}$
(12)

with $D=(\beta_{1}-\beta_{2})^{2}+4\alpha_{1}\alpha_{2}$

We aim to get the flow at a boundary between two cells. At this location,
there will be 4 speeds which might be relevant, being $\lambda_{1}$ and
$\lambda_{2}$ from the upstream cell (denoted $\lambda_{1}^{g}$ and
$\lambda_{2}^{g}$) and $\lambda_{1}$ and $\lambda_{2}$ from the downstream
cell, denoted $\lambda_{1}^{y}$ and $\lambda_{2}^{u}$. We now take the minimum
and maximum of these 4 speeds, and call them $Su$ and $Sd$. Note this is a
default name giving within a HLL scheme, and the $u$ and $d$ do not refer to
the downstream and upstream cell.

$\displaystyle Su$
$\displaystyle=\min\left(\lambda_{1}^{g};\lambda_{2}^{g};\lambda_{1}^{u};\lambda_{2}^{u}\right)$
(13) $\displaystyle Sd$
$\displaystyle=\max{\lambda_{1}^{g};\lambda_{2}^{g};\lambda_{1}^{u};\lambda_{2}^{u}}$
(14)

A physical interpretation is that $Sd$ is the speed of the fastest traffic
stream and $Su$ is the wave speed with the lowest speed. Hence, $Sd>0$, and
the sign of $Su$ depends on the traffic conditions.

We now aim to determine the flow over the boundaries, $Q$ (note we look for 2
flow values, one per class). The flows inside the cells are denoted $Qu$ for
the upstream cell and $Qd$ for the downstream cell. We determine the two
factors, $Su$ and $Sd$. $Su$ is the derivative of the flow to (total) density
at the densities in the upstream and downstream cell. $Sd$ is the maximum of
the speed of both classes in both the upstream and downstream cell (i.e.,
maximum of 4 numbers).

A key aspect in our computation scheme, and important for the accuracy is that
we determine $Su$ and $Sd$ _for each time step and for each boundary_. Hence
we do not globally see the ranges possible for $Su$ and $Sd$, but we stay as
close as possible to the values at that particular boundary. Numerically, this
is a bit more time consuming, but with derivatives for the speeds determined
on beforehand, this is a look-up operation which can be easily performed.

We now use the Harten-Lax-van Leer (HLL) Riemann Solver [Harten et al., 1983].
The principle is that only the fasest and slowest wave are being considered
[Toro et al., 1994, Toro, 2013], which we find from $Su$ and $Sd$. Using
these, we can define a $Q_{\textrm{HLL}}$:

$Q_{\textrm{HLL}}=\frac{Qu*Sd-
Qd*Su+Sd*Su*\left(Kagg_{\textrm{downstream}}-Kagg_{\textrm{upstream}}\right)}{Sd-
Su}$ (15)

Note that this equation weights the flows upstream and downstream with $Su$
and $Sd$.

Then, finally, we find the flow over the boundary b, depending on the values
of $Su$ and $Sd$:

$Q=\begin{cases}Qu&\textrm{if}Su>=0\\\ Qd&\textrm{if}Sd<=0\\\
Q_{HLL}&\textrm{otherwise}\end{cases}$ (16)

For the flow at the boundaries, we use the demand as inflow (externally
ensuring there is no congestion at the first cell), and the flow in the last
cell as outflow (ensuring there is no downstream congestion by choosing the
bottleneck within the simulated section)

###  3.2 Illustration of the working

This section shows how the model works. We first present the case we present,
followed by the resulting traffic operations for the case. We will then bring
the results to a more generic level and discusses the generic patterns.

####  3.2.1 Case set up

For the case study, we consider a road with a lane drop bottleneck. The 4 lane
section becomes a 3 lane section at which goes from 4 lanes. The demand is
modelled on the morning peak demand of the A4 northbound motorway near Delft.
After 2.5 h, the demand is reduced to 0 and the network can empty. We take the
total demand and consider a fraction of that demand is transferred to
motorbikes. The fractions considered are: [1 0.99 0.98 0.97 0.96 0.95 0.9 0.8
0.7 0.6 0.5 0.4 0.3 0.2 0.1 0]. An example of the demand profile is shown in
figure 6.

Figure 6: Demand profile: for 60% car traffic and 40% motor motorbike traffic

We choose a time step of 10 seconds, and a (free-flow speed matching) cell
length of 222 meters. The total network is 8,000 m and the lane drop is at
6,400 m.

####  3.2.2 Model results

Figure 7 shows the densities and speeds of the two classes for various time
instances. For reasons of convenience, in our simulation we used not the
tightest bounds for the $Sd$ and $Su$; this induces some numerical errors, but
overall it does suffice to show the impact of the influence of motorbikes and
the resulting traffic situation. For both classes, the head of the jam is at
the same location (namely at the bottleneck location), and it starts at the
same time; also the tail is at the same location. This can be understood from
a physical point of view since regardless of the fraction of motorbikes, they
need to slow down whenever the speed of cars is low. The speed of the
motorbikes in the queue is different from the speed of the cars. This is also
understandable from the point of view of the fundamental diagrams, and from
physical interpretation. Motorbikes can move in between the queued cars.

Figure 7: Traffic states at various time instances. Hight indicates density
(cars to positive y-direction, motorbikes to negative y-direction). The color
of the (class-specific) bar indicates (class-specific) speed

The dynamics lead to class-specific travel times for particular departure
times. Note we present here the full travel times for one vehicle, and not the
instanteneous travel times (i.e., the travel time if a vehicle would
experience all the class-specific speeds as measured at one moment in time).
These are shown in figure 8a, for a 5% fraction of motorbikes. They increase
and decrease both in a similar way, but at different speeds. Note that a base
line in the figure, a 0.1h travel time, is the free flow travel time for the
segment.

a Travel times as function of departure time at a 5% motorbike fraction

b Overall travel times

c Mean travel times as function of motorbike fraction

Figure 8: Travel times

###  3.3 Insights on effects of fraction of motorbikes

The total time spent can be found by taking the weigted sum of the travel
times per class. This is shown in figure 8b

Weighting this figure with the amount of vehicles experiencing this travel
time, we can assess the mean travel times per class as function of the
fraction of motorbikes in the traffic stream. This is depicted in figure 8c.
There we see that higher motorbike percentages generally lead to lower travel
times, as expected. Surprisingly, the travel times for motorbikes and cars are
the same from around 25% fraction of flow as motorbike traffic. In the
considered case, the travel times have almost reduced to the free flow travel
time. Interestingly, this also holds in case of even higher demands.

For instance, let’s take the thought experiment of a case with much higher
flows and higher motorbike fractions ($>25\%$). There will be congestion
(since there are higher flows), but since the motorbike fraction is high, we
will see a congested state in phase 1 (see figure 2). In fact, traffic slows
down and there will be motorbikes in the filter lane. However, not all
motorbikes will fit in the filter lane, hence there are some motorbikes in the
main lines. Therefore, they will choose the fastest lane of the filter lane
and the main line, which therefore will operate at the same speed. Since both
types of lane operate at the same speed, the type of vehicles will also move
at the same speed.

##  4 Discussion and conclusions

This paper has introduced a model for multiple vehicle classes. In addition to
earlier works, it has explicitly considered traffic operations that is
partially bound to the main lines, and partially not when motorbikes can
filter through the lanes. Based on these assumptions, several phases of
traffic were derived. Also fundamental diagrams were developed, one for both
classes with density of both classes as independent variables. The capacity
was increasing with the fraction of motorbikes. Surprisingly, the phase of
capacity point depends on the fraction of motorbikes: this can be a 1 pipe or
2 pipe regime.

A numerical scheme to solve this system has been presented, as well as a case
study in which we show the traffic dynamics. This approach has shown that the
model can be solved with a cell based flow scheme, using dedicated techniques
adapted from numerical mathematics. The numerical scheme itself is useful and
can be adapted to any combinations of classes in a macroscopic traffic model.

Application to a case study showed how to model can illustrate the speeds and
travel times for two classes. Increasing the motorbike fraction decreases
travel times for both fractions, since the capacity increases. For this
reason, a policy could be to increase the motorbike fraction. At lower
motorbike fractions, there is an individual incentive to change to a motorbike
too: the travel time is lower because they can filter through congestion. For
higher fractions of motorbikes, the collective gain of a change from car to
motorbike still remains present (i.e., collectively, all travellers are better
of if someone changes from car to motorbike), but the comparative advantage
disappears (i.e., the travel time gain from a mode shift is the same for the
person changing from car to motorbike as for someone else not changing). In
this case, additional measures to stimulate shifting are more likely needed.

## References

  * Ambarwati et al. [2014] Lasmini Ambarwati, Adam J Pel, Robert Verhaeghe, and Bart van Arem.  Empirical analysis of heterogeneous traffic flow and calibration of porous flow model.  _Transportation research part C: emerging technologies_ , 48:418–436, 2014.
  * Chanut and Buisson [2003] Stéphane Chanut and Christine Buisson.  Macroscopic model and its numerical solution for two-flow mixed traffic with different speeds and lengths.  _Transportation research record_ , 1852(1):209–219, 2003.
  * Daganzo [1994] C. F. Daganzo.  The Cell Transmission Model: a Dynamic Representation of Highway Traffic Consistent With the Hydrodynamic Theory.  _Transportation research part B_ , 28B(4):269–287, 1994.
  * Daganzo [2002] Carlos F. Daganzo.  A behavioral theory of multi-lane traffic flow. part i: Long homogeneous freeway sections.  _Transportation Research Part B: Methodological_ , 36(2):131 – 158, 2002.  ISSN 0191-2615.
  * Dienst Water, Verkeer en Leefomgeving [2015] Dienst Water, Verkeer en Leefomgeving.  Capaciteitswaarden infrastructuur autosnelwegen (capacity values infrastructure freeways, in dutch).  Technical report, Rijkswaterstaat, Dutch Road Authority, 2015.
  * Gashaw et al. [2018] Sosina Gashaw, Paola Goatin, and Jérôme Härri.  Modeling and analysis of mixed flow of cars and powered two wheelers.  _Transportation research part C: emerging technologies_ , 89:148–167, 2018.
  * Harten et al. [1983] Amiram Harten, Peter D Lax, and Bram van Leer.  On upstream differencing and godunov-type schemes for hyperbolic conservation laws.  _SIAM review_ , 25(1):35–61, 1983.
  * Hoogendoorn and Bovy [1999] SP Hoogendoorn and PHL Bovy.  Multiclass macroscopic traffic flow modelling: a multilane generalisation using gas-kinetic theory.  In _14th International Symposium on Transportation and Traffic TheoryTransportation Research Institute_ , 1999.
  * Jin and Laval [2018] Wen-Long Jin and Jorge Laval.  Bounded acceleration traffic flow models: A unified approach.  _Transportation Research Part B: Methodological_ , 111:1–18, 2018.
  * Kesting et al. [2007] A. Kesting, M. Treiber, and D. Helbing.  General lane-changing model mobil for car-following models.  _Transportation Research Record , Journal of the Transportation Research Board, No. 1999_ , pages 86–94, 2007.
  * Laval and Daganzo [2006] J. A. Laval and C. F. Daganzo.  Lane-changing in traffic streams.  _Transportation Research Part B: Methodological_ , 40(3):251–264, 2006.  doi: DOI: 10.1016/j.trb.2005.04.003.
  * Laval and Leclercq [2013] Jorge A Laval and Ludovic Leclercq.  The hamilton–jacobi partial differential equation and the three representations of traffic flow.  _Transportation Research Part B: Methodological_ , 52:17–30, 2013.
  * Leclercq [2007] Ludovic Leclercq.  Hybrid approaches to the solutions of the “lighthill–whitham–richards” model.  _Transportation Research Part B: Methodological_ , 41(7):701 – 709, 2007.  ISSN 0191-2615.  doi: http://dx.doi.org/10.1016/j.trb.2006.11.004.  URL http://www.sciencedirect.com/science/article/pii/S0191261506001433.
  * Leclercq et al. [2007] Ludovic Leclercq, Jorge Andres Laval, and Estelle Chevallier.  The lagrangian coordinates and what it means for first order traffic flow models.  In _Transportation and Traffic Theory 2007. Papers Selected for Presentation at ISTTT17Engineering and Physical Sciences Research Council (Great Britain) Rees Jeffreys Road FundTransport Research FoundationTMS ConsultancyOve Arup and Partners, Hong KongTransportation Planning (International) PTV AG_ , 2007.
  * Leclercq et al. [2016] Ludovic Leclercq, Florian Marczak, Victor L Knoop, and Serge P Hoogendoorn.  Capacity drops at merges: analytical expressions for multilane freeways.  _Transportation Research Record_ , 2560(1):1–9, 2016.
  * Lee et al. [2012] Tzu-Chang Lee, John W Polak, Michael GH Bell, and Marcus R Wigan.  The kinematic features of motorcycles in congested urban networks.  _Accident Analysis & Prevention_, 49:203–211, 2012.
  * Logghe and Immers [2008] S Logghe and Lambertus H Immers.  Multi-class kinematic wave theory of traffic flow.  _Transportation Research Part B: Methodological_ , 42(6):523–541, 2008.
  * Nagalur Subraveti et al. [2019] Hari Hara Sharan Nagalur Subraveti, Victor L Knoop, and Bart van Arem.  First order multi-lane traffic flow model–an incentive based macroscopic model to represent lane change dynamics.  _Transportmetrica B: Transport Dynamics_ , 7(1):1758–1779, 2019.
  * Nair et al. [2011] Rahul Nair, Hani S Mahmassani, and Elise Miller-Hooks.  A porous flow approach to modeling heterogeneous traffic in disordered systems.  _Procedia-Social and Behavioral Sciences_ , 17:611–627, 2011.
  * Newell [2002] G.F. Newell.  A simplified car-following theory: a lower order model.  _Transportation Research Part B: Methodological_ , 36(3):195–205, 2002.
  * Ngoduy and Liu [2007] D Ngoduy and R Liu.  Multiclass first-order simulation model to explain non-linear traffic phenomena.  _Physica A: Statistical Mechanics and its Applications_ , 385(2):667–682, 2007.
  * Schakel et al. [2012] W. J. Schakel, V.L. Knoop, and B. Van Arem.  Lmrs: Integrated lane change model with relaxation and synchronization.  _Transportation Research Record_ , 2316:47–57, 2012.
  * Toro [2013] Eleuterio F Toro.  _Riemann solvers and numerical methods for fluid dynamics: a practical introduction_.  Springer Science & Business Media, 2013.
  * Toro et al. [1994] Eleuterio F Toro, Michael Spruce, and William Speares.  Restoration of the contact surface in the hll-riemann solver.  _Shock waves_ , 4(1):25–34, 1994.
  * Treiber et al. [2000] M. Treiber, A. Hennecke, and D. Helbing.  Congested traffic states in empirical observations and microscopic simulations.  _Physical Review E_ , 62(2):1805, 2000.
  * Van Lint et al. [2008] JWC Van Lint, Serge P Hoogendoorn, and Marco Schreuder.  Fastlane: New multiclass first-order traffic flow model.  _Transportation Research Record_ , 2088(1):177–187, 2008.
  * van Wageningen-Kessels et al. [2014] Femke van Wageningen-Kessels, Hans Van Lint, Serge P Hoogendoorn, and Kees Vuik.  New generic multiclass kinematic wave traffic flow model: Model development and analysis of its properties.  _Transportation Research Record_ , 2422(1):50–60, 2014.
  * Wierbos et al. [2019] MJ Wierbos, VL Knoop, FS Hänseler, and SP Hoogendoorn.  A macroscopic flow model for mixed bicycle–car traffic.  _Transportmetrica A: Transport Science_ , (just-accepted):1–14, 2019.
  * Wong and Wong [2002] GCK Wong and SC Wong.  A multi-class traffic flow model–an extension of lwr model with heterogeneous drivers.  _Transportation Research Part A: Policy and Practice_ , 36(9):827–841, 2002.