Firdose Saeik

Marios Avgeris

Dimitrios Spatharakis

Nina Santi

Dimitrios Dechouniotis

John Violos

Aris Leivadeas

Nikolaos Athanasopoulos

Nathalie Mitton

Symeon Papavassiliou

Task Offloading in Edge and Cloud Computing: A Survey on Mathematical, Artificial Intelligence and Control Theory Solutions

Keywords: Edge Computing, Task Offloading, Resource Allocation, Control Theory, Mathematical Optimization, Artificial Intelligence !

published or not. The documents may come

INTRODUCTION

Wireless communications have come a long way over the last 40 years allowing a plethora of new applications and services to proliferate. This wireless growth has revolutionized the way humans and machines interact with each other and between them. Specifically, as wireless technologies evolve, the data rate, mobility, coverage and spectral efficiency rapidly increase [START_REF] Gupta | A survey of 5g network: Architecture and emerging technologies[END_REF], permitting radical changes on the grounds of our society and our personal communication. At the same time, with the advent of the Internet of Things (IoT) and emergent applications such as Virtual Reality (VR) and driverless cars, the demand for wireless communications with even higher-speeds and ubiquitous connectivity becomes a necessity that requires more efficient wireless communication systems.

5G is an exemplary wireless communication system that tries to minimize the gap between the new emergent applications and their high-performance requirements. Specifically, 5G promises the support of increased bandwidth Athanasopoulos is with the School of Electronics, Electrical Engineering and Computer Science, Queen's University, Belfast, UK. E-mails: firdose.saeik.1@ens.etsmtl.ca, aris.leivadeas@etsmtl.ca, violos@mail.ntua.gr {mavgeris, dspatharakis, dde-chou}@netmode.ntua.gr,{nina.santi, nathalie.mitton}.inria.fr, n.athanasopoulos@qub.ac.uk, papavass@mail.ntua.gr and connection density, as well as low-latency communication, with the induction of the enhanced mobile broadband (eMMB), the massive machine-type communication (mMTC) and the ultra-reliable low latency communication (uRLLC) services [START_REF] Series | Imt vision-framework and overall objectives of the future development of imt for 2020 and beyond[END_REF]. However, even though the performance of the wireless access networks continues to increase, allowing the support of new and more intelligent applications, the end devices cannot always cope with the strict computational requirements of these resource voracious applications.

Inevitably, the answer to where we can find an increased availability of computational resources, accompanied with the necessary reliability to offer a seamless communication for the wireless applications, always lies around the Cloud. The Cloud is a well tested and used solution that can extend the resource capabilities of the end devices with powerful data center topologies. Besides, Cloud is well equipped with the appropriate automation tools and platforms in order to offer the necessary transparency to the end devices, while hiding the complexity and the logistic details of this resource extension.

Hence, the practice of offloading computation intensive tasks of resource-intensive applications from the end devices to a centralized Cloud infrastructure, is a well explored solution [START_REF] Altamimi | Energy cost models of smartphones for task offloading to the cloud[END_REF] [START_REF] Ma | When mobile terminals meet the cloud: computation offloading as the bridge[END_REF]. Nonetheless, as the focus of new applications turned towards high throughput and low latency communications, the Cloud started to expose its inherent limitations. The long distance between the end devices and the Cloud infrastructure, the use of a best-effort and unreliable intermittent transport network, the cost of traversing the backhaul network and the increased security surface throughout this long communication path, created the need for alternative solutions.

There is no question, that these substitute solutions should introduce a more distributed infrastructure that will enhance the local efficiency by bringing Cloud-like capabilities closer to the end devices, at the edge of the network. This is exactly how the term Edge Computing was coined. Even though, multiple flavors of the Edge Computing exist (e.g., Fog Computing, Mobile Cloud Computing, Cloudlet, Mobile Edge Computing), they all agree that additional and existing computational and networking resources at the edge of the network should be inserted and regrouped.

This new infrastructural component that creates an additional resource layer between the end devices and the Cloud, is able to reduce the increased bandwidth consumption at the backhaul, transport and Cloud networks and also reduce the communication delay and support applications with real time requirements. In particular, end devices are now capable of offloading their resource-intensive tasks to a nearby Edge device, thus minimizing the overall execution time without adding excessive communication paths towards a distant Cloud infrastructure. This solution, called task offloading, allows enhancing the user's experience by providing lower latency, better reliability and improved energy efficiency for battery-powered devices.

Even though the notion of Edge Computing exists for almost a decade, the problem of task offloading has only recently started to be investigated. Nonetheless, it has gained a lot of attention from the industry and the academic community, leading to the publication of many scientific and research papers over the last couple of years. A great effort has also been made to classify and categorize the different types of task offloading by a number of surveys and tutorials.

