“…• Optimal resource allocation: Due to the constantly increasing demands of the cloud users for services or resources. It is very challenging to distribute the resources precisely to the cloud users' demands in order to fulfill their requirements and also gives the guarantee of QoS to the cloud users regarding to the SLA by the cloud providers [5,6,19,21,22,35,51,55,76,79,83,112]. • QoS aware Resource Allocation: is required for high performance, availability of resources, handle of conflicts of resource demands, fault-tolerance and reliability [53,68,80,118,119,130].…”