A survey on computation resource allocation in IoT enabled vehicular edge computing

The number of vehicles is increasing at a very high rate throughout the globe. It reached 1 billion in 2010, in 2020 it was around 1.5 billion and experts say this could reach up to 2–2.5 billion by 2050. A large part of these vehicles will be electrically driven and connected to a vehicular network. Rapid advancements in vehicular technology and communications have led to the evolution of vehicular edge computing (VEC). Computation resource allocation is a vehicular network’s primary operations as vehicles have limited onboard computation. Different resource allocation schemes in VEC operate in different environments such as cloud computing, artificial intelligence, blockchain, software defined networks and require specific network performance characteristics for their operations to achieve maximum efficiency. At present, researchers have proposed numerous computation resource allocation schemes which optimize parameters such as power consumption, network stability, quality of service (QoS), etc. These schemes are based on widely used optimization and mathematical models such as the Markov process, Shannon’s law, etc. So, there is a need to present an organized overview of these schemes to help in the future research of the same. In this paper, we classify state-of-the-art computation resource allocation schemes based on three criteria: (1) Their optimization goal, (2) Mathematical models/algorithms used, and (3) Major technologies involved. We also identify and discuss current issues in computation resource allocation in VEC and mention the future research directions.


Introduction
Rapid strides made in networking technologies have catapulted the number of devices connected to each other over the internet. It has led to the advent of the internet of things (IoT) [1]. IoT has not just led to an increase in the number of networked devices but has made its influence on other domains like industries through industrial internet of things (IIoT) [2], vehicular networks through the internet of vehicles (IoV) [3,4]. IoT provides a potential economic value of 150-500 billion per year. With the IoT enabled VEC, the computational capacity in the vehicular application increases. Different computing paradigms are used in IoT to provide different services for diverse applications. ITS (intelligent transport system) plays an important role in improving the road safety and managing the traffic. VANET (vehicular ad hoc network) is a key enabler in ITS. Communication in VANETs is realized by V2V (vehicle to vehicle), V2R (vehicle to RSU) and V2X (vehicle to everything). IoV (internet of vehicles) has facilitated the use of smart vehicles, which are used in various applications like data storage and processing. IoT has extended its paradigm to vehicular edge computing with the help of technologies such as SDN, AI, blockchain, cloud computing, etc. With the help of these technologies, billions of connected vehicle devices in the IoT run directly at the network edge. Many companies have heavily invested in these technologies for various IoV applications such as street monitoring, real-time navigation, autonomous and other safety-related systems. In of the projects of Google, they have used AI for autonomous driving. They have used images, ultrasound, GPS navigation, beams of radars and central computing to identify objects and predict behavior accurately [5][6][7].
IoT has also led to the advent of multiple domains in mobile computing like fog/edge computing [8,9], mobile edge computing [10], vehicular edge computing (VEC) [11] among others. Mobile devices like smartphones, tablets, and wearable devices are witnessing massive growth in the varieties of applications supported by them and the number of users worldwide. The current network devices or servers (generally cloud servers which cater to applications for which the user devices fall short in terms of storage/computation or network resources) will come under immense load while serving the needs of these devices, which are rapidly increasing in numbers. Vehicular edge computing (VEC) is being explored as a promising paradigm to reduce stress and congestion on the core network by providing the necessary computation and data storage resources. This method of reducing the load on network devices or servers is quite similar to the concept of mobile edge computing (MEC), except that MEC uses stationary edge devices such as road side units (RSUs) or Cloudlets. In contrast, VEC uses vehicles as edge devices [12].
The vehicles run different applications such as infotainment, safe-driving assistance, navigation, autonomous driving, etc which are in focus due to emerging scenarios such as vehicular ad hoc networks (VANETs) [13] and vehicle-2-everything (V2X) [14]. But all of these applications need computation, storage, and network resources. It has been estimated that a typical autonomous vehicle (AV) could generate up to 1GB of data per second [15]. These vehicles themselves rely on computation offloading (CO) to the cloud servers for many computationally intensive tasks. It can be expected that as the number of AVs on the roads increases, these vehicles themselves increase the load on the cloud servers and cause congestion in the network. In addition, this CO by the AVs to the cloud servers is much more complex when compared to CO by non-mobile network entities due to the high mobility and geographically distributed nature of the AVs. The cloud servers may be located at faraway locations, leading to increased latency and reduced reliability of these connections [16]. Therefore, a vehicle may simultaneously function in two roles: as a task vehicle (TaV), which requests services from cloud servers and also as a service vehicle (SeV), which assists nearby resource-constrained devices [17]. Hence, in order to achieve fast and efficient computation for the vehicles and nearby resource-constrained devices while simultaneously minimizing the load on the cloud services and the communication network is a challenging and multi-faced resource allocation problem in VEC. Figure 1 gives an overview of the work done in this survey section by section. The rest of this paper is organized as follows. The next section provides a preliminary background on VEC and CRA strategies in VEC. The following section provides a literature review of related surveys. The next section gives an overview of this survey, while the following sections present classifications of CRA schemes for VEC in terms of the optimization goal of RA, the underlying technology used, mathematical models/algorithms used, and significant technologies used in the scheme, respectively. We list open research issues and future research directions in the next section and finally conclude our paper in the last section.

Vehicular edge computing architecture
Based on the works studied in this survey, we present in Fig.  2, a generalized VEC architecture to capture the necessary connectivity, communication and mobility aspects in order to understand and analyze the different resource allocation problems and solutions that have been proposed in the literature.
As can be seen in Fig. 2, a typical VEC architecture includes the primary task entities (PTEs)-resourceconstrained devices such as smartphones, tablets and laptops of pedestrians and the passengers of a vehicle. Depending on the scenario, the computationally intensive tasks running on these devices could be offloaded to either parked vehicles or even moving vehicles in case the connection is deemed stable. The vehicles in this VEC could be moving/parked non-autonomous/ autonomous cars, buses, trucks, etc. These vehicles may/may not have the capability to function as SeVs or TaVs or both simultaneously. TaVs may offload their tasks to edge servers located at cellular base stations or RSUs, which may further offload to cloud servers based on the requirement. Additionally, it might be possible that different vehicles have different computational capabilities (for example, an ordinary vehicle has much fewer resources then an autonomous/smart vehicle). Hence the possibility of intervehicle offloading also exists [18].