These surveys focused on multiple aspects such as architecture [START_REF] Yu | A survey on the edge computing for the internet of things[END_REF]- [START_REF] Jiang | Toward computation offloading in edge computing: A survey[END_REF], resource allocation [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Hong | Resource management in fog/edge computing: a survey on architectures, infrastructure, and algorithms[END_REF], communication [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Wang | A survey on mobile edge networks: Convergence of computing, caching and communications[END_REF], [START_REF] Rodrigues | Machine learning meets computation and communication control in evolving edge and cloud: Challenges and future perspective[END_REF], caching [START_REF] Wang | A survey on mobile edge networks: Convergence of computing, caching and communications[END_REF], mobility management [START_REF] Mach | Mobile edge computing: A survey on architecture and computation offloading[END_REF], [START_REF] Wang | A survey on mobile edge networks: Convergence of computing, caching and communications[END_REF], [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF], integration with wireless, IoT and 5G technologies [START_REF] Yu | A survey on the edge computing for the internet of things[END_REF], [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Pham | A survey of multi-access edge computing in 5g and beyond: Fundamentals, technology integration, and state-of-theart[END_REF], [START_REF] Yousefpour | All one needs to know about fog computing and related edge computing paradigms: A complete survey[END_REF], decision on task offloading [START_REF] Mach | Mobile edge computing: A survey on architecture and computation offloading[END_REF], [START_REF] Rodrigues | Machine learning meets computation and communication control in evolving edge and cloud: Challenges and future perspective[END_REF], application partitioning [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF], [START_REF] Lin | Computation offloading toward edge computing[END_REF], application models [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF], [START_REF] Shan | A survey on computation offloading for mobile edge computing information[END_REF], [START_REF] Ai | Edge computing technologies for internet of things: a primer[END_REF], application scenarios [START_REF] Yu | A survey on the edge computing for the internet of things[END_REF], [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Wang | A survey on mobile edge networks: Convergence of computing, caching and communications[END_REF], [START_REF] Lin | Computation offloading toward edge computing[END_REF], [START_REF] Khan | Edge computing: A survey[END_REF], [START_REF] Mendiboure | Edge computing based applications in vehicular environments: Comparative study and main issues[END_REF] and algorithms [START_REF] Rodrigues | Machine learning meets computation and communication control in evolving edge and cloud: Challenges and future perspective[END_REF], [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF], [START_REF] Ai | Edge computing technologies for internet of things: a primer[END_REF].

In this survey paper, we also attempt to study the task offloading problem, emphasizing, however, on novel algorithmic and control approaches. Thus, in contrast with recent surveys on task offloading, our contribution is twofold; firstly, we provide a comprehensive survey of task offloading within three subfields: (i) Optimization algorithms (ii) Artificial Intelligence techniques and (iii) Control theory; secondly, a categorization of the above techniques is provided based on their objective function, the granularity level, the use of the Edge and/or Cloud infrastructures and the incorporation of mobility in the overall solution, depending on the type of the edge devices.

This paper is organized as follows. Section 2 presents an overview of the various computing paradigms and relevant technologies evolved in the last decade, along with some potential use cases for task offloading of interactive applications. Following, Section 2.2.6 formally defines the task offloading problem along with the challenges involved. Section 4 covers different task offloading solutions that have been recently proposed, emphasizing on the mathematical models, optimization techniques, machine learning algorithms and control theory approaches. Section 5 presents the open challenges. Finally, we conclude and provide suggestions for future work in Section 6.

COMPUTING PARADIGMS: OVERVIEW & USE CASES

As already discussed, over the last two decades Cloud Computing has been the dominant service delivery paradigm. However, modern applications come with strict requirements which cannot be met via execution in remote Cloud resources (e.g., ultra low delay). Thus, the current trend of resource provisioning is to augment the edge of the network with computing capabilities. Towards this direction, the emerging service model of Edge Computing promises to mitigate the limitations of Cloud Computing. To clarify the ambiguity behind the terminology and architectures used in the literature, this section provides the fundamental elements of the various modern computing infrastructures such as Cloud Computing, Mobile Cloud Computing, Mobile Edge Computing and Fog Computing. Furthermore, emerging use cases concerning task offloading at the Edge and/or Cloud are presented.

Modern Computing Paradigms

Cloud Computing

Cloud Computing has revolutionized the Internet and completely transformed the way that applications, software and resources are offered to the end users. According to NIST [START_REF] Mell | The nist definition of cloud computing[END_REF], Cloud Computing is defined as "a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction". The Cloud paradigm brings unique benefits. In particular, with this model, computing resources are offered to the end users on demand, in a selfservice fashion, independent of the type of the device and the location of the user. Furthermore, the computational and network resources available at the Cloud can be shared and dynamically scaled. This is achieved by adopting virtualization as the enabling technology of the Cloud, allowing the resources to be allocated and released with minimal interaction, while users pay for the service they consume according to its usage [START_REF] Mei | A tale of clouds: Paradigm comparisons and some thoughts on research issues[END_REF]. Despite bringing numerous advantages, Cloud Computing poses some serious limitations. These limitations, although they exist since the beginning of the Cloud, they did not surface until recently. The reason is that new communication technologies, new applications and services have increased the data volume generated and at the same time also increased the demands for low latency communications. Hence, offering Cloud Computing resources in a centralized manner far away from the users, can create serious delay bottlenecks. This delay can be disastrous for mission critical applications, such as health related applications, or timecritical applications like real-time control in manufacturing. Another disadvantage is that forwarding the traffic from the end devices to the Cloud, usually involves traversing the core Internet. This can create three serious problems. Firstly, sending hundreds of TB of data from the devices to the Cloud can certainly create traffic hotspots in the Internet infrastructure, which can further affect the communication delay. Secondly, the existence of various different networks and administrative domains between the Cloud and the front-end devices, can create an unstable and intermittent network connectivity. Finally, the data, before being sent to the Cloud, probably have to traverse a backhaul network (e.g., cellular and satellite). This backhaul network may be costly and lossy, creating additional problems to this endto-end communication. Of course, there may be additional limitations, regarding for example the security aspects of the communication, since this end device-to-Cloud communication increases the surface of threat. However, in the particular survey we emphasize only on the networking and data processing limitations.

Mobile Cloud Computing

Apparently, Cloud Computing can be used for offloading tasks from mobile devices to a more powerful infrastructure. This approach created the notion of Mobile Cloud Computing (MCC). A Mobile Cloud is defined as a mobile device that can execute a resource-intensive application on a distant high-performance compute server or compute cluster and support thin client user interactions with the application over the Internet [START_REF] Fernando | Dynamic mobile cloud computing: Ad hoc and opportunistic job sharing[END_REF]- [START_REF] Enzai | A taxonomy of computation offloading in mobile cloud computing[END_REF]. MCC can be thus described as the integration of mobile devices with Cloud Computing technology. It offers computing, storage, services and applications over the Internet and the typical advantages found in a Cloud Computing environment such as cost reduction and resource flexibility. In addition, MCC can potentially save energy for mobile users by offloading high-energy consuming applications to the Cloud [START_REF] Mei | A tale of clouds: Paradigm comparisons and some thoughts on research issues[END_REF].

However, such an approach still carries the typical Cloud limitations presented above. Thus, the concept of MCC can be modified to offer the necessary Cloud resources closer to the mobile devices. This new flavor of MCC is called Cloudlet [START_REF] Satyanarayanan | The case for vm-based cloudlets in mobile computing[END_REF] and it allows the mobile devices to offload their workload to a local "mini cloud", consisting of multiple multi-core hardware equipment directly connected to an Access Point (AP) or Base Station (BS). Therefore, Cloudlet can be seen as a trusted, resource-rich computer or computer cluster, which is connected to the Internet and is available for use from mobile devices in proximity. Due to the sheer proximity of Cloudlet, sharp interactive response for immersive applications that magnify human cognition is much easier to attain. Instead of depending on a remote server, a mobile user instantiates a "Cloudlet" on the local network and uses it via a wireless LAN. These proposed Cloudlets can be placed in common areas such as railway stations, restaurants and coffee shops, so that mobile devices could connect to them and act as a thin client. This opposes to the use of a centralized Cloud server that would raise issues of latency and bandwidth.

Fog Computing

Fog Computing is another approach for expanding the Cloud Computing concept to the edge of the network, thus enabling a new range of apps and services [START_REF] Bonomi | Fog computing and its role in the internet of things[END_REF], [START_REF] Antonio | Cisco delivers vision of fog computing to accelerate value from billions of connected devices[END_REF]. Fog Computing was the first industry initiative to explicitly define an architecture for applying utility Cloud at the edge of the network, and was standardized by the OpenFog consortium [START_REF] Consortium | Openfog reference architecture for fog computing[END_REF]. Specifically, the term Fog Computing was coined by Cisco in 2012 and is defined as "the process of extending Cloud Computing capabilities at the edge of the network. Fog incorporates computing, storage and network resources close to the IoT layer to facilitate the data processing." [START_REF] Bonomi | Fog computing and its role in the internet of things[END_REF], [START_REF] Cisco | Fog computing[END_REF]. From the previous definition it becomes evident that Fog Computing was introduced in order to facilitate the monitoring, control and analysis of IoT devices in real time, removing the long communication delay between the IoT devices and the central analytics application servers in a remote Cloud.

Hence, Fog Computing expands Cloud Computing by installing localized computing facilities at the user's premises, delivering Cloud data to mobile users with fast local connections. The aim is to process in part workload and services locally on Fog devices (such as hardened routers, switches, IP video cameras), rather than being transmitted to the Cloud [START_REF] Antonio | Cisco delivers vision of fog computing to accelerate value from billions of connected devices[END_REF]. As such, Fog Computing introduces an intermediate infrastructure layer between mobile users and Cloud, in order to support low-latency and high-speed services. Moreover, Fog Computing can support and promote applications that do not suit the Cloud [START_REF] Bonomi | Fog computing: A platform for internet of things and analytics[END_REF], such as i) applications involving very low and consistent latency, ii) geographically distributed systems such as pipeline control and sensor networks iii) mobile applications like smart connected vehicles and iv) large-scale adaptive control systems, such as smart energy delivery and smart traffic lights. As such, in the literature, the typical applications usually combined with the Fog Computing are mostly IoT related [START_REF] Chiang | Fog and iot: An overview of research opportunities[END_REF]- [START_REF] Soleymani | A secure trust model based on fuzzy logic in vehicular ad hoc networks with fog computing[END_REF], cache networks [START_REF] Elbamby | Proactive edge computing in latency-constrained fog networks[END_REF] and immersive media services (AR/VR, a 360-degree video and free-viewpoint video) applications [START_REF] You | Fog computing as an enabler for immersive media: Service scenarios and research opportunities[END_REF].

Edge Computing

Fog Computing has managed to bypass many of the limitations of Cloud Computing, increasing the performance of IoT and mobile applications in terms of task offloading. However, stringent requirements such as ultra-low latency, user experience, stability and high reliability have created the need for even higher localized information near end users. Thus, Edge Computing is another similar concept, that can be defined as a network layer encompassing end devices and their users, in order to provide local computing capabilities on sensors, smart meters or other networkaccessible devices. Following the same mentality where Cloud can be found in a distant location far away from the end user and Fog can be found closer to the end user, Edge Computing has also been associated with the term Mist Computing. As the name suggests, Mist Computing covers the computational and communication capacity available on the same level with the end devices. According to NIST [START_REF] Iorga | The nist definition of fog computing[END_REF], Mist Computing is defined as a lightweight and primitive type of Fog Computing which resides at the very edge of the network, bringing the layer of Fog Computing closer to the smart end devices. Mist Computing uses microcomputers and microcontrollers to feed into nodes of Fog Computing and theoretically into centralised (Cloud) Computing.

In light of this, Mobile Edge Computing (MEC) was developed as a key technology to assist wireless networks with Cloud Computing-like capabilities to provide low-latency and context-aware services directly from the network Edge [START_REF] Hu | Mobile edge computing-a key technology towards 5g[END_REF]- [START_REF] Bahl | Emergence of micro datacenter (cloudlets/edges) for mobile computing[END_REF]. Mobile Edge Computing, lately renamed as Multi-Access Edge Computing, was initiated under the umbrella of the European Telecommunication Standards Institute (ETSI) [START_REF] Kekki | Mec in 5g networks[END_REF]. A key objective of the ETSI initiative is to standardize the APIs between the mobile Edge platform and the application service scenarios (augmented reality (AR), mixed reality (MR), intelligent video acceleration and Internet of Things gateway) and promote innovation in an open environment [START_REF] Hu | Mobile edge computing-a key technology towards 5g[END_REF]. ETSI's reference architecture is largely based on the concept of Network Function Virtualization (NFV), where MEC applications can be offered as Virtualized Network Functions (VNFs).

Computing Paradigms Comparison

Almost all of the paradigms discussed above have as a common ground that they are offering remote computational and communication capabilities to the end devices. Furthermore, except from the Cloud, the rest of the paradigms are able to offer these capabilities at the edge of the network, as close to the end devices as possible. Nonetheless, there are some differences between them.

First of all, in terms of available resources, as we move farther from the end devices the available resources increase in quantity, with the Cloud having practically infinite capacity. Since a public Cloud may have dozens of data centers, each equipped with hundreds of servers, around the world, there is no actual problem of resource depletion. In contrast, in Fog, MCC, and MEC infrastructures, resource availability is mostly limited due to the fact that they are comprised of micro-data centers with few servers of lower capabilities than the ones that we usually find in the Cloud. On top of that, in edge infrastructures, we also find heterogeneous hardware resources with even lower resource availability such as wireless routers and gateways, street cabinets and Raspberry Pi's.

Secondly, delay can be another factor of comparison between the different infrastructures. As mentioned before, Cloud Computing is not always a feasible solution for providing low latency communication. To this end, the available infrastructure at the edge of the network is the most favorable option to reduce the communication delay. Nonetheless, since there are various levels of Edge at the WAN, LAN, or access network, different levels of delays can be produced, regarding where the computing resources are located. Obviously, going at the level of the access network, i.e., the extreme Edge or Mist, the delay is minimized since we do not have to account propagation and transmission delays involved in traversing the LAN, WAN or a backhaul network. However, in this case, another factor rises; that of the energy consumption. The available hardware at the Mist is usually battery supplied, imposing the double burden of both limited resources and limited lifetime.

Thirdly, some of the paradigms were conceived under the scope of providing computational resources to specific applications. For example, Fog Computing was introduced to facilitate some of the top IoT application domains and vertical markets, such as energy, industry, transportation, agriculture, and healthcare [START_REF] Consortium | Openfog reference architecture for fog computing[END_REF]. On the other hand, MCC is mostly associated with providing remote computational resources to mobile applications, while MEC introduces the necessary flexibility to host multiple applications in the areas of video analytics, location services, IoT, augmented reality, optimized local content distribution and data caching among others [START_REF]Multiaccess Edge Computing (mec)[END_REF]. Particular emphasis should be placed on the uniqueness of the MEC. In particular, even though MEC is oriented to cellular Radio Access Networks (RAN), it can be practically applied to any kind of access network. Furthermore, the way that MEC has been defined and standardized by ETSI, promotes an open environment where third-party developers, application and service providers can all participate together towards expediting the introduction of new applications targeting to respond to emerging user requirements.

Finally, the decision of which paradigm to follow, usually includes the requirements of security and confidentiality. Certainly, Cloud Computing as a popular and successful technology, has many safeguards and tools to provide a certain level of security and confidentiality. Nonetheless, several security threats still exist making Cloud-based security an active open-challenge. Additionally, sending data to the Cloud over the Internet can be susceptible to attacks. In contrast, by employing an Edge infrastructure, the necessary security and confidentiality can be attained since the data of the end devices usually stay within the local network.

From the above, the pros and cons of each computing paradigm can be extracted. Even though the MCC, Fog, and MEC can overcome certain limitations of the Cloud, they usually cannot be offered as a standalone solution. In other words, the notion of Edge Computing in general, did not emerge to replace the Cloud but rather to complement it. Thus, it is very important to create collaborative solutions (possibly utilizing more than two computing paradigms) that will enable a smooth continuum from the end device to the Cloud, with the goal to satisfy the stringent requirements of novel and future applications.

Use Cases

Following the above definitions of the computing paradigms and the respective infrastructures, in this part of the survey we refer to some typical applications that leverage task offloading at the available resources at the edge of the network in order to increase their performance. These real-world applications can range from simple data processing to immersive multimedia applications. Following, we briefly describe the role of task offloading in the particular set of applications.

Immersive Applications

Current developments in computer vision have made possible the launching of mixed reality applications, such as VR and AR, that can offer immersive experience even in wireless environments. At the same time, the development of increasingly advanced mobile devices such as smart glasses, can help us identify objects, superimpose contextual knowledge on our field of vision and create a threedimensional view of the surrounding environment. As these devices become smarter, more and more sensor data in our environment can be aggregated, processed and served, requiring however high bandwidth and low response time communications. Hence, task offloading can be an advantageous solution for this type of applications.

Specifically, both Cloud and Edge-based task offloading mechanisms can be used in AR/VR applications [START_REF] You | Fog computing as an enabler for immersive media: Service scenarios and research opportunities[END_REF], [START_REF] Miluzzo | Eyephone: activating mobile phones with your eyes[END_REF]- [START_REF] Liu | An edge network orchestrator for mobile augmented reality[END_REF]. The objectives include reducing the energy consumption in mobile devices, increasing the speed of computation intensive operations, reducing the average CPU load to overcome computation intensive tasks and improving the user's Quality of Experience (QoE).

Autonomous Vehicles

Similar to the immersive media services, autonomous vehicles is another type of application that task offloading can be utilized. The key objectives here are to reduce the latency and the transmission cost and increase the efficiency of traffic management. Use case-oriented services concerning autonomous driving include: Highway Pilot, Parking Pilot, Fully Automated Vehicle and Vehicle on Demand [START_REF] Fraedrich | User perspectives on autonomous driving: a use-case-driven study in Germany[END_REF].

Edge Computing is considered as the key technology in connected vehicles, adding computation capabilities and geo-distributed services to BSs and Edge devices distributed on the roadside. The idea is to analyze data from proximate vehicles and roadside sensors and broadcast messages to drivers at a very low latency [START_REF] Puetzschler | Lte and car2x: Connected cars on the way to 5g[END_REF]. For example, in an intelligent transportation system, low-level devices can be used for the decision-making processes of the transportation [START_REF] Sahni | Edge mesh: A new paradigm to enable distributed intelligence in internet of things[END_REF]. Specifically, the decision-making tasks can be distributed to Edge devices instead of sending all the data to a centralized server. Moreover, task offloading can enable real-time traffic management [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF].

Robotics

Very complex robotic applications have been emerging during the last decade, related among others to autonomous mobile agents, manipulators and collaborative tasks. Efficient, safe and autonomous robot operation in manufacturing, health care, learning and exploration, requires running computation and memory intensive algorithms related to image processing, planning, localization, mapping and autonomous learning. Consequently, during the last few years, task offloading is gaining attention that has lead to the new paradigms of Cloud, Edge and Fog robotics [START_REF] Hu | Cloud robotics: architecture, challenges and applications[END_REF]- [START_REF] Tanwani | Rilaas: Robot inference and learning as a service[END_REF].

Specifically, many offloading opportunities emerge in planning and SLAM (simultaneous localization and mapping) algorithms for robotic manipulators [START_REF] Bekris | Cloud automation: Precomputing roadmaps for flexible manipulation[END_REF], [START_REF] Glover | Probabilistic models of object geometry for grasp planning[END_REF], mobile robots [START_REF] Riazuelo | C2tam: A cloud framework for cooperative tracking and mapping[END_REF]- [START_REF] Bowman | Probabilistic data association for semantic slam[END_REF] and learning in general [START_REF] Riazuelo | Roboearth web-enabled and knowledge-based active perception[END_REF], [START_REF] Tanwani | A fog robotics approach to deep robot learning: Application to object recognition and grasp planning in surface decluttering[END_REF], among others. It is worth noting that there are already available commercial products that allow task offloading in robotic applications [START_REF] Services | Aws robomaker[END_REF]- [START_REF]Rapyuta robotics[END_REF].

Video Streaming

In general, the video streaming use cases fall under the content delivery network (CDN) [START_REF] Dilley | Globally distributed content delivery[END_REF] category. The key objective of CDN networks is to reduce the cost and the number of bits transmitted over the network, by maintaining an adequate QoE [START_REF] Papagianni | A cloudoriented content delivery network paradigm: Modeling and assessment[END_REF]. The mechanisms to reduce the overall cost and traffic while providing a high QoE in applications ranging from simple video streaming to HTTP, to Adaptive BitRate (ABR) and 360-degree video applications, can be further improved by applying task offloading techniques.

Offloading can be implemented on Cloud-based solutions, where appropriate resource allocation techniques can be used to increase user satisfaction [START_REF] Bilal | Crowdsourced multi-view live video streaming using cloud computing[END_REF] or deployment costs of the CDN networks [START_REF] Papagianni | A cloudoriented content delivery network paradigm: Modeling and assessment[END_REF]. Nonetheless, task offloading at the Edge can supplement the achieved performance. For example, multi-user mobile media delivery can be enhanced by enabling the gateways (i.e., BSs) to perform appropriate scheduling strategies [START_REF] Fajardo | Improving content delivery efficiency through multi-layer mobile edge adaptation[END_REF]. An Edge infrastructure can also be used to facilitate the caching and transcoding mechanisms in a distributed fashion [START_REF] Tran | Collaborative multi-bitrate video caching and processing in mobile-edge computing networks[END_REF]. Regarding latency, data compression tasks can be offloaded at the Edge [START_REF] Ren | Latency optimization for resource allocation in mobile-edge computation offloading[END_REF], removing the burden of local compression models and reducing at the same time the application response time [START_REF] Kao | Hermes: Latency optimal task assignment for resource-constrained mobile computing[END_REF]. Task offloading can be partially implemented by differentiating flows based on their quality and performing the video compression at the Edge, only for the high-quality video flows (e.g., 360-degree video streaming) [START_REF] Yang | Fovr: Attention-based vr streaming through bandwidth-limited wireless networks[END_REF].

IoT

The impact of task offloading can be maximized in the context of IoT applications. The reason is that the IoT devices are usually constrained in terms of available resources and battery capacity. Inevitably, only small and non resource demanding tasks can be executed locally. Task offloading in IoT usually focuses on reducing task execution time, response time and energy consumption. IoT use cases that can benefit from task offloading can refer to health, agriculture, smart city, industry and energy related applications among others.

IoT, from the very beginning, has been largely based on Cloud-centric approaches in order to offload the tasks of data processing and analysis of massive data produced from millions of IoT devices [START_REF] Gubbi | Internet of things (iot): A vision, architectural elements, and future directions[END_REF]. However, the long delays added from the Cloud, combined with the introduction of new mission critical IoT applications, has pushed the academic and industrial community to take advantage of the Edge concept. Hence, local IoT Clouds have emerged, with the goal to maximize the number of offloaded tasks that can be executed in close proximity to the IoT devices [START_REF] Farris | Federated edge-assisted mobile clouds for service provisioning in heterogeneous iot environments[END_REF] and to maximize the battery lifetime of the devices [START_REF] Zhu | Development of a theoretically based thermal model for lithium ion battery pack[END_REF], [START_REF] Nan | Adaptive energy-aware computation offloading for cloud of things systems[END_REF]. However, the scalability issues of the IoT market which is currently consisted of dozens of billions of devices often necessitates a Cloud-Edge collaboration during the task offloading [START_REF] Farris | Mifaas: A mobile-iot-federation-as-a-service model for dynamic cooperation of iot cloud providers[END_REF]- [START_REF] Yousefpour | On reducing iot service delay via fog offloading[END_REF].

Physical Disaster Management

In case of disaster management, the process of task offloading is crucial since it affects the efficiency of the rescue operations. In addition, the network can be unstable and simply offloading tasks to the Cloud could be difficult and require too much time. So, optimal offloading strategies to local services, rather than remote Clouds, would allow for precious time saving and preservation of battery of mobile phones, sensors and autonomous agents in the field.

Unmanned Aerial Vehicles (UAVs), which posses great mobility and versatility, are at the core of disaster management scenario by providing situational awareness and computing resources. But, as they are battery-powered, they cannot undertake the full computation of all the involved data and need to offload tasks to near Edge Computing servers. This challenge is addressed in different papers [START_REF] Kim | Optimal task-uav-edge matching for computation offloading in uav assisted mobile edge computing[END_REF]- [START_REF] Avgeris | Where there is fire there is smoke: a scalable edge computing framework for early fire detection[END_REF]. In general, task offloading in the context of disaster remains little explored [START_REF] Wang | Maximum data-resolution efficiency for fog-computing supported spatial big data processing in disaster scenarios[END_REF], [START_REF] Zhou | Task offloading for social sensing applications in mobile edge computing[END_REF].

TASK OFFLOADING & CHALLENGES

In the previous sections, we have provided a short description of the task offloading, its infrastructural components, and the importance of this solution for new and emerging scenarios. In this part of the survey, a more detailed definition of task offloading is provided, while also, the typical objectives, the performance evaluation metrics, and the challenges encountered during task offloading are presented.

Generally, task offloading can be defined as the transfer of resource-intensive computational tasks to an external, resource-rich platform such as the ones used in Cloud, Edge or Fog Computing. Offloading the whole or part of the set of tasks to another processor or server, can be used to accelerate resource-intensive and latency-sensitive applications [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF], [START_REF] Yang | Fovr: Attention-based vr streaming through bandwidth-limited wireless networks[END_REF], [START_REF] Ananthanarayanan | Real-time video analytics: The killer app for edge computing[END_REF]. Task offloading is a complex process and can be affected by a number of different factors [START_REF] Khan | A survey of mobile cloud computing application models[END_REF]. In particular, this process involves application partitioning, offloading decision making and distributed task execution [START_REF] Ma | When mobile terminals meet the cloud: computation offloading as the bridge[END_REF], [START_REF] Lin | Computation offloading toward edge computing[END_REF], [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF]. A typical infrastructure involved in an offloading scenario is illustrated in Fig. 1. From this, it becomes evident that the network's Edge infrastructure creates an additional resource layer between the end devices and the external platform. This layer is capable of reducing bandwidth consumption on the backhaul, transport and Cloud networks, thus reducing any communication delays, supporting applications with real-time requirements, improving the energy efficiency and consequently increasing the lifetime of battery-powered devices. At this point, we should note that, for the rest of the paper, we refer to the term Edge Computing as the whole set of resources that can be found at the edge of the network, including the Fog and Edge nodes.

Granularity Levels of Task Offloading

Task offloading aims at optimizing the offloading of computation intensive tasks from the end user device to a remote site, under various computational, communication and mobility constraints. The process of task offloading, as shown in Fig. 2, consists of i) various hardware components, such as end user devices and Edge/Cloud devices, ii) multiple computing processes, including task splitting and computational processing either locally or remotely and iii) networking components for transferring data between the hardware components involved.

In more detail, as Fig. 2 illustrates, a mobile device can execute an application comprising of multiple tasks. The end device, through a task splitting process, decides which of these tasks should be executed locally and which ones should be offloaded to the Edge or Cloud infrastructures. This decision is based on a plethora of factors that are presented in the following sections, including the QoS requirements and battery lifetime of the device, among others. Following, the tasks that are to be executed remotely are transferred through the wireless access network to the gateway and from there to a remote physical machine (either at the Edge or Cloud), where they are executed following an appropriate computational approach (e.g., creating a VM or container). At the same time, the tasks that remain on the device are executed locally using the available computational resources of the end device. The last step is to combine the results of both local and remote executed tasks to provide the final output of the application. Based on this process, we describe the different types of task offloading according to the task splitting decision taken, i.e., the granularity level, as follows:

Partial Offloading at the Edge

In this type of offloading, part of the computing tasks is processed locally, while the rest is offloaded to the Edge. Partial offloading is typically the most effective, since it can benefit from both local and remote resources. Nonetheless, another level of complexity is added since it needs to be decided and scheduled which tasks should be offloaded while taking into account the possible energy and resource constraints of the end device.

Full Offloading at the Edge

In this case, all of the computing tasks are offloaded and processed at the Edge. Full offloading is usually translated into a simple resource allocation problem, where tasks can be executed on virtual machines or containers at the Edge. Energy-savings at the end devices can be maximized, however we need to take into account other sources of energy dissipation such as the transmission power of the device. Finally, a precise network path from the device to the Edge site, where the tasks are offloaded, has to be set up carefully, so as to comply with the possible QoE/QoS constraints.

Partial/Full Offloading at the Edge and Cloud

During this type of offloading, a collaboration between the Edge and Cloud infrastructures is established in order to execute the offloaded tasks. This type of collaboration can be proved advantageous in large-scale scenarios where the available Edge resources are not enough to host all of the tasks offloaded from the end users. Herein, the main challenge is the two-level task offloading decision. If a partial offloading mechanism is followed, the first level of decision lies on the local device, in order to decide the set of tasks that needs to be offloaded at a remote location. In other words, the local device has to decide which tasks can be executed locally in the device and which ones should be offloaded either at the Edge or the Cloud. On the tasks decided to be offloaded, a second-level of decision will be performed. In particular, the Edge will perform a second task partitioning, regardless of the type of offloading (i.e., partial or full) to determine the subset of tasks to be executed at the Edge and the subset of tasks to be executed at the Cloud. In the latter case, particular attention should be paid on the transport network that facilitates the interconnection of the two infrastructures and the delay constraints that it may impose.

Mobility of End Devices

End device mobility is one of the most critical components when it comes to task offloading decision. End devices can either be considered as static or mobile for the time window which spans between initiating and finishing the offloading of their tasks. In the latter case, mobility adds another level of splitting decision, as it needs to be decided at which Edge site should the tasks be offloaded while the user is on the move (or not). Even though mobility is considered a challenge, it can generate a number of opportunities for the task offloading. First of all, it can initiate a load balancing technique to allow the system to provide the necessary services in distributed Edge site scenarios [START_REF] Tran | Mobile edge computing: Recent efforts and five key research directions[END_REF], [START_REF] Tran | Collaborative mobile edge computing in 5g networks: New paradigms, scenarios, and challenges[END_REF], [START_REF] Violos | Predicting Visitor Distribution for Large Events in Smart Cities[END_REF]. Secondly, complementing mobility with appropriate prediction solutions can enhance the system's capacity, by finding the potential next associated BS/AP of the user [START_REF] Tran | Collaborative multi-bitrate video caching and processing in mobile-edge computing networks[END_REF], [START_REF] Tran | Joint task offloading and resource allocation for multi-server mobile-edge computing networks[END_REF], [START_REF] Violos | Leveraging User Mobility and Mobile App Services Behavior for Optimal Edge Resource Utilization[END_REF]. This can be even more beneficial in a dense scenario, where the system can analyse the active users and their mobility patterns and allocate the resources in an online manner to existing and newly requested services. Moreover, mobility can benefit from handover mechanisms that can enable service migrations between BSs and their Edge servers. However, as the requirements of zero millisecond handover are studied by the 5G community, mobility with prediction mechanisms is starting to gain attention, in order to predict beforehand where the tasks should be offloaded. This behavior can be decisive for the overall performance in dense Edge deployments with multiple mobile users [START_REF] Yang | Mobile edge computing empowered energy efficient task offloading in 5g[END_REF]. Based on the above, we firstly describe the different types of end devices according to their mobility level. Then, we present some mechanisms from the literature on how the Edge infrastructures adapt to the potential mobility of the offloading devices.

Static (Low-Mobility)

In this situation, the devices are considered static or relatively static (low levels of mobility) during the task offloading procedure. Apparently, this type of device mobility is considered trivial when it comes to studying the task offloading problem, as it does not impose any type of dynamicity to the network conditions. In certain cases, purely non-mobile devices like stationary IoT sensors are engaged in task offloading at the Edge, [START_REF] Xu | A time-efficient data offloading method with privacy preservation for intelligent sensors in edge computing[END_REF], [START_REF] Liu | Energy-efficient collaborative task computation offloading in cloud-assisted edge computing for iot sensors[END_REF]. Other works apply this assumption on mobile devices, to reduce the complexity of their proposed offloading solutions; for example, the authors in [START_REF] Chen | Multi-user multi-task offloading and resource allocation in mobile cloud systems[END_REF] assume that the statistics of the utilized wireless links remain unchanged during the processing of the users' tasks, reflecting a relatively static or low-mobility scenario. In a similar manner, in [START_REF] Cao | Optimal radio resource allocation for mobile task offloading in cellular networks[END_REF] and [START_REF] Cao | Share communication and computation resources on mobile devices: a social awareness perspective[END_REF], the time to transfer the task response from a cell to another is excluded from the total execution time of an offloaded mobile task, by assuming that the end device stays in the same cell during the task offloading process.

Mobile (High-Mobility)

On the other hand, when the devices involved in task offloading are highly mobile, i.e., their movement has a direct effect on the network conditions considered for task offloading and the respective resource allocation, the problem becomes significantly more complex. Several studies consider mobility at the Edge [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF], [START_REF] Huang | A dynamic offloading algorithm for mobile computing[END_REF]- [START_REF] Plachy | Dynamic resource allocation exploiting mobility prediction in mobile edge computing[END_REF]. Specifically, the focus is placed on the user contacts (inter-contacts) in which the user can offload the task, based on the mobility pattern and an opportunistic computing decision [START_REF] Truong-Huu | To offload or to wait: An opportunistic offloading algorithm for parallel tasks in a mobile cloud[END_REF]- [START_REF] Li | Opportunistic computing offloading in edge clouds[END_REF]. The opportunistic computing is taking advantage of the contact patterns regulated by the mobility of the devices (e.g., which Edge site the node is visiting and what type of interactions occur on daily basis), in order to determine the amount of computation to be offloaded to other devices.

Opportunistic computing takes also advantage of the contact patterns regulated by the mobility of these devices, to determine the amount of computation to be offloaded to other devices. Furthermore, in a mobility scenario, users may either transfer their tasks to remote servers or peer devices, possibly through the gateways or even via the Edge servers [START_REF] Sun | Emm: Energy-aware mobility management for mobile edge computing in ultra dense networks[END_REF]- [START_REF] Ning | Deep reinforcement learning for vehicular edge computing: An intelligent offloading system[END_REF]. For instance, mobility can influence the decision on which BS and Edge server to select and when to perform the handover [START_REF] Sun | Emm: Energy-aware mobility management for mobile edge computing in ultra dense networks[END_REF]. When trying to minimize the execution delay, user mobility information needs to be combined with the task characteristics and resource availability, in order to make the best task scheduling decision [START_REF] Wang | User mobility aware task assignment for mobile edge computing[END_REF]. This mobility information is usually captured by trajectory prediction models [START_REF] Do | A probabilistic kernel method for human mobility prediction with smartphones[END_REF], [START_REF] Li | User mobility prediction based on lagrange's interpolation in ultra-dense networks[END_REF] that can actually uncover motion patterns of the users in real-time scenarios. However, in most of the studied scenarios [START_REF] Mach | Mobile edge computing: A survey on architecture and computation offloading[END_REF], [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Tran | Collaborative mobile edge computing in 5g networks: New paradigms, scenarios, and challenges[END_REF], [START_REF] Alameddine | Dynamic task offloading and scheduling for low-latency iot services in multi-access edge computing[END_REF], the tasks are usually offloaded to BSs that are in close proximity to the user's position and have sufficient resources to satisfy the time execution requirements. For example, when the tasks are lightweight and can be executed within a satisfactory time period, without migrating to a neighbor Edge site, then the execution of the task should be processed immediately and return to the mobile user. On the other hand, when the task requires significantly longer time, then the task could be split into sub-tasks and be transferred to neighbouring BSs along the user's trajectory [START_REF] Mach | Mobile edge computing: A survey on architecture and computation offloading[END_REF], [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Wu | An efficient offloading algorithm based on support vector machine for mobile edge computing in vehicular networks[END_REF].

Most of the mobility tackling solutions integrate mechanisms to obtain the device's current and future positions, as well as tune the offloading infrastructure accordingly, to achieve the objectives described in the following subsections. Using the type of the mobility tackling mechanism as a criterion, mobility solutions can be categorized in the following classes:

Proactive -Behavior Related: Nowadays, services running on mobile devices, e.g., Google Location Services [START_REF] Maanoja | Location services[END_REF], constantly track and log the historic mobility behavior of the user; the proliferation of smartphone devices has made trajectory pattern crowdsourcing a reality. What is more, distributing intelligence at the Edge has allowed for logging the times an end user device connects and disconnects to a smart access point, thus extracting users' periodic movement patterns. Based on this data, mobility information can be estimated and leveraged towards predicting the users' position at any given moment [START_REF] Deng | Mobilityenabled service selection for composite services[END_REF], [START_REF] Deng | Mobility-aware service composition in mobile communities[END_REF]. Specifically, this mobility information can be extracted in a probabilistic way, by utilizing Mobility Markov Chains (MMC) to model the historic behavior of a user as a discrete stochastic process; in this way, the prediction of a user moving to a specific location depends on their previous visited locations and the probability distribution of the transitions between them [START_REF] Gambs | Next place prediction using mobility markov chains[END_REF]. Complementary to the regularity in the users' mobility patterns, a Markov model can be trained to estimate the expected network quality and the expected staying time under the coverage of each Edge server [START_REF] Lee | User mobility model based computation offloading decision for mobile cloud[END_REF]. Then, one way to leverage the extracted information is in favor of bringing the Edge Computing and storage resources closer to the user; this can be achieved by proactively installing the services that the users will consume in the Edge servers located in the positions that they will most probably visit, thus reducing the network delay during task offloading [START_REF] Sun | Adaptive avatar handoff in the cloudlet network[END_REF]- [START_REF] Xu | Joint service caching and task offloading for mobile edge computing in dense networks[END_REF]. The probability density function of the sojourn time, i.e., the time a user is expected to spend within the coverage area of an Edge site, can also be exploited towards predicting the user's next location and seamlessly migrating the service to be used for the task offloading appropriately [START_REF] Wang | Mobility-aware task offloading and migration schemes in fog computing networks[END_REF]. For example, MAGA [START_REF] Shi | Maga: A mobility-aware computation offloading decision for distributed mobile cloud computing[END_REF] is a mobility-aware mechanism for partial task offloading that falls in this category. Frequent mobility patterns are inferred by a tailor matching subsequence method and then a genetic algorithm is used for the offloading decision.

Proactive -Trajectory Related: Another way of proactively dealing with mobility at the Edge is by exploiting the user's ongoing movement characteristics, i.e., trajectory, duration and speed. By applying these characteristics on specific translational motion models, one can predict the location and the time of the next Edge server handover [START_REF] Yu | Dmpo: Dynamic mobility-aware partial offloading in mobile edge computing[END_REF]. Apart from utilizing motion models, periodically receiving timestamped geolocation updates from a moving user, enables producing real-time travel information for route segments which can be used for trajectory estimation [START_REF] Siris | Enhancing mobile data offloading with mobility prediction and prefetching[END_REF]. In a cooperative Edge infrastructure scenario, taking advantage of the mobility information can guide Edge servers to route the collected offloaded tasks to adjacent servers at the next location on the user's moving direction. In this way, when users arrive at the coverage area of the next Edge site, they receive the product of their completed offloaded task, with the minimum additional delay [START_REF] Yang | Efficient mobility-aware task offloading for vehicular edge computing networks[END_REF]. As an example, a two-step offloading mechanism for smart touristic services [START_REF] Spatharakis | A scalable edge computing architecture enabling smart offloading for location based services[END_REF], [START_REF] Papathanail | Cosmos: An orchestration framework for smart computation offloading in edge clouds[END_REF] is based on estimating the location and density of users. Every mobile device takes the initial offloading decision based on a dead reckoning technique and measurements of its WiFi signal strength. Secondly, at the Edge side, a Kalman filter is used to predict the number of users and a controller is responsible for the final offloading decision and the allocation of resources to VMs.

Reactive: The evolution of the Edge-Cloud continuum and the growing adoption it receives, has recently enabled network infrastructures to quickly and efficiently adapt to the rapidly changing user environment, in real time. When it comes to task offloading on the move, Edge servers can utilize a central agent, located at the Cloud, to form a mobilityaware offloading infrastructure that tracks the users' position and optimally routes the task and its response through the closest server to the users' locations [START_REF] Akter | Q-mac: Qos and mobility aware optimal resource allocation for dynamic application offloading in mobile cloud computing[END_REF]. In a similar manner, the whole virtual server can migrate to the topologically closest Edge server to the user, reactively, every time a relocation is detected [START_REF] Puliafito | Companion fog computing: Supporting things mobility through container migration at the edge[END_REF]. For instance, utilizing IP tracking, remote caching and the Software-Defined Networking (SDN) paradigm, can set the ground for efficient and timely task offloading as well; an SDN controller is able to track the user's network location, i.e., the Edge server in proximity and quickly react to changes in it by rerouting the offloaded task's response [START_REF] Junior | Supporting mobility-aware computational offloading in mobile cloud environment[END_REF].

Task Offloading Objectives

When solving the task offloading problem, a number of different objectives may be applied, as the different stakeholders and actors (e.g., Cloud providers, Edge providers, Mobile Users and Service Providers) target a variety of goals. An objective function helps to formally and mathematically formulate these goals and guide the offloading solution. Objectives of the task offloading problem can be categorized as follows:

Delay

Task execution delay minimization is one of the main objectives during the task offloading problem [START_REF] Ketyk | Multi-user computation offloading as multiple knapsack problem for 5g mobile edge computing[END_REF], [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF], [START_REF] Huang | A dynamic offloading algorithm for mobile computing[END_REF], [START_REF] Yang | Multi-user computation partitioning for latency sensitive mobile cloud applications[END_REF]- [START_REF] Liu | Joint radio and computation resource management for low latency mobile edge computing[END_REF]. Regardless of the type of task offloading, the overall goal is narrowed down to reducing the total task execution delay. This delay, can be broken down into a number of different delay contributors. The first source of delay is the task execution delay, coming from the task that can be either executed locally at the device, at the Edge or the Cloud. In the case of offloading the task at a remote Edge or Cloud site, we need to take into consideration the transmission and propagation delay at the various layers of the infrastructure (access, Edge, transport and Cloud networks), in both directions (i.e., sending the task and receiving the response). On top of that, processing and queuing delay at the various processing and forwarding devices should be taken into account. Finally, an additional delay contributor can be the time to optimally partition the task delay, during the task offloading decision [START_REF] Yang | A framework for partitioning and execution of data stream applications in mobile cloud computing[END_REF]. The delay objective can be expressed as either the minimization of the average delay of each task [START_REF] Liu | Delay-optimal computation task scheduling for mobile-edge computing systems[END_REF] or the total delay of all the involved tasks of a mobile application. This objective is directly proportional to the available resources [START_REF] Huang | A dynamic offloading algorithm for mobile computing[END_REF], [START_REF] Yang | Multi-user computation partitioning for latency sensitive mobile cloud applications[END_REF] and the network conditions [START_REF] Bi | Computation rate maximization for wireless powered mobile-edge computing with binary computation offloading[END_REF], [START_REF] Yang | A framework for partitioning and execution of data stream applications in mobile cloud computing[END_REF].

The total execution delay can also be used to assess the impact of task offloading to the QoS achieved. Thus, according to the type of the application used and the part of the infrastructure under consideration, the task execution delay can be associated with: i) the response time (i.e., the time duration from when a user requests a service until the service actually initiates [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF], [START_REF] Plachy | Dynamic resource allocation exploiting mobility prediction in mobile edge computing[END_REF], [START_REF] Jia | Qos-aware cloudlet load balancing in wireless metropolitan area networks[END_REF]), ii) the delay variation, in order to reveal how robust the task offloading solution can be, both over time and over dynamic traffic profiles, while also estimating the number of SLA (Service Level Agreement) violations noticed [START_REF] Tran | Joint task offloading and resource allocation for multi-server mobile-edge computing networks[END_REF], [START_REF] Wang | Computation offloading and resource allocation in wireless cellular networks with mobile edge computing[END_REF], [START_REF] Sonmez | Fuzzy workload orchestration for edge computing[END_REF] and iii) the network delay, including the four delay contributors (i.e., propagation, transmission, processing and queuing delay) at the different parts of the infrastructure [START_REF] Wang | Offloading in internet of vehicles: A fog-enabled real-time traffic management system[END_REF], [START_REF] Tran | Joint task offloading and resource allocation for multi-server mobile-edge computing networks[END_REF], [START_REF] Plachy | Dynamic resource allocation exploiting mobility prediction in mobile edge computing[END_REF], [START_REF] Zhao | Tasks scheduling and resource allocation in heterogeneous cloud for delay-bounded mobile edge computing[END_REF], [START_REF] Liu | Delay-optimal computation task scheduling for mobile-edge computing systems[END_REF], [START_REF] Jia | Qos-aware cloudlet load balancing in wireless metropolitan area networks[END_REF], [START_REF] Sonmez | Fuzzy workload orchestration for edge computing[END_REF]- [START_REF] Wang | Online resource allocation for arbitrary user mobility in distributed edge clouds[END_REF].

