I Introduction
Ia Background and Motivations
According to road traffic accident statistics, in 2016, 235,532 people were killed, and 6,648,078 people were injured in traffic accidents [1]. Furthermore, US National Highway Traffic Safety Administration (NHTSA) data in 2015 shows that, in Georgia, of car accidents caused by human errors and bad decisions[2]. Therefore, in order to save lives, prevent human errors and bad decisions, and releasing human from stressful tasks of controlling car, many research projects for the autonomous car have been introduced [3].
Recently, the automobile industries have made remarkable improvements by creating autonomous cars that can drive themselves with human driver intervention. Some companies, such as Google, Uber, Samsung, Tesla, MercedesBenz, Baidu, etc., have already started to focus on the next stage of autonomous driving called
selfdriving,
where cars can drive themselves without human driver intervention [4]. Therefore, selfdriving cars will have full driving automation in all situations. Furthermore, in order to make the selfdriving car more intelligent, the selfdriving car needs to be equipped with smart sensors and analytics tools that collect and analyze heterogeneous data related to people onboard, pedestrian, and environment in real time, in which deep learning plays significant roles [5].
Even though a selfdriving car has OnBoard Unit (OBU) that can handle Computation, Communication, Caching, and Control (4C), we still consider the selfdriving car’s resources for 4C to be limited, and requires assistance from the remote clouds [6]. For effective selfdriving car’s data analytics, there is a strong need for lowlatency and reliable computations. However, reliance on a cloud can hinder the performance of the selfdriving car’s data analytics, due to the associated endtoend delay. Therefore, to reduce endtoend delay, we consider Multiaccess Edge Computing (MEC) [7] as a suitable technology that can support selfdriving cars for edge analytics [8]. MEC has been recently introduced by the European Telecommunications Standards Institute (ETSI) to supplement cloud computing, where MEC servers are deployed at the edge of the network for 4C [9]. In this work, MEC servers are deployed at RoadSide Units (RSUs) for edge analytics and content caching in close proximity to the selfdriving cars.
We focus on selfdriving cars for public transport such as buses, because in the future, selfdriving buses are expected to roll down in smart cities [10]. Furthermore, with deep learning and 4C features in the selfdriving car, passengers will no longer be limited to onboard radio and TV, instead spending more time on watching media, playing games, and social networks. However, retrieving these contents from Data Centers (DCs) can make content delivery service worse, due to the associated endtoend delay, and consumed backhaul bandwidth resources. As an example, watching a video in a car requires three components, namely video source, screen, and a sound system. Therefore if the source of the video is not in the car, the car needs to download it from DC. Assuming the DC is distantly located, then incar services will incur high delay, caching in self driving car will play an important role to enhance the users’ experience.
IB Challenges for Caching in SelfDriving Car

For traveling people, the selfdriving car will be a new entertainment place. Therefore, content providers and game developers need to grasp this new opportunity by providing highquality of entertainment contents. However, there is still lack of literature on how caching for entertainment contents in selfdriving can be performed.

The selfdriving car could deliver more heterogeneous entertainment contents such as movies, TV, music, and games as well recent emerging platforms such as Virtual Reality (VR) [11]. However, the selfdriving car’s resources for 4C are limited. Therefore, selfdriving cars need to be supported by MEC servers.

The selfdriving car is sensitive to delay. Therefore, to reduce carDC delay and save backhaul bandwidth, communication and caching resources utilization in MEC servers and selfdriving cars needs to be reinforced and optimized.
As related works, content caching at BSs, and RSUs has gained significant attention in [9, 12, 13, 14, 15]. In addition, in [16, 17], the authors proposed deep learning approaches for edge caching (at BS, RSUs, and user equipment). Still, in these works, content caching in the selfdriving car was not addressed thoroughly. In [18], the authors proposed the cloudbased vehicular adhoc network, where both vehicles and RSUs participate in content caching. However, introducing the cloudbased controller in vehicle caching can increase content retrieval delay. Other alternatives have also been proposed in [19], where the authors considered two levels of caching at edge servers (BSs) and at autonomous cars. In this proposal, the edge server injects contents to some selected cars that have enough influences to share these contents with other cars. However, in a realistic network environment, BSs and cars may belong to the different entities. Therefore, without incentive mechanism, there are no motivations for car owners to allow BS operator(s) to inject the contents in their cars and participate in content sharing. Finally, in [20], selfdriving car caching forum was introduced by GEOCACHING in March 2018, but still, there is no proposal on how caching in selfdriving car can be implemented.
IC Contributions
In order to address the aforementioned challenges, we propose improving entertainment services in selfdriving cars using deep learning based caching and 4C approaches in MEC. The main contributions of this paper are summarized as follows:

People have different content flavor, in which their choices depend on ages and genders [21]
. To fulfill the demands of passengers in selfdriving car, we use a Convolutional Neural Network (CNN) approach to predict their ages and genders via facial recognition. Specifically, CNN outputs are used by selfdriving car for the purpose of deciding on which entertainment contents, such as music, video, and game data, are appropriate for passengers and thus need to be cached.

To get the appropriate entertainment content for passengers, the selfdriving car needs to be supported by MEC and DC. At DC, we propose a MultiLayer Perceptron (MLP) framework to predict the probability of content to be requested in a specific area of selfdriving car. Then, the MLP prediction outputs are deployed at MEC servers (at RSUs) in close proximity to the selfdriving car. During offpeak hours, each MEC server uses MLP outputs to download and then cache the contents that have high probabilities for being requested. We choose MLP over other prediction methods such as AutoRegressive (AR) and the AutoRegressive Moving Average (ARMA) models, because MLP has the capability to cope with both linear and nonlinearly prediction problems [22].

For the contents need to be cached, the selfdriving car downloads MLP outputs from MEC server, which is then compared with the CNN outputs. For the comparison, we combine kmeans and binary classification. We choose kmeans and binary classification over other clustering algorithms due to their computational efficiencies and elegant simplicities in their implementation [23, 24].

We formulate caching in a selfdriving car for entertainment services using deep learning exploiting 4C components in MEC to minimize contentdownloading delay. To solve the formulated problem, we use Block Successive MajorizationMinimization (BSMM) technique [25]. We choose BSMM over other optimization techniques because BSMM is a new technique that allows decomposing problem into small subproblems by partitioning the formulated problem into blocks.
Specifically, the novelties of our proposal over related works in [9, 12, 13, 14, 15, 16, 17, 18, 19, 20] are: to the best of our knowledge, we are the first to investigate selfdriving car caching for entertainment contents, where caching decisions are based on MLP, CNN, and available communication, caching, and computation resources.
Ii System model
The system model is depicted in Fig. 1:

At Data Center (DC): Typically, DC hosts dataset from data market for prediction purpose. In the DC, we use MLP described in section IIIA1 for predicting the probabilities of contents to be requested in specific areas. In order to reduce communication delay between the selfdriving car and DC, the outputs of the MLP are deployed at MEC servers attached to RSUs based on their locations. We use to denote the set of geographic locations, where each location has one MEC server.

At RoadSide Unit (RSU): We consider that each RSU has access to DC via a wired backhaul of capacity , where is the set of RSUs. Furthermore, we consider as a set of selfdriving cars, in which each RSU can provide broadband Internet service to selfdriving cars via wireless link of capacity at each time slot. In addition, each RSU has one MEC server. Unless stated otherwise, we use also the terms “RSU”, and “MEC server” interchangeably. Furthermore, each MEC server has cache storage of capacity and computational resource of capacity .
During offpeak hours, by using backhaul communication resources, based on the MLP outputs, each MEC server can download and cache predicted contents with high probabilities of being requested in its region. We use to denote a set of contents, where each content has a size of Mb. In addition, based on demands for content, each cached content can be served as it is or after being computed. Therefore, we use to denote the content before computation, and to denote the content after computation. As an example, content with format .avi may be not available in the cache storage of MEC server. Instead, the cache storage may have content with format .mpeg of the same content. Therefore, for satisfying the demand, by using the computational resource, MEC server can convert to .

