## 4 Implementation and Deployment
### Software Modules and Prototyping  
In order to address the above-mentioned decision/optimization problem, we considered both algorithms with guarantees and heuristics known in the literature. Eventually, we opted to exploit and customize the implementation of a solving algorithm provided as part of the Google OR-Tools suite ([[https://developers.google.com/optimization](https://developers.google.com/optimization)]([https://developers.google.com/optimization](https://developers.google.com/optimization)) (accessedon on 25 March 2024)), since this framework is known to perform very well on real-world inputs of the model that we have considered above. In more detail, Google OR-Tools, developed by Google's Operations Research team, is a comprehensive suite of open-source software tools designed to tackle a broad spectrum of optimization challenges. Renowned for its versatility, the platform offers a rich set of libraries and algorithms that empower users to model and solve intricate combinatorial optimization and constraint satisfaction problems. One of the standout features of Google OR-Tools is its extensive range of applications, covering diverse domains such as linear programming, integer programming, vehicle routing, job scheduling, and constraint programming. This toolkit is known to be used by researchers, developers, and practitioners seeking effective solutions in fields ranging from logistics and transportation planning to resource allocation and scheduling. The framework is designed for accessibility and compatibility, supporting many popular programming languages (e.g., Python or C++). This support ensures that a wide community of users, both in academia and in industry, can leverage its capabilities. Additionally, the toolkit is known for its scalability, enabling the efficient handling of large-scale problem instances, a crucial aspect in addressing real-world complexities. In what follows, we describe how the solver has been customized and integrated into the EMERGE system and provide details on how services provided by the EMERGE system are currently implemented in the advanced prototype under test. The implementation adheres to the Edge-Cloud Computing paradigm, and computational efforts are divided between modules: EGC (with a cloud component, a set of elastic servers), MEC (multi-access edge computing), and OBUs (on-board units of vehicles). Specifically, in EGC, we developed a software module named CARF (Critical Avoidance Route Finder), which is responsible for the computation of routes for the vehicles on the basis of an input road map of an area, users' requests (with associated time windows), and the structure of the fleet of vehicles. This computation is performed during the _vehicle task planning_ phase. Since the level of detail of available maps of geographical areas can be unnecessarily high for the purpose of our computation, the road map is subject to preprocessing to be converted into a complete directed graph \(G\)in which the nodes are only depot and users' locations. Directed edges connecting each pair of nodes are associated with the distance (or average travel time) between two users' locations, which are computed by an implementation of [PERSON]'s algorithm by another component, namely, the SUMO toolkit, which runs on MEC. SUMO is a software tool for urban mobility that can be used both for simulation purposes and as a toolbox to compute the parameters of maps treated in intelligent transport systems like EMERGE. In more detail, SUMO (Simulation of Urban Mobility) is open-source traffic simulation software developed for the modeling and analysis of urban mobility and transportation systems. It provides a comprehensive platform for simulating various aspects of traffic flow within urban environments and, thus, is considered a valuable tool for researchers and practitioners in the field of transportation engineering to test algorithms in a simulated realistic environment.