Energy

The second most common objective during task offloading is the minimization of the energy consumption [START_REF] Cao | An energy-optimal offloading algorithm of mobile computing based on hetnets[END_REF]- [START_REF] Lorenzo | Joint optimization of radio resources and code partitioning in mobile edge computing[END_REF]. This energy consumption typically refers to the end devices [START_REF] Sardellitti | Distributed mobile cloud computing: Joint optimization of radio and computational resources[END_REF], [START_REF] Labidi | Energy-optimal resource scheduling and computation offloading in small cell networks[END_REF]- [START_REF] Labidi | Joint multi-user resource scheduling and computation offloading in small cell networks[END_REF]. The reason is that mobile and IoT devices are usually battery powered, thus a major concern is how to maximize the lifetime of the battery by reducing the device's energy consumption. Inevitably, it is reasonable to assume that, by following a full offloading approach, the maximum energy savings can be pursued. However, a number of other energy contributors need to be taken into account, even when a full offloading approach is followed. First of all, during the offloading, the transmission power, modulation and coding scheme, together with other radio parameters, needs to be taken into account, as they contribute in significant energy and consequently battery consumption [START_REF] Zhang | Energy-efficient offloading for mobile edge computing in 5g heterogeneous networks[END_REF], [START_REF] Lorenzo | Joint optimization of radio resources and code partitioning in mobile edge computing[END_REF]. This type of energy consumption can increase, especially when network conditions are not favourable. Secondly, by reviewing the full offloading from a complete, networkwide view, one can easily understand that the problem is simply pushed to the Edge and/or Cloud infrastructures. Thus, energy consumption minimization needs to be pursued at all layers of this end-to-end communication model [START_REF] Mao | Dynamic computation offloading for mobile-edge computing with energy harvesting devices[END_REF], [START_REF] Singh | Quality, reliability, security and robustness in heterogeneous networks[END_REF].