At selfdriving car: We consider that the selfdriving car has an OBU that can handle 4C with MEC to support caching of entertainment contents for passengers. Each selfdriving car has cache storage of capacity and computation capability . Furthermore, to decide which entertainment content to request and cache in the selfdriving car, we use CNN approach presented in IIIA2 to predict age and gender of car passengers, where each selfdriving car is equipped with a camera system for capturing incoming passenger. After CNN prediction, the selfdriving car can request its nearest RSUs the MLP prediction. Then, by using kmeans and binary classification presented in IIIA3, selfdriving car compares its CNN prediction with the predicted outputs from MLP. This helps to identify the entertainment contents which are appropriate to the passengers. Finally, the selfdriving car downloads and caches the identified contents.
Notation  Definition 

Set of selfdriving car,  
Set of contents,  
Set of contents need to be cached in area  
of RSU ,  
Set of consumers of contents,  
Set of RSUs,  
Input of MLP  
Output of MLP  
Ground truth for MLP  
The number of inputs features  
The number of geographic areas  
Caching capacity of each RSU  
Computation capability of RSU  
Caching capacity of each car  
Computation capability of car  
Input image of passenger in car  
Total delay experienced by each passenger  
Data rate for each passenger via IWR of car 
Iii Deep Learning Based Caching in SelfDriving Car
As described in the previous section, for caching contents, the selfdriving car needs to compare its CNN prediction with MLP prediction. Here, we discuss deep learning and recommendation model in Section IIIA, where the output of the recommendation model is the contents that should to be cached in the selfdriving car. Furthermore, for requesting and downloading the recommended contents, the selfdriving car requires communication resources. Therefore, in Section IIIB, we will discuss the communication model. For caching downloaded contents, we present the caching model in Section IIIC. Based on demands, cached contents can be converted or transcoded to the different formats by using computational resources, where computation model is described in Section IIID.
Iiia Deep Learning and Recommendation Model
IiiA1 MultiLayer Perceptron (MLP)
As depicted in Fig. 1
, at DC, we use MLP, where green circles represent neurons of input and output layers, while red circles represent neurons of hidden layers.
For predicting the probabilities of contents to be requested in specific areas, we use a demographical dataset that will be described in Section V. The inputs and outputs are described as follows:

Inputs: In the dataset, we have entertainment content names, rating, viewer’s age, gender, and locations as the inputs of MLP. We use
to denote the input vector, where the subscripts are used to denote the features.

Outputs: From the inputs, MLP tries to predict as the output vector and the subscripts are used to denote the geographical areas. In addition, in the output layer, each area
corresponds to one neuron and predicts the probabilities of contents require to be cached in that area. Furthermore, for predicting the ranking of entertainment contents over time, long shortterm memory (LSTM) described in
[26] can be used. However, we consider LSTM for predicting content rating to be outside of the scope of this paper.
Before presenting the MLP, let us start with a simple artificial neural network (ANN) of one layer, where we consider the outputs as the weighted sum of the inputs. We use to denote weight from input to output . Therefore, the output can be expressed as follows:
(1) 
where is the activation functiona and is the bias added with a linear combiner ().
As an extension to the above simple ANN, we consider MLP as an ANN which has more hidden layers, where each hidden layers has more units called neurons. For MLP, we use to denote the the number of hidden layers, for input vector,
for bias vectors,
for the weight matrices at each hidden layer, and for output vector. can be expressed as follows:(2) 
The above equation (2
) shows that each neuron received the output from the previous layer and after processing, it sends output to the next neurons of the next layer. In our MLP, we use Rectified Linear Unit (ReLU) as the activation function in all the layers except at the output layer. The ReLU can be mathematically expressed as follows:
(3) 
We choose ReLU over other activation function, because it solves the vanishing gradient problem experienced by MLP during the training process
[27]. Furthermore, in the output layer , we use softmax function as an activation function. The purpose of softmax function is to squeeze the output vector into a set of probability values, where softmax function is defined as:(4) 
The output layer has neurons that correspond to the number of geographical locations, where the cacheenable RSU will be used for caching the contents.
The aims of our MLP is to compute the output for each input . Therefore, during the training of our MLP, we need to adjust our such that the correct output can be obtained for each input . In other words, we need to adjust the network weights such that the error function is minimized. As described in [27]
, weight adjustment can be done through a series of gradient descent weight updates in a backward manner from the output layer, and this technique is called backpropagation.
For error function, we choose cross entropy error function overs other error functions as our MLP aims to classify the contents needs to be cached in
geographical areas. This problem can be considered as classification problem, where we interpret the outputs as probabilities of the contents to be cached in specific geographical area. The cross entropy error function can be expressed as follows:(5) 
The above cross entropy error function penalizes large deviations from the desired caching locations. Technically,
calculates the crossentropy between the estimated class probabilities
and the ground truth .Finally, in order to reduce communication delay between the selfdriving car and DC, as DC may be located in a far distance from the selfdriving car, the outputs of MLP are sent to MEC servers attached to RSUs based on their geographical locations/areas.
IiiA2 Convolutional Neural Network (CNN)
We use CNN for automatic age and gender extraction from facial images. This problem has been extensively studied in [28]. We consider that features like age and gender will play an important role in entertainment content consumption. Once the facial image of passenger is captured via the camera of selfdriving car, we can extract features such as location, size, eyes, nose, mouth, chin, etc., and use them for classifying the face into different age and genders classes by using CNN VGG16 described in [29]. We describe CNN workflow for automatic age and gender extraction as follows:

Inputs: In the selfdriving car, we consider as the input image of incoming passenger(s) with three dimensions space: height, width, and the number of color channels (red, green, and blue).

Convolution layer: Convolution layer applies filters to input regions and computes the output of each neuron. Each neuron is connected to local regions of inputs and by using dot products between weight and local regions, convolution layer comes out with feature map . We use to denote the feature map after convolution layer in selfdriving car .

RELU layer: In this layer, we apply ReLU as an elementwise activation function. The ReLU keeps the size of its associated convolution layer unchanged.

Max pooling layer:
After Convolution and RELU layers, we have a high dimensional matrix. Therefore, for dimension reduction, we apply maxing pooling layer as downsampling operation.

Fullyconnected layer: This layer is fully connected to all previous neurons and is used to compute the class scores that a face could potentially belong to. Here, we have classes for gender (male and female) and classes of age (from 0 to 101). In other words, we use two fullyconnected layers, one for age and another one for gender classification.

Softmax layer: In this layer, for each facial image, we need to interpret output as probability values that indicate the classes for gender and age that a face could potentially belong to. To achieve this, the softmax activation function is applied to the outputs of the fullyconnected layers.
IiiA3 Recommendation Model
Once the selfdriving car is connected to RSU, it downloads MLP output. Then, it uses the CNN prediction and MLP output to decide the contents that need to be downloaded and cached in its cache storage. The workflow of the recommendation model for the selfdriving car is described as follows:

Step 1: Each selfdriving car downloads MLP output from MEC server (attached to RSU).

Step 2: By using the kmeans algorithm for agebased grouping and binary classification for genderbased grouping on MLP output, each selfdriving car makes clusters of consumers of contents and generates an initial recommendation for the contents that need to be cached and have high requested probabilities.

Step 3: For each new passenger , the selfdriving car uses CNN for automatically predicting its age and gender. We assume that the selfdriving car trains CNN once by using dataset, saves the model, and uses it for predicting age and the gender without always training the model again.

Step 4: The selfdriving car uses these passenger’s features to calculate the similarity of passenger with the existing classified people (consumers of contents). From the result of similarity calculation, the passenger will be assigned to a cluster.

Step 5: After clustering of passenger(s), selfdriving car updates the recommendation for the content that the selfdriving car needs to be downloaded and cached.