Computation offloading
A typical computation offloading happens in the following manner. First, a resource-constrained device (either TaV or PTE) will identify a suitable node on the network to offload its computation-this could be an SeV, RSU/cellular edge servers or a cloud server [19]. Intermediate entities on the network may assist/supervise the process of identifying a suitable offloading destination which could be either one or multiple hops away on the network. Once the offloading destination is determined, the tasks to be offloaded are communicated to the destination using a suitable communication medium. This could be Wi-Fi/Cellular/DSRC or a combination of these. The offloaded tasks are scheduled and executed at the destination nodes, and the results are communicated back to the respective devices.
We take the example of [20] to explain this process. The authors of [20] propose a reliable computation offloading scheme for a network with fixed and mobile edge computing nodes (vehicles). In their scheme (Fig. 3), we can see that a vehicle executes some tasks locally and offloads par-tially. It first sends a service request to a nearby Access RSU. This RSU communicates with an SDN controller running a suitable algorithm to obtain details about the offloading decision. Based on the decision, the vehicle communicates the task to be offloaded to the RSU. Based on the computational requirements of the offloaded task, the RSU may further partition it into independent sub-tasks and allocate it among single/multiple fixed and mobile edge nodes for parallel execution. Once the edge nodes finish their executions, they send the results to the. The RSU merges these individual results and sends them back to the vehicle. Table 1 lists the abbreviations used in this paper.

Related work
While there are several works that have surveyed resource allocation in vehicular networks or edge networks per say, at present there are very few works that have surveyed resource allocation or computation resource allocation schemes in vehicular edge computing.   Noor-A-Rahim et al. [21] have surveyed and classified RA schemes based on the type of network they are used in DSRC, Cellular and heterogeneous vehicular networks. Zheng et al. [22] present a survey on computational offloading in edge computing based on different offloading scenarios among edge servers, IoT devices, and cloud servers), factors (device, network, service and user factors) and strategies (full and partial offloading). They also discuss program partitioning and the efficient selection of program components to offload.
Jiang et al. [23] discuss several aspects of computation offloading, such as minimizing energy consumption, enhancing and guaranteeing quality of service and user experience. They discuss the general problems of what to offload, where to offload, and when to offload and a few case studies based on game theoretic and heuristic based computation offloading. Lin et al. [24] identify the need and usage of resource allocation in the industrial internet of things (IIoT). They list a few works of resource allocation developed for different environments such as VEC, cloud, software defined networks, mobile edge computing, etc., which could be utilized for IIoT applications.
References [12,16] are the only works that strictly deal with RA in VEC. Dziyauddin et al. [16] identify that although mobile data offloading mechanisms have received significant attention, VEC has failed to receive much attention from the research community. They identify that content caching and delivery (CachDel), and CO are significant resource alloca-tion challenges to be addressed in vehicular edge networks and carry out a thorough survey on the optimization techniques which have been published to address these problems. Their classification of CO schemes is based on single/hybrid and multi optimization approaches. Within each category, they classify works based on single/hybrid/multiple optimization goals such as QoS, energy efficiency and cost improvement.
Boukerche and Soto [12] present a survey on computation offloading in VEC. They discuss the algorithms, models and classification in computation offloading and retrieval. They provide a detailed review of the works on computational offloading based on the three steps involved: partitioning, scheduling, and data retrieval. However, a significant amount of work on resource allocation in VEC has been carried out after [12] and hence these works remain to be surveyed. Therefore our work serves as both an initial survey on RA for VEC and it also serves as a compliment by including the latest works on CRA.
Hence, to the best of our knowledge, resource allocation in VEC has not received much attention in contemporary literature. Thus, there is a requirement for a thorough and comprehensive survey of resource allocation schemes explicitly designed for VEC. The very few works that do survey research in this area have not covered most of the novel research which has been published in the past 2-3 years. Broadly, resource allocation in VEC comprises of computation resource allocation, memory resource allocation and network resource allocation. In this work, we conduct an extensive survey of various computation resource allocation schemes designed explicitly for VEC and present our findings in a comprehensive manner to clearly identify the developments, breakthroughs and open research issues in this field. Memory and network resource allocation are not covered in this survey. The major contributions of our work are listed below. In summary, [16]'s classification of CRA in VEC is based on single/hybrid/multi optimizations, while [12]'s study is based on the different stages of the computational offloading process. In this work, we adopt a different perspective by studying and classifying the latest works on CRA in VEC based on their optimization goals, the mathematical formulation/models used in the schemes, and their underlying technologies. Moreover, this work serves as a much-needed review to cover the latest works on CRA in VEC, which have been published after [12,16].