To evaluate this objective, a number of different metrics can be used; the most common is the average power consumption measured by aggregating the power consumption on the hardware equipment used [START_REF] Liu | Latency and reliabilityaware task offloading and resource allocation for mobile edge computing[END_REF], [START_REF] Kiani | Optimal code partitioning over time and hierarchical cloudlets[END_REF]. Alternatively, energy consumption can be used, expressed as the power consumption over time. Normally a minimization of power consumption leads to energy consumption minimization as well [START_REF] Tran | Joint task offloading and resource allocation for multi-server mobile-edge computing networks[END_REF], [START_REF] Mao | Joint task offloading scheduling and transmit power allocation for mobile-edge computing systems[END_REF]- [START_REF] Guo | Energy-efficient resource allocation for multi-user mobile edge computing[END_REF]. Furthermore, as the end devices are usually battery powered, the energy savings can be expressed as battery savings [START_REF] Mao | Dynamic computation offloading for mobile-edge computing with energy harvesting devices[END_REF], [START_REF] Samie | Computation offloading and resource allocation for low-power iot edge devices[END_REF]. Finally, another way to provide the necessary environmental and economic sustainability is through minimizing the electricity cost [START_REF] Leivadeas | Going Green with the Networked Cloud: Methodologies and Assessment[END_REF]. Electricity cost depends on location and time. Hence, appropriate allocation of offloaded tasks potentially reduces the electricity cost, cutting down on operational costs while providing benefits to the environment [START_REF] Wang | Computation offloading and resource allocation in wireless cellular networks with mobile edge computing[END_REF], [START_REF] Kamoun | Joint resource allocation and offloading strategies in cloud enabled cellular networks[END_REF].

Bandwidth/Spectrum

The available bandwidth at the access network and how it can be shared by multiple users in order to offload the tasks, is also a significant constraint. However, due to the great influence it has on the task offloading performance, it can also be considered as an objective [START_REF] Labidi | Energy-optimal resource scheduling and computation offloading in small cell networks[END_REF], [START_REF] Samie | Computation offloading and resource allocation for low-power iot edge devices[END_REF]. Due to the limited available bandwidth, especially in IoT networks and dense cellular networks, the careful allocation of spectrum becomes of utmost importance.

The objective of spectrum allocation is often associated with the transmission rate and power level of each end user [START_REF] Samie | Computation offloading and resource allocation for low-power iot edge devices[END_REF], as well as the duration of the transmission of each device [START_REF] Bi | Computation rate maximization for wireless powered mobile-edge computing with binary computation offloading[END_REF], in order to optimally share the available bandwidth. Thus, when trying to optimally deploy the available spectrum, an efficient metric is to evaluate the spectrum utilization in accordance with the number of offloaded tasks, power transmission and bandwidth consumption [START_REF] Sahni | Edge mesh: A new paradigm to enable distributed intelligence in internet of things[END_REF], [START_REF] Zhao | Tasks scheduling and resource allocation in heterogeneous cloud for delay-bounded mobile edge computing[END_REF], [START_REF] Mao | Joint task offloading scheduling and transmit power allocation for mobile-edge computing systems[END_REF], [START_REF] Zhang | Energy-latency tradeoff for energy-aware offloading in mobile edge computing networks[END_REF]. In view of the dynamic wireless conditions, the optimal scheduling of the bandwidth needs to follow the time-varying channel state and be also associated with the arrival rate of the tasks [START_REF] Labidi | Energy-optimal resource scheduling and computation offloading in small cell networks[END_REF]. Throughput is another typical metric applied to evaluate the overall spectrum utilization, since it reveals how timely and efficiently the task can be offloaded at the remote infrastructures [START_REF] Mao | Dynamic computation offloading for mobile-edge computing with energy harvesting devices[END_REF], [START_REF] Li | Joint admission control and resource allocation in edge computing for internet of things[END_REF].

Load Balancing

How to carefully allocate and schedule the available physical hardware resources is another objective to consider during task offloading [START_REF] Wang | Edge cloud offloading algorithms: Issues, methods, and perspectives[END_REF], [START_REF] Ai | Edge computing technologies for internet of things: a primer[END_REF], [START_REF] Ketyk | Multi-user computation offloading as multiple knapsack problem for 5g mobile edge computing[END_REF]. Specifically, there is a high interest in path optimization, efficient resource usage and load balancing when solving the task offloading problem. The goal is to provide the necessary scalability by increasing the resource availability, increasing the number of offloaded tasks concurrently deployed at the Edge and/or Cloud [START_REF] Ai | Edge computing technologies for internet of things: a primer[END_REF], [START_REF] Tong | A hierarchical edge cloud architecture for mobile computing[END_REF], maximizing the resource sharing and fairness among multiple users [START_REF] Ketyk | Multi-user computation offloading as multiple knapsack problem for 5g mobile edge computing[END_REF] and facilitating the offloading of future tasks.

This objective can be translated into minimizing the overall resource usage (e.g., minimizing the average percentage of the computational and communication resource utilization), minimizing the maximum resource utilization of the infrastructure or minimizing the variance of resource utilization [START_REF] Farris | Mifaas: A mobile-iot-federation-as-a-service model for dynamic cooperation of iot cloud providers[END_REF]. Load balancing can be applied either at each layer of the infrastructure or between the different layers. For example, the appropriate distribution of traffic between an Edge and a Cloud infrastructure, can be considered as an alternative load balancing objective [START_REF] Singh | Quality, reliability, security and robustness in heterogeneous networks[END_REF], [START_REF] Leivadeas | Vnf placement optimization at the edge and cloud[END_REF].

Deployment Cost

The task offloading problem can be often seen as a resource allocation problem where appropriate resources at the Edge and/or Cloud need to be reserved according to a deployment utility cost, in order to execute the offloaded tasks in a virtualized environment. This deployment cost can be in various ways, each having a different interpretation. For example, the deployment cost can be defined as the aggregation of computational and communication resources that a set of tasks needs in order to be provisioned. This is typical when mobile or IoT applications needs to be complemented with specific network functions (e.g., security, compression, QoS) that is otherwise difficult for a user to achieve locally in his device [START_REF] Leivadeas | Vnf placement optimization at the edge and cloud[END_REF]- [START_REF] Leivadeas | Balancing delay and cost in virtual network function placement and chaining[END_REF].

In general, this cost can be expressed as the monetary cost for computing processing (e.g., $/CPU hour), memory (e.g., $/GB) and network bandwidth (e.g., $/GB/day), induced for using network resources. These costs can be associated with the Cloud and Edge providers and how and to whom they lease their infrastructure. Furthermore, since this cost usually follows a "pay-as-you-go" model, the number of physical resources used for the total number of tasks offloaded can reflect the deployment cost [START_REF] Zhao | Tasks scheduling and resource allocation in heterogeneous cloud for delay-bounded mobile edge computing[END_REF], [START_REF] Wang | Computation offloading and resource allocation in wireless cellular networks with mobile edge computing[END_REF].

Model Accuracy

All the objectives described so far, are some typical objectives that can be used regardless of the optimization solution/strategy followed. However, when it comes to Artificial Intelligence (AI) and Machine Learning (ML)based approaches, an additional objective can be the model accuracy for the prediction of the behavior of the applications (e.g., mobility [START_REF] Skarga-Bandurova | The Information Service for Delivering Arrival Public Transport Prediction[END_REF] and network related features [START_REF] Hameed | Iot traffic multi-classification using network and statistical features in a smart environment[END_REF]). Usually the AI/ML objectives are used as secondary or complementing objectives of the ones presented above [START_REF] Sun | Ai-enhanced offloading in edge computing: when machine learning meets industrial iot[END_REF]. In addition to that, regarding critical applications that build or use ML models during the task offloading, particular emphasis should be placed on the training time, inference time and the cost of the required computational power.

Model accuracy can be optimized by using the appropriate ML metrics. For example, regression metrics [START_REF] Botchkarev | A new typology design of performance metrics to measure errors in machine learning regression algorithms[END_REF] can express how close the predictions of a model are compared to the actual values, by using the R-squared, Root Mean Squared Error (RMSE) and Mean Absolute Error (MAE) metrics. In clustering models, the evaluation metrics [187] measure the cohesion and separation of groups of observations. An example of such an approach is the Sum of Squared Error (SSE) metric, which aggregates the distance of each observation from its nearest cluster. When using classification ML techniques [START_REF] Lever | Classification evaluation[END_REF], typical metrics used to evaluate the accuracy are the precision (i.e., the percentage of relevant observations among the retrieved observations), Recall (i.e., the percentage of the total amount of relevant observations that were actually retrieved) and F-Measure (i.e., the harmonic mean of precision and recall).

Multi-Objective

