<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" 'JATS-journalpublishing1-3-mathml3.dtd'>
<article article-type="research-article" dtd-version="1.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ali="http://www.niso.org/schemas/ali/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Robot. AI</journal-id>
<journal-title-group>
<journal-title>Frontiers in Robotics and AI</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Robot. AI</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2296-9144</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">1656516</article-id>
<article-id pub-id-type="doi">10.3389/frobt.2025.1656516</article-id>
<article-version article-version-type="Corrected Version of Record" vocab="NISO-RP-8-2008"/>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Original Research</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Energy-conscious scheduling in edge environments: hybridization of traditional control and DE algorithm</article-title>
<alt-title alt-title-type="left-running-head">Ma and Xu</alt-title>
<alt-title alt-title-type="right-running-head">
<ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3389/frobt.2025.1656516">10.3389/frobt.2025.1656516</ext-link>
</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname>Ma</surname>
<given-names>Kun</given-names>
</name>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Xu</surname>
<given-names>Lingyu</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/3053922"/>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &#x26; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/Writing - review &#x26; editing/">Writing - review and editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; original draft" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-original-draft/">Writing - original draft</role>
</contrib>
</contrib-group>
<aff id="aff1">
<label/>
<institution>Thanh Dong University</institution>, <city>Hai Phong City</city>, <country country="VN">Vietnam</country>
</aff>
<author-notes>
<corresp id="c001">
<label>&#x2a;</label>Correspondence: Lingyu Xu, <email xlink:href="mailto:lingyuxu@thanhdong.edu.vn">lingyuxu@thanhdong.edu.vn</email>
</corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2025-12-05">
<day>05</day>
<month>12</month>
<year>2025</year>
</pub-date>
<pub-date publication-format="electronic" date-type="corrected" iso-8601-date="2026-05-13">
<day>13</day>
<month>05</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2025</year>
</pub-date>
<volume>12</volume>
<elocation-id>1656516</elocation-id>
<history>
<date date-type="received">
<day>30</day>
<month>06</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>09</day>
<month>10</month>
<year>2025</year>
</date>
<date date-type="accepted">
<day>27</day>
<month>10</month>
<year>2025</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2025 Ma and Xu.</copyright-statement>
<copyright-year>2025</copyright-year>
<copyright-holder>Ma and Xu</copyright-holder>
<license>
<ali:license_ref start_date="2025-12-05">https://creativecommons.org/licenses/by/4.0/</ali:license_ref>
<license-p>This is an open-access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution License (CC BY)</ext-link>. The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</license-p>
</license>
</permissions>
<abstract>
<p>Robot applications encompass a multitude of edge computing tasks, such as image processing, health monitoring, path planning, and infotainment. However, task scheduling within such environments remains a significant challenge due to the inherent limitations of edge computing resources and the dynamically fluctuating nature of workloads. EdgeCloudSim, a widely used simulation platform for edge computing, supports a conventional control strategy&#x2014;Least-Loaded First-Fit Decreasing (LLFFD)&#x2014;that is favored for its simplicity and speed, especially in scenarios with relatively small-scale and stable workloads. However, as the number of tasks grows and task-VM matching becomes more complex, traditional heuristics struggle to optimize resource utilization and energy consumption effectively. To address this, we propose a hybrid scheduling approach&#x2014;FFDDE&#x2014;that integrates the FFD heuristic with the Differential Evolution (DE) algorithm for optimized task-to-VM mapping in edge environments. Using the EdgeCloudSim simulation framework, we evaluate both strategies under diverse workload conditions, comparing their performance in terms of energy consumption and task completion time. Experimental results demonstrate that, compared with the traditional LLFFD method and the classic heuristic algorithm&#x2014;GA, the hybrid DE-based strategy achieves significantly improved energy efficiency through better task consolidation. This study highlights the potential of combining fast heuristic methods with evolutionary optimization to achieve more sustainable task scheduling in edge computing scenarios.</p>
</abstract>
<kwd-group>
<kwd>edge computing</kwd>
<kwd>task scheduling</kwd>
<kwd>energy-saving optimization</kwd>
<kwd>hybrid differential evolution algorithm</kwd>
<kwd>edg eresource management</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declare that financial support was received for the research and/or publication of this article. This work was supported by the Jiaxing Science and Technology Bureau Research Project under the Jiaxing Science Plan Project (Grant No. 2025CGZ076).</funding-statement>
</funding-group>
<counts>
<fig-count count="6"/>
<table-count count="3"/>
<equation-count count="6"/>
<ref-count count="24"/>
<page-count count="11"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-in-acceptance</meta-name>
<meta-value>Computational Intelligence in Robotics</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>Mobile and edge computing systems must intelligently schedule tasks from user devices onto nearby edge servers to meet latency and efficiency goals. Task scheduling in such distributed edge environments is a complex NP-hard problem with multiple objectives (e.g., response time, energy, resource utilization) <xref ref-type="bibr" rid="B1">Abdel-Basset et al. (2022)</xref>. Traditional scheduling algorithms (e.g., First-Come First-Served, Round-Robin, greedy heuristics) are fast and simple, but they often yield suboptimal resource usage and energy performance in complex edge scenarios <xref ref-type="bibr" rid="B4">Avan et al. (2023)</xref>. For example, simple heuristic strategies can schedule tasks quickly, yet they cannot guarantee optimal results and may get stuck in locally optimal configurations, especially under dynamic, multi-factor conditions <xref ref-type="bibr" rid="B20">Wang et al. (2020)</xref>. Improving resource utilization is critical, since unused capacity wastes energy with no benefit <xref ref-type="bibr" rid="B11">Llorens-Carrodeguas et al. (2021)</xref>. In cloud and fog computing contexts, many approaches focus on energy-efficient scheduling, but most are evaluated via simulations due to difficulty of real-world testing <xref ref-type="bibr" rid="B18">Tang et al. (2024)</xref>. Edge computing inherits these challenges and adds constraints like device mobility and limited server power, making energy-conscious task placement even more crucial.</p>
<sec id="s1-1">
<label>1.1</label>
<title>Energy consumption and scheduling</title>
<p>Each active edge server or VM consumes a baseline power even if underutilized. Thus, scheduling algorithms that consolidate workload (i.e., increase average CPU utilization) can reduce the total number of active servers or active time, lowering energy consumption <xref ref-type="bibr" rid="B3">Ahmed et al. (2021)</xref>. Ullah works have shown that minimizing the number of VMs used and reducing task makespan leads to significant energy savings in fog and cloud environments <xref ref-type="bibr" rid="B19">Ullah et al. (2024)</xref>. For example, Singh et al. achieved lower energy usage by scheduling workflows such that fewer VMs were active and tasks finished sooner <xref ref-type="bibr" rid="B15">Singh and Kumar (2023)</xref>. Similarly, Saidi et al.demonstrated that improving VM CPU utilization (through better task allocation) directly reduces overall energy consumption in a cloud data center <xref ref-type="bibr" rid="B14">Saidi and Bardou (2023)</xref>. These studies underscore that how tasks are matched to resources can markedly impact energy efficiency. Energy-aware scheduling has therefore become a prominent research topic in edge and cloud computing <xref ref-type="bibr" rid="B9">Kocot et al. (2023)</xref>, with solutions ranging from heuristics to advanced machine learning.</p>
</sec>
<sec id="s1-2">
<label>1.2</label>
<title>Heuristics vs. metaheuristics</title>
<p>Greedy heuristics like First-Fit Decreasing (FFD) are popular for task scheduling and bin packing due to their simplicity and speed. In FFD, tasks are sorted by decreasing size and then placed onto the first available resource (VM) that can accommodate them. This strategy is easy to implement and often yields an acceptable solution quicklyda <xref ref-type="bibr" rid="B7">da Costa et al. (2023)</xref>. FFD and related heuristics have beenapplied to cloud/edge scheduling, for instance to allocate tasks to VMs based on workload sizes and VM capacities <xref ref-type="bibr" rid="B5">Chen et al. (2023)</xref>. However, heuristic methods do not guarantee optimal or near-optimal solutions and can perform poorly for complex multi-dimensional scheduling constraints. Greedy FFD approaches may be less efficient for complex scenarios such as cloud and fog computing <xref ref-type="bibr" rid="B8">Juan et al. (2023)</xref>. In dynamic edge environments with many variables, heuristics risk getting trapped in local optima and may not adapt well to changing conditions.</p>
<p>To improve upon static heuristics, researchers have turned to metaheuristic and evolutionary algorithms that explore the solution space more broadly. Differential Evolution (DE) is one such evolutionary optimization algorithm known for fast convergence and simplicity of operations <xref ref-type="bibr" rid="B16">Song et al. (2023)</xref>. DE evolves a population of candidate solutions (scheduling assignments, in our context) by iteratively applying mutation and crossover, and selecting the fittest solutions. It has shown success in many scheduling and resource allocation problems, from cloud task scheduling to IoT edge clustering. Metaheuristics like DE can approach near-optimal solutions for NP-hard scheduling problems, though they involve more computation time than heuristics <xref ref-type="bibr" rid="B2">Ahmad et al. (2022)</xref>, and <xref ref-type="bibr" rid="B10">Laili et al. (2023)</xref>. Recent studies have hybridized heuristics with metaheuristics to get the best of both&#x2013;using heuristics to guide or initialize the search, then applying global optimization to fine-tune the allocation. For example, <xref ref-type="bibr" rid="B1">Abdel-Basset et al. (2022)</xref> introduced a hybrid DE (HDE) algorithm with custom improvements to solve cloud task scheduling, achieving better results than both classical DE and simpler schedulers like first come first served algorithm and Round-Robin algorithm<xref ref-type="bibr" rid="B1">Abdel-Basset et al. (2022)</xref>. Likewise, <xref ref-type="bibr" rid="B6">Chhabra et al. (2022)</xref> combined Whale Optimization with oppositional DE to minimize makespan and energy for scheduling independent cloud tasks, and reported 3%&#x2013;19% reductions in energy use compared to baseline algorithms <xref ref-type="bibr" rid="B6">Chhabra et al. (2022)</xref>. These works illustrate the promise of hybrid approaches in balancing exploration (global search for energy/timing optimization) with exploitation (greedy efficient packing of tasks). To clearly present and compare the current state of research in edge computing task scheduling, we have analyzed and summarized prominent related works in terms of their main contributions, methods, and limitations in <xref ref-type="table" rid="T1">Table 1</xref>.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>The related works of task scheduling in edge computing.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th rowspan="2" align="left">References</th>
<th align="left">Main contribution</th>
<th rowspan="2" align="left">Method</th>
<th align="left">Limitations</th>
</tr>
<tr>
<th align="left">Main contribution &#x26; objective</th>
<th align="left">Limitations &#x26; research gap</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">Edge computing empowered digital twin: an end-to-end computing task scheduling approach. <xref ref-type="bibr" rid="B24">Zhong et al. (2024)</xref>
</td>
<td align="left">Systematically classifies edge computing task scheduling algorithms by integrating attention mechanisms and digital twin technology, aiming to address the challenges of limited communication and computing resources</td>
<td align="left">They developed a deep reinforcement learning (DRL) based approach for-computing task scheduling, named HAT-DRL, which aims to minimize the total completion time for various digital twins (DTs)</td>
<td align="left">This DRL-based approach requires significant training. FFDDE combines a fast heuristic with an evolutionary algorithm, offering energy optimization without extensive training</td>
</tr>
<tr>
<td align="left">Joint resource trading and task scheduling in edge-cloud computing networks. <xref ref-type="bibr" rid="B12">Ma et al. (2025)</xref>
</td>
<td align="left">The paper proposes a framework that enhances resource utilization through effective scheduling and trading mechanisms in edge-cloud computing networks</td>
<td align="left">Multi-round proposer-voter algorithm for homogeneous workloads. Gibbs sampling and distributed alternating update algorithms for heterogeneous workloads</td>
<td align="left">This work focuses on resource trading across a broad edge-cloud network. Our FFDDE specifically addresses the fine-grained, energy-focused task-to-VM mapping problem in a single edge environment</td>
</tr>
<tr>
<td align="left">Task scheduling method for edge computing in intelligent building system. <xref ref-type="bibr" rid="B22">Yi et al. (2021)</xref>
</td>
<td align="left">Edge computing enhances task scheduling by processing data closer to the source, reducing latency. The proposed SSA-GA hybrid scheduling algorithm optimizes task completion time, communication time, and CPU energy consumption</td>
<td align="left">Mathematical model establishment considering communication time, task completion, CPU energy. SSA-GA hybrid scheduling algorithm proposed for optimization efficiency</td>
<td align="left">This paper uses a different hybrid (SSA-GA). Our FFDDE uniquely embeds the FFD heuristic into DE&#x2019;s initialization and repair, providing a more robust search for energy-optimal solutions</td>
</tr>
<tr>
<td align="left">An adaptive mechanism for dynamically collaborative computing power and task scheduling in edge environment. <xref ref-type="bibr" rid="B21">Xu et al. (2021)</xref>
</td>
<td align="left">Edge computing enhances task scheduling by utilizing local computing, storage, and network resources to efficiently manage user requests. The proposed ADCS mechanism dynamically schedules tasks and computing power, minimizing deadline misses and average completion times in edge environments</td>
<td align="left">Greedy decision method for scheduling computing tasks and Bayes method for adjusting computing resources based on user requests</td>
<td align="left">Their method minimizes deadlines but does not prioritize energy efficiency. FFDDE is explicitly designed to minimize energy consumption by consolidating workloads, filling a key gap</td>
</tr>
<tr>
<td align="left">FPGA-based edge computing framework: modeling of computation task scheduling. <xref ref-type="bibr" rid="B17">Tan et al. (2023)</xref>
</td>
<td align="left">The paper proposes a dynamic task scheduling model for FPGA-based edge nodes, balancing load and improving performance by offloading tasks based on node states and task information</td>
<td align="left">The paper proposes a modeling method for task scheduling within an FPGA-based edge computing framework. It utilizes dynamic task scheduling to achieve load balancing in the edge computing network</td>
<td align="left">This framework is limited to FPGA-based systems. Our FFDDE is a software-based solution for general VM environments, making it more broadly applicable and scalable without specialized hardware</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s1-3">
<label>1.3</label>
<title>Contribution</title>
<p>This paper proposed a hybrid scheduling strategy&#x2014;FFDDE&#x2014;that integrates the traditional First-Fit Decreasing (FFD) heuristic into the Differential Evolution (DE) algorithm for task allocation in edge computing environments. The proposed FFDDE approach is evaluated in comparison to the conventional load-aware FFD (LLFFD) and GA (genetic algorithm), with a focus on energy consumption and task completion time. To the best of our knowledge, this work is among the first to explicitly combine heuristic control methods with evolutionary algorithms in edge computing and quantitatively assess their impact on energy efficiency. Simulations were conducted using Edge CloudSim <xref ref-type="bibr" rid="B13">Nandhakumar et al. (2024)</xref>, a platform specifically designed for edge computing scenarios, incorporating realistic models of wireless latency, user mobility, and server energy consumption based on CPU utilization. This research demonstrates that embedding domain-specific heuristic knowledge into evolutionary algorithms can lead to more energy-efficient task scheduling without compromising system performance.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Edge task scheduling model</title>
<p>The edge computing model is shown in <xref ref-type="fig" rid="F1">Figure 1</xref>. The most peripheral devices collect information and send corresponding tasks. The edge host of the middle layer processes tasks through VMs. Cloud is the final data center. In order to conduct targeted simulations, this paper makes some settings based on this model (refer to <xref ref-type="fig" rid="F3">Figure 3</xref> for specific details).</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>Edge computing model Architecture.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g001.tif">
<alt-text content-type="machine-generated">Diagram illustrating edge computing architecture with IOT devices connected to a micro data center, edge hosts, base station, WiFi access point, and router. These are linked to a cloud network. Devices include traffic lights, cameras, cars, smartphones, smart glasses, smart homes, and computers. Connections are shown through lines and arrows, indicating data flow.</alt-text>
</graphic>
</fig>
<p>In order to focus on the task allocation problem in the model, this paper assumes that tasks are independent (i.e., there are no dependencies among them) and can be executed on any available edge virtual machine (VM). For instance, a VM with 1000 MIPS can process 1,000 million instructions of computational work per second. To emulate the diversity of real-world edge computing environments, we consider a heterogeneous infrastructure composed of mixed VM types&#x2014;some with higher processing capacities and others with more limited capabilities.</p>
<p>Each VM is capable of handling multiple tasks concurrently. However, the number of VMs hosted on each edge server is restricted by hardware and resource limitations. Consequently, the task allocation process must comply with these per-node capacity constraints to avoid over-provisioning and ensure system stability. This limitation introduces additional complexity to the scheduling problem, requiring intelligent strategies to achieve efficient task-to-VM mappings under constrained resources. The definitions and descriptions are as follows:</p>
<p>Unified Problem Definition.</p>
<p>Let the task set be <inline-formula id="inf1">
<mml:math id="m1">
<mml:mrow>
<mml:mi>T</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula> and the virtual machine set be <inline-formula id="inf2">
<mml:math id="m2">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:math>
</inline-formula>, where:<list list-type="bullet">
<list-item>
<p>
<inline-formula id="inf4">
<mml:math id="m4">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>: The computational demand of task <inline-formula id="inf5">
<mml:math id="m5">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf7">
<mml:math id="m7">
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>: The computational capacity of virtual machine <inline-formula id="inf8">
<mml:math id="m8">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf10">
<mml:math id="m10">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>: The real-time utilization rate of virtual machine <inline-formula id="inf11">
<mml:math id="m11">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> at time <inline-formula id="inf12">
<mml:math id="m12">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> <inline-formula id="inf13">
<mml:math id="m13">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>
<inline-formula id="inf15">
<mml:math id="m15">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">makespan</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msub>
<mml:mi>C</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>: The completion time of task T</p>
</list-item>
</list>
</p>
<sec id="s2-1">
<label>2.1</label>
<title>Strategy 1- traditional control (LLFFD)</title>
<sec id="s2-1-1">
<label>2.1.1</label>
<title>Decision rules</title>
<p>In the baseline scheduling strategy, task allocation is performed using a load-aware heuristic known as <italic>LLFFD (Least-Loaded First-Fit Decreasing)</italic>. During scheduling, the algorithm processes all incoming tasks sequentially, in their order of arrival. For each task <inline-formula id="inf16">
<mml:math id="m16">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, it iterates through the list of virtual machines <inline-formula id="inf17">
<mml:math id="m17">
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> and assigns <inline-formula id="inf18">
<mml:math id="m18">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to the VM <inline-formula id="inf19">
<mml:math id="m19">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with the lowest current CPU utilization <inline-formula id="inf20">
<mml:math id="m20">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> that is capable of executing the task in a timely manner. The search follows a fixed order of VMs.</p>
<p>This heuristic mimics a classical load-balancing approach, where tasks are treated as incoming loads and VMs represent real-time execution slots with varying processing capabilities. By always assigning a new task to the least-loaded VM at the moment, LLFFD aims to balance the load among VMs, reduce idle resource time, and minimize task completion time. The procedure is formally defined as follows:</p>
<p>In the baseline scheduling strategy, task allocation is performed using a load-aware heuristic known as LLFFD (Least-Loaded First-Fit Decreasing). During scheduling, the algorithm processes all incoming tasks sequentially, in their order of arrival. For each task, it iterates through the list of virtual machines and assigns the task to the VM with the lowest current CPU utilization that is capable of executing the task in a timely manner. The search follows a fixed order of VMs. If all available VMs are already operating beyond a predefined utilization threshold, the task must wait in a queue until resources become available.</p>
<p>This heuristic mimics a classical load-balancing approach, where tasks are treated as incoming loads and VMs represent real-time execution slots with varying processing capabilities. By always assigning a new task to the least-loaded VM at the moment, LLFFD aims to balance the load among VMs, reduce idle resource time, and minimize task completion time. The procedure is formally defined as <xref ref-type="disp-formula" rid="e1">Equations 1</xref>&#x2013;<xref ref-type="disp-formula" rid="e6">6</xref>:</p>
<p>For each task <inline-formula id="inf21">
<mml:math id="m21">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, virtual machines are assigned in the order of arrival <inline-formula id="inf22">
<mml:math id="m22">
<mml:mrow>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mo>&#x22ef;</mml:mo>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>a</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>:<disp-formula id="e1">
<mml:math id="m23">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>arg min</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(1)</label>
</disp-formula>where <inline-formula id="inf23">
<mml:math id="m24">
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> represents the target VM, <inline-formula id="inf24">
<mml:math id="m25">
<mml:mrow>
<mml:mi>arg min</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the virtual machine with the lowest CPU utilization at time t.</p>
</sec>
<sec id="s2-1-2">
<label>2.1.2</label>
<title>Load update mechanism</title>
<p>The computational complexity of LLFFD arises from checking the load of all VMs <inline-formula id="inf25">
<mml:math id="m26">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> for each of the tasks <inline-formula id="inf26">
<mml:math id="m27">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, resulting in a time complexity of <inline-formula id="inf27">
<mml:math id="m28">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>. However, This can be optimized to <inline-formula id="inf28">
<mml:math id="m29">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>log</mml:mi>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> by employing a priority queue (e.g., a min-heap) to maintain and retrieve the VM with the lowest load efficiently. The optimized process is defined as follows:</p>
<p>After allocation, update the load of the virtual machine:<disp-formula id="e2">
<mml:math id="m30">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2190;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
</sec>
<sec id="s2-1-3">
<label>2.1.3</label>
<title>Time complexity</title>
<p>It is important to note that LLFFD is inherently a greedy strategy&#x2014;it makes allocation decisions based solely on the current load information, without any form of backtracking or global optimization. Once a task is allocated to a VM deemed optimal at that moment, the algorithm does not reconsider or adjust the assignments of previously scheduled tasks. This can lead to suboptimal results. For instance, a sequence of small tasks may overfill a relatively slow VM, while a faster VM remains underutilized due to a transiently higher load. Consequently, the overall system performance, especially task makespan, may degrade. Since LLFFD does not explore the global task-to-VM mapping space, there remains potential for improvement under specific workload distributions, as defined in:<list list-type="order">
<list-item>
<p>
<bold>Basic implementation</bold>: <inline-formula id="inf29">
<mml:math id="m31">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#xd7;</mml:mo>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (Traverse all tasks and virtual machines)</p>
</list-item>
<list-item>
<p>
<bold>Heap optimization</bold>: Maintain a min-heap to store virtual machine loads. The complexity of a single query is <inline-formula id="inf30">
<mml:math id="m32">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>log</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, and the total complexity is <inline-formula id="inf31">
<mml:math id="m33">
<mml:mrow>
<mml:mi>O</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>log</mml:mi>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
</list>
</p>
</sec>
</sec>
<sec id="s2-2">
<label>2.2</label>
<title>Strategy 2- hybridization DE (FFDDE)</title>
<p>The proposed strategy is a hybrid algorithm that integrates the FFD heuristic into the evolutionary loop of Differential Evolution (DE). In our approach, a candidate solution to the scheduling problem is represented as a mapping of tasks to virtual machines (VMs), encoded as an integer vector of length N, where each element indicates the index of the VM assigned to a given task. For N tasks and M VMs, each candidate thus defines a complete assignment. Since standard DE operates on real-valued vectors, we adapt it to this discrete scheduling context by allowing mutation and crossover operators to generate intermediate (fractional) values, which are subsequently rounded or interpreted as discrete VM indices. To maintain solution feasibility&#x2014;ensuring that no VM exceeds its task-handling capacity&#x2014;we introduce a repair mechanism. If a VM ends up overloaded, we redistribute some of its tasks to less-loaded VMs using a strategy inspired by FFD, thereby preserving load balance.</p>
<p>The integration of FFD into DE occurs at two key stages:</p>
<p>(a) Population Initialization: The initial population of the DE algorithm is seeded with solutions generated using the FFD heuristic and some perturbed variants, providing DE with a strong starting point derived from domain-specific knowledge. (b) Heuristic Correction: After standard DE mutation and crossover, each newly generated candidate solution undergoes a heuristic refinement step. In this step, tasks are first sorted by length, and then reassigned to VMs using a first-fit approach that takes current VM loads into account. This leverages the FFD&#x2019;s strength in fast and efficient task packing to guide the search process.</p>
<p>The fitness function for DE is defined as a weighted combination of total energy consumption and task makespan. Specifically, the fitness is calculated as:</p>
<p>Fitness &#x3d; Total Energy Consumption&#x2b;<inline-formula id="inf32">
<mml:math id="m34">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#xd7;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> Makespan.</p>
<p>Where total energy consumption is the sum of energy used by all edge servers during scheduling, and makespan refers to the completion time of the last task. The weight <inline-formula id="inf33">
<mml:math id="m35">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> is a positive constant introduced to penalize excessively long schedules, thereby encouraging energy-efficient solutions that also avoid severe task delays. This design favors strategies that consolidate tasks onto fewer servers&#x2014;allowing others to remain idle or enter a low-power state&#x2014;without causing unacceptable queuing delays on individual VMs.</p>
<p>The DE algorithm&#x2019;s parameters were determined through a sensitivity analysis to ensure robust performance. The final configuration uses a population size of 50, a mutation factor F &#x3d; 0.5, and a crossover rate CR &#x3d; 0.9, as this combination was found to consistently provide an effective balance between convergence speed and solution quality in our experimental scenarios. The algorithm is executed for 100 generations or until the improvement in fitness falls below a predefined threshold.</p>
<p>By combining the global search capability of DE with the domain-specific efficiency of FFD, the hybrid algorithm aims to discover superior scheduling solutions compared to either method alone. It is worth noting that hybrid metaheuristics have shown strong potential in cloud and edge scheduling. For example, <xref ref-type="bibr" rid="B23">Yousif et al. (2024)</xref> demonstrated that seeding DE with heuristically generated solutions improved stability and execution time in IoT-edge task scheduling when compared with alternatives such as the Firefly Algorithm or Particle Swarm Optimization (PSO).</p>
<p>The definitations and descriptions are as follows:</p>
<sec id="s2-2-1">
<label>2.2.1</label>
<title>Encoding and initialization</title>
<p>
<bold>- Solution Vector</bold>: <inline-formula id="inf34">
<mml:math id="m36">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf35">
<mml:math id="m37">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mn>1,2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> represents the ID of the virtual machine assigned to <inline-formula id="inf36">
<mml:math id="m38">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
<p>
<bold>- Initialize Population</bold>: FFD solution, perturbed solution, random solution.</p>
<p>
<bold>- Fitness Function (Minimization Objective)</bold>:<disp-formula id="e3">
<mml:math id="m39">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
</mml:mstyle>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x22c5;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x23df;</mml:mo>
</mml:munder>
</mml:mstyle>
</mml:mrow>
<mml:mrow>
<mml:mtext>Total&#x2009;Energy&#x2009;Consumption</mml:mtext>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:munder>
<mml:mrow>
<mml:munder accentunder="false">
<mml:mrow>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x2208;</mml:mo>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:mi>C</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mo>&#x23df;</mml:mo>
</mml:munder>
</mml:mrow>
<mml:mrow>
<mml:mtext>Makespan</mml:mtext>
</mml:mrow>
</mml:munder>
</mml:mrow>
</mml:math>
<label>(3)</label>
</disp-formula>where <inline-formula id="inf37">
<mml:math id="m40">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> refers to the power consumption of <inline-formula id="inf38">
<mml:math id="m41">
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, and <inline-formula id="inf39">
<mml:math id="m42">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> corresponds to its runing time. <inline-formula id="inf40">
<mml:math id="m43">
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> is the delay penalty coefficient.</p>
</sec>
<sec id="s2-2-2">
<label>2.2.2</label>
<title>Discrete DE operations (based on standard DE improvement)</title>
<p>
<bold>- Mutation (for individual</bold> <inline-formula id="inf41">
<mml:math id="m44">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>)</bold>:<disp-formula id="e4">
<mml:math id="m45">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mtext>round</mml:mtext>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r1i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mo>&#x22c5;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r2i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">r3i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>F</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.5</mml:mn>
</mml:mrow>
</mml:math>
<label>(4)</label>
</disp-formula>where k denotes the index of the current individual being processed<inline-formula id="inf42">
<mml:math id="m46">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> are distinct random indices, and <inline-formula id="inf43">
<mml:math id="m47">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> denotes the <inline-formula id="inf44">
<mml:math id="m48">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>-th component of the random individual.</p>
<p>
<bold>- Crossover (Generating Vector</bold> <inline-formula id="inf45">
<mml:math id="m49">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
<bold>)</bold>:<disp-formula id="e5">
<mml:math id="m50">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>if&#x2009;rand</mml:mtext>
<mml:mfenced open="(" close=")"/>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mtext>&#x2009;or&#x2009;</mml:mtext>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>rand</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>otherwise</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:mspace width="1em"/>
<mml:mi>C</mml:mi>
<mml:mi>R</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0.9</mml:mn>
</mml:mrow>
</mml:math>
<label>(5)</label>
</disp-formula>
</p>
<p>
<inline-formula id="inf46">
<mml:math id="m51">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>rand</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> is a random dimension index, ensuring at least one dimension comes from the mutation vector.</p>
</sec>
<sec id="s2-2-3">
<label>2.2.3</label>
<title>FFD hybrid mechanism</title>
<p>
<bold>- Repair Population</bold>: 50% of individuals are derived from <inline-formula id="inf47">
<mml:math id="m52">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>FFD</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> (FFD-based baseline solution) and its perturbations (randomly swap 10% of task assignments); the rest are random solutions.</p>
<p>
<bold>- Feasibility Repair Operator</bold>: For an overloaded virtual machine <inline-formula id="inf48">
<mml:math id="m53">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>, reorder its tasks by <inline-formula id="inf49">
<mml:math id="m54">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> randomly, then reassign them sequentially to the virtual machine with the lowest load:<disp-formula id="e6">
<mml:math id="m55">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>new</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>arg</mml:mi>
<mml:mstyle displaystyle="true">
<mml:munder>
<mml:mrow>
<mml:mi>min</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:munder>
</mml:mstyle>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:math>
<label>(6)</label>
</disp-formula>
</p>
<p>Update <inline-formula id="inf50">
<mml:math id="m56">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2190;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>U</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>/</mml:mo>
<mml:mi>c</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi>v</mml:mi>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> (consistent with FFD load calculation).<list list-type="bullet">
<list-item>
<p>algorithm steps are as follows:</p>
</list-item>
</list>
</p>
<p>
<statement content-type="algorithm" id="Algorithm_1">
<label>Algorithm 1</label>
<p>Proposed Evolutionary Algorithm.<list list-type="simple">
<list-item>
<p>
<bold>Input</bold>: Task set <inline-formula id="inf52">
<mml:math id="m58">
<mml:mrow>
<mml:mi mathvariant="script">T</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, virtual machine set <inline-formula id="inf53">
<mml:math id="m59">
<mml:mrow>
<mml:mi mathvariant="script">V</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula>, maximum number of generations <inline-formula id="inf54">
<mml:math id="m60">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>100</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula>, fitness threshold <inline-formula id="inf55">
<mml:math id="m61">
<mml:mrow>
<mml:mi>&#x3b5;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>
<bold>Output</bold>: Optimal solution <inline-formula id="inf56">
<mml:math id="m62">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2a;</mml:mo>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>1: Initialize population <inline-formula id="inf57">
<mml:math id="m63">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mtext>FFD&#x2009;solution</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext>perturbed&#x2009;solution</mml:mtext>
<mml:mo>,</mml:mo>
<mml:mtext>random&#x2009;solution</mml:mtext>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>2: <bold>for</bold> <inline-formula id="inf58">
<mml:math id="m64">
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:math>
</inline-formula> <bold>to</bold> <inline-formula id="inf59">
<mml:math id="m65">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>G</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mtext>max</mml:mtext>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <bold>do</bold>
</p>
</list-item>
<list-item>
<p>3:&#x2003;&#x2003;&#x2003;<bold>for</bold> each <inline-formula id="inf60">
<mml:math id="m66">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2208;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>g</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <bold>do</bold>
</p>
</list-item>
<list-item>
<p>4:&#x2003;&#x2003;&#x2003;&#x2003;Generate mutation vector <inline-formula id="inf61">
<mml:math id="m67">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>5:&#x2003;&#x2003;&#x2003;&#x2003;Generate trial vector <inline-formula id="inf62">
<mml:math id="m68">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>6:&#x2003;&#x2003;&#x2003;&#x2003;Perform FFD repair on <inline-formula id="inf63">
<mml:math id="m69">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>7:&#x2003;&#x2003;&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf64">
<mml:math id="m70">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> contains overloaded VMs <bold>then</bold>
</p>
</list-item>
<list-item>
<p>8:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;<bold>for</bold> each overloaded VM <inline-formula id="inf65">
<mml:math id="m71">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in <inline-formula id="inf66">
<mml:math id="m72">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <bold>do</bold>
</p>
</list-item>
<list-item>
<p>9:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;<inline-formula id="inf67">
<mml:math id="m73">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2190;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> Identify all tasks currently assigned to <inline-formula id="inf68">
<mml:math id="m74">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>.</p>
</list-item>
<list-item>
<p>10:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;Sort tasks in <inline-formula id="inf69">
<mml:math id="m75">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in non-increasing order of computational demand.</p>
</list-item>
<list-item>
<p>11:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;<bold>for</bold> each task <inline-formula id="inf70">
<mml:math id="m76">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> in sorted <inline-formula id="inf71">
<mml:math id="m77">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> <bold>do</bold>
</p>
</list-item>
<list-item>
<p>12:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;Find the VM <inline-formula id="inf72">
<mml:math id="m78">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">best</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> with the lowest current load.</p>
</list-item>
<list-item>
<p>13:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;Reassign task <inline-formula id="inf73">
<mml:math id="m79">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> to <inline-formula id="inf74">
<mml:math id="m80">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">best</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula> and update loads.</p>
</list-item>
<list-item>
<p>14:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;<bold>end for</bold>
</p>
</list-item>
<list-item>
<p>15:&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;&#x2003;<bold>end for</bold>
</p>
</list-item>
<list-item>
<p>16:&#x2003;&#x2003;&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>17:&#x2003;&#x2003;&#x2003;&#x2003;Calculate <inline-formula id="inf75">
<mml:math id="m81">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>18:&#x2003;&#x2003;&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf76">
<mml:math id="m82">
<mml:mrow>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>, <inline-formula id="inf77">
<mml:math id="m83">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>g</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2190;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>u</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:math>
</inline-formula>
</p>
</list-item>
<list-item>
<p>19:&#x2003;&#x2003;&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>20:&#x2003;&#x2003;&#x2003;<bold>end for</bold>
</p>
</list-item>
<list-item>
<p>21:&#x2003;&#x2003;&#x2003;<bold>if</bold> <inline-formula id="inf78">
<mml:math id="m84">
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>g</mml:mi>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>g</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">&#x7c;</mml:mo>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>&#x3b5;</mml:mi>
</mml:mrow>
</mml:math>
</inline-formula> <bold>then</bold>, Terminate early</p>
</list-item>
<list-item>
<p>22:&#x2003;&#x2003;&#x2003;<bold>end if</bold>
</p>
</list-item>
<list-item>
<p>23: <bold>end for</bold>
</p>
</list-item>
</list>
</p>
</statement>
<list list-type="bullet">
<list-item>
<p>The comparison of processes between LLFFD and FFDDE are shown in <xref ref-type="fig" rid="F2">Figure 2</xref> as follows:</p>
</list-item>
</list>
</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>Comparison of processes between LLFFD and FFDDE.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g002.tif">
<alt-text content-type="machine-generated">Flowchart illustrating the process involving Task Set &#x3C4;, which branches into LLFFD and FFDDE. LLFFD leads to FFD Decision Rule, then Load Update, and finally Unified Optimization Objective. FFDDE proceeds to Encoding and Initialization, Discrete Mutation, Crossover, FFD Repair, End Iteration, and then also to Unified Optimization Objective.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s2-2-4">
<label>2.2.4</label>
<title>Time complexity</title>
<p>The overall time complexity of the FFDDE algorithm is (G.P. (NlogN &#x2b; NlogM)), where G is the maximum number of generations, P is the population size, N is the total number of tasks, and M is the number of virtual machines. This complexity primarily stems from the algorithm&#x2019;s core iterative loop: for each individual (P) in each generation (G), the algorithm needs to perform an FFD repair operation. This operation, which includes sorting the tasks (O(NlogN)) and reassigning them to the virtual machine with the lowest load (O(NlogM)), is the most computationally expensive part of the process. Since G and P are typically predefined constants, the algorithm&#x2019;s execution efficiency is mainly influenced by the number of tasks and virtual machines.</p>
</sec>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Simulation environment</title>
<p>Conducting large-scale experiments in real-world edge computing environments remains a significant challenge. As a result, many studies rely on simulation platforms to evaluate the performance of energy-efficient scheduling algorithms. EdgeCloudSim is a leading Java-based simulation framework capable of modeling the interactions between mobile devices, edge nodes, and network topologies. This work focuses on the &#x201c;end device&#x2013;edge node&#x201d; architecture within EdgeCloudSim, leveraging a dynamic energy-aware scheduler to coordinate heterogeneous resources and jointly optimize task execution efficiency and energy consumption. The core components of this architecture are as follows:</p>
<p>Terminal device layer (Task Generator Layer).</p>
<p>Mobile devices or sensors generate constrained computational tasks characterized by parameters such as data volume, deadlines, and dependencies. These tasks are modeled using Directed Acyclic Graphs (DAGs) to capture task topologies. A local decision module estimates the energy and latency of local execution, providing a baseline for offloading decisions.</p>
<p>
<bold>Edge computing layer</bold>, which includes:<list list-type="bullet">
<list-item>
<p>Task scheduler, whose core purpose is to optimize energy consumption under load balancing.</p>
</list-item>
<list-item>
<p>Edge hosts, each edge host is physically present and generates virtual machines to complete tasks. The energy consumption of VMs is reflected through edge hosts.</p>
</list-item>
</list>
</p>
<p>Furthermore, EdgeCloudSim integrates four representative task types to reflect the computational demands across diverse edge computing scenarios:<list list-type="simple">
<list-item>
<p>AUGMENTED_REALITY: Simulates high-throughput tasks involving image processing and rendering.</p>
</list-item>
<list-item>
<p>HEALTH_APP: Represents real-time physiological signal monitoring and analysis, with high sensitivity to latency and reliability.</p>
</list-item>
<list-item>
<p>HEAVY_COMP_APP: Captures compute-intensive applications such as robotic path planning or complex model inference.</p>
</list-item>
<list-item>
<p>INFOTAINMENT_APP: Encompasses video streaming and content distribution, requiring moderate bandwidth and stability.</p>
</list-item>
<list-item>
<p>The overall system workflow is illustrated in <xref ref-type="fig" rid="F3">Figure 3</xref>.</p>
</list-item>
</list>
</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>Structure of edge computing simulation environment.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g003.tif">
<alt-text content-type="machine-generated">Diagram illustrating a layered system architecture. The top layer is the &#x22;Terminal device layer&#x22; with three robots generating tasks. The middle &#x22;Edge computing layer&#x22; contains a &#x22;Task Scheduler&#x22; which interacts with &#x22;Edge hosts&#x22; and performs &#x22;Load Balance&#x22; and &#x22;Energy consumption optimization.&#x22; Each edge host connects to multiple virtual machines (VMs), named VM 1 to VM 6, for task matching and execution.</alt-text>
</graphic>
</fig>
</sec>
<sec id="s4">
<label>4</label>
<title>Experiments</title>
<sec id="s4-1">
<label>4.1</label>
<title>Experimental setup</title>
<p>In this study, we constructed an edge computing simulation environment using the EdgeCloudSim platform to evaluate the performance differences between the proposed hybrid Differential Evolution (DE) algorithm&#x2014;incorporating traditional control heuristics&#x2014;and the baseline LLFFD heuristic scheduling strategy. The experimental environment consists of a small-scale edge computing cluster comprising four physical edge servers, each configured with three virtual machines (VMs), totaling 12 VMs in the simulation.</p>
<p>Two task groups were simulated, with the primary focus on a lightweight workload composed of 160 tasks. These tasks were evenly distributed across four representative edge computing application categories, with 40 tasks per category:</p>
<p>Augmented Reality Applications (AUGMENTED_REALITY): Represent tasks related to image processing and rendering with high throughput demands. These tasks characterize compute-intensive requirements typical of edge-based augmented reality scenarios, such as object recognition or real-time scene rendering.</p>
<p>Health Monitoring Applications (HEALTH_APP): Encompass real-time physiological monitoring and analytical tasks. These are highly sensitive to latency and require high reliability, reflecting real-time analysis and alerting services in healthcare contexts.</p>
<p>Heavy Computational Applications (HEAVY_COMP_APP): Include tasks such as robotic path planning and complex model inference, which demand significant computational resources. These tasks are typically less sensitive to short-term latency fluctuations.</p>
<p>Infotainment Applications (INFOTAINMENT_APP): Comprise video streaming and content distribution workloads with moderate bandwidth requirements and a certain level of stability. These tasks are representative of mobile video services and media content delivery at the network edge. During simulation, all tasks are injected into the system at approximately the same time (around the 200-s mark), emulating a high-concurrency task submission scenario. This experimental configuration is designed to intensify the scheduling challenge and provide a rigorous environment for performance comparison. Under such conditions, the resource management capabilities of the two scheduling approaches&#x2014;particularly in terms of task execution latency, energy consumption, and resource allocation efficiency&#x2014;can be effectively evaluated and contrasted. The specific parameters are as follows:<list list-type="order">
<list-item>
<p>Task end: To create a realistic and diverse workload, the characteristics of the 160 tasks were defined based on their application category. The computational demand and data size for each task type followed a normal distribution, with parameters detailed in <xref ref-type="table" rid="T2">Table 2</xref>.</p>
</list-item>
<list-item>
<p>Computing end: The simulated edge environment consists of 12 virtual machines with heterogeneous capabilities, as detailed in <xref ref-type="table" rid="T3">Table 3</xref>.</p>
</list-item>
</list>
</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>Task set.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="left">Application category</th>
<th align="center">Number of tasks</th>
<th align="left">Computational demand</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">AUGMENTED REALITY</td>
<td align="center">40</td>
<td align="left">2000 MI</td>
</tr>
<tr>
<td align="left">HEALTH APP</td>
<td align="center">40</td>
<td align="left">1250 MI</td>
</tr>
<tr>
<td align="left">HEAVY COMP APP</td>
<td align="center">40</td>
<td align="left">3000 MI</td>
</tr>
<tr>
<td align="left">INFOTAINMENT APP</td>
<td align="center">40</td>
<td align="left">2000 MI</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="T3" position="float">
<label>TABLE 3</label>
<caption>
<p>VM set.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th align="center">VM 1</th>
<th align="center">VM 2</th>
<th align="center">VM 3</th>
<th align="center">VM 4</th>
<th align="center">VM 5</th>
<th align="center">VM 6</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="center">1,100 (MIPS)</td>
<td align="center">2,500 (MIPS)</td>
<td align="center">1,600 (MIPS)</td>
<td align="center">1,400 (MIPS)</td>
<td align="center">2000 (MIPS)</td>
<td align="center">2000 (MIPS)</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="center">VM 7</th>
<th align="center">VM 8</th>
<th align="center">VM 9</th>
<th align="center">VM 10</th>
<th align="center">VM 11</th>
<th align="center">VM 12</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">3,000 (MIPS)</td>
<td align="center">1,000 (MIPS)</td>
<td align="center">2,900 (MIPS)</td>
<td align="center">1,000 (MIPS)</td>
<td align="center">1800 (MIPS)</td>
<td align="center">1,300 (MIPS)</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
<sec id="s4-2">
<label>4.2</label>
<title>Experimental results</title>
<p>To ensure the statistical robustness of the research results and mitigate the impact of random fluctuations, we independently repeated each set of simulation experiments for both FFDDE and GA (population size &#x3d; 50, F &#x3d; 0.5, and CR &#x3d; 0.9) strategies 30 times. Note that the results of each LLFFD run were the same.</p>
<p>As illustrated in <xref ref-type="fig" rid="F4">Figure 4</xref>, regarding the average task execution time, the traditional LLFFD algorithm recorded 5.86 s (standard deviation <inline-formula id="inf83">
<mml:math id="m89">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> 3.85s). After incorporating the Genetic Algorithm (GA), the average time decreased to 4.43 s (SD <inline-formula id="inf84">
<mml:math id="m90">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> 2.91s), and the FFDDE algorithm further reduced it to 3.95 s (SD <inline-formula id="inf85">
<mml:math id="m91">
<mml:mrow>
<mml:mo>&#xb1;</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> 1.15s). Compared to LLFFD, GA and FFDDE shortened the average task execution time by approximately 24% and 33%, respectively. Moreover, FFDDE had the smallest standard deviation, indicating a significant reduction in the volatility of its task execution times and demonstrating a clear advantage in minimizing both task waiting and execution durations.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Comparison of average running time.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g004.tif">
<alt-text content-type="machine-generated">Bar chart depicting average running times for virtual machines (VMs) labeled vm0 to vm10. The y-axis represents time in seconds. Three methods are compared: LLFFD (blue), GA (orange), and FFDDE (gray). LLFFD generally shows higher times in VMs 0 and 10, while GA has consistently mid-level times. FFDDE is mostly lowest, except in VMs 5 and 9.</alt-text>
</graphic>
</fig>
<p>As shown in <xref ref-type="fig" rid="F5">Figure 5</xref>, under the traditional LLFFD strategy, tasks were significantly concentrated on a limited subset of virtual machines, with several VMs operating at full capacity (four in the case of LLFFD, compared to only one under FFDDE and GA). In contrast, FFDDE and GA, the heuristic algorithms exhibited a more balanced load distribution across VMs. This indicates that LLFFD tends to produce load imbalance, leading to the formation of performance hotspots on specific virtual machines, which in turn results in noticeable task execution delays and increased energy consumption.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Comparison of VM loads.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g005.tif">
<alt-text content-type="machine-generated">Bar chart showing the number of VM load tasks for different VMs (vm0 to vm11) with three methods: LLFFD (blue), GA (orange), and FFDDE (gray). Each VM displays variations in task numbers, with vm0, vm2, and vm3 having higher counts, particularly for LLFFD and GA.</alt-text>
</graphic>
</fig>
<p>As illustrated in <xref ref-type="fig" rid="F6">Figure 6</xref>, the three algorithms demonstrated distinct differences in total energy consumption. The traditional LLFFD algorithm consumed the most energy, totaling 16,189 J. In comparison, the GA algorithm used 14,809 J, while the FFDDE algorithm was the most efficient, consuming only 14,429 J. This translates to energy savings of approximately 8.5% for GA and a more significant 10.9% for FFDDE, relative to the LLFFD baseline. A further analysis of per-task energy consumption highlights the superiority of FFDDE. It reduced the average energy per task from 101.2 J (for LLFFD) to 90.2 J, while also lowering the standard deviation from 79.7 to 70.7. This indicates that the FFDDE algorithm utilizes computing resources more efficiently, thereby effectively mitigating high energy consumption peaks.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Comparison of energy consumpiton.</p>
</caption>
<graphic xlink:href="frobt-12-1656516-g006.tif">
<alt-text content-type="machine-generated">Bar chart illustrating virtual machine (VM) energy consumption in joules. The x-axis lists VM IDs from vm0 to vm11, while the y-axis indicates energy in joules. Three algorithms are compared: LLFFD (blue), GA (orange), and FFDDE (gray). Most VMs have LLFFD with higher energy consumption, notably vm0 and vm11, while vm1 shows a peak in GA.</alt-text>
</graphic>
</fig>
<p>Virtual Machine Load Distribution Performance.</p>
<p>There are significant differences in the task virtual machine allocation methods among the three algorithms: The FFDDE algorithm achieves better load balancing, more even task distribution, and a more reasonable number of tasks executed by each virtual machine (ranging from 6 to 20 tasks), without obvious hotspots or resource idle situations. Correspondingly, the difference in average execution time and average energy consumption of each virtual machine has significantly reduced.</p>
</sec>
</sec>
<sec id="s5">
<label>5</label>
<title>Conclusions and future work</title>
<p>In this study, we addressed the challenge of energy-efficient task scheduling in resource-constrained edge computing environments by developing a novel hybrid algorithm (FFDDE) that combines a traditional heuristic scheduler with a Differential Evolution (DE) metaheuristic. The proposed FFDDE approach builds on the conventional FFD heuristic algorithm but augments it with evolutionary optimization to refine scheduling decisions. We implemented and evaluated FFDDE in a simulated edge environment using EdgeCloudSim, which provides realistic modeling of both computational and network constraint. Our experimental results demonstrate that the hybrid FFDDE algorithm significantly outperforms the traditional LLFFD heuristic in terms of energy efficiency, execution time, and load balancing. In particular, FFDDE achieved lower overall energy consumption and reduced the average task execution time compared to LLFFD. At the same time, it distributed workloads more evenly across available edge servers, avoiding the severe load imbalances observed under the baseline heuristic. These improvements confirm that combining heuristic rules with evolutionary search enables more effective scheduling under the strict resource limitations of edge computing. By leveraging the fast decision-making of LLFFD and the global optimization capability of DE, the hybrid FFDDE approach was able to navigate trade-offs between energy usage and performance, yielding superior outcomes in the EdgeCloudSim-based simulations. The findings underscore that a hybrid heuristic&#x2013;evolution strategy can better satisfy the competing demands of energy efficiency and latency in edge environments than heuristic methods alone.</p>
<p>Looking ahead, this research has several important directions for future work. First, we plan to deploy the FFDDE scheduler on a real-world edge computing testbed to validate its effectiveness under actual network variability and hardware heterogeneity. The research will also be extended to accommodate dynamic and unpredictable workloads, enabling the scheduler to respond in real-time to changes in task patterns and resource availability. Furthermore, to achieve more comprehensive sustainability goals, we will explore new area that consider a task&#x2019;s carbon emissions and heat dissipation requirements to enable &#x201c;greener&#x201d; computing. At the same time, through smarter scheduling strategies, we will also investigate how to extend the lifespan of edge devices and reduce e-waste, thereby implementing resource recycling and hardware lifecycle management. Finally, we can explore integrating other metaheuristic algorithms into a hybrid framework to achieve multi-objective optimization, balancing energy consumption, latency, and other quality-of-service metrics simultaneously.</p>
</sec>
</body>
<back>
<sec sec-type="data-availability" id="s6">
<title>Data availability statement</title>
<p>The raw data supporting the conclusions of this article will be made available by the authors, without undue reservation.</p>
</sec>
<sec sec-type="author-contributions" id="s7">
<title>Author contributions</title>
<p>KM: Writing &#x2013; review and editing, Writing &#x2013; original draft. LX: Writing &#x2013; review and editing, Writing &#x2013; original draft.</p>
</sec>
<sec sec-type="COI-statement" id="s9">
<title>Conflict of interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="correction-note" id="s10">
<title>Correction note</title>
<p>This article has been corrected with minor changes. These changes do not impact the scientific content of the article.</p>
</sec>
<sec sec-type="ai-statement" id="s11">
<title>Generative AI statement</title>
<p>The author(s) declare that no Generative AI was used in the creation of this manuscript.</p>
<p>Any alternative text (alt text) provided alongside figures in this article has been generated by Frontiers with the support of artificial intelligence and reasonable efforts have been made to ensure accuracy, including review by the authors wherever possible. If you identify any issues, please contact us.</p>
</sec>
<sec sec-type="disclaimer" id="s12">
<title>Publisher&#x2019;s note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations, or those of the publisher, the editors and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Abdel-Basset</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mohamed</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Abd Elkhalik</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Sharawi</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Sallam</surname>
<given-names>K. M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Task scheduling approach in cloud computing environment using hybrid differential evolution</article-title>. <source>Mathematics</source> <volume>10</volume>, <fpage>4049</fpage>. <pub-id pub-id-type="doi">10.3390/math10214049</pub-id>
</mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahmad</surname>
<given-names>M. F.</given-names>
</name>
<name>
<surname>Isa</surname>
<given-names>N. A. M.</given-names>
</name>
<name>
<surname>Lim</surname>
<given-names>W. H.</given-names>
</name>
<name>
<surname>Ang</surname>
<given-names>K. M.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Differential evolution: a recent review based on state-of-the-art works</article-title>. <source>Alexandria Eng. J.</source> <volume>61</volume>, <fpage>3831</fpage>&#x2013;<lpage>3872</lpage>. <pub-id pub-id-type="doi">10.1016/j.aej.2021.09.013</pub-id>
</mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ahmed</surname>
<given-names>O. H.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Ahmed</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Rahmani</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Hosseinzadeh</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Using differential evolution and moth&#x2013;flame optimization for scientific workflow scheduling in fog computing</article-title>. <source>Appl. Soft Comput.</source> <volume>112</volume>, <fpage>107744</fpage>. <pub-id pub-id-type="doi">10.1016/j.asoc.2021.107744</pub-id>
</mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Avan</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Azim</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mahmoud</surname>
<given-names>Q. H.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>A state-of-the-art review of task scheduling for edge computing: a delay-sensitive application perspective</article-title>. <source>Electronics</source> <volume>12</volume>, <fpage>2599</fpage>. <pub-id pub-id-type="doi">10.3390/electronics12122599</pub-id>
</mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Tang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Industrial edge intelligence: federated-meta learning framework for few-shot fault diagnosis</article-title>. <source>IEEE Trans. Netw. Sci. Eng.</source> <volume>10</volume>, <fpage>3561</fpage>&#x2013;<lpage>3573</lpage>. <pub-id pub-id-type="doi">10.1109/tnse.2023.3266942</pub-id>
</mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chhabra</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sahana</surname>
<given-names>S. K.</given-names>
</name>
<name>
<surname>Sani</surname>
<given-names>N. S.</given-names>
</name>
<name>
<surname>Mohammadzadeh</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Omar</surname>
<given-names>H. A.</given-names>
</name>
</person-group> (<year>2022</year>). <article-title>Energy-aware bag-of-tasks scheduling in the cloud computing system using hybrid oppositional differential evolution-enabled whale optimization algorithm</article-title>. <source>Energies</source> <volume>15</volume>, <fpage>4571</fpage>. <pub-id pub-id-type="doi">10.3390/en15134571</pub-id>
</mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>da Costa</surname>
<given-names>J. B. D.</given-names>
</name>
<name>
<surname>de Souza</surname>
<given-names>A. M.</given-names>
</name>
<name>
<surname>Meneguette</surname>
<given-names>R. I.</given-names>
</name>
<name>
<surname>Cerqueira</surname>
<given-names>E.</given-names>
</name>
<name>
<surname>Ros&#xe1;rio</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Sommer</surname>
<given-names>C.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>Mobility and deadline-aware task scheduling mechanism for vehicular edge computing</article-title>. <source>IEEE Trans. Intelligent Transp. Syst.</source> <volume>24</volume>, <fpage>11345</fpage>&#x2013;<lpage>11359</lpage>. <pub-id pub-id-type="doi">10.1109/tits.2023.3276823</pub-id>
</mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Juan</surname>
<given-names>A. A.</given-names>
</name>
<name>
<surname>Keenan</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Mart&#xed;</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>McGarraghy</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Panadero</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Carroll</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2023</year>). <article-title>A review of the role of heuristics in stochastic optimisation: from metaheuristics to learnheuristics</article-title>. <source>Ann. Operations Res.</source> <volume>320</volume>, <fpage>831</fpage>&#x2013;<lpage>861</lpage>. <pub-id pub-id-type="doi">10.1007/s10479-021-04142-9</pub-id>
</mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kocot</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Czarnul</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Proficz</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Energy-aware scheduling for high-performance computing systems: a survey</article-title>. <source>Energies</source> <volume>16</volume>, <fpage>890</fpage>. <pub-id pub-id-type="doi">10.3390/en16020890</pub-id>
</mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Laili</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Ren</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Dsac-configured differential evolution for cloud&#x2013;edge&#x2013;device collaborative task scheduling</article-title>. <source>IEEE Trans. Industrial Inf.</source> <volume>20</volume>, <fpage>1753</fpage>&#x2013;<lpage>1763</lpage>. <pub-id pub-id-type="doi">10.1109/tii.2023.3281661</pub-id>
</mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Llorens-Carrodeguas</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Sagkriotis</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Cervell&#xf3;-Pastor</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>P. Pezaros</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An energy-friendly scheduler for edge computing systems</article-title>. <source>Sensors</source> <volume>21</volume>, <fpage>7151</fpage>. <pub-id pub-id-type="doi">10.3390/s21217151</pub-id>
<pub-id pub-id-type="pmid">34770455</pub-id>
</mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ma</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Qin</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2025</year>). <article-title>Joint resource trading and task scheduling in edge-cloud computing networks</article-title>. <source>IEEE Trans. Netw.</source> <volume>33</volume>, <fpage>994</fpage>&#x2013;<lpage>1008</lpage>. <pub-id pub-id-type="doi">10.1109/ton.2024.3516381</pub-id>
</mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Nandhakumar</surname>
<given-names>A. R.</given-names>
</name>
<name>
<surname>Baranwal</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Choudhary</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Golec</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Gill</surname>
<given-names>S. S.</given-names>
</name>
</person-group> (<year>2024</year>). &#x201c;<article-title>Edgeaisim: a toolkit for simulation and modelling of ai models in edge computing environments</article-title>. <source>Sensors</source> <volume>31</volume> <fpage>100939</fpage>. <pub-id pub-id-type="doi">10.1016/j.measen.2023.100939</pub-id>
</mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Saidi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Bardou</surname>
<given-names>D.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Task scheduling and vm placement to resource allocation in cloud computing: challenges and opportunities</article-title>. <source>Clust. Comput.</source> <volume>26</volume>, <fpage>3069</fpage>&#x2013;<lpage>3087</lpage>. <pub-id pub-id-type="doi">10.1007/s10586-023-04098-4</pub-id>
</mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Singh</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Kumar</surname>
<given-names>R.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>Energy efficient optimization with threshold based workflow scheduling and virtual machine consolidation in cloud environment</article-title>. <source>Wirel. Personal. Commun.</source> <volume>128</volume>, <fpage>2419</fpage>&#x2013;<lpage>2440</lpage>. <pub-id pub-id-type="doi">10.1007/s11277-022-10049-w</pub-id>
</mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Song</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2023</year>). <article-title>An enhanced distributed differential evolution algorithm for portfolio optimization problems</article-title>. <source>Eng. Appl. Artif. Intell.</source> <volume>121</volume>, <fpage>106004</fpage>. <pub-id pub-id-type="doi">10.1016/j.engappai.2023.106004</pub-id>
</mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="book">
<person-group person-group-type="author">
<name>
<surname>Tan</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2023</year>). &#x201c;<article-title>Fpga-based edge computing framework: modeling of computation task scheduling</article-title>,&#x201d; in <source>International manufacturing science and engineering conference</source> (<publisher-name>American Society of Mechanical Engineers</publisher-name>), <volume>87240</volume>, <fpage>V002T07A003</fpage>. <pub-id pub-id-type="doi">10.1115/msec2023-104323</pub-id>
</mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tang</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Xie</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>T.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>R.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). <article-title>Joint service deployment and task scheduling for satellite edge computing: a two-timescale hierarchical approach</article-title>. <source>IEEE J. Sel. Areas Commun.</source> <volume>42</volume>, <fpage>1063</fpage>&#x2013;<lpage>1079</lpage>. <pub-id pub-id-type="doi">10.1109/jsac.2024.3365889</pub-id>
</mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ullah</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Alomari</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Alkhushayni</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Al-Zaleq</surname>
<given-names>D.</given-names>
</name>
<name>
<surname>Bany Taha</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Remmach</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>Improvement in task allocation for vm and reduction of makespan in iaas model for cloud computing</article-title>. <source>Clust. Comput.</source> <volume>27</volume>, <fpage>11407</fpage>&#x2013;<lpage>11426</lpage>. <pub-id pub-id-type="doi">10.1007/s10586-024-04539-8</pub-id>
</mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Pang</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A task scheduling strategy in edge-cloud collaborative scenario based on deadline</article-title>. <source>Sci. Program.</source> <volume>2020</volume>, <fpage>1</fpage>&#x2013;<lpage>9</lpage>. <pub-id pub-id-type="doi">10.1155/2020/3967847</pub-id>
</mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Du</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hung</surname>
<given-names>P. C.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>An adaptive mechanism for dynamically collaborative computing power and task scheduling in edge environment</article-title>. <source>IEEE Internet Things J.</source> <volume>10</volume>, <fpage>3118</fpage>&#x2013;<lpage>3129</lpage>. <pub-id pub-id-type="doi">10.1109/jiot.2021.3119181</pub-id>
</mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Yi</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Fan</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Jiang</surname>
<given-names>P.</given-names>
</name>
</person-group> (<year>2021</year>). &#x201c;<article-title>A task scheduling method for edge computing in intelligent building system</article-title>,&#x201d; in <conf-name>2021 IEEE 11th Annual International Conference on CYBER Technology in Automation, Control, and Intelligent Systems (CYBER)</conf-name>, <conf-loc>Jiaxing, China</conf-loc>, <conf-date>27-31 July 2021</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>247</fpage>&#x2013;<lpage>252</lpage>.</mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yousif</surname>
<given-names>S. T.</given-names>
</name>
<name>
<surname>Ismail</surname>
<given-names>F. B.</given-names>
</name>
<name>
<surname>Al-Bazi</surname>
<given-names>A.</given-names>
</name>
</person-group> (<year>2024</year>). <article-title>A hybrid neural network-based improved pso algorithm for gas turbine emissions prediction</article-title>. <source>Adv. Theory Simulations</source> <volume>7</volume>, <fpage>2301222</fpage>. <pub-id pub-id-type="doi">10.1002/adts.202301222</pub-id>
</mixed-citation>
</ref>
<ref id="B24">
<mixed-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhong</surname>
<given-names>R.</given-names>
</name>
<name>
<surname>Feng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Song</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Hu</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>P.</given-names>
</name>
<etal/>
</person-group> (<year>2024</year>). &#x201c;<article-title>Edge computing empowered digital twin: an end-to-end computing task scheduling approach</article-title>,&#x201d; in <conf-name>2024 IEEE 20th International Conference on Automation Science and Engineering (CASE)</conf-name>, <conf-loc>Bari, Italy</conf-loc>, <conf-date>28 August 2024 - 01 September 2024</conf-date> (<publisher-name>IEEE</publisher-name>), <fpage>3547</fpage>&#x2013;<lpage>3552</lpage>.</mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn id="n1" fn-type="custom" custom-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3105835/overview">Gang Liu</ext-link>, University of Electronic Science and Technology of China, China</p>
</fn>
<fn id="n2" fn-type="custom" custom-type="reviewed-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/905596/overview">Uttam U. Deshpande</ext-link>, KLS Gogte Institue of Technology, India</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3116910/overview">Nauman Qadeer</ext-link>, Federal Urdu University of Arts, Sciences and Technology Islamabad, Pakistan</p>
</fn>
</fn-group>
</back>
</article>