Computational offloading in IoT-enabled VEC-survey overview
Edge computing enabled software-defined IoV (Ec-SDIoV) enhances the capability of IoV, which improves the latency services and reduces the computational complexities. The Ec-SDIoV architecture facilitates the RSUs (roadside units), mobile vehicles for reducing the computational complexity co-operatively via SDN [20]. Vehicular networks enabled with IoT technology have become an essential part of the ITS (intelligent transport system). It includes various applications for passengers and vehicles, such as online gaming, augmented reality (AR) for passengers, autonomous driving, and intelligent auxiliary driving for vehicles. These applications require intensive computational and communication resources [25]. IoV combined with various other technologies helps in improving the efficiency of vehicular applications. In VEC-based IoT network, the devices can offload all or part of the computational tasks to the VEC server, which reduces the latency and save energy for devices [26]. With respect to the IoT services scenario, the computational complexity reduces in VEC and enhances the energy consumption. The growth of IoT has led to the evolution of VANETs. The IoT does not support traditional VANET services and improves the various applications by introducing various computing and technological paradigms.
There are many research works on resource allocation in vehicular edge computing. To understand this area, it is crucial to classify these studies under broad categories, which may clarify where improvements can be made in its development. Keeping this idea in mind and after an extensive literature survey, the schemes available for VEC can be classified based on the following criteria.
1 Optimization goals in resource allocation-power/ energy optimization, delay optimization, quality of ser-vice (QoS) optimization, utility optimization, user experience optimization, etc. 2 Underlying technology-cloud computing, software defined networks, blockchain, machine learning, reinforcement learning and deep learning. 3 Mathematical models and algorithms used.
We shall explore these classifications in Sects. "Classification of RA frameworks in VEC based on optimization goals for IoT applications", "Classification of RA frameworks in VEC based on mathematical and computational models/algorithms/techniques used" and "Classification of RA frameworks in VEC based on underlying technologies" respectively. The summary of the survey has been presented Table 5.

Classification of RA frameworks in VEC based on optimization goals for IoT applications
IoT applications require low power/energy consumption, less latency and low computation and memory resource consumption. Low power/energy consumption ensures that the system can be implemented on IoT edge servers, mobile platforms like vehicles, etc, and can be deployed for a long-term application. Less latency ensures that the network is more secure and gives less opportunity to adversaries to carry out attacks. Moreover, vehicles move at high speeds. Hence, it is necessary to complete the resource allocation fast so that the driver does not have to explicitly wait near RSUs or other edge devices to offload its computational work and be done even when the vehicle is running at a reasonable speed. Also, vehicles have limited on board computation and memory resources, so it is essential to ensure that the framework uses the least possible resources.
One of the important resource allocation issues is the parameter we want to optimize while allocating the resources. So CRA frameworks designed for VEC need to ensure that these parameters are optimized so that they can be deployed in IoT scenarios. Based on this, the algorithm for the resource allocation may vary. Additionally, apart from being feasible for IoT deployment, optimizing other parameters like QoS, Utility, reliability, etc are essential for ensuring that the system achieves its intended functionality. Thus the parameter which is optimized by the framework is an essential parameter for classification and based on optimization goals, we classify the frameworks into the following categories (summarized in Table 2).

Power/energy consumption optimization
Power/energy is one of the main factors in vehicular networks as vehicles have limited battery capacity and storage.  [28][29][30] QoS [33][34][35] Delay [25,26,28,[35][36][37][38][39] QoE and user satisfaction [34,37] Network/system utility [26,33,37,39,40] Reliability [20] However, at the same time, they are required to perform many intensive computations as part of the network [27]. Hence, authors in [28][29][30][31] try to optimize energy and power consumption in their resource allocation schemes. Optimizing power includes various factors like transmission power, uploading time, offloading ratio, local CPU frequency, etc and all these factors need to be considered while formulating the energy/power optimization problem. In [29], an online Lyapunov optimization process is followed to find a solution to the problem of computation resource allocation to get a trade-off between the mean weighted power consumption and delay. Their simulation results showed that their joint computation offloading and URLLC resource allocation for collaborative MEC-assisted cellular-V2X networks could improve trade-off performance compared to centralized MEC-assisted V2X. In [28], the authors formulated a problem based on binary optimization problem to minimize the entire cost of the entire system in terms of energy and time and guarantee efficient resource utilization among multiple vehicles which are part of the network [30].

QoS optimization
The term QoS was coined by the International Telecommunication Union (ITU) in 1994 [32]. It refers to network connection requirements like response time, signal-to-noise ratio, cross-talk interrupts, etc. In short, it is actually an overall performance metric for a computer network, cloud network, etc., more specifically, the performance from the point of view of the users of the network. It is also very close in meaning to user satisfaction. As in any network, revenue generation is directly dependent on the network users, and it is crucial to have a good QoS. In works [33][34][35] focus on maximizing their QoS in their resource allocation schemes for VEC networks.
In [35], the authors adopt a deep Q-learning based approach in their MEC-based IoV system for optimized RA while simultaneously maintaining QoS. In [34] the authors systematically look into the QoS guaranteed optimal RA problem for connected vehicular fleets in MEC environ-ments. To demonstrate the working of their framework, they take two large real-world datasets of online-taxi services and evaluate their QoS with their framework. Results show that their proposed method saved up to 40 percent costs compared to naive resource provisioning strategies.

Delay optimization
Delay optimization or reducing the network latency is an essential goal in vehicular networks as they are of very high speed in nature. Works [25,26,28,[35][36][37][38][39] focus in reducing their delay while implementing their resource allocation scheme. Ensuring less delay makes it possible to run latencysensitive applications like assistive driving [20].
As mentioned previously [26], use Lyapunov optimization to optimize both delay and energy jointly and [38] formulate their offloading problems as a constrained optimization problem where the aim is to optimize the delay. In [40], the author formulates a joint optimization load balancing and offloading problem in the form of a system utility maximization problem under a permissible latency constraint.

QoE/user satisfaction optimization
Ensuring high QoE (quality of experience) or user satisfaction is significant for the networks to ensure adequate participation from users. Studies [34,37] focus on ensuring a good QoE and user satisfaction while implementing their resource allocation frameworks.

Utility optimization
While focusing on optimizing parameters like speed, energy, etc, it is equally important to optimize the utility of the entire network as a whole and ensure all the resources are adequately utilized. Hence network and system utilization is also a very important issue. Works [26,33,37,40] implement resource allocation schemes where they try to optimize utility or at least ensure it is above a certain threshold value.
In [39], while modeling a system based in IOV based on edge computing, the main objective is to optimize the latency and ensure maximum utilization of resources has been done. The minimal latency and maximum resource utilization rate are calculated by offloading the computing task. To increase the maximum utilization of resources, the NSG-III method has been adopted to find the optimal global solution for the computation offloading method. This NSG-III is a non dominated sorting genetic algorithm.

Maximizing reliability
In [5], the authors have proposed to use the resources available of nearby RSUs and vehicles to facilitate the func-tionalities of edge computing keeping the constraints of latency and computationally-intensive requests in mind. In a dynamic and complex IoV environment, the interruption of both communication links and processing nodes becomes unavoidable, which may lead to adverse conditions. To ensure timely completion of delay-sensitive IoV services, the authors proposed a partial CO and reliable task allocation scheme which supports a reprocessing method. A non-convex optimization problem and a fault-tolerant particle swarm optimization algorithm is employed to ensure task completion before the deadline.

Optimizing memory allocation
In [20], the authors have proposed to use the resources available of nearby RSUs and vehicles to facilitate the functionalities of edge computing, keeping the constraints of latency and computationally intensive requests in mind. In a dynamic and complex IoV environment, the interruption of both communication links and processing nodes becomes unavoidable, which may lead to adverse conditions. To ensure timely completion of delay-sensitive IoV services, the authors proposed a partial CO and reliable task allocation scheme which supports a reprocessing method. A non-convex optimization problem and a fault-tolerant particle swarm optimization algorithm are employed to ensure task completion before the deadline.

Summary of this section
The issue that arises with the resource allocation is the question of the parameter to be optimized. As a result, the algorithms vary and the frameworks used are classified. Some of them are power energy consumption optimization, QoS optimization, delay optimization, QoE/user satisfaction optimization, utility optimization, maximizing reliability and optimizing memory allocation. It is vital to consider transmission power, uploading time, offloading ratio, local CPU frequency, etc. to formulate the energy/power optimization problem. An online Lyapunov optimization process, Binary optimization problem gives insights into this. The second one is the overall performance metric for a computer network, cloud network, etc. from the user point of view. Deep Q-learning based approach and considering the QoS guaranteed optimal RA problem helped to achieve that. Lyapunov optimization and a joint optimization load balancing and offloading problem help demonstrate problems based on reducing the network latency. Ensuring user satisfaction and optimizing the utility of the entire network is also an essential parameter.

Classification of RA frameworks in VEC based on mathematical and computational models/algorithms/techniques used
Performing resource allocation among various entities involved in a vehicular edge computing scenario is a complex task where many parameters are involved. Hence most studies adopt well-established mathematical and computational techniques to model the resource allocation problem and solve it by optimizing the required parameters. Thus, it is important to discuss various mathematical and computational models/algorithms/techniques. So, in this section, we briefly discuss these as given below.

Gauss Seidel method
The Gauss Siedel method or the method of successive displacement or Liebmann method is a type of iterative method employed to solve a system of linear equations. It is similar to the Jacobi method and is named after German mathematicians Carl Friedrich Gauss and Philipp Lied von Siedel.
Interestingly it was only present in a private letter from Gauss to one of his students, Gerling, in the year 1823, and a publication on this method was not present until the year 1874 [41,42].
In [29], the authors use the Gauss-Seidel method for calculating the processor frequency to find power consumed for running the Lyapunov Optimization method to solve computation resource allocation problem in a collaborative MEC assisted cellular-V2X network. The following equation can give the power dissipated via the output pins of a CPU core: where P is the power consumed by the processor, C is the capacitance, V is the supply voltage, and f is the operating frequency f the processor core. So, the term f is calculated using the Gauss Siedel method.

Online Lyapunov optimization
Lyapunov optimization is the use of the Lyapunov function to ensure the stability of the dynamic system. In [29], the authors have proposed a Lyapunov Optimization Technique which solves the problem of resource allocation to get a tradeoff between the energy consumption and the delay. Also, in [36], the authors have used this technique to solve the ARAEUE algorithm, which was designed to enhance the user experience by minimizing the quality loss without failing to meet the deadline.

Game theory
Game theory is an approach where the interests of many players are maximized under some given constraints. During the game, the players rely on their information and formulate a strategy for optimally playing the game. A game consists of three things typically: (1) payoff function, (2) the strategy, and (2) the players. Players can be an individual or a team who has the freedom to decide his own strategy and arrive at his judgment. Game models are divided into two categories: (1) Classical games and (2) Evolutionary games. Classical games can be classified as non-cooperative games or cooperative games, and into dynamic games or static games depending on the criteria, we choose for classification. [43,44] Cooperative and non-cooperative games The non-cooperative and cooperative games are differentiated on the basis of the fact that whether the players participating in them reach a cooperative relationship during the course of the game or not. If yes, then it is a cooperative game otherwise, it is a non-cooperative game. The non-operative game is majorly based on the Nash equilibrium concept. In [29], the authors use the non-cooperative game and bipartite graph to reduce the inter-cell interference and do channel allocation maximizing the throughput while guaranteeing the reliability of URLLC V2X communication in their proposed joint computation offloading and URLLC resource allocation frameworks for collaborative MEC assisted cellular V2X networks.

Static and dynamic games
The dynamic and static games are classified based on the order in which the players take their actions. In a dynamic game, the players formulate strategies to act successively, while in a static game, the players formulate, decide their strategy, and act simultaneously [45].

Bipartite graph
A bipartite graph or bi-graph in the mathematical field of graph theory is a set of graph vertices, i.e., it points to where multiple lines meet, decomposed into two disjoint sets. This means they don't have any common element and no two vertices within the same graph are adjacent.
In vehicular edge computing, bipartite graph appears naturally for solving the NP-hard energy optimization problem.  the problem mentioned above, the authors in [40] proposed the resource allocation scheme for a multi-user multi-server VEC system. Firstly, the joint load balancing problem is formulated as a mixed-integer non-linear programming problem to maximize system utility. Notably, the authors have considered IEEE 802.11p protocol for modeling the system utility. So we split the problem into two sub-problems and develop a low complexity algorithm to make VEC server selection and optimize computation resource jointly. The problems are non-linear, which can be solved by the rounding method by constructing a bipartite graph. The rounding technique consists of two steps as follows: (i) Construction of a weighted bipartite graph to create the relationship between vehicles and RSUs (road-side units). (ii) Finding a maximum match to get the integer solution based on the bipartite graph. V2X networks enabled with 5G are a promising technology when it comes to VEC. To solve the problem of end-to-end delay in transmission and backhauling in net-works, the authors in [29] have formulated a URLLC resource allocation strategy and joint computation strategy problem. Then, a Bipartite graph is used to decide the channel allocation and minimize the interference in the network to increase the reliability in URRLC V2X communication. Each vehicle in the system is considered as a vertex in the bipartite graph. An overview of the model presented in [29] is given in Fig. 5.

Markov model
Markov model is a stochastic model used for modeling dynamic systems. There are four common Markov models used in different criteria. The four Markov models are Markov chain, Markov decision process, semi-Markov process, and hidden Markov model [46]. In [35], the authors have used Markov decision process to formulate the problem of resource allocation. This model is defined by the reward func-tion, state-space, and action space. After this, the authors have solved the problem by adopting deep reinforcement learning technology. In [37], to govern the edge cloud servers, the authors have used the Markov decision process that collaborates with the SS (state search) algorithm to get the location of the vehicle. And in [26], the authors have proposed a suitable offloading scheme that considers both computational limitations and delay of the vehicular edge network. This problem is further formulated by using the semi-Markov process and later solved with DRL technology.

Heuristic algorithm
Heuristic Algorithm is designed to solve problems quickly and efficiently without sacrificing much accuracy and precision. This algorithm is often used to solve the NP-hard problems. For example, in [20], the authors have used a Heuristic algorithm to solve the formulated NP-hard optimization problem, which is non-convex in nature. This algorithm was also designed for reliability maximization. The results also show that the heuristic algorithm's reliability performance is superior to that of the Genetic algorithm and Sorting algorithm as it jointly considers communication and computational competence along with the non-success rates.
Vehicular fog computing (VFC) has become an important model which unloads the computational tasks from the cloud to the edges of the network. Due to this, the computational capabilities in vehicular applications have improved [4]. However, it is still a challenge because of the limited resources in fog computing. In [47], the authors have formulated the problem of allocating resources to fog computing in vehicular applications. Then the authors have proposed a heuristic algorithm to find the optimal solution for the problem formulated effectively. Then it is combined with reinforcement learning (RL) algorithm. But at first heuristic algorithm provides short term solution for the formulated problem, and then it is combined with the RL algorithm for long-term solutions, which makes the resource allocation more efficient.

Fault-tolerant particle swarm optimization (FPSO-MR)
Particle swarm optimization is an optimization algorithm used for optimizing non-convex functions. It is a type of heuristic algorithm with a lesser amount of complexity. In this paper [20] the authors have used FPSO-MR o achieve maximum reliability considering the latency constraints. Since the optimization problem discussed in the paper is a nonconvex binary function which is also NP-hard, it cannot be easily converted to a convex function. In this algorithm, there can be more than one solutions. This algorithm works based on the movement of the particles in the search space. Each particle has its velocity and position. The optimal solution is obtained when the particle swarm has acquired the best position. This iterative process is repeated until the particle has settled down on the best position, which is the solution.

T-slot look ahead algorithm
T slot look ahead algorithm is designed to evaluate the performance of scheduling algorithms with an analytical model approach.
In [36], the goal is to minimize the long-term computing quality loss by specifying the resource required and the quality of each running task expected. A mix-integer non-linear stochastic optimization problem is formulated to optimize the allocation of computing resources and task placement. The unpredictable network states and the high computational complexity of the formulated problem are responsible for the long-term optimization issue. It is first decomposed into a series of one-slot problems, and then an iterative algorithm called as T slot look ahead algorithm is proposed to get a computationally efficient solution.

DC (difference of convex) programming technique
When the mathematical programming problems deal with functions and those functions can be represented as the difference of two convex functions, they are called DC programming problems. For example, in [36], authors have proposed an ARAEUE algorithm. This algorithm consists of multiple integer non-convex functions. DC programming technique is used to solve this issue where acceptable convex approximations replaced the non-convex functions and restrictions, and iterative solutions were provided.

Reinforcement learning algorithm
Reinforcement learning is an algorithm in which intelligent agents take suitable actions in an environment to maximize the reward. In [28], this algorithm is used to optimize the computational offloading scheduling problem formulated to minimize the energy consumption and delay in the long term. This algorithm is further used to find suitable values in computational offloading schemes for multiple cloud computing in vehicular edge networks.

Newton-Raphson method
In [25], the authors have formed an optimization problem and named it as P1.P1 problem consists of multiple variables which can be solved by convex optimization algorithm like dual decomposition algorithm. This algorithm will create a considerable overhead. To reduce the complexity and overhead, some variables in the P1 are removed using approx- Cloud computing [28,30,33,34,37,39,58] imation, and then the optimization problem comprises only one variable, which can be optimized using the Newton-Raphson convex optimization algorithm.

Distributed deep-Q learning
Distributed deep-Q learning is a type of reinforcement learning algorithm which uses neural networks for maximizing optimization. In [28], this algorithm uses its deep neural networks to minimize overall computational time and energy consumption for processing the computational task of the ith vehicle at jth server in computational offloading schemes for multiple cloud computing in vehicular edge networks.

Non-dominated sorting genetic algorithm-III (NSG-III)
Multi-objective optimization plays a crucial role in science and technology, especially in vehicular applications where multiple objective functions are involved, and optimal solutions are proposed obviously with some trade-off between the various objectives. There are no unique solutions for multi-objective optimization or pareto optimization problem which affects multiple objective functions. Those solutions are called as non-dominated or Pareto optimal, which are found after some iterations. With the emergence of IoV, the computational capacity of vehicular networks has significantly improved. And to further enhance this, the authors in [39] have proposed a computational offloading scheme called V2X-COM (vehicle to everything communication). This scheme uses V2X (vehicle to everything) technology to transmit data in vehicular edge computing applications. Then, to provide an effective offloading plan, the non-dominated sorting genetic algorithm-III (NSGA-III) is proposed. This algorithm is adopted for improving the usage of edge server devices and reducing latency.

Multiple criteria decision making (MCDM)
Multiple criteria decision making (MCDM) analysis was first popularized in 1979 by Stanley Zionts. After that, this analysis and its mathematical modeling solved various issues in different fields around the world. This model is mainly concerned with providing different optimal solutions and different plans rather than unique solutions and plans for solving the problems involving multiple criteria. In [39], after the NSGA-III is adopted, which provides the most optimal solution globally for the computation offloading strategies, the most optimal offloading plan is selected by multiple criteria decision making (MCDM) in the final iteration.

Simple additive weighing (SAW)
Simple Additive weighing(SAW) was first proposed by Fish burn. It is one of the simplest and oldest MCDM methods for providing multiple alternative solutions when solving multiple criteria. In [39], after the NSGA-III is adopted which provides the most optimal solution globally for the computation offloading strategies, the most optimal offloading plan is selected by simple additive weighing (SAW) along with the help of MCDM in the final iteration.

Bracketting
In [33], this is the phase-1 algorithm to calculate the minimum amount of edge resources in the particular time slot. In this algorithm, some initial value of Cn(t-1) is fed, and the blocking probability is calculated. If the probability is higher than the threshold value of QoS, then the value of Cn(t-1) is doubled. This process is repeated until the Qos requirement is satisfied.

Binary searching
In [33], to find the minimum amount of edge resources and optimum resource volume for each edge cloud at a particular time slot, the authors have used a two-phase optimization algorithm . This is the phase two algorithm after the bracketing. In this algorithm, the Cmin (edge resource) is searched, which satisfies the requirement of QoS.

Distance based heuristic algorithm (Dbha)/Euclidean distance-based algorithm
Heuristic algorithm is designed to solve problems quickly and efficiently without sacrificing much accuracy and precision. Distance-based heuristic algorithm (Dbha) is one such algorithm that takes the shortest distance as its account while responding to the requests of resources. It is observed that as the no of vehicles increasing, it is posing many challenges in limited computational capabilities. To solve this issue, many resource allocation strategies are proposed. In [34], a vehicular network with RSU (roadside unit) is proposed. Then, an effective resource allocation scheme was proposed from RSU's perspective for utility optimization. Here, Dbha is used to improve the efficiency of resource allocation. This paper also shows that Dbha has great advantages over GA (genetic algorithm) and PSO (particle swarm optimization) in terms of both performance and response latency.

Maximum value density based heuristic allocation (MVDHA)
To solve the issue of excessive power and energy consumption with the massive growth of vehicular applications, the authors have proposed to expand VEC (vehicular edge computing) to VECC (vehicular edge cloud computing) in [30]. To compute the energy utilization and cost potency, a resource allocation algorithm, namely maximum value density-based heuristic allocation (MVDHA) based on maximum density value available, was proposed. Moreover, this paper shows that when the local computation energy computation is half offloading energy consumption, a maximum density value can be obtained. Based on this, MVDHA algorithm was proposed to solve the energy enhancement problem.

Randomly select algorithm (RSA)
RSA is a stochastic algorithm that uses randomized parameters based on the application to select what to do next. This randomized selection can reduce complexity. For example, a randomized sorting algorithm can choose any random pivot number for the sorting array. In [30], this algorithm uses random resources for allocation, this random selection is based on the game theory. The energy conservation percentage using this algorithm was found to be around 53.7%. The time conservation performance of the RSA algorithm has an average of 48.7%. The performance is not consistent as it varies from 17.3 to 85.8%.

Select sort algorithm (SSA)
SSA algorithm based upon strict sorting algorithms and based on this sorting it allocates the required minimum resources. In terms of energy conservation, it provides an average saving of 59.9%. The performance of SSA in terms of time conservation has an average of 87.8%, which is better than the result obtained in RSA and MVDHA.

Summary of this section
In this section, various schemes to optimize and resolve related RA frameworks in VEC are being discussed. Different problems have been discussed along with their resolution, like using the Markov decision process to formulate the resource allocation problem for the task with different types and further enhancing it with deep reinforcement learning, Lyapunov, and DC programming based resource allocation improving user experience (ARAEUE). ARAEUE is built on the Lyapunov optimization technique, which decomposes a given problem into several one-slot mix-integer non-convex sub-problems. Again, a CCORAO scheme separates the given optimization problem into two sub-problems with the help of a distributed computation offloading and resource allocation (DCORA) algorithm. The issue of allocating edge computation resources in vehicle mobility is solved using a lightweight 2-phase algorithm based on bracketing and binary search. Distance-based heuristic algorithm for utility optimization (DbHA) is suitable for time-sensitive scenarios where RSUs are involved. Then It is demonstrated that the MVDHA algorithm achieves an optimal balance of the number of vehicles on each server. A summary of the algorithms used by various studies for designing resource allocation in vehicular edge computing scenario has been presented in Table 3 and also presented in Fig. 4.

Classification of RA frameworks in VEC based on underlying technologies
SDN Some of the IoV applications are computationally very intensive, and latency-sensitive [48,49]. To support these computationally intensive and latency-sensitive IoV applications, the authors of [20] have proposed to integrate fixed edge computing nodes (i.e., fixed road infrastructure) and mobile vehicles (i.e., edge computing nodes (EC nodes). This makes the EC nodes complex and heterogeneous. SDN is used as an agent to exploit these heterogeneous nodes, and thus EC aided IoV architecture is designed. This EC-SDIoV architecture makes it easier for mobile vehicles and fixed roadside infrastructure to behave as EC nodes to provide services via SDN with minimal latency. SDN provides comprehensive network control. It helps in deploying the network and agile management of the network without interfering with other networks. It accompanies the VEC and ITS (intelligent transport system) by dealing with complex and heterogeneous computations, a massive number of vehicles, large data flow, and frequent topology changes. This type of networking provides a strong mechanism for resource utilization by providing flexibility, programmability, and knowledge of the network [34].

Blockchain
IoV applications are complex because they require some advanced techniques to execute due to vehicles' inconsistent and unpredicted behavior. Blockchain brings advantages to vehicular applications and its infrastructure management by providing a decentralized network for smart and secure IoV. Blockchain has found immense applications in IoT related areas like UAVs [50], smart grids [51], energy management [52], 5G [53], V2G networks [54] and industry 4.0 and industrial IoT [55]. On the industry level, many leading automanufacturers have considered Blockchain to improve the driving application by exchanging data in V2X. For instance, Volkswagen is building a Blockchain-based tracking system to avoid the manipulation of odometer done by the sellers to increase the price of their cars [7]. With the introduction of edge computing in intelligent driving, the vehicle movement, the time-sensitivity at which data is processed, and the allocation of the resource of the EC server have become an essential factor in intelligent driving [56,57]. To remove dependencies on third-party platforms, the authors of [37] have resource transaction architecture that is based on Blockchain. This increases system scalability, and it also allows the service providers to join/exit at any time. The Blockchain is a technique based on cryptography that allows direct trading among participants. The decentralized feature of blockchain can help in achieving the normalization of data and connect centralized databases. This decentralized feature is the actual reason why Blockchain eliminates the interference of third-party platforms.

Artificial intelligence
The new era of modern vehicles has many complex applications that require intelligent decision-making. Hence, the advancement of artificial intelligence (AI) derived its path into IoV. With the emergence of modern vehicular applications, vehicular edge computing (VEC) can solve the issue of complex computation. VEC is composed of many computing devices which are on the roadsides or in vehicles. Such architecture helps for communication, data sharing, and computation. AI is being applied in solving many challenges in vehicular applications. With the advancement of AI in IoV applications, there has been a revolutionary change in excelling self-driving, object detection, trajectory building, real-time navigation, video surveillance, traffic control, etc. Various data is being fed to an AI model, which can be a combination of game-theoretical decisions, logical reasoning, and multi-agent Reinforcement Learning (RL). With these data, the vehicles can make various decisions [7].
In [26], the authors model their resource allocation problem using a Markov decision process and use Q-learningbased reinforcement learning to arrive at the solution. They avoid dimensionality using a deep reinforcement learning (DRL) method to find the action-value function for the Q-learning. The authors of [35] have followed a similar approach to develop a scheme that is adaptable to changing MEC environments. The authors reported that although deep reinforcement learning has its advantages in solving resource allocation problems, its performance is however highly dependent on the training dataset. Hence, other training datasets have to be used for different regions of operation,  i.e., the models would have to be retrained. This is an open research issue in using deep learning techniques for resource allocation. An overview of the framework proposed by [35] is given in Fig. 6. The authors of [28] have also used DRL and Q-Learning techniques to find the best offloading decision. They propose to employ several deep neural networks in parallel to achieve quick convergence. Their simulations show that their proposed scheme performs much better as compared to other benchmark schemes.

Cloud computing
Cloud computing has been one of the critical technologies in the IoV. It provides high-performance computation, storage, and networking services. In recent years there has been a lot of studies on load balancing strategies of cloud computing. In [58], the authors use a system model in which computation offloading can be done to both MEC servers or cloud servers depending on the characteristics of the task to be offloaded. The computational resources of the MEC are lesser compared to that of the cloud server. Offloading by the vehicles to MEC/cloud servers is done through the RSU. The authors of [28,59,60] also use a similar system model in their work. In [33], authors consider a model which uses neither edge devices nor cloud servers but edge-cloud devices in their system model. These edge-cloud devices could be stationed either at the cellular (LTE/5G) towers or at SDN/NFV enabled data centers installed by telecom equipment manufacturers (such as Ericcson) or platform vendors such as AWS. In [34], the authors employ the concept of vehicular clouds. A vehicular cloud is a temporary and localized cloud that is formed by several close-by vehicles in a VANET. The Vehicular cloud can not only increase the connectivity range of an RSU, but it can also serve offloading requests by itself either through individual vehicles or in a cooperative manner.

Summary of this section
Technologies like SDN exploits modified EC nodes which are complex and heterogeneous. SDN is used as an agent. Thus, EC aided IoV architecture is designed, making it easier for mobile vehicles and fixed roadside infrastructure to behave as EC nodes to provide services via SDN with minimal latency. To remove dependencies on third-party platforms, a transaction architecture is designed which is based on Blockchain. The decentralized feature is the actual rea-   son why Blockchain eliminates the interference of third-party platforms. Also, using DRL and Q-learning techniques, we can find the best offloading decision where it is proposed to employ a number of deep neural networks in parallel to achieve quick convergence. Lastly, edge-cloud devices can be used in the system model along with the Vehicular cloud, which not only increases the connectivity range of an RSU but can also serve offloading requests by itself either through individual vehicles or in a cooperative manner. Table   4 presents a classification of RA frameworks in VEC based on underlying technologies.

Current issues and future research directions
Based on our survey, we find that there is a lot of scope for research in resource allocation in vehicular edge computing (VEC) environment. Some of the current issues and future research directions in this area are as follows.
1 Prototype testing of proposed frameworks/algorithms: Almost all the frameworks proposed in this area have been only verified with the help of simulations. Nevertheless, simulation platforms cannot account for various actual life events that take place around a vehicle on the road. Hence, a more robust solution would require prototype testing before it can be considered for market deployment. 2 Issues in AI-enabled offloading: Most of the offloading schemes greatly rely on the availability of a dataset that covers all practical scenarios like different traffic conditions in urban and rural scenarios. Many of the proposed resource allocation schemes use AI and DRL-based methods to solve their formulated problems.
Although methods like DRL have advantages in solving such problems, it is very heavily dependent on the training data. If the data changes, then the rules based on which the transition of states takes place also change, and subsequently, the network needs to be trained again. So future works will need to address this issue. Also, it is to be ensured that the data sets used for the training include a sufficient amount of data with all necessary features [35]. 3 Privacy leakage: Intelligent transportation systems and vehicles collect many user data to process over a long period of time, and these are transmitted through wireless medium [61,62]. Thus, adversaries can try to compromise the data and break user privacy. Significantly when offloading tasks and communicating with edge servers, the network needs to be protected against spoofing and impersonation attacks [37]. Hence, future frameworks need to be robust and secure along with implementing efficient resource allocation schemes. 4 Low computation and high speed algorithms for resource allocation: Vehicles in a vehicular network face the constraint of having limited onboard power but at the same time have to do computationally intensive work for implementing resource allocation schemes. Moreover, such schemes require a lot of time, whereas vehicular networks are very dynamic and need to be very fast [29,30]. So, low power consumption and high speed are critical parameters that a resource allocation scheme should meet to be feasible for such scenarios. Future studies can explore using emerging technologies like FPGA and quantum computing to decrease the computation time and at the same time consume less power. 5 Need for standardization: At present, there does not exist any standards for VEC and RA in VEC. However, the development of these standards can enable interaction between numerous operators, users, and vendors on the platform. The European Telecommunications Standards Institute (ETSI) has, however, begun the development of multi-access edge computing (MEC) standards which can be used to provide various services to connected vehicles [63]. In addition, the 5G Automotive Association (5GAA) is also involved in developing use cases, architectural requirements, and deployment strategies for MEC in VEC [64]. At present, 5G networks are being deployed rapidly around the world, and hence 3GPP's 5G Standards are expected to influence the standardization of VEC and RA in VEC heavily. 6 Role of 5G and beyond: 5G and beyond can play a significant role in vehicular edge computing (VEC). The current works of the VEC are still in the early stages as the 5G communication infrastructure has not been standardized yet, and the fifth-gen and beyond network is still in the development stage. With the help of the new generation communication infrastructure, VEC can become fully functional, leading to the reduction of computational in resource-constrained users. The network can optimize mobile resources by allocating computational resources and processing extensive data before sending it to the cloud for computing. Due to the 5G and beyond infrastructure, the latency and response times could be improved, and autonomous driving could become a reality. This infrastructure will not only support computational resource allocation but also can be used for content delivery in vehicle infotainment systems. Since the latency is improved, it can be used in all latency-critical applications like autonomous driving. The computational offloading process can become more efficient and reliable. The ability of VEC to interact with 5G and beyond networks in traffic routing and resource allocation can lead to application portability which can save tons of works of developers for designing multiple versions of VEC in vehicular edge computing. Due to the 5G and beyond communication, the energy efficiency of the mobile edge node can be improved drastically, which will prolong the battery span of the nodes, and the need for frequent replacing of the battery will not be required. With the rapid evolution of wireless communication and networks, it is believed that artificial intelligence and machine learning, in particular, will play vital roles beyond 5G and 6G. The machine learning algorithms can be deployed at the VEC nodes for predicting the appropriate communication bandwidth. Artificial intelligence can significantly improve the perception of vehicular edge networks. It can assist in the optimal allocation of resources for different issues in vehicular applications. AI applies deep learning and machine learning for various resource allocation problems in VEC. The computation offloading and resource allocations are NP-hard and non-convex problems, and the variables involved in it vary with respect to time and environment. The solutions to this kind of problem can be done quickly using deep reinforcement learning (DRL). The DRL algorithms are complex, but the problems could be solved on the cloud due to reduced latency in 5G and beyond networks. The result can be immediately transmitted to the vehicular node with a minimum amount of delay. This is all possible due to the high bandwidth of 5g and beyond infrastructure. These time-constrained problems can be computed on a cloud, and the result could be directly transmitted to the vehicles with minimum delay [65]. 7 Scalability in IoV: There is a rapid increase in the number of vehicles around the world. This requires more efficient scheduling of resources for low latency, more reliability, and rich computational and storage capability from time to time. However, VEC is very much unevenly distributed in vehicular networks. The density of vehicles varies with time in different areas. Therefore, adaptability is a crucial issue for varying network conditions [5]. 8 Artificial intelligence (AI): AI needs a malignant-free environment for good performance. Otherwise, it makes the VEC vulnerable to cyber-attacks which may threaten the road-safety. These attacks disrupt the algorithms and system's behavior resulting in wrong decisions that may endanger people's lives. To solve this issue, AI and Blockchain can be integrated. 9 Blockchain: With the introduction of blockchain, the computational complexity and latency increase which may harm the performance of vehicular applications [7]. Thus, there is a need for high-level multi-layered VEC architecture to meet the requirements of vehicular applications. 10 Cloud computing: In vehicular cloud computing, the mobility of the nodes is very high, and there is a continuous change in the topology. That is why it is challenging to secure vehicular communication, authentication, and the interoperability of different clouds. By implementing cache services, cloud computing can enhance the efficiency of vehicular applications. Further research is a need in this field for improving the resource allocation schemes for better vehicular communications. 11 SDN: SDN also has its disadvantages, especially when it comes to security [66]. It also increases the complexity of computational resources. Further research and more paradigms are needed to make SDN safer.

Conclusion
In recent years, we can see a massive growth in intelligent vehicles, which has led to rapid evolution in VEC architecture. However, due to the vast amount of data generated by these vehicles, the computation of these data on a constrained system is a significant challenge. This survey discussed the computational resource allocation for VEC architecture using technologies like SDN, Blockchain, AI, and Cloud Computing. We have further discussed the mathematical models used by these technologies and parameters optimized while allocating computational resources. Finally, we have highlighted some of the current significant roadblocks in implementing VEC on a massive scale and its integration with upcoming technologies like 5G and beyond. We have also highlighted the future research directions in VEC.