The typical objectives presented so far are usually conflicting, making task offloading a very challenging problem. For example, aiming to minimize the latency can lead to higher energy consumption on the end device, by deciding to execute the tasks locally and vice versa. When adopting load balancing objectives, offloaded tasks can be distributed among different Edge sites or between the Edge and the Cloud, in order to reduce the total delay and energy consumption. Similarly, when minimizing the deployment cost, offloaded tasks may be gathered in one single Edge site; this results in an uneven resource utilization that can also create significant congestion in the infrastructure and thus higher communication delays. Finally, when trying to optimize the spectrum allocation independently of the available communication and computational resources, it can result in poor offloading decisions in terms of delay, deployment cost and load balancing. Hence, multi-objective solutions can be used in order to explore the trade-off between the various objectives. The most common multiobjective approaches consider jointly minimizing the delay and energy consumption [START_REF] Munoz | Optimization of radio and computational resources for energy efficiency in latencyconstrained application offloading[END_REF], [START_REF] Mao | Joint task offloading scheduling and transmit power allocation for mobile-edge computing systems[END_REF], [START_REF] Wang | Mobileedge computing: Partial computation offloading using dynamic voltage scaling[END_REF]- [START_REF] Pham | Decentralized computation offloading and resource allocation for mobile-edge computing: A matching game approach[END_REF]. Energy and latency optimization can also be combined with an optimal spectrum allocation through appropriate power and channel allocation [START_REF] Zhao | Energy-efficient task offloading for multiuser mobile cloud computing[END_REF], [START_REF] Kamoun | Joint resource allocation and offloading strategies in cloud enabled cellular networks[END_REF], [START_REF] Sardellitti | Joint optimization of radio and computational resources for multicell mobile-edge computing[END_REF], [START_REF] Zhang | Energy-latency tradeoff for energy-aware offloading in mobile edge computing networks[END_REF]. Regarding load balancing, it can be jointly optimized with the delay, since both objectives are tightly correlated [START_REF] Ketyk | Multi-user computation offloading as multiple knapsack problem for 5g mobile edge computing[END_REF].

Challenges of Task Offloading

Achieving the aforementioned objectives of task offloading entails a series of challenges. In this section, we identify these challenges and classify them into two main categories.

Network Dynamics Challenges

Dynamic Network Conditions: The mobile and IoT networks are characterized as quickly varying access networks that create dynamic network and traffic conditions. This is a significant challenge that adds an extra level of complexity during the task offloading problem, since it is very difficult to pre-specify the behaviour of the network. Aspects of noise, interference, fading and signal reflection can significantly impact the wireless communications, aggressively altering the overall throughput and delay of the wireless transmission. This necessitates an analysis and prediction of the network conditions, in order to accurately estimate when a task offloading decision positively affects the performance. Besides this, prediction can be combined with a resource allocation mechanism at the Edge and Cloud, since the amount of resources required for the task execution is directly proportional to the amount of traffic (i.e., the request rate) that will actually end up at the Edge or Cloud.

Dynamic User Behaviour: Another level of impediment and dynamics, during task offloading, is added by the random behaviour of the mobile users and how they employ their mobile applications. These behavioural aspects are very difficult to foresee and quantify, creating as result arbitrary user-based traffic profiles. A categorisation of the mobile applications based on the users' preferences, the transmission patterns, the spatial and temporal correlation of the user generated traffic, as well as other traffic related characteristics, can be of utmost importance for the subsequent resource scheduling and allocation. Accordingly, machine learning and data analytic techniques should be applied to estimate the users' behaviour and the rate of task generation.

Edge/Cloud Dynamics: Although the Edge and Cloud layers can work together in harmony, they still have their own dynamics. Cloud sites are centralized while Edge sites are distributed having only a local view of the network.This leads to different dynamics between these two layers. Specifically, contrary to Cloud, Edge has a spatial dynamic exactly because of its location awareness. Additionally, end devices can dynamically re-purpose and reassociate themselves to different applications by offloading different type of tasks or simply new devices could appear or disappear. This inevitably creates an additional dynamic factor for the Edge. Obviously, the initial task offloading and allocation decision over the Edge could be performed in an optimal way by the Cloud, since it possesses this centralized system view; however, the latter may not react timely to local dynamics. Therefore, Edge servers should meet the burden to locally decide to move services' tasks along time. Thus, a new challenge arises in order to i) address these dynamics, ii) create a consistent view of the tasks to be executed that Cloud and Edge should share, and iii) place the different services at the right places in due time.

Resource Allocation Challenges

Task offloading is strongly affected by the resource allocation mechanisms that decide how and where the offloaded tasks will be executed in a remote platform. Thus, the task offloading and resource allocation decisions are coupled and should be addressed jointly. The main challenges this issue creates follow.

Partitioning Decision: The decision of which task to offload is the first and most significant challenge to address, as it comprises the core of the task offloading problem. As shown in Fig. 2, when new tasks are generated by an application, an intelligent mechanism is required in order to decide whether the task should be executed locally or to be offloaded to a remote infrastructure. This partition decision of the tasks is associated with the task execution delay, the transmission delay and the energy consumption. A poor partitioning decision may result in performance bottlenecks regarding the execution of the application. Thus, a compromise between when and which tasks should be offloaded to the Cloud/Edge has to be explored, taking also into consideration any possible transmission costs in terms of energy, delay and money.

Resource Availability: The performance of an application is closely dependent on the resources available at the end user/Cloud continuum. In general, as we move towards the core of the infrastructure, the available resources increase in amount, paying the price, however, of a higher application delay. Hence, sharing these resources is a crucial challenge which needs an efficient resource allocation and management mechanism that will be able to guarantee the performance requirements. Thus, alongside the offloading decision, the resource allocation mechanism should fulfill various functional and non-functional requirements. The primary goal of resource scheduling is the respect of the QoS requirements of the application. Additionally, the resource allocation should guarantee important properties, such as stability, reachability, safety and robustness against internal uncertainties and external disturbances. In terms of functional requirements, the resource allocation strategy should be implemented with commercial or open-source resource orchestration tools, that enable scalability, interoperability and the transparent development of the applications over heterogeneous hardware and software technologies.

Performance Modeling: Measuring the performance of a task offloading solution is an additional challenge. The task offloading problem can be modeled as a system where the energy and/or delay are the typical output variables and the available computing resources (e.g., CPU, memory), incoming requests and network bandwidth are the input variables. In most of the current studies, the proposed performance models are single-input/single-output, empirically derived or fixed. Although this assumption is realistic, the processing time of an offloaded task depends on many time-varying parameters, which are usually not easily measured. On the other hand, multi-input/multi-output models are more accurate, but the identification process is usually strenuous. Specifically, the offloading decision performs adequately only for specific operating conditions, being unable to guarantee stability under fluctuating workloads and heterogeneous communication infrastructures, such as in IoT. Hence, this system model should be adapted in order to include the performance metrics, expressed as state variables, that can be regulated by the control parameters (i.e., the input variables). This framework will be capable of capturing structural changes interpreted as discrete jumps in the dynamics, e.g., user mobility, changes in network conditions and addition/removal of Edge servers.

Task Management: As stated before, offloading tasks to the Cloud follows a centralized approach in which the Cloud infrastructure serves the whole set of tasks coming from the access network layer. In contrast, at the Edge layer, the infrastructure is usually distributed in multiple geographically dispersed Edge sites. Obviously, this is one of the core advantages of Edge Computing, as it creates a local efficiency by executing the tasks and effectuating actuation in minimal time. However, at the same time, a meticulous design of the task management control modules is required at the Edge. The placement of controllers and their mapping to the sites that they will serve, the decision of which task is going to be offloaded at each site and how the load is going to be distributed between the sites, are some of the challenges that fall in this category.

A TAXONOMY OF TASK OFFLOADING AP-

PROACHES

This section lists the most prominent task offloading solutions that have been proposed in the literature. These algorithmic solutions can be divided into three categories:

(i) Mathematical Optimization algorithms; (ii) Artificial Intelligence techniques and (iii) Control Theory -based approaches.

Methodology Comparison

Before providing the most common approaches for each category, it is worth investigating the advantages and disadvantages of each category and the level of their efficiency. Accordingly, we present the main characteristics of each category, while Table 1 summarizes the main features supported.

Mathematical optimization is the most common solution category applied in resource allocation and scheduling networking problems. The reason lies in the fact that, traditionally, these types of problems can be mathematically formulated and solved, using a great variety of existing solutions. Usually, the main goal for this category of algorithms is to find the optimal solution among a set of possible solutions. For example, in the context of task offloading the mathematical optimization approaches will have to appropriately model the input (e.g., Edge/Cloud infrastructure, end users, available resources, task distribution size and duration) and, according to a certain objective, decide when and where the tasks should be optimally offloaded.

The optimality can be achieved through exhaustive search optimization solvers in the expense of a high complexity and execution time. Nonetheless, mathematical optimization approaches can reduce their time complexity when relaxing any hard constraints of the input and altering their final goal into finding a sub-optimal but fast and real-time solution. Even though these types of solutions can fit and be used in real scenarios, they sometimes suffer from their static nature and inability to adapt and model the dynamic challenges inherited from the problem at hand. Under such circumstances, the algorithms should be re-executed and recustomized every time a change happens in time and/or space (e.g., dynamical arrivals of end users, mobility and equipment failures).

AI task offloading mechanisms have also seen great progress nowadays. Data driven models, learning from batch or online data, provide real-time task offloading decisions and elastic resource allocation. Decisions are made by generalizing historical data, recognizing in an automatic way the prevailing data patterns and evaluating the possible destination states of the main actors in the Cloud/Edge environment. The state of Edge infrastructures includes the status of computing nodes in terms of resource utilization, the number of application requests and the user requirements contracted as SLAs.

Contemporary AI and ML task offloading is characterised by flexible adaptation and automatic learning. ML models have the advantages that they are not explicitly designed by human experts and they are self-trained based on the available data. In addition, they can handle multidimensional and multi-variety data in a unified way and they are capable of identifying hidden patterns. The main weakness of AI-based models lies in the case of significant inconsistency between training and testing data properties, which may lead to performance degradation. This means that the data should be selected and gathered with diligent attention to detail and special emphasis should be given to the data preparation tasks of synchronization, transformation, and normalization. Lastly, we should take into consideration that the large amount and high frequency of data make the training model a computational heavy and resource-intensive process.

System Theory provides various models for describing the operation of a process. Additionally, Control Theory provides many formal methodologies to analyse and control the performance of the process. Both of them have been widely used for industrial processes while, during the last decades, they have been introduced to computer networks. System theory provides black-or grey-box training algorithms, namely system identification, to compute multipleinput-multiple-output (MIMO) models that capture the system dynamics of continuous or discrete systems. However, system identification must be performed offline and the computed model may have low accuracy. The control-based task offloading solutions enable real-time decisions against the dynamic network and workload conditions. Additionally, apart from reaching an optimal operating point, the control-based offloading solutions can guarantee various system properties, such as stability and reachability. The guarantee of stability means that the system will reach specific operating conditions and will remain on them against any disturbance. The reachability property means that, given the current system state, we can compute all possible destination states. Although, the complexity of a controller increases with the complexity of the system model (linear or not) and the properties to be guaranteed, the design is an offline process and the real-time application of control law is simple.

Mathematical Optimization Algorithms

The task offloading problem is usually formulated as a mathematical problem, which tries to find an optimal or near-optimal solution. The problem can be formulated by defining the objective function as described in Section 3.3 and the optimization strategy used. These strategies may include Mixed Integer Programming, heuristics, metaheuristics and game theory approaches, among others. Following, we present the main optimization strategies found in the literature, while a summary of them along with the objective of the study, algorithm developed and type of offloading is listed in Table 2. Furthermore, Fig. 3 illustrates the key components of the existing mathematical optimization approaches, shedding light into the well and less explored proposed solutions.

Mixed Integer Programming

Mixed Integer Programming (MIP) formulations provide a flexible and mathematically precise way of formulating many real-world problems. Specifically, integer programming is a commonly used technique for resource allocation and scheduling in wired and wireless networks. The two main problem types that MIP addresses are: i) network synthesis and ii) resource assignment problems [START_REF] Resende | Handbook of Optimization in Telecommunication[END_REF]. MIP optimization approaches facilitate also the introduction of a multi-objective function optimizing more than one goals under various offloading constraints (e.g., delay, energy and load balancing). Hence it can be often used as an optimization strategy during the task offloading problem. Usually, MIP provides a linear objective function (MILP), where at least one of the variables takes integer/binary values. Even though these types of problems can provide the optimal solution, they can be very complex or even computationally intractable for large scale experimentation scenarios. However, they can often be used as benchmark approaches during the performance evaluation. For example, in the context of task offloading, they can be used to minimize the weighted amount of mobile energy consumption in a multiuser system, under latency constraints [START_REF] You | Energy-efficient resource allocation for mobile-edge computation offloading[END_REF]. Regarding delay, the objective function of the MIP can include both the transmission and processing delay, especially for IoT mission-critical applications in an Edge-Cloud collaboration [START_REF] Ning | A cooperative partial computation offloading scheme for mobile edge computing enabled internet of things[END_REF].

In case the objective is non-linear, a Mixed Integer nonlinear (MINLP) or quadratic (MIQP) programming formulation is . Similarly, these types of problems allow the formation of multi-objective functions. For instance, a system cost representing the weighted cost of delay and energy consumption among all available users, can be expressed as a non-linear objective function in a mixed Cloud-Edge task offloading environment [START_REF] Du | Computation offloading and resource allocation in mixed fog/cloud computing systems with min-max fairness guarantee[END_REF]. In case only the energy exists in the objective functions, typically the latency requirements can be imposed as constraints along with other various conditions (e.g., power consumption levels, channel states and resource heterogeneity) [START_REF] Li | Energyaware mobile edge computation offloading for iot over heterogenous networks[END_REF].

Heuristics

Heuristic approaches can introduce fast but sub-optimal solutions. The main advantage of heuristics is that they are simple algorithms devised to address the problem at hand, with low execution time. In contrast with MIP algorithms, they do not require specialized optimization tools to be solved and can rather be expressed as pseudo-code, easily implementable in any programming language. To this end, heuristic solutions are very popular to be applied in the task offloading problem. These types of solutions can range from optimizing the offloading decision of the user while minimizing the overall cost of energy, computation and delay, by applying appropriate relaxation and randomization techniques [START_REF]A semidefinite relaxation approach to mobile cloud offloading with computing access point[END_REF], to optimizing the resource allocation at the Edge, by considering a Cross-Entropy optimization approach [START_REF] Zhao | Energy-efficient task offloading for multiuser mobile cloud computing[END_REF]. Heuristics can also be used to optimize non quantifiable parameters, such as QoE in a Cloud-Edge collaboration [START_REF] Ning | A cooperative partial computation offloading scheme for mobile edge computing enabled internet of things[END_REF], by satisfying the various computational and bandwidth restrictions, applying appropriate fairness and popularity techniques [START_REF] Bilal | Crowdsourced multi-view live video streaming using cloud computing[END_REF]. The efficiency of the heuristic becomes much more evident when the task offloading problem is modeled as a non-linear constrained optimization problem, or when the experimentation covers large-scale offloading scenarios [START_REF] Zhao | Energy-efficient task offloading for multiuser mobile cloud computing[END_REF]. In this case, greedy heuristics can be used to estimate the exact solution [START_REF] Ketyk | Multi-user computation offloading as multiple knapsack problem for 5g mobile edge computing[END_REF], [START_REF] Bilal | Crowdsourced multi-view live video streaming using cloud computing[END_REF], [START_REF] Guo | Computation offloading for multiaccess mobile edge computing in ultra-dense networks[END_REF].

Game Theory

Lately, there has been also a use of game theoretic approaches to deal with resource allocation problems. Through game theory, the task offloading problem can be introduced as a resource allocation game. For example, the problem of the partial task offloading in a multi-user, Edge Computing infrastructure and a multi-channel wireless interference environment, can be formulated as an offloading game [START_REF] Chen | Efficient multi-user computation offloading for mobile-edge cloud computing[END_REF]. This game tries to maximize the spectrum efficiency during offloading by allocating the proper channel to each user/player. The specific approach can be complemented with a second matching game that will aim to maximize the efficiency of resource allocation at the Edge, by appropriately selecting the right Edge servers [START_REF] Pham | Decentralized computation offloading and resource allocation for mobile-edge computing: A matching game approach[END_REF]. A multistep/slot game theoretic approach can be followed in order to find the optimal state, expressed as the Nash Equilibrium. Specifically, in each step the end user/player can make a decision on whether to offload their tasks in order to reach a potentially optimal offloading. A similar slotted approach can be followed by treating each user as a player with the goal to optimize the CPU-cycle frequency and offloading decision, in order to maximize the energy efficiency. Game theory has also been used in an Edge-Cloud interplay, where players can be considered as the corresponding infrastructures [START_REF] Liu | Incentive mechanism for computation offloading using edge computing: A stackelberg game approach[END_REF]. In particular, by formulating a Stackelberg game, a leader player is assigned the goal to maximize a utility function expressed in order to obtain the optimal revenue for the Edge and Cloud providers, while satisfying the delay requirements. A different objective can be considered in an Edge-Cloud collaboration, where the two infrastructures comprise the players of the problem and try to minimize the overall energy consumption under delay constraints [START_REF] Guo | Collaborative computation offloading for multiaccess edge computing over fiber-wireless networks[END_REF], by using a potential game [START_REF] Monderer | Potential games[END_REF].

Contract Theory

Naturally, task offloading introduces conflicts between the participating parties; for example, on the one hand, users and devices seek to maximize energy and spectrum efficiency while on the other, small cells and Edge servers try to minimize consumption of their own resources, like battery capacity and computing power. Conflicts like these might cause reluctance by third parties to participate, which could subsequently raise barriers to the development of attractive traffic offloading solutions. Contract theory is an approach originating from real world economics, that dictates the design of contracts to achieve cooperation between the conflicting sides. In a broad sense, contract theory studies the design of formal and informal agreements that motivate agents with conflicting interests to take mutually beneficial actions. In the wireless networks domain, the agents include the BS, service provider and the spectrum owner, as well as the small cells, smart devices and users [START_REF] Zhang | A survey of contract theory-based incentive mechanism design in wireless networks[END_REF]. The late boom of contract theory applications in task offloading has managed to deal with many early challenges of the field; for instance, combining contract theory with game theory and a monetary rewards system, can eliminate the influence of information asymmetry in a user-Edge server relationship [START_REF] Zeng | Incentive mechanism design for computation offloading in heterogeneous fog computing: A contract-based approach[END_REF]. Similar incentives can be utilized when dealing with small-cell base stations (SBSs) and heterogeneous ultradense networks (HetUDNs) [START_REF] Du | Contract design for traffic offloading and resource allocation in heterogeneous ultra-dense networks[END_REF]. When the goal is to optimize bandwidth allocation in data offloading, dynamic programming concepts can integrate with contract formulation, as in the UAV to macro base station (MBS) offloading scenario, described in [START_REF] Hu | Uav offloading: Spectrum trading contract design for uav-assisted cellular networks[END_REF]. In the case of opportunistically offloading part of the cellular traffic to coexisting networks, towards alleviating the overload problems caused by traffic demands, a contract theory -based incentive mechanism can motivate users to leverage their delay tolerance in exchange for service cost [START_REF] Li | A contractbased incentive mechanism for delayed traffic offloading in cellular networks[END_REF].

Local Search

Local search algorithms adopt mechanisms of perturbation to explore neighbour solutions in the search space, that allow to gradually converge to local optimum solutions. Due to the problem-agnostic nature of the local search algorithms, they can be used as a component of heuristics and meta-heuristics in order to provide solutions very close to optimality [START_REF] Gendreau | Handbook of Metaheuristics[END_REF]. For instance, a one-dimensional local search algorithm can be used for a partial task offloading solution, with the goal to minimize the average execution delay, expressed as a Markov chain process, under the energy constraints imposed by the device [START_REF] Liu | Delay-optimal computation task scheduling for mobile-edge computing systems[END_REF]. When both energy and latency constitute the objective of the partial task offloading problem, a univariate search technique can be used [START_REF] Wang | Mobileedge computing: Partial computation offloading using dynamic voltage scaling[END_REF]. This type of search allows to transform a non-convex problem into a convex one, by finding a local optimum solution. An iterative local search can further reduce the gap with an optimal solution, where multiple iterations of the local search can result in a better resource allocation of computing and channel resources in a partial offloading scenario [START_REF] Zhang | Energy-latency tradeoff for energy-aware offloading in mobile edge computing networks[END_REF]. When the goal is to optimize the energy sustainability of the end-user devices, by selecting the proper Edge resources and at the same time to minimize the execution time of the allocation, a simple bi-section search algorithm can be used [START_REF] Bi | Computation rate maximization for wireless powered mobile-edge computing with binary computation offloading[END_REF].

AI-based Optimization Algorithms

In the above section, we provided traditional mathematical and algorithmic approaches to derive the optimal or nearoptimal solution, in the context of task offloading. However, these approaches may suffer from the following issues: i) Most of the solutions investigated so far fail to take into consideration the dynamic network conditions. Since this is a random variable, it is difficult to estimate and reflect this behavior during the allocation of the Edge and Cloud resources and during the task partitioning decision; ii) The traditional approaches are rather opportunistic, addressing the challenges of the task offloading in a short-term scale. However, in this manner, we can not capture the longterm time and space varying conditions in all the layers of this end-to-end communication model. In other words, the solutions presented above lack the "intelligence" to better adapt holistically to the inherent challenges of the problem at hand. This prepares the ground for using artificial intelligence techniques for the task offloading problem. Artificial Intelligence (AI) techniques include multidisciplinary techniques from machine learning, consensusbased and constraint-based algorithms and they have been widely used in different computer systems and network scenarios [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Sun | Ai-enhanced offloading in edge computing: when machine learning meets industrial iot[END_REF], [START_REF] Guo | Computation offloading for multiaccess mobile edge computing in ultra-dense networks[END_REF], [START_REF] Letaief | The roadmap to 6g: Ai empowered wireless networks[END_REF], [START_REF] Salaht | Service placement in fog computing using constraint programming[END_REF]. AI techniques are becoming successful alternatives also for solving optimization problems that include the mathematical formulation of uncertain, stochastic and dynamic information, thus making them excellent candidates for the task offloading problem. Furthermore, AI can potentially reduce the complexity by enabling recursive feedback-based learning and local interactions and thus faster speed in seeking sub-optimal solutions than traditional techniques [START_REF] Mao | A survey on mobile edge computing: The communication perspective[END_REF], [START_REF] Sun | Ai-enhanced offloading in edge computing: when machine learning meets industrial iot[END_REF], [START_REF] Letaief | The roadmap to 6g: Ai empowered wireless networks[END_REF]. For example, during the task offloading problem, by learning from data and tasks distributed across the Edge infrastructure, AI can enable a smart, real-time, and dynamic resource management framework [START_REF] Rodrigues | Machine learning meets computation and communication control in evolving edge and cloud: Challenges and future perspective[END_REF], [START_REF] Orhean | New scheduling approach using reinforcement learning for heterogeneous distributed sys-tems[END_REF]- [START_REF] Wang | Adaptive federated learning in resource constrained edge computing systems[END_REF]. On another perspective, AI techniques can also be applied to avoid costly data offloading, by enabling data estimation or prediction, like in dual prediction approaches [START_REF] Monteiro | Dpcas: Data prediction with cubic adaptive sampling for wireless sensor networks[END_REF].

Similar to traditional mathematical optimization solutions, when using AI, a problem can be formulated by defining the objective function and the algorithmic strategy to be followed. Following, we present the major AI techniques used in the literature to address the task offloading problem. A summary of the related work with the objective of the study, the algorithm developed and type of offloading, is listed in Table 3, while Fig. 4 illustrates the distribution of the key components of the existing AI optimization approaches.

Machine Learning

As a sub-category of AI, Machine Learning (ML) gives devices or computer systems the capability to learn useful patterns and behaviours from historic data and make decisions about new ones. The models are built without explicit programming; in the case of ML parameterised models, such as Linear Discriminant Analysis, Logistic Regression and Naive Bayes, the models are built by tuning a fixed number of parameters of a predefined mapping function. In the case of non-parametric models, such as the RBF-kernel Support Vector Machines, Decision Trees and K-Nearest Neighbour, the models use a flexible number of parameters with no prior knowledge about the data distribution and mapping function. In both cases, a mapping function is a function that maps the independent data variables to the dependent variables, i.e., the variables the model predicts.

ML models can be divided in supervised, unsupervised and reinforcement learning ones, based on the available training data. A prominent ML subfield is Deep Learning, which involves Artificial Neural Networks (ANN) with multiple layers of representation. ML models have been used successfully to overcome the challenges of task offloading and resource allocation, as described below.

Supervised ML Models: Supervised ML models include classification and regression models. In classification, the model predicts classes while in regression the model estimates continuous values. The offloading decision can be formulated with a multiclass classification method and the resource allocation with a regression model [START_REF] Yang | Computation Offloading in Multi-Access Edge Computing Networks: A Multi-Task Learning Approach[END_REF]. Classification and Regression Trees (CART) [START_REF] Rahbari | Task offloading in mobile fog computing by classification and regression tree[END_REF] have been used to select the fittest Edge device for offloading, while minimizing time and energy by taking into consideration parameters such as the authentication, confidentiality, integrity, availability, capacity, speed and cost. Classifiers such as JRIP and J48 [START_REF] Junior | A context-sensitive offloading system using machine-learning classification algorithms for mobile cloud environment[END_REF] have been used for context-sensitive offloading in a Mobile Cloud Computing environment using a robust profiling system. Logistic regression [START_REF] Bashir | Resource allocation through logistic regression and multicriteria decision making method in IoT fog computing[END_REF], [START_REF] Jararweh | Energy efficient dynamic resource management in cloud computing based on logistic regression model and median absolute deviation[END_REF] has been used to calculate the load of each Edge node and enhance a dynamic resource allocation strategy. A different classification approach classifies Edge applications into classes of services [START_REF] Guevara | On the classification of fog computing applications: A machine learning perspective[END_REF], based on their QoS requirements, and maps them to Edge and Cloud resources. The Apriori algorithm [224] has also been used to generate rules for every task, in order to select the Edge node that offers the minimum completion time.

Linear Regression [START_REF] Kim | Prediction Based Sub-Task Offloading in Mobile Edge Computing[END_REF] has been used to predict the total processing duration of each task on each candidate Edge node, in order to offload entire tasks to one Edge node instead of a local execution. Linear Regression [START_REF] Farahnakian | LiRCUP: Linear Regression Based CPU Usage Prediction Algorithm for Live Migration of Virtual Machines in Data Centers[END_REF] has also been used to predict over-loaded and under-loaded nodes, in order to facilitate a live migration process of tasks. Gaussian Process Regression [START_REF] Da Silva | Resource Allocation Mechanism for a Fog-Cloud Infrastructure[END_REF] has been proposed to predict the future workload of the tasks, allowing the deployment of new, delay sensitive applications and reducing energy consumption, blocking of requests and latency. The dynamic characteristics of applications and the complex Edge/Cloud Computing environment, have been modeled with the Support Vector Regressor [START_REF] Hu | CPU Load Prediction Using Support Vector Regression and Kalman Smoother for Cloud[END_REF] and the K-Nearest Neighbor Regressor [START_REF] Farahnakian | Energy Aware Consolidation Algorithm Based on K-Nearest Neighbor Regression for Cloud Data Centers[END_REF] for future load prediction and energy efficient utilization of Edge servers respectively. Unsupervised ML Models: Clustering models discover groups of objects that are similar, close and dense or share some common properties. Clustering models are differentiated from Classification models in that they do not require annotated data for training. Regarding task offloading, clustering approaches have been used to group resources based on the distance between Edge nodes, wireless and computational resources [START_REF] Cheng | Balanced Clustering and Joint Resources Allocation in Cooperative Fog Computing System[END_REF], [START_REF] Bouet | Mobile Edge Computing Resources Optimization: A Geo-Clustering Approach[END_REF] in order to minimize the response delay. In the same fashion, Edge sites can be grouped for different task resource demands [START_REF] Li | Dynamic mobile cloudlet clustering for fog computing[END_REF] and Edge servers can be grouped using an analysis of the allocated computing resources [START_REF] Li | Dynamic Computation Offloading Based on Graph Partitioning in Mobile Edge Computing[END_REF]. Unmanned aerial vehicles are also clustered to enable efficient multi-modal and multi-task offloading [START_REF] Hu | Ready Player One: UAV-Clustering-Based Multi-Task Offloading for Vehicular VR/AR Gaming[END_REF] and IoT users according to their priorities [START_REF] Liu | Resource Allocation With Edge Computing in IoT Networks via Machine Learning[END_REF]. The dependencies between tasks can be represented by a graph and, by following a fuzzy clustering [START_REF] Gad-Elrab | Fuzzy clustering-based task allocation approach using bipartite graph in cloud-fog environment[END_REF], makespan (i.e., the time difference between the start and finish of tasks), monetary and energy costs can be minimized. The K-means clustering method [START_REF] Ullah | Task Classification and Scheduling Based on K-Means Clustering for Edge Computing[END_REF] can provide efficient task scheduling, thus increasing the utilization of the Edge devices, based on the type of resource requirements in terms of CPU, I/O and communication. Lastly, a policy-based clustering approach [START_REF] Bozorgchenani | An Energy-Aware Offloading Clustering Approach (EAOCA) in fog computing[END_REF] can provide energy efficient task offloading solutions, by organizing the interactions among the Edge nodes. in multiple decision and scheduling problems because of highly accurate outcomes, especially when large amounts of data are available. In Edge and Cloud Computing, large amounts of data are being collected by resource monitoring tools, application logging mechanisms and network sniffers [START_REF] Calzarossa | Workload Characterization: A Survey Revisited[END_REF]. A modular deep learning model can integrate different sources of data, manipulate the data observations with hierarchical layers of representations and extract generalized knowledge that goes beyond the historical observations.

Deep Learning can provide timely and accurate task offloading decisions, based on the resource usage of processing Edge nodes, the workload and the QoS constraints defined in SLA [264]. A deep learning model works as a function approximator that takes as input the current infrastructure and workload status and outputs the appropriate processing nodes where each tasks will be offloaded. Further outputs of the deep learning models include the decisions for vertical or horizontal scaling up and VM migration, in order to guarantee the smooth operation of tasks execution in a dynamic and quick-change computing environment. Specifically, Deep Learning models have been implemented to minimize the computation and task offloading overhead in varying network conditions and limited computation resources [START_REF] Yu | Computation offloading for mobile edge computing: A deep learning approach[END_REF]. A Deep Learning model that also addresses the challenges of speed, power and security, while satisfying the quality of services, has been proposed in order to determine the combination of different devices and dynamic tasks [START_REF] Rani | Deep learning based dynamic task offloading in mobile cloudlet environments[END_REF]. In addition, close to the optimal joint offloading decisions, bandwidth allocation can be generated with a distributed deep learning-based offloading algorithm for Edge networks [START_REF] Huang | Distributed Deep Learning-based Offloading for Mobile Edge Computing Networks[END_REF]. Furthermore, the challenge of energy efficient task offloading with Deep Learning has been studied in the context of the internet of vehicles [START_REF] Wang | A deep learning based energyefficient computational offloading method in Internet of vehicles[END_REF], users' equipment [START_REF] Ali | A Deep Learning Approach for Energy Efficient Computational Offloading in Mobile Edge Computing[END_REF] and specifically for delay-sensitive and computation intensive tasks in Edge Computing networks [START_REF] Zhu | Energy and Delay Coaware Computation Offloading with Deep Learning in Fog Computing Networks[END_REF].

Deep Reinforcement Learning: Generally, reinforcement Learning models take actions in an environment in order to maximise a cumulative reward or minimize expected loss. Reinforcement Learning is usually combined with Deep Learning in order to generalise with previously unseen data in terms of environment, states and actions. In the Edge Computing context, a Deep Reinforcement Learning model has been implemented to make the binary offloading decision on whether the offloading will take place partially locally or fully remotely to an Edge server [START_REF] Huang | Deep Reinforcement Learning for Online Computation Offloading in Wireless Powered Mobile-Edge Computing Networks[END_REF]. Deep Q-Networks [START_REF] Zhao | Deep reinforcement learning based mobile edge computing for intelligent internet of things[END_REF], [START_REF] Zhang | Deep Learning Empowered Task Offloading for Mobile Edge Computing in Urban Informatics[END_REF] have been proposed to automatically infer the offloading decisions, in order to optimize the system performance. Furthermore, Deep Q-Networks have been enhanced to capture the sequence of data with long short-term memory layers [START_REF] Lu | Optimization of lightweight task offloading strategy for mobile edge computing based on deep reinforcement learning[END_REF], for mobile tasks in a large-scale heterogeneous Edge environment and Gated Recurrent Unit layers [START_REF] Baek | Heterogeneous Task Offloading and Resource Allocations via Deep Recurrent Reinforcement Learning in Partial Observable Multi-Fog Networks[END_REF] in multi-Edge networks.

Population-Based Methods

Population-Based methods include a wide range of natureinspired algorithms and provide close to optimal solutions in combinatorial problems, following a metaheuristic approach. Two main subcategories of Population-Based methods are the Swarm Intelligence and the Evolutionary Algorithms. Both of them have been proposed in order to provide efficient solutions in task offloading challenges.

Swarm Intelligence (Consensus-based):

The Swarm Intelligence properties make it a practical design model for algorithms that solve increasingly complex problems. In general, swarm algorithms strive to allow the entire system to converge into a global consensus state, while retaining the ability to perform assigned individual tasks in the swarm. Ant Colony Optimization (ACO) and Particle Swarm Optimization (PSO) are the most common Swarm Intelligence algorithms. ACO can be applied for efficient task scheduling due to its strong global search ability [START_REF] Liu | An Ant Colony Optimization Fuzzy Clustering Task Scheduling Algorithm in Mobile Edge Computing[END_REF] and improve the response time of IoT applications by distributing effectively the tasks over the Edge nodes [START_REF] Hussein | Efficient Task Offloading for IoT-Based Applications in Fog Computing Using Ant Colony Optimization[END_REF]. On the other hand, PSO can be used to minimize both the transmission and the processing delay, as a means to minimize the total end-to-end delay during a partial task offloading at the Edge [START_REF] Rodrigues | A pso model with vm migration and transmission power control for low service delay in the multiple cloudlets ecc scenario[END_REF]. In this case, PSO can also incorporate other task offloading key mechanisms, such as VM migration and transmission power management, to minimize service delay as efficiently as possible, to provide high QoS for different application profiles and to remain computationally feasible. Last but not least, PSO has been used to jointly minimize energy consumption and completion time for high-quality solutions [START_REF] Huynh | Efficient Computation Offloading in Multi-Tier Multi-Access Edge Computing Systems: A Particle Swarm Optimization Approach[END_REF], [START_REF] Zhang | Slow-movement particle swarm optimization algorithms for scheduling securitycritical tasks in resource-limited mobile edge computing[END_REF].

Evolutionary Algorithms: Evolutionary Algorithms are based on natural selection principles, such as reproduction, mutation, recombination and selection. They perform a lot of iterations on a set of candidate solutions, aiming for the closer to optimal solutions to survive as much as possible, while the unfit solutions tend to be discarded. Evolutionary Algorithms [START_REF] Zhang | Model and Algorithms for the Planning of Fog Computing Networks[END_REF] have been used in the deployment of Edge nodes and the offloading strategies. A subclass of Evolutionary Algorithms is the Genetic Algorithms (GA), which is characterized by the crossover principle in the reproduction of candidate solutions. GAs have been used for sequential task offloading and proactive fault tolerance [START_REF] Al-Habob | Sequential Task Scheduling for Mobile Edge Computing Using Genetic Algorithm[END_REF]. Hybrid models, which combine GA with PSO, have also been proposed [START_REF] Yadav | GA-PSO: Service Allocation in Fog Computing Environment Using Hybrid Bio-Inspired Algorithm[END_REF] and they achieve close to optimal task offloading of IoT applications, while minimizing the total makespan and energy consumption.

Constraint Satisfaction Methods

The task offloading problem has also been re-defined as a Constraint Satisfaction Problem (CSP) with multiple source of constraints such as SLA, QoS, QoE, the heterogeneity of devices, the particularities of VMs and the dynamicity of the task generation process. CSP [START_REF] Lecoutre | Constraint Networks: Targeting Simplicity for Techniques and Algorithms[END_REF] is related to the artificial intelligence operations research and aims to find feasible solutions by using methodologies such as constraint propagation, local search, backtracking and various heuristics. Specifically, task properties, user mobility and network constraints have been jointly formulated as a CSP [START_REF] Wang | User mobility aware task assignment for Mobile Edge Computing[END_REF], in order to reduce the task execution delay in Mobile Edge Computing infrastructures. A CSP formulation has also been used in combination with Min-conflicts scheduling algorithm [START_REF] Kamal | Heuristic min-conflicts optimizing technique for load balancing on fog computing[END_REF], for achieving the necessary load balancing of the Edge resources and minimizing energy consumption. A more demanding offloading use case is the distributed processing of data streams. In this case, special emphasis is given to minimizing end-to-end latency through the appropriate placement of the stream operators, either on Cloud nodes or Edge devices. A CSP optimization framework has also been proposed in order to minimize this latency and satisfy the constraints of power, bandwidth and CPU utilization [START_REF] Amarasinghe | A Data Stream Processing Optimisation Framework for Edge Computing Applications[END_REF].

One prominent approach to address a CSP comes from the Constraint Programming (CP). CP [START_REF] Rossi | Handbook of constraint programming[END_REF] is a programming paradigm used in solving complex problems, where instead of defining a sequence of steps for the program to execute in order to obtain the result, one defines the relationships between variables in the form of constraints that must be met. Afterwards, by following the steps of branching and exploration, CP finds feasible solutions to the problem. CP has been proposed for a generic and easy-to-upgrade placement service for Fog Computing with short resolution times and quality solutions. Specifically, using Choco [START_REF] Salaht | Service Placement in Fog Computing Using Constraint Programming[END_REF], a many times awarded constraint solver, we can estimate close to optimal solutions in terms of network infrastructure, applications graphs and metrics like the usage of storage, network and energy resources. In addition, CP has been combined with an event-based finite state model [START_REF] Vakilinia | Optimal multi-dimensional dynamic resource allocation in mobile cloud computing[END_REF], in order to optimize mobile battery life and guarantee QoS and cost minimization simultaneously.

Control Theory -based Algorithms

Originally, Control Theory was designed to regulate the behaviour of dynamic systems and keep the system output(s) following the desired control signal, also called a reference. Control theory relies on feedback mechanisms and is widely applied to computing systems. Because of its nature to rely on feedback, which measures the difference between the actual output and the desired reference, control theory has been applied in the field of Edge Computing for implementing mechanisms of efficient decision-making control [START_REF] Yin | A control-theoretic approach for dynamic adaptive video streaming over http[END_REF]- [START_REF] Wu | Toward fast and distributed computation migration system for edge computing in iot[END_REF], network design selection [START_REF] Li | Edge computing-based access network selection for heterogeneous wireless networks[END_REF], [START_REF] Koike | Proxy-based network function to assist robotic feedback control system[END_REF], time-critical systems [START_REF] Mohanarajah | Cloud-based collaborative 3d mapping in real-time with low-cost robots[END_REF], [START_REF] Tian | Motion segmentation and synthesis for latency mitigation in a cloud robotic tele-operation system[END_REF], [START_REF] Host | Network requirements for latency-critical services in a full cloud deployment[END_REF]- [START_REF] Spatharakis | A Switching Offloading Mechanism for Path Planning and Localization in Robotic Applications[END_REF], admission control [START_REF] Avgeris | Adaptive resource allocation for computation offloading: A control-theoretic approach[END_REF], network management [START_REF] Dlamini | Online resource management in energy harvesting bs sites through prediction and soft-scaling of computing resources[END_REF], switching Edge [START_REF] Zhang | Qcss: a qoe-aware control plane for adaptive streaming service over mobile edge computing infrastructures[END_REF] and network switching [START_REF] Basic | Fuzzy handoff control in edge offloading[END_REF], among others. A summary of the control theory approaches, along with the objective of each study, the algorithm developed, type of offloading and the consideration of mobility, is listed in Table 4. Moreover, Fig. 5 illustrates the distribution of the key components of the existing control theory -based approaches.

Optimal Control

The control theory foundations, specifically those based on linear optimal control theory (i.e., Linear Quadratic Regulator (LQR) [START_REF] Kalman | Contributions to the theory of optimal control[END_REF]), consider the design of a selection strategy [START_REF] Li | Edge computing-based access network selection for heterogeneous wireless networks[END_REF] in a heterogeneous wireless network, with the objective to maximize the network resource utilization, while meeting the constraints of the supported services. Linear controllers are designed to meet the system's constraints and QoS metrics [START_REF] Avgeris | Adaptive resource allocation for computation offloading: A control-theoretic approach[END_REF]. The high efficiency of the LQR controllers guarantees the control performance of the system. Skarin et al. [START_REF] Skarin | Cloud-assisted model predictive control[END_REF] consider the LQR for MIMO linear systems. Control theory can be deemed of utmost importance in UAVs-related task offloading where LQR-based controllers are used in order to achieve robust adaptive attitude control [START_REF] Zhou | Robust adaptive attitude control of the quad-rotor uav based on the lqr and neso technique[END_REF].

State Feedback Control

Another advantage of the control-theoretic approach in task offloading is that it provides a methodology for the modelling, analysis and evaluation of the system. Avgeris et al. [START_REF] Avgeris | Adaptive resource allocation for computation offloading: A control-theoretic approach[END_REF] proposed a control theory approach to study the adaptive resource allocation problem for task offloading.

The proposed two-level resource allocation and admission management system for an Edge application cluster, gives mobile users an alternative option for performing their tasks. The proposed controllers allow mobile users to offload application-specific tasks within the coverage area. However, it should be noted that mobility of users within the proximity of the cluster is not taken into consideration in this work. Kalatzis et al. [START_REF] Kalatzis | Edge computing in IoT ecosystems for UAV-enabled early fire detection[END_REF] modeled the performance of IoT-based applications with a switched system and computed various equilibrium points that correspond to different operating conditions. Based on these points, a simple scaling mechanism was built to satisfy the varying workload demand. Extending [START_REF] Kalatzis | Edge computing in IoT ecosystems for UAV-enabled early fire detection[END_REF], SMOKE [START_REF] Avgeris | Where there is fire there is smoke: a scalable edge computing framework for early fire detection[END_REF] is a scalable resource allocation mechanism for UAV-based forest fire detection. UAVs are able to offload images to Edge servers for further processing. In the case of wildfire, the workload of the UAVs in the field increases significantly and the dynamic resource allocation is essential to achieve the desired QoS. A group of linear systems is used to model the container-based image processing services and a statefeedback controller is designed to scale each container's computing resources.

Lyapunov Optimization Approaches

Lyapunov optimization algorithms provide a unique property of finding the sufficient conditions for stability in dynamical systems. Due to the stability theory of dynamical systems, Lyapunov-based optimization algorithms can be used in order to study the task offloading problem. In par-ticular, for minimizing the energy consumption of mobile devices, there is a number of dynamic variables that need to be fine-tuned and converged to an optimal value in order to minimize the total energy consumption. Thus, Lyapunov optimization can be used to find the necessary stability in the CPU-cycle frequency of the device, transmission power, spectrum utilization and latency [START_REF] Xu | Joint service caching and task offloading for mobile edge computing in dense networks[END_REF], [START_REF] Mao | Dynamic computation offloading for mobile-edge computing with energy harvesting devices[END_REF], [START_REF] Li | Joint admission control and resource allocation in edge computing for internet of things[END_REF], [START_REF] Mao | Power-delay tradeoff in multi-user mobile-edge computing systems[END_REF], while satisfying the necessary task execution constraints [START_REF] Huang | A dynamic offloading algorithm for mobile computing[END_REF]. Another variable that dynamically fluctuates during task offloading is the resource availability. In this case, an online task offloading algorithm, which leverages Lyapunov optimization methods and utilizes the current system information, can be used to predict the user's resource availability [START_REF] Pu | D2d fogging: An energyefficient and incentive-aware task offloading framework via network-assisted d2d collaboration[END_REF]. The benefits are two-fold. First, network operators with global network information are trusted to make the comprehensive offloading decision for all the users. Second, the capabilities of mobile devices are constantly improving and the multiplexing advantage (due to the flexibility of resource availability between devices) can be exploited to enable the execution of collaborative tasks for a wide range of services.

Rest of the Control Approaches

This paragraph includes the control-based studies that cannot be classified in the previous categories. the uncertainty of the mobile robot's position, the resource availability at the Edge servers and the complexity of the path planning.

In addition, control theory can be applied to address the task allocation problem [START_REF] Zhang | An integrated top-down and bottomup task allocation approach in social sensing based edge computing systems[END_REF] with a novel integrated Top-Down Bottom-Up (TDBU) approach. In particular, the topdown module i) observes the bottom-up task preference decisions of the Edge devices and decides the optimal task offloading strategy to ensure the overall system performance; ii) leverages top-down incentive schemes to implicitly guide the Edge devices to pick the tasks that are most likely to finish in time. Similarly, Wu et al. [START_REF] Wu | Toward fast and distributed computation migration system for edge computing in iot[END_REF], proposed codeSpec, a decision making control theory approach (on the Edge device) that periodically renews its offloading decisions, at code level, with nearby IoT devices, in real-time. CodeSpec, shifts the destined devices from inter-domain servers to IoT devices nearby and only offloads binary code of userspecified regions across different instruction set architectures (e.g., x86 64, ARMv7 and IA-32), using control theory.

OPEN CHALLENGES AND FUTURE DIRECTIONS

The concept of task offloading has evolved from the simple idea of migrating the computation intensive tasks of enduser devices at a remote location. The concept of Edge Computing and the arrival of new applications, enabled by recent trends in wireless communications such as the IoT and 5G, have introduced tremendous innovation opportunities for task offloading. However, new technical and business challenges arise. This section discusses future research directions and open issues in the context of task offloading.

Heterogeneous Networks

A Heterogeneous Network (HetNet) consists of a macro cell layout with some possible Low Power Nodes (LPNs) placed throughout their coverage zones. Task offloading in HetNet is suited for three cases, as shown in Fig. 6: i) Single-cell scenario, ii) Contiguous cluster-cell scenario and iii) Noncontiguous cluster-cell scenario.

In the context of single-cell scenarios, new offloading decision variables can be the interference and less congested cells selection. In the context of clustered-cells, the densest cell expands over several neighbour cells. The devices in the edge of the cell can extend the communication capacity (as well as other types of network management, e.g., energy or mobility) through nearby devices, to neighbouring cells. In this case, the goal is to analyze the capability of a resource allocation technique to shift to a remote Edge location, involving inter-cell communication and management aspects. A third scenario to be addressed concerns the communication of devices (small-cell environments) that are not adjacent, i.e., scenarios where the clustered cells may or may not be neighbouring cells. This scenario assists in understanding how a resource allocation technique operates in terms of scalability, as well as in terms of supporting challenges such as long delays, or network partitions (as the small-cells are not in contiguous clusters).

Heterogeneous Dense Networks (HDHNs) consisting of clustered cells, require algorithms that are able to extend capacity over a distance of several cells towards the crowded cells. For the optimization of tasks with several small and distributed dense servers (either Edge or Cloud), however, the algorithms should draw capacity from cells within a short distance from the dense ones, such that only a few cells that are located close to the dense cells are affected. Initial studies in this area deal with simple scenarios of one end user and one Edge server in a single cell, or few end devices, one or more Edge servers and a central Cloud, while the results show the feasibility of task offloading with the combination of Edge and Cloud communications [START_REF] Zhang | Energy-efficient offloading for mobile edge computing in 5g heterogeneous networks[END_REF], [START_REF] Guo | Computation offloading for multiaccess mobile edge computing in ultra-dense networks[END_REF]. However, if multiple end-user devices reuse the spectrum to connect to multiple Edge and Cloud servers, imposing as a constraint to not degrade the QoE and the service continuity, the effect of signalling overhead, smooth handover and dynamic resource allocation on the offloading, becomes more significant. Such effects have not been thoroughly explored in the aforementioned studies.

Real-time Distributed Resource Allocation

The optimization procedures during task offloading are primordial in order to handle crucial operations such as intelligent resource allocation and service continuity, by making independent and rational strategic decisions and smartly adapting to the environment. In this scenario, access networks are usually centralized, with all the traffic going through a central node (i.e., a BS). Furthermore, by offloading the tasks to a distributed Edge infrastructure, a separate backhaul connection is required which can increase the installation and energy costs for the mobile operators. Finding the right resources to offload the tasks to, in such distributed scenarios, is a critical objective, especially for heterogeneous networks. On top of that, the dynamic behaviour of the user adds another level of complexity when the appropriate Edge site needs to be selected in order to achieve the task offloading objectives, such as low latency and resource optimization, while maintaining at the same time the user association information with the adjacent BS. Developing a real-time task offloading algorithm that considers the user interactions and a distributed Edge infrastructure, in order to improve the service delivery in dynamic scenarios, is one of the greatest currently open challenges. Moreover, in the heterogeneous networks, efficient real time allocation schemes that learn based on historic performance and adapt online to application's statistics, are still in their infancy.

Mobility-induced Network Dynamics

In many situations, the dynamic movement behaviour of the users becomes the deciding factor on whether to offload the task or not. Even though few existing researches aim to take mobility into account, the particular case is still considered an open challenge. For example, developing algorithms by learning the user's behaviour and network dynamics in parallel, in order to reduce communication and computational costs, are of utmost importance for new and emerging applications. Beyond 2020, there will be a growing demand for high user mobility applications such as dronebased applications, high speed trains, moving hotspots and 3D connectivity. Current solutions, would be difficult to be applied in such extremes scenarios, not only in terms of accuracy but also in terms of minimum performance requirements (e.g over 500km/h high speed mobility, high throughput and ultra low latency).

Node, Resource and Application Heterogeneity

Another critical challenge is dealing the heterogeneity of the available infrastructure in terms of hardware and available resources. Both mobile and Edge devices are characterized by a great heterogeneity in terms of hardware, software and resource capabilities specifications. Furthermore, the existence of a large range of applications with different performance requirements, that are readily available at the same end device, can affect or limit the efficiency of the task offloading solution used. All these factors are key components during task offloading. Thus, maintaining adequate service delivery and service continuity, while addressing the task offloading in such a heterogeneous scenario, as a research topic, is still in its infancy.

Moving Edge Resources Closer to the End Devices

There exist several situations in which task offloading is indispensable but where the end devices are not able to directly offload data to an Edge server (e.g., that are not in range or do not have enough energy to reach it). In such cases, it may be useful to send off mobile Edge resources close to these end devices and adapt to their mobility and needs. However, obviously, mobile Edge resources might not be as powerful as stationary ones and might also be limited in terms of the services they can offer and their autonomy. Thus, the challenges imposed to task offloading here will be i) how to trigger the sending of mobile resources, ii) what kind of tasks to offload and iii) from what end devices.

Security and Privacy

Naturally, task offloading involves a huge amount of data outsourced to third party Edge infrastructures, thus security and privacy concepts are of paramount importance. These concepts can be addressed from different angles, i.e., i) end user device, ii) Edge data center and iii) the actual data transmission over the network. Lately, a great increase in the variety of sophisticated attacks on end user devices has been observed, which constitutes the main target for attackers. Regarding the Edge infrastructures, threats are mainly focused on the data transmission between the different nodes of the network. Proposed solutions include various steganography and homomorphic encryption techniques, as well as hardware-based secure execution. However, when used individually, most of these solutions have limitations in their applications; e.g., encryption keys may be too large hence dramatically increasing the amount of transmitted and stored data, while computation on encrypted data is still in early research stages. Undoubtedly, Edge-related security and privacy threats are advancing in a quick manner, making it challenging to adapt to and deflect. Centralised monolithic security systems need to evolve as well into agile distributed solutions that combine more than one techniques, to fit better to the Edge Computing paradigm. Hence, task offloading solutions should be enhanced by taking into consideration security and confidentiality constraints.

Fault Tolerance

Apart from security and privacy, an important factor contributing to building trust towards task offloading at the Edge is fault tolerance. As thoroughly discussed in the previous sections, mobility support is one of the most important requirements during task offloading and this is because autonomy of communication and freedom of movement are crucial criteria when it comes to users' satisfaction. Still, there are certain obstacles in achieving seamless connectivity and uninterrupted access to an Edge server while moving. For example, network bandwidth and data exchange rates may vary or connection might be lost. Thus, task offloading should be enhanced with fault tolerance techniques to guarantee the successful transmission and execution of the task, as well as minimize application response time and energy consumption in end-user devices.

Control-related Challenges

Although control theory is widely applied in Cloud elasticity and resource allocation problems [START_REF] Ullah | A control theoretical view of cloud elasticity: taxonomy, survey and challenges[END_REF], there are still open challenges on task offloading and Edge Computing that can be addressed by control techniques. Apart from respecting the QoS requirements, control theory is able to guarantee important system properties, e.g., stability, positive invariant sets and ultimate boundedness [START_REF] Dechouniotis | Acra: A unified admission control and resource allocation framework for virtualized environments[END_REF], against the inherent system's uncertainties and external disturbances. Intermittent connectivity, the innate management features of the virtualization technologies and the limited resources at the edge of the network, lead to a highly volatile dynamic environment that necessitates advanced modeling and control methodologies. Regarding the modeling of the offloading-based applications, control theory provides many modeling alternatives involving switching systems [START_REF] Spatharakis | A scalable edge computing architecture enabling smart offloading for location based services[END_REF], [START_REF] Dechouniotis | Acra: A unified admission control and resource allocation framework for virtualized environments[END_REF], Linear Parameter Varying (LPV) systems [START_REF] Saikrishna | Identification and multivariable gain-scheduling control for cloud computing systems[END_REF], [START_REF] Dechouniotis | A control-theoretic approach towards joint admission control and resource allocation of cloud computing services[END_REF] and Fuzzy Takagi-Sugeno systems [START_REF] Rashidi | Cloudlet dynamic server selection policy for mobile task off-loading in mobile cloud computing using soft computing techniques[END_REF], [START_REF] Leontiou | A hierarchical control framework of load balancing and resource allocation of cloud computing services[END_REF], that allow the natural incorporation of uncertainties and disturbances in the performance model.

Controller Design for Cyber-Physical Systems (CPS)

Another active and very practical challenge in the context of IoT and mobile-enabled computing, is the controller design for cyber-physical systems (CPS), found e.g., in manufacturing, transportation and collaborative robotics. In the context of dynamic networks and remote computing, a joint co-design decision making strategy for task offloading, resource allocation and controller design for CPS, is more appropriate when compared to separate layers of controllers for the infrastructure resources and the system to be controlled. This new generation of controllers will be made possible by merging two sets of models, namely a) the performance model described above and b) the process model (having, for example, variables related to position, orientation and velocity of mobile devices, lighting conditions, room temperature and mode of operation of sensors).

The co-designed controllers should address many of the non-idealities of the dynamic networks found during task offloading, where resources must be used parsimoniously, in balance with the constraints and the overall objective [START_REF] Dechouniotis | Edge computing resource allocation for dynamic networks: The druid-net vision and perspective[END_REF]. It is worth mentioning that in control engineering, shared and imperfect communication networks between the controller and the sensor/actuator have been studied extensively, generating the branch of Networked Control Systems (NCS) [START_REF] Zhang | Stability of networked control systems[END_REF]. Several developed methods address time delays and packet dropouts of NCS, utilizing perturbation theory, Lyapunov stability theory and hybrid systems analysis, including probabilistic methods involving Markov chains and stochastic automata [START_REF] Hespanha | A survey of recent results in networked control systems[END_REF], [START_REF] Sinopoli | Kalman filtering with intermittent observations[END_REF], [START_REF] Simon | Robust control/scheduling co-design: application to robot control[END_REF]. A breakthrough will be the emergence of event-triggered and self-triggered control, that allows asynchronous sampling, thus reducing the network traffic, while at the same time providing guaranteed trade-offs of the degradation of the closed-loop system performance [START_REF] Heemels | An introduction to event-triggered and self-triggered control[END_REF]. Consequently, in the context of task offloading, a timely challenge is to provide co-design control formulations that develop dynamic task offloading as well as control design algorithms for CPS, taking simultaneously into account the schedulability, available and requested network resources, Edge resources and energy consumption. It is anticipated that such control algorithms will improve performance, utilization of the underlying infrastructure as well as resilience and robustness of the systems to be controlled.

CONCLUSION

In this paper, we have presented a detailed and comprehensive study of the task offloading problem and we have extensively analyzed the main components and different computing paradigms of an end-to-end communication path. This path starts at the end device (i.e., mobile/IoT devices) and leverages the benefits of the added computational resources at the edge of the network, before ending up to the Cloud. Nonetheless, offloading parts of an application from an end device to a remote Edge or Cloud site, arises a number of challenges mostly related to the dynamic network behavior and the resource allocation problem to be solved. Between these challenges, the type of end devices in terms of mobility is expected to be one of the main characteristics of task offloading that can dictate the scheduling and allocation of the offloaded tasks. Prominent solutions addressing these challenges have given the necessary momentum to task offloading in order to be considered as a viable solution not only to existing, but to emerging and upcoming applications such as immersive applications, autonomous vehicles and robotics. The benefits of task offloading are numerous, allowing to increase the QoS and QoE of the application, while extending the battery lifetime of the end devices. To achieve that, specific emphasis is given on the optimization models used along with the different objectives, in order to partition and allocate the tasks of end devices into an end-to-end communication path that creates a user to Cloud continuum. Since this problem contains various dynamic parameters in terms of network and user behavior, appropriate AI and ML techniques to anticipate traffic demands have also been presented. Control theory techniques have also been investigated as an alternative way to address the uncertainties of this dynamic problem, with the aim to ensure the necessary stability of the task offloading systems. Our survey concluded with some interesting open challenges that will shape and transform the task offloading problem for future network scenarios and applications. These future directions emphasize on control co-design, dynamic and real-time allocation in a heterogeneous Edge environment, and secure and highly mobile network platforms.

•

  F. Saeik, J. Violos and A. Leivadeas are with the Department of Software and Information Technology Engineering, École de Technologie Supérieure, Montréal, Canada. M. Avgeris, D. Spatharakis, D. Dechouniotis and S. Papavassiliou are with the Department of Electrical and Computer Engineering, National Technical University of Athens, Greece. N. Santi and N. Mitton are with INRIA, France. N.

Fig. 1 :

 1 Fig. 1: Infrastructure components during task offloading.

Fig. 2 :

 2 Fig. 2: Task offloading process.

Fig. 3 :

 3 Fig. 3: Summary of mathematical optimization task offloading algorithms.

Deep Learning:Fig. 4 :

 4 Fig. 4: Summary of AI-based task offloading algorithms.

Fig. 5 :

 5 Fig. 5: Summary of control theory -based task offloading algorithms.

Fig. 6 :

 6 Fig. 6: Overview of general Heterogeneous Networks scenarios.

TABLE 1 :

 1 Comparison of Mathematical Optimization (MO),

	Artificial Intelligence (AI), and Control Theory (CT) Ap-
	proaches
	MO	AI	CT
	Stability
	Low Complexity
	Optimality
	Online Training
	Reachability
	Real-Time Decision

TABLE 2 :

 2 Taxonomy of mathematical optimization task offloading algorithms.

	Reference	Optimization Objective Delay Energy Bandwidth/Spectrum Load Balancing Deployment Cost	MIP	Algorithms Heuristic Game Theory Contract Theory	Local Search	Mobility Static Mobile	Offloading Partial Full Edge-Cloud
	[41]
	[42]
	[65]
	[85]
	[89]
	[116]
	[117]
	[121]
	[150]
	[151]
	[152]
	[154]
	[155]
	[161]
	[162]
	[163]
	[164]
	[165]
	[166]
	[167]
	[168]
	[169]
	[170]
	[173]
	[174]
	[176]
	[189]
	[191]
	[192]
	[193]
	[194]
	[195]
	[196]
	[197]
	[198]
	[199]
	[200]
	[201]
	[202]
	[203]
	[204]
	[205]
	[206]
	[207]

TABLE 3 :

 3 Taxonomy of AI-based task offloading algorithms.

	Reference	Delay	Optimization Objective Energy Bandwidth/Spectrum Load Balancing Deployment Cost	Model Accuracy	Algorithms Machine Learning Population Constraint	Mobility Static Mobile	Granularity Partial Full Edge-Cloud
	[218]
	[219]
	[220]
	[221]
	[222]
	[223]
	[224]
	[225]
	[226]
	[227]
	[228]
	[229]
	[230]
	[231]
	[232]
	[233]
	[234]
	[235]
	[236]
	[237]
	[238]
	[239]
	[240]
	[241]
	[242]
	[243]
	[244]
	[245]
	[246]
	[247]
	[248]
	[249]
	[250]
	[251]
	[252]
	[253]
	[254]
	[255]
	[256]
	[257]
	[258]
	[259]
	[260]
	[261]
	[262]

TABLE 4 :

 4 Taxonomy of control theory -based task offloading algorithms.

	Reference	Optimization Objective Delay Energy Bandwidth/Spectrum Load Balancing Deployment Cost	Optimal Control	Algorithms State Feedback Control Lyapunov	Rest Control Approaches	Mobility Static Mobile	Granularity Partial Full Edge-Cloud
	[94]
	[100]
	[115]
	[121]
	[139]
	[158]
	[170]
	[178]
	[191]
	[268]
	[269]
	[274]
	[275]
	[276]
	[277]
	[280]

ACKNOWLEDGMENTS

This work was supported in part by the CHIST-ERA-2018-DRUID-NET project.