Step 6: Finally, selfdriving car downloads the recommended contents via RSUs and caches them in its cache storage .
Let us describe in detail how to use kmeans algorithm and binary classification in the recommendation model at each geographical location of selfdriving car . For kmeans algorithm, first, we use age as numerical data points. We denote as MLP output at each geographical location and as inputs of kmeans algorithm. The kmeans seeks to partition data points into clusters and . In kmeans, people are grouped into clusters based on category of their age, where we choose the number of clusters equals to the number of age categories. In addition, clusters are disjoint . The goal of kmeans is to assign data points to the cluster’s centroid such that the below objective function is minimized:
(6) 
where is the centroid of cluster , which is defined as follows:
(7) 
In addition to the age, people in the same cluster can have different gender. Furthermore, as shown in the processed YouTube demographic dataset from Next Analytics [21], based on gender, people have different choices for contents. Therefore, in each cluster, we need to group data points based on gender. For genderbased grouping, we apply binary classification described in [24] which results in formation of two groups, one group for females (denoted ) and another group for males (denoted ), where and .
Since downloading both MLP outputs and top recommended contents requires communication resources, we propose communication model that is described in below subsection.
IiiB Communication Model
During offpeak hours, based on the MLP outputs, each MEC server downloads recommended contents by using fiber backhaul link of capacity . The transmission delay for downloading contents from DC to the MEC server is expressed as:
(8) 
where , , denotes the set of predicted contents via MLP that need to be cached in region of RSU and is a decision variable that indicates whether or not MEC server downloads recommended content i from DC, such that:
(9) 
In selfdriving car, downloading the top recommended contents requires communication resources. We consider each selfdriving car moves in region covered by macro base stations (BSs) and RSUs. In addition, we assume that in each route of selfdriving car , there can be many RSUs, where some of them are cacheenabled. Therefore, before the selfdriving car starts its journey, it can select RSUs that will be used to download the top recommended contents and the speed that will be used for having less variation in time for downloading contents. Therefore, to discover cacheenabled RSUs located in a route of each selfdriving car, Access Network Discovery and Selection Function (ANDSF) implemented in cellular network [30] can be utilized. To get RSU information (their coordinates and coverages), the selfdriving car sends a request to ANDSF server via BS. In the request includes selfdriving car geographic location, speed, and direction. The ANDSF server’s response includes coordinates and coverage radius all RSUs available in the direction of the selfdriving car.
Each selfdriving car computes the following distance between each RSU and its route:
(10) 
where is the angle between the trajectory of movement of selfdriving car and the straight line originating from RSU physical location, and is geographical distance between selfdriving car and cacheenabled . and can be obtained via Global Positioning System (GPS) [31]. In addition, each selfdriving car computes the following distance remaining to reach each area covered by cacheenabled RSU :
(11) 
As described in [31], we defined as a probability that cacheenabled RSU will be selected as a source of contents required to be cached in selfdriving car as follows:
(12) 
where is the radius of area covered by RSU . The equation (12) ensures that once the selfdriving car reaches in area covered by cacheenabled RSU , it immediately starts downloading recommended contents. Therefore, we define as decision variable that indicates whether or not selfdriving car is connected to RSU as follows:
(13) 
We consider each RSU has wireless channel of capacity and each selfdriving car can use one channel at each time slot. The channel is shared via timedivision multiplexing fashion. As described in [32], at each time slot , we assume that the channel is not changing. Therefore, can be expressed as follows:
(14) 
where is the authorized bandwidth for car to RSU communications, is the channel gain between RSU and selfdriving car , and is the scalar factor that represents the transmission power of RSU . Therefore, based on channel capacity, the transmission delay for downloading content from MEC server to selfdriving car is expressed as:
(15) 
where is the most requested content by consumers of the gender female and is the most requested content by consumers of the gender male in each cluster , i.e., .
We consider as a time required by selfdriving car to leave an area covered by RSU as follows:
(16) 
where is the speed of selfdriving car . When , the selfdriving doesn’t need to reduce for having more time to download the recommended contents in the region of RSU . However, when , without endangering other cars and breaking minimum speed limit allowed in its lane, the selfdriving car can reduce for having more time to download more contents and cache them.
We consider that each selfdriving car has Integrated WiFi Router (IWR) on board, and it can provide WiFi connectivity to passengers. The IWR channel resources are shared to the passengers via contentionbased model described in [33]. Therefore, the instantaneous data rate for each passenger via IWR of selfdriving car is given by:
(17) 
where is WiFi throughput efficiency factor, and is the number of passengers that be connected simultaneously to IWR of selfdriving car , where . is used to determine overhead related to MAC protocol layering such as header, DIFS, SIFS, and ACK. Furthermore, is the maximum theoretical data rate that IWR can handle, which is assumed to be protocol depended and apriori known [33]. Furthermore, is channel utilization function [33], which is a function of number of passengers connected simultaneously to IWR. is used to determine impact of contention over WiFi throughput. In addition, we use as a decision variable that indicates whether or not passenger is connected to WiFi of selfdriving , specifically:
(18) 
For each passenger , based on its instantaneous data rate , the transmission delay for downloading content via or from selfdriving car is given by:
(19) 
IiiC Caching Model
The aim of caching contents in the selfdriving car is to reduce the delay experienced by passengers in downloading content. This helps in improving Quality of Experience (QoE) for consumers (passengers) and quality of service for Content Providers (CPs).
We assume that the cache storage for each selfdriving car is limited. Therefore, the sizes of the recommended contents need to be downloaded from MEC server and cached must satisfy cache resource constraint, which is expressed as follows:
(20) 
where, in each cluster , we let be the decision variable that indicates whether or not selfdriving car has to cache content , where is given by:
(21) 
On the other hand, we let be the decision variable that indicates whether or not selfdriving car has to cache content , where is given by:
(22) 
Furthermore, for analyzing cache storage utilization, which is based on cache hit and cache miss, we assume that and are cached in the same cache storage . Therefore, we omit the subscript and superscript on content, and use to denote any content or .
We use to denote the cache hit indicator at selfdriving car for content requested by customer :
(23) 
In case of cache miss (), the selfdriving car needs to forward demand for content to its associated MEC server. Based on MLP output at RSU, we consider that the MEC server caches the contents that has high probabilities of being request in its region , where cache allocation has to satisfy the following constraint:
(24) 
where is a decision variable that indicates whether or not MEC server has to cache content , defined as follows:
(25) 
Furthermore, we use to denote the cache hit indicator at MEC server for content requested by selfdriving :
(26) 
Due to the limited cache capacity, when the cache storage is full, the selfdriving car or MEC server replaces the contents by using Least Frequently Used (LFU) cache replacement policy [34] [35].
However, when MEC server does not have content in its cache storage, MEC server forwards the demand for content to DC via wired backhaul link.
IiiD Computation Model for Cached Content
In the selfdriving car, a passenger may request a content format (e.g., avi), which is not available in the cache storage . Instead, the cache storage may have other content formats (e.g., mpeg) of the same content which can be transcoded to the desired format.
Therefore, in order to adopt this process of serving cached content after computation, we define the following decision variable:
(27) 
In order to make sure that selfdriving car returns only one format of content, the following constraint has to be satisfied:
(28) 
We assume that converting content to content requires to use computation resource of selfdriving car , where computational resource allocation is given by:
(29) 
where is the computation workload or intensity in terms of CPU cycles per bit required for converting cached content to , while is computation decision variable which is expressed as:
(30) 
In (29), for computational resources allocation, we use weighted proportional allocation, because it is simple to implement in practical communication systems such Vehicular Adhoc Networks (VANETs), 4G and 5G cellular networks [36, 9]. In weighted proportional allocation, each transcoding task receives a fraction of computational resources based on its computation workload requirement.
Furthermore, we assume that the computational resource to be limited, and computation allocation must satisfy the following constraint:
(31) 
In addition, converting content to content involves the executing time. Therefore, in selfdriving car , as defined in [37], the execution time is given by:
(32) 
When constraint (31) cannot be satisfied due to insufficient computational resource for converting content into requested content , selfdriving car forwards the demand for content to MEC server.
At MEC server, to convert cached content into content , it requires execution time . Thus, the execution time at MEC server is given by:
(33) 
where is a computation decision variable, which is expressed as:
(34) 
where the computational resource allocation at RSU for converting cached content to content can be calculated as follows:
(35) 
In addition, we assume that computation resource at MEC server to be limited, where computation allocation has to satisfy the following constraint:
(36) 
We define as a decision variable that indicates whether or not MEC server returns requested content to selfdriving car after computation, where is given by:
(37) 
Therefore, in order to ensure that converting to is executed only at one location and MEC server returns only one format of content, we impose the following constraints:
(38)  
(39) 
where . However, when the MEC server does not have enough computation resources to satisfy the above constraint (36), it forwards the demand for content to DC via backhaul wired link.
Iv Problem Formulation and Solution
To join aforementioned deep Learning, communication, and computation approaches, we formulate an optimization problem in Section IVA. Finally, we propose a solution of our optimization problem in Section IVB.
Iva Problem Formulation
We formulate a novel deep learning based caching scheme in selfdriving car that exploits 4C components of MEC as an optimization problem. The problem aims at minimizing total delay, where total delay for retrieving contents is given by:
(40) 
Therefore, for minimizing delay , the optimization problem can be expressed as follows:
(41)  
subject to:  
(41a)  
(41b)  
(41c)  
(41d)  
(41e) 
The constraint in (41a) ensures that the communication resource allocation for selfdriving cars has to be less or equal to the total available communication resources of RSU . The constraints in (41b) and (41c) guarantee that caching and computational resource allocations have to be less or equal to the available caching and computational resources of the selfdriving car. The constraint in (41d) ensures that selfdriving car or MEC server returns only one format of the requested content. The constraint (41e) ensures that converting to is only executed at one location, either at MEC server or at selfdriving car .
The formulated optimization problem in (41) has a nonconvex structure, which makes it complicated to solve. Therefore, in order to make it convex and solve it easily, we use a Block Successive MajorizationMinimization (BSMM) [25] and rounding technique [38, 39] described below in the Section IVB.
IvB Proposed Solution
We solve (41) by using BSMM. The BSMM belongs to a family of algorithms called MajorizationMinimization (MM) algorithms described in [25]. We choose BSMM over other MM algorithms because BSMM allows partitioning problem into blocks and applies MM to one block of variables while keeping the values of other block fixed. To ensure that all blocks are utilized, we can use selection rules such as Cyclic, GaussSouthwell, and Randomized described in [9, 25]. Therefore, with BSMM, each subproblem can be solved separately using parallel computation. Furthermore, in order to use BSMM in (41), we consider , , and as nonempty and closed sets of relaxed , , and , respectively. Therefore, to simplify our notation, we use to denote (41), where is expressed as follows:
(42) 
To solve (42) by using BSMM, we apply MM steps summarized below:
The success of BSMM relies on choosing the surrogate function . Therefore, a surrogate function that is easy to solve and follows the shape of the objective function (42) is preferable. To achieve this, in majorization step, we use proximal minimization technique described in [25] and make the surrogate function by adding quadratic term () to (42). Therefore, the convex surrogate function can be expressed as follows:
(43) 
where , , are a given initial feasible points. Furthermore, the surrogate function in (43) can be applied to other vectors and . Due to its quadratic term (), is convex optimization problem.
In minimization step, we minimize surrogate function , which is convex and upperbound of the objective function in (42). Therefore, as the surrogate function in (43) can be divided into blocks, we consider as set of indexes, where at each iteration and , is used to denote a positive penalty parameter.
For minimizing the surrogate function , we propose Algorithm 1, where we can obtain solution of (43) by solving the below optimization problems at each each iteration :
(44) 
(45) 
(46) 
For the obtained solution by using the relaxed vectors , and that take values in , we need to ensure that , and
are vectors of binary variables. In order to achieve this, we apply the rounding techniques described in
[38]. As an illustration example, for a solution , we define rounding threshold , where enforced binary value of is given by:(47) 
As highlighted in [9, 39], the rounding technique may violate communication, caching, and computation resource constraints. Therefore, as proposed in [9] and [39], to overcome this issue, we solved in the form by updating the constrains in (41a), (41b), and (41c) as follows:
(48) 
(49) 
(50) 
where, in selfdriving car, we use as maximum violation of communication, caching, and computation resource constraints and as the weight parameter of . Furthermore, the values of , , and are given by:
(51) 
(52) 
(53) 
In order to evaluate the quality of our rounding technique, we use the integrality gap defined and proved in [38]. Therefore, for given problems and , the integrality gap is expressed as follows:
(54) 
For , the solution is obtained by using relaxed vectors , and . On other hand, for , the solution is obtained by enforcing the vectors , and to be the vectors of binary variables. Therefore, the best rounding is achieved, when ( for the feasible solution).
Comments
There are no comments yet.