## 2 Literature Review  
Due to the exponential increase of data generated by network devices, the conventional cloud computing architecture cannot meet the level of low latency and quick response required by IoT applications. Therefore, fog computing has received increasing attention in recent years. Cisco first proposed fog computing that can transform network edge devices into parts of a distributed computing infrastructure for supporting IoT applications [3]. [PERSON] et al. [7] investigated the fundamental characteristics of fog computing for healthcare systems. [PERSON] et al. [8] discussed the definition of fog computing and similar concepts, introduced three representative applications, and identified various issues when designing and implementing fog computing systems. [PERSON] et al. [9] developed a fog-node policy that considered queue lengths and various types of requests with different processing times to minimize service delays for IoT nodes. [PERSON] et al. [10] explored the security threats and privacy issues for implementing the IoT in a fog computing environment. [PERSON] et al. [11] proposed an architecture to deploy IoT applications across various devices, from the edge devices to the cloud. [PERSON] et al. [12] proposed a taxonomy of the fog computing environment and discussed possible challenges and features.  
Cloud-fog computing allows some cloud services to be executed on the edge of the network. How to select the appropriate nodes for the tasks to be processed is critical to the performance of the cloud-fog computing architecture. [PERSON] et al. [13] investigated a workload allocation problem considering power consumption and delay in a cloud-fog computing system. They approximately decomposed the problem into three subproblems and then solved each subproblem by existing optimization techniques. The simulations and numerical results indicated that fog computing can complement cloud computing in bandwidth conservation and transmission latency reduction. [PERSON] and [PERSON] [14] discussed the task scheduling problem in a cloud-fog environment. They developed a heuristic-basedalgorithm for task scheduling to achieve the balance between the execution time and the monetary cost of cloud resources. [PERSON] et al. [15] proposed a cost-aware genetic-based task scheduling algorithm to enhance the cost efficiency for real-time applications in a fog-cloud environment. [PERSON] and [PERSON] [16] developed task scheduling algorithms based on integer linear programming techniques for multiclass services in cloud-fog computing systems.  
[PERSON] et al. [4] investigated the main techniques and the improvement criteria of the developed task assignment algorithms for cloud computing or fog computing. However, in the hybrid cloud-fog computing environment, the cloud nodes and fog nodes are different in processing capability and resource usage costs. Therefore, the tasks may not be equally assigned to all nodes [4]. The tasks should be allocated to different nodes according to the requirements of the tasks, the processing speed of nodes, and the resource usage cost of nodes. Since existing methods are not suitable for the hybrid cloud-fog computing architecture, [PERSON] et al. [4] constructed a mathematical programming model to investigate the task assignment problem and developed evolutionary algorithms to solve the problem.