# UAV-Enabled Mobile Edge-Computing for IoT Based on AI: A Comprehensive Review
###### Abstract  
Unmanned aerial vehicles (UAVs) are becoming integrated into a wide range of modern IoT applications. The growing number of networked IoT devices generates a large amount of data. However, processing and memorizing this massive volume of data at local nodes have been deemed critical challenges, especially when using artificial intelligence (AI) systems to extract and exploit valuable information. In this context, mobile edge computing (MEC) has emerged as a way to bring cloud computing (CC) processes within reach of users, to address computation-intensive offloading and latency issues. This paper provides a comprehensive review of the most relevant research works related to UAV technology applications in terms of enabled or assisted MEC architectures. It details the utility of UAV-enabled MEC architecture regarding emerging IoT applications and the role of both deep learning (DL) and machine learning (ML) in meeting various limitations related to latency, task offloading, energy demand, and security. Furthermore, throughout this article, the reader gains an insight into the future of UAV-enabled MEC, the advantages and the critical challenges to be tackled when using AI. UAVs; IoT; cloud computing; edge computing; MEC; AI; review +
Footnote †: journal:  
0000-0001-48  
0000-0001-4800-0001-4800-0001-4800-0001-4800-0001-4800-0001-48000-001-48000-001-48000-001-48000-001-48000-001-48000-001-48000-001-480000-001-48000-001-4  
or unavailable communication infrastructure. Typically, UAVs can be deployed as aided communication networks by integrating them into the peripheral network as flying base stations (BSs) [4; 5], relay nodes [6], or terminal nodes [7]. Therefore, they act primarily as a means of enabling flexible communication services in remote areas when interconnections with existing networks are lost. To this end, UAVs can be used in edge-computing (EC), fog-computing (FC), and as crucial equipment in cellular networks [8]. IoT networks enable comprehensive connectivity for many mobile users by enabling various emerged application services (e.g., automatic surveillance, unmanned control vehicles and object recognition). Centralized servers, such as cloud computing (CC) facilities and data centers, generally process and analyze the generated data by carrying out computational intelligence based on artificial intelligence (AI). These centralized systems are quick to deploy, inexpensive to maintain, and practical when data need to be centrally controlled. However, they are mostly constrained by their high failure rate, security risks and access delay. Data processing at the central level causes considerable time delays that affect the overall system quality of service (QoS), especially regarding the response-time requirement for latency-sensitive applications. Decentralized and distributed systems have emerged to solve the issue of centralized system constraints. The decentralized system relies on servers that are supposed to store a copy of the resources. Users in distributed systems have equal access to data, yet user rights can be enabled as necessary, and data ownership can be shared efficiently. Hardware and software resources are also allocated between users, increasing truthfulness, reducing component failure, and enhancing reliability. EC has recently been introduced to provide intermediate devices between the data generator and CC services. This reduces latency and provides efficient bandwidth utilization. However, due to their limited computing power and battery life, mobile devices struggle to provide these services. To this end, mobile edge computing (MEC) solutions have been employed to ameliorate the intensive computation and offloading bottlenecks between end-nodes and centralized data servers [9]. They allow mobile devices to offload their computation duties onto servers at the edge of the IoT network, such as cellular BSs or access points. In contrast to traditional CC, MEC servers can be close to end-users.