<?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 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" dtd-version="1.3" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Comput. Sci.</journal-id>
<journal-title-group>
<journal-title>Frontiers in Computer Science</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Comput. Sci.</abbrev-journal-title>
</journal-title-group>
<issn pub-type="epub">2624-9898</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fcomp.2026.1739223</article-id>
<article-version article-version-type="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>Dynamic request-aware fog-node deployment for latency reduction using RTKDE and EHWMA</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Babu</surname> <given-names>Anju</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Visualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/visualization/">Visualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Conceptualization" vocab-term-identifier="https://credit.niso.org/contributor-roles/conceptualization/">Conceptualization</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Validation" vocab-term-identifier="https://credit.niso.org/contributor-roles/validation/">Validation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Resources" vocab-term-identifier="https://credit.niso.org/contributor-roles/resources/">Resources</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Project administration" vocab-term-identifier="https://credit.niso.org/contributor-roles/project-administration/">Project administration</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Formal analysis" vocab-term-identifier="https://credit.niso.org/contributor-roles/formal-analysis/">Formal analysis</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Methodology" vocab-term-identifier="https://credit.niso.org/contributor-roles/methodology/">Methodology</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Data curation" vocab-term-identifier="https://credit.niso.org/contributor-roles/data-curation/">Data curation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &#x00026; 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 &#x2013; original draft</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Investigation" vocab-term-identifier="https://credit.niso.org/contributor-roles/investigation/">Investigation</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Software" vocab-term-identifier="https://credit.niso.org/contributor-roles/software/">Software</role>
<uri xlink:href="https://loop.frontiersin.org/people/3232338"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Josemin Bala</surname> <given-names>G.</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Writing &#x2013; review &amp; editing" vocab-term-identifier="https://credit.niso.org/contributor-roles/writing-review-editing/">Writing &#x2013; review &#x00026; editing</role>
<role vocab="credit" vocab-identifier="https://credit.niso.org/" vocab-term="Supervision" vocab-term-identifier="https://credit.niso.org/contributor-roles/supervision/">Supervision</role>
</contrib>
</contrib-group>
<aff id="aff1"><label>1</label><institution>Karunya Institute of Technology and Sciences</institution>, <city>Coimbatore</city>, <country country="in">India</country></aff>
<aff id="aff2"><label>2</label><institution>Sahrdaya College of Engineering and Technology</institution>, <city>Kodakara</city>, <country country="in">India</country></aff>
<author-notes>
<corresp id="c001"><label>&#x0002A;</label>Correspondence: Anju Babu, <email xlink:href="mailto:anjuedathadan@gmail.com">anjuedathadan@gmail.com</email></corresp>
</author-notes>
<pub-date publication-format="electronic" date-type="pub" iso-8601-date="2026-02-11">
<day>11</day>
<month>02</month>
<year>2026</year>
</pub-date>
<pub-date publication-format="electronic" date-type="collection">
<year>2026</year>
</pub-date>
<volume>8</volume>
<elocation-id>1739223</elocation-id>
<history>
<date date-type="received">
<day>04</day>
<month>11</month>
<year>2025</year>
</date>
<date date-type="rev-recd">
<day>12</day>
<month>01</month>
<year>2026</year>
</date>
<date date-type="accepted">
<day>16</day>
<month>01</month>
<year>2026</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2026 Babu and Josemin Bala.</copyright-statement>
<copyright-year>2026</copyright-year>
<copyright-holder>Babu and Josemin Bala</copyright-holder>
<license>
<ali:license_ref start_date="2026-02-11">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>Fog computing integrated with healthcare Internet of Things (IoT) systems enables low-latency processing for time-critical medical applications. However, dynamic request variations, limited fog resources, and node failures can significantly increase latency and reduce system reliability. This paper proposes a dynamic request-aware fog-node deployment framework to mitigate latency in healthcare fog-computing platforms. Recurrent Tuned Kernel Density Estimation (RTKDE) is used to detect dynamic request changes, and Exponentially Half-life Weighted Moving Average (EHWMA) assesses request growth trends. Based on the estimated workload, fog nodes are adaptively scaled and optimally deployed using the Secretary Halton Sequenced Bird Optimization Algorithm (SHSBOA). System reliability is enhanced through faulty fog-node detection using a Bidirectional Successive Halving and Attention Gated Recurrent Unit (BiSHAGRU) model, while redundant fog-to-cloud transmissions are reduced using a Multi-Agent Weighted Reward Reinforcement Learning (MAWRRL) approach. Simulation results using iFogSim demonstrate the effectiveness of the proposed framework. RTKDE achieves a Mean Integrated Square Error (MISE) of 0.042, EHWMA attains a Mean Square Error (MSE) of 0.006, and SHSBOA records a latency of 3,122 ms for 100 requests. BiSHAGRU achieves 99.23% fault detection accuracy, and MAWRRL attains a 93.02% success rate in redundant data handling, confirming improved latency reduction and reliability.</p></abstract>
<kwd-group>
<kwd>Bidirectional Successive Halving and Attention Gated Recurrent Unit (BiSHAGRU)</kwd>
<kwd>Exponentially Half-life Weighted Moving Average (EHWMA)</kwd>
<kwd>fog computing</kwd>
<kwd>healthcare platforms</kwd>
<kwd>latency</kwd>
<kwd>Recurrent Tuned Kernel Density Estimation (RTKDE)</kwd>
<kwd>Secretary Halton Sequenced Bird Optimization Algorithm (SHSBOA)</kwd>
</kwd-group>
<funding-group>
<funding-statement>The author(s) declared that financial support was not received for this work and/or its publication.</funding-statement>
</funding-group>
<counts>
<fig-count count="8"/>
<table-count count="4"/>
<equation-count count="35"/>
<ref-count count="23"/>
<page-count count="14"/>
<word-count count="7416"/>
</counts>
<custom-meta-group>
<custom-meta>
<meta-name>section-at-acceptance</meta-name>
<meta-value>Networks and Communications</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<label>1</label>
<title>Introduction</title>
<p>Healthcare plays a significant role in promoting individuals&#x00027; health and welfare (<xref ref-type="bibr" rid="B22">Tripathy et al., 2023</xref>). Recently, healthcare has undergone a digital transformation and provides a huge range of possibilities for improving the quality of patient care (<xref ref-type="bibr" rid="B4">Choppara and Lokesh, 2025</xref>; <xref ref-type="bibr" rid="B10">Gowda et al., 2022</xref>). Integration of Internet of Things (IoT) in the healthcare field enables tremendous benefits like real-time monitoring and effective management of patients&#x00027; health (<xref ref-type="bibr" rid="B11">Harasees et al., 2024</xref>). Moreover, the huge data generated by IoT is stored in the healthcare cloud platforms. However, the transmission time to send a huge volume of IoT data to the cloud increases, resulting in high latency in receiving the results (<xref ref-type="bibr" rid="B5">Choppara and Mangalampalli, 2024</xref>). This latency degrades the real-time performance and increases the risk to a patient&#x00027;s life. Fog computing has emerged as an effective solution for these problems by decentralizing the data processing, mitigating the latency, and bringing computations closer (<xref ref-type="bibr" rid="B20">Pati et al., 2024</xref>; <xref ref-type="bibr" rid="B7">Chuan et al., 2025</xref>). Fog computing improves the overall efficiency and makes the healthcare applications suitable for real-time operations (<xref ref-type="bibr" rid="B2">Aldossary et al., 2025</xref>). However, the decentralized fog nodes performing fog computing also face a latency issue due to the increasing number of users and emergency conditions (<xref ref-type="bibr" rid="B20">Pati et al., 2024</xref>). Therefore, ensuring low latency in the fog computing platform is pivotal for guaranteeing the patient&#x00027;s safety (<xref ref-type="bibr" rid="B17">Malik et al., 2022</xref>).</p>
<p>Several prevailing works concentrated on reducing the latency, thereby optimizing the performance of fog computing (<xref ref-type="bibr" rid="B15">Khan et al., 2025</xref>). The prevailing (<xref ref-type="bibr" rid="B4">Choppara and Lokesh, 2025</xref>) employed the Deep Deterministic Policy Gradient (DDPG) algorithm to perform the actor-critic approach for reducing the latency. Also, <xref ref-type="bibr" rid="B6">Choppara and Mangalampalli (2025)</xref> minimized the latency by allocating the tasks efficiently to the decentralized fog nodes. Moreover, <xref ref-type="bibr" rid="B14">Kait et al. (2024)</xref>, <xref ref-type="bibr" rid="B18">Mangalampalli et al. (2025)</xref> utilized the Hybrid Task Scheduling technique in Fog Computing (HTSFC) to prioritize the task, thereby mitigating the latency. However, these techniques failed to focus on the dynamic request-aware fog node deployment strategies for reducing latency in fog computing. The motivation of the proposed system is to consider the dynamical variations of the request and deploy the fog nodes to reduce the latency in fog computing systems. This significantly enhances the patient&#x00027;s safety and promotes the responsiveness of healthcare IoT applications. Therefore, this paper proposes dynamic request-aware fog node deployment based on latency reduction using RTKDE and EHWMA in healthcare fog computing platforms.</p>
<sec>
<label>1.1</label>
<title>Problem statement</title>
<p>The traditional methodologies exhibit certain limitations, which are outlined below,</p>
<list list-type="bullet">
<list-item><p>None of the prevailing works focused on deploying the fog nodes based on dynamic request-aware strategies to reduce latency in fog computing.</p></list-item>
<list-item><p>The fog nodes in traditional (<xref ref-type="bibr" rid="B16">Lim, 2022</xref>) were located far from the IoT devices due to the random deployment of the nodes in the cloud computing environment. This led to an increase in the latency and a decrease in efficiency.</p></list-item>
<list-item><p>The prevailing (<xref ref-type="bibr" rid="B9">Elhadad et al., 2022</xref>) delayed the task execution and increased the latency due to the improper or uneven load balancing while distributing the request from the devices. This further caused some nodes to be overloaded and some to remain underutilized.</p></list-item>
<list-item><p>In existing (<xref ref-type="bibr" rid="B12">Islam et al., 2025</xref>), the same data collected from multiple fog nodes were repeatedly processed in the cloud, which led to higher traffic and increased latency.</p></list-item>
<list-item><p>Rerouting the tasks from the faulty node to healthy nodes in the previous works introduced communication overhead and additional processing delays, which further reduced the reliability and degraded the performance of the fog computing systems.</p></list-item>
</list>
</sec>
<sec>
<label>1.2</label>
<title>Key contributions and novelty</title>
<p>This work presents a dynamic request-aware fog-computing framework tailored for latency-sensitive healthcare IoT applications. Unlike existing approaches that address isolated aspects such as task scheduling, load balancing, or fault detection independently, the proposed framework integrates request dynamics analysis, adaptive fog-node deployment, fault-aware orchestration, and redundancy-aware offloading into a unified end-to-end management pipeline. The key technical contributions and novelties of this work are summarized as follows:</p>
<list list-type="bullet">
<list-item><p>Dynamic request change extraction using Recurrent Tuned Kernel Density Estimation (RTKDE)- A RTKDE method is proposed to capture dynamic variations in healthcare IoT request patterns. Unlike conventional KDE and its variants, RTKDE introduces a recurrent bandwidth tuning mechanism that adapts kernel width based on short-term request volatility. This avoids repeated full density recomputation and enables faster detection of abrupt workload changes in highly dynamic fog environments.</p></list-item>
<list-item><p>Stable request growth assessment via EHWM&#x02014;To assess request growth trends more reliably, an Exponentially Half-life Weighted Moving Average (EHWMA) model is introduced. By integrating a half-life&#x02013;based smoothing factor, EHWMA overcomes the sensitivity and instability issues of conventional EWMA under bursty healthcare traffic, enabling controlled responsiveness in fog-node scaling decisions.</p></list-item>
<list-item><p>Optimal fog-node deployment and load balancing using SHSBOA&#x02014;This work proposes a Secretary Halton Sequenced Bird Optimization Algorithm (SHSBOA) for both fog-node deployment and load balancing. The novelty lies in incorporating Halton sequence&#x02013;based quasi-random sampling into the traditional Secretary Bird Optimization Algorithm, preserving variable correlation in high-dimensional deployment spaces and improving convergence stability in fog placement and workload distribution.</p></list-item>
<list-item><p>Faulty fog-node detection using BiSHAGRU&#x02014;A Bidirectional Successive Halving and Attention Gated Recurrent Unit (BiSHAGRU) model is developed for detecting faulty fog nodes. The method enhances standard BiGRU by integrating successive halving for efficient hyper parameter selection and an attention mechanism to focus on salient temporal features, thereby improving detection accuracy while reducing training overhead.</p></list-item>
<list-item><p>Redundant data handling through MAWRRL-To mitigate unnecessary fog-to-cloud transmissions, a Multi-Agent Weighted Reward Reinforcement Learning (MAWRRL) scheme is introduced. Unlike conventional multi-agent reinforcement learning approaches with shared rewards, MAWRRL assigns weighted rewards to individual agents, enabling explicit identification and suppression of redundant data during offloading.</p></list-item>
</list>
<p>The rest of the paper is structured as follows: sections 2 and 3 present the analysis of the existing works and the proposed methodology, respectively. Results and discussion are presented in section 4. Section 5 presents the conclusion and future work.</p>
</sec>
</sec>
<sec id="s2">
<label>2</label>
<title>Literature survey</title>
<p><xref ref-type="bibr" rid="B16">Lim (2022)</xref> introduced a latency-aware task scheduling for IoT applications in small-scale fog computing environments. Initially, the generated request from the IoT sensors was collected. Then, the requests were distributed among multiple edge servers to train the Artificial Neural Network (ANN). Finally, the global ANN model performed the latency-aware task scheduling effectively. Thus, the presented approach showed superior performance in reducing the energy consumption. But, the random deployment of the fog nodes further increased the latency.</p>
<p><xref ref-type="bibr" rid="B9">Elhadad et al. (2022)</xref> deployed a fog computing service in the healthcare monitoring system for managing real-time notifications. Here, the patient&#x00027;s data were collected from the sensing devices. Then, it was subjected to the fog layer for advanced analysis. Finally, in the fog layer, the contradictions were detected, and a real-time notification was sent to the doctor as well as the patient. Thus, the presented approach reduced the latency by bringing the computational sources closer. However, the improper load balancing resulted in over- or underutilization of the fog nodes.</p>
<p><xref ref-type="bibr" rid="B12">Islam et al. (2025)</xref> presented a hybrid fog-edge computing for real-time health monitoring in healthcare systems. First, the patient&#x00027;s request was collected and processed in the edge layer. Then, the abnormal data was transmitted to the fog nodes. Finally, the resource was allocated for processing the request, and the notification was sent to the user. As per the experimental analysis, the latency was reduced up to 70%. Yet, processing the same data from the multiple fog nodes repeatedly increased the latency.</p>
<p><xref ref-type="bibr" rid="B3">Anh and Nguyen (2025)</xref> suggested an effective healthcare monitoring system in cloud infrastructure. Primarily, the real-time patient&#x00027;s health data was collected. Then, the priority queue model prioritized the task and dynamically allocated the fog node. Finally, the allocated fog node performed the task effectively. Thus, the presented method improved the performance by prioritizing the tasks. Yet, the approach&#x00027;s performance was constrained due to the failure to analyze the dynamicity of the real-world health system.</p>
<p><xref ref-type="bibr" rid="B21">Su et al. (2025)</xref> demonstrated a Deep Reinforcement Learning (DRL) based latency energy minimization in a smart healthcare network. Primarily, the patient data was collected, and the processing cost was evaluated. Further, the resource allocation was predicted. Lastly, the task offloading decision was taken by DRL effectively. The presented approach mitigated the task processing cost and performed task loading better than other models. However, the latency was not mitigated due to the instability during training.</p>
<p><xref ref-type="bibr" rid="B23">Zagar et al. (2025)</xref> deployed a dynamic fog computing for Large Language Model (LLM) execution in medical applications. First, the patient data was collected. Then, the task was dynamically allocated to the fog layers. Finally, the LLM in the allocated layer performed the request and streamed the results back to the user. The presented method achieved a low time-to-first-token latency and outperformed cloud-based interference. However, the response time was very slow due to the higher processing power of LLM.</p>
<p><xref ref-type="bibr" rid="B1">Ala&#x00027;Anzy et al. (2024)</xref> illustrated a dynamic load balancing in IoT-enabled smart healthcare with fog computing. Initially, the patient data was collected. Next, the Optimized Load Balancing (OLB) algorithm distributed the incoming tasks to the available fog nodes. Finally, the fog nodes performed the task and sent notifications to the user. Thus, the presented approach reduced latency up to 28%. Yet, the performance was degraded due to failure in integrating the automated decision-making systems with the OLB in the fog nodes.</p>
<p><xref ref-type="bibr" rid="B19">Mohamed et al. (2024)</xref> developed an Adaptive Heuristic Edge-assisted Fog Computing Design (AHE-FCD) for healthcare data optimization. First, the real-time patient data was collected, and the task scheduling algorithm with the AHE-FCD framework allocated the task dynamically to the fog nodes. Finally, the fog nodes performed the task and sent complex data to the cloud. The presented approach enhanced the decision-making process while offloading the tasks. Yet, AHE-FCD failed to consider scalability changes in dynamic environments.</p>
<p><xref ref-type="bibr" rid="B13">Jasim and Al-Raweshidy (2024)</xref> introduced an adaptive Software-Defined Networking (SDN) for fog-based real-time healthcare systems. Primarily, the patient data was collected and sent to the fog nodes for processing. Then, this workload was balanced across the fog layer. Finally, the data was processed, and the data flow was dynamically managed using SDN. Thus, the presented approach reduced the latency by up to 12%. Yet, SDN faced the scalability issue when handling high-volume networks.</p>
<p><xref ref-type="bibr" rid="B8">Du et al. (2025)</xref> illustrated a scheduling of low-latency medical services in a healthcare cloud with DRL. Initially, the patient&#x00027;s data was collected. Next, the optimal transmission rate of the tasks was decided by DRL. Then, the tasks were fed into the fog layer for processing. Further, the complex tasks were all allocated to the cloud. Thus, the presented approach improved the performance by adjusting the transmission rate and computation speed. However, the latency issue was still unresolved due to the complex and dynamic environment.</p>
</sec>
<sec id="s3">
<label>3</label>
<title>Proposed methodology</title>
<p>In this section, the proposed methodology for dynamic request-aware fog node deployment-based latency reduction in healthcare platforms is presented. The entire architecture of this framework comprises the device layer, fog orchestration layer, fog layer, and cloud layer. The architecture of the proposed framework is presented in <xref ref-type="fig" rid="F1">Figure 1</xref>.</p>
<fig position="float" id="F1">
<label>Figure 1</label>
<caption><p>Architecture of the proposed framework.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0001.tif">
<alt-text content-type="machine-generated">Flowchart illustrating a multi-layered architecture for healthcare data processing. It includes a Device Layer collecting patient data, a Fog Orchestration Layer with feature extraction and load balancing (RTKDE, SHSBOA), and a Fault Fog Node Detection system using simulated data (BiSHAGRU). The Fog Layer manages resource processing, while the Cloud Layer handles off-load data (MAWRRL). Arrows indicate data and process flow between layers.</alt-text>
</graphic>
</fig>
<p>Initially, in the device layer, the registered patient sends the request <inline-formula><mml:math id="M1"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> to the fog node for processing the data (like physiological data and behavioral data) that are generated by the IoT devices. In the fog orchestration layer the request management process is handled before computing the process in the fog node. The fog orchestration layer incorporates the dynamic request change extraction, request growth assessment, scale-up fog node with optimal deployment, faulty fog node detection, and load balancing.</p>
<sec>
<label>3.1</label>
<title>Request feature extraction</title>
<p>Here, the request features like service type, request arrival time, source location, execution time, bandwidth, task, required memory, and response time requirement are extracted from <inline-formula><mml:math id="M2"><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula>. These extracted features are denoted as (<italic>k</italic>).</p>
</sec>
<sec>
<label>3.2</label>
<title>Dynamic request change extraction</title>
<p>Further, the dynamically varying request features from (<italic>k</italic>) are extracted using RTKDE to scale up the fog nodes effectively. The prevailing Kernel Density Estimation (KDE) effectively estimated the probability density function of a random variable and modeled complex distributions smoothly by placing a smoothing function. However, the dynamic request change extraction process is very slow due to the repeated computations of density. To overcome this, the Recurrent Tuning (RT) function is employed to adjust the bandwidth of the data. Primarily, the kernel (&#x003D6;) is determined using a Gaussian function to represent the local density contribution of each (<italic>k</italic>). Also, the bandwidth (<inline-formula><mml:math id="M3"><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:math></inline-formula>) is estimated for each (&#x003D6;) to control the width and spread of the kernels as shown in <xref ref-type="disp-formula" rid="EQ1">Equations 1</xref>, <xref ref-type="disp-formula" rid="EQ2">2</xref>. Here, a larger bandwidth indicates the smoother density distribution, while a smaller bandwidth represents the noisier and sharper density distribution.</p>
<disp-formula id="EQ1"><mml:math id="M4"><mml:mrow><mml:mi>&#x003D6;</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:mn>2</mml:mn><mml:mi>&#x003C0;</mml:mi></mml:mrow></mml:mfrac><mml:msup><mml:mrow><mml:mi>exp</mml:mi></mml:mrow><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mn>2</mml:mn></mml:mfrac><mml:msubsup><mml:mi>k</mml:mi><mml:mi>i</mml:mi><mml:mrow><mml:mtext>&#x000A0;</mml:mtext><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:msup><mml:mo>&#x0007C;</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>k</mml:mi></mml:mrow></mml:math><label>(1)</label></disp-formula>
<disp-formula id="EQ2"><mml:math id="M5"><mml:mrow><mml:mover accent='true'><mml:mi>b</mml:mi><mml:mo>&#x000AF;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>&#x003D6;</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>,</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mo>&#x0019B;</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math><label>(2)</label></disp-formula>
<p>Where, (<italic>k</italic><sub><italic>i</italic></sub>) indicates the point where the density is to be estimated from (<italic>k</italic>), (&#x003C0;) is a numerical value, (&#x0010B;) and (&#x0019B;) denote the width and span of the kernel, respectively. Further, the kernels are placed on (<italic>k</italic><sub><italic>i</italic></sub>) as shown in <xref ref-type="disp-formula" rid="EQ3">Equation 3</xref> to build a smooth estimate of the density.</p>
<disp-formula id="EQ3"><mml:math id="M6"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02211;</mml:mo><mml:msub><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02022;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x003D6;</mml:mi><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(3)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M7"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the normal distribution of (<italic>k</italic><sub><italic>i</italic></sub>). Then, the RT function (&#x003C8;) is employed to predefine the computations of the density.</p>
<disp-formula id="EQ4"><mml:math id="M8"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C8;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mi>j</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(4)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M9"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the bandwidth of <inline-formula><mml:math id="M10"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> at the previous time step (<italic>t</italic>&#x02212;1), <inline-formula><mml:math id="M11"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> signifies the learning rate, and (<italic>j</italic>&#x02032;) is the local data volatility of <inline-formula><mml:math id="M12"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Afterward, the probability density distribution (&#x003C4;) is estimated by summing the normal distribution of all values of (<italic>k</italic>) as shown below.</p>
<disp-formula id="EQ5"><mml:math id="M13"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C4;</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x003C8;</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02211;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003BE;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(5)</label></disp-formula>
<p>Finally, from (&#x003C4;), the dynamic request changes are extracted, and it is denoted as (<italic>I</italic>).</p>
<disp-formula id="EQ6"><mml:math id="M14"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>I</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>I</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>I</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>I</mml:mi></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mi>l</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(6)</label></disp-formula>
<p>Where, (<italic>kl</italic>) represents the total number of the extracted dynamic request changes. The pseudo-code for RKTDE is given in <xref ref-type="other" rid="algorithm_1">Algorithm 1</xref>.</p>
<statement content-type="algorithm" id="algorithm_1">
<label>Algorithm 1</label>
<p>Algorithm 1 Pseudo-code for the RKTDE approach.
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0009.tif"/>
</p>
</statement>
</sec>
<sec>
<label>3.3</label>
<title>Request growth assessment</title>
<p>In this section, the request growth rate is assessed from (<italic>k</italic>) and (<italic>I</italic>) using EHWMA to determine the nature of the request&#x00027;s workload. Let (<italic>k</italic>) and (<italic>I</italic>) be denoted by (&#x02118;). The conventional Exponentially Weighted Moving Average (EWMA) effectively calculates the average of data points, and it is computationally efficient for resource-constrained devices like fog nodes. Yet, the sensitivity of the outcome is affected due to the unstable selection of the smoothing factor. Therefore, Half-life Function (HF) is utilized to control the responsiveness and stability.</p>
<p>First, the smoothing factor is selected using HF to avoid sensitivity in the outcome.</p>
<disp-formula id="EQ7"><mml:math id="M19"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003B2;</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">exp</mml:mo></mml:mrow><mml:mrow><mml:mo class="qopname">ln</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>0</mml:mn><mml:mo>.</mml:mo><mml:mn>5</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mi>/</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msup></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(7)</label></disp-formula>
<p>Where, (&#x003B2;) is the smoothing factor selected using HF and (<italic>h</italic>) indicates the half-life of (&#x02118;). Then, the initial moving average for (&#x02118;<sub><italic>j</italic></sub>) is calculated as,</p>
<disp-formula id="EQ8"><mml:math id="M20"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x01E41;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>&#x02118;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mtext>&#x02003;</mml:mtext><mml:mo>|</mml:mo><mml:msub><mml:mrow><mml:mi>&#x02118;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02208;</mml:mo><mml:mi>&#x02118;</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(8)</label></disp-formula>
<p>Where, (&#x01E41;) indicates the initial moving average. Finally, based on (&#x01E41;), the request growth rate is estimated using the following equation,</p>
<disp-formula id="EQ9"><mml:math id="M21"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C7;</mml:mi><mml:mo>=</mml:mo><mml:mi>&#x01E41;</mml:mi><mml:mo>&#x02211;</mml:mo><mml:msub><mml:mrow><mml:mi>&#x02118;</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mi>&#x003B2;</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E41;</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>*</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>&#x003B2;</mml:mi></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(9)</label></disp-formula>
<p>Where, (&#x003C7;) indicates the request growth rate and <inline-formula><mml:math id="M22"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x01E41;</mml:mi></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the moving average of the features at the previous time step (<italic>t</italic>&#x02032;&#x02212;1). Here, the nature of the request&#x00027;s workload is determined based on the following condition rule (&#x0011F;).</p>
<disp-formula id="EQ10"><mml:math id="M23"><mml:mrow><mml:mover accent='true'><mml:mi>g</mml:mi><mml:mo>&#x002D8;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mn>1</mml:mn></mml:msub><mml:mtext>&#x02003;&#x02003;If</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C7;</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x02033;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msub><mml:mi>J</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mtext>&#x02003;&#x02003;If</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>&#x003C7;</mml:mi><mml:mo>&#x0003C;</mml:mo><mml:msup><mml:mi>T</mml:mi><mml:mo>&#x02033;</mml:mo></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow> </mml:mrow></mml:mrow></mml:math><label>(10)</label></disp-formula>
<p>Where,(<italic>J</italic><sub>1</sub>), (<italic>J</italic><sub>2</sub>) signifies the high load and low load of (&#x02118;) respectively, (<italic>T</italic>&#x02033;) is the threshold based on the usual growth rate of (&#x003C7;). If (<italic>J</italic><sub>1</sub>) is detected, then the fog node is scaled up first with optimal fog node deployment, followed by faulty node detection. If (<italic>J</italic><sub>2</sub>) is detected, the faulty fog node detection is performed directly without scaling.</p>
</sec>
<sec>
<label>3.4</label>
<title>Scale up fog node with optimal deployment</title>
<p>In this section, the fog nodes are scaled up first to process (<italic>J</italic><sub>1</sub>) without a latency issue. The scaled-up fog nodes are denoted as <inline-formula><mml:math id="M24"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Next, <inline-formula><mml:math id="M25"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is optimally deployed in the fog computing environment using SHSBOA. The traditional Secretary Bird Optimization Algorithm (SBOA) is a meta-heuristic algorithm that simulates the hunting and evasion strategies of the secretary bird to solve optimization problems. Also, SBOA effectively explores the search space by balancing both exploration and exploitation for obtaining the best solutions. On the contrary, SBOA updated the solution space based on the independent random number in each dimension, which broke the structure in the problems by including the correlated variables. To resolve this, the Halton Sequence (HS) function is employed to cover the distributed points across the population.</p>
<p>Primarily, the population members are initialized in the search zone. Here, <inline-formula><mml:math id="M26"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>J</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is considered as the secretary bird (&#x02111;) population. The initial position of the (<italic>l</italic><sup><italic>th</italic></sup>) secretary bird in the (<italic>z</italic><sup><italic>th</italic></sup>) dimension is expressed as,</p>
<disp-formula id="EQ11"><mml:math id="M27"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover><mml:mo>&#x000D7;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mo>&#x0019B;</mml:mo></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mo>&#x0019B;</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(11)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M28"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is the random number between (0 and 1), and <inline-formula><mml:math id="M29"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>u</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and (&#x0019B;) denote the lower and upper bound variables, respectively. Next, the fitness is determined by considering the minimum end-to-end delay <inline-formula><mml:math id="M30"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
<disp-formula id="EQ12"><mml:math id="M31"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C2;</mml:mi><mml:mo>=</mml:mo><mml:mo class="qopname">min</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>d</mml:mi></mml:mrow><mml:mo class="qopname">&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(12)</label></disp-formula>
<p>Where, (&#x003C2;) denotes the fitness of the population. Based on (&#x003C2;), the position of the population is updated in the upcoming sections.</p>
<sec>
<label>3.4.1</label>
<title>Seeking for prey (exploration)</title>
<p>Primarily, the secretary bird searches for the prey at a safer distance, and the position is updated based on the difference between two randomly selected individuals in the population. Here, the HS function (&#x02135;) is employed to cover the distributed points across the population.</p>
<disp-formula id="EQ13"><mml:math id="M32"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x02111;</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>&#x02111;</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mi>&#x02135;</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(13)</label></disp-formula>
<disp-formula id="EQ14"><mml:math id="M33"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x02135;</mml:mi><mml:mo>=</mml:mo><mml:mo>&#x02211;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>a</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mstyle displaystyle="true"><mml:msubsup><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>q</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>q</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:msubsup></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(14)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M34"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the updated position of the members, (&#x02111;<sub>1</sub>) and (&#x02111;<sub>2</sub>) are the two individuals randomly selected from the population, <inline-formula><mml:math id="M35"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x02135;</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is the random number generated by the HS function, (&#x000E2;) indicates the coefficient of <inline-formula><mml:math id="M36"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>&#x0007E;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> with base (<italic>b</italic>), and (<italic>q</italic>) denotes the prime number.</p>
</sec>
<sec>
<label>3.4.2</label>
<title>Depleting the prey&#x00027;s energy</title>
<p>After discovering the prey, the secretary bird employs its agile footwork and maneuvers to confuse and deplete the energy of the prey. Here, Brownian motion <inline-formula><mml:math id="M37"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is applied to model the random motion of the secretary birds.</p>
<disp-formula id="EQ15"><mml:math id="M38"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mtext>rand</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(15)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M39"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mtext>rand</mml:mtext><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> signifies the randomly generated array of dimension <inline-formula><mml:math id="M40"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x000D7;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec>
<label>3.4.3</label>
<title>Attacking the prey</title>
<p>After depleting the energy of the prey constantly, the secretary bird starts to attack the prey using various attack strategies, like continuous steps, occasional long jumps in a short time, etc. The final position is updated based on the following condition,</p>
<disp-formula id="EQ16"><mml:math id="M41"><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mi>&#x02111;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mi>&#x02111;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mtext>&#x02003;&#x02003;If</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mi>&#x003C2;</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>&#x0003E;</mml:mo><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>&#x02111;</mml:mi><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mtext>&#x02003;&#x02003;else</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow> </mml:mrow></mml:mrow></mml:math><label>(16)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M42"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the fitness of <inline-formula><mml:math id="M43"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>.</p>
</sec>
<sec>
<label>3.4.4</label>
<title>Evasion strategy (exploitation phase)</title>
<p>Here, the position is updated by mimicking the escaping strategy of the secretary birds. While facing enemies, these birds camouflage themselves to avoid danger. The updated position <inline-formula><mml:math id="M44"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is defined by,</p>
<disp-formula id="EQ17"><mml:math id="M45"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msubsup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup><mml:mo>&#x0002B;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>2</mml:mn><mml:mo>&#x000D7;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x02192;</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02022;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02033;</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:msubsup><mml:mrow><mml:mi>&#x02111;</mml:mi></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow><mml:mrow><mml:mi>z</mml:mi></mml:mrow></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(17)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M46"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003C4;</mml:mi></mml:mrow><mml:mrow><mml:mo class="qopname">max</mml:mo></mml:mrow><mml:mrow><mml:mo>&#x02033;</mml:mo></mml:mrow></mml:msubsup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the maximum number of iterations. If this position improved the fitness value over the previous one, then it is updated as follows in <xref ref-type="disp-formula" rid="EQ18">Equation 18</xref>,</p>
<disp-formula id="EQ18"><mml:math id="M47"><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mi>&#x02111;</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mtable columnalign='left'><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mi>&#x02111;</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mtext>&#x02003;&#x02003;If</mml:mtext><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mover accent='true'><mml:mi>&#x003C2;</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo>&#x0003E;</mml:mo><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr columnalign='left'><mml:mtd columnalign='left'><mml:mrow><mml:msubsup><mml:mi>&#x02111;</mml:mi><mml:mi>l</mml:mi><mml:mi>z</mml:mi></mml:msubsup><mml:mtext>&#x02003;&#x02003;else</mml:mtext></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow> </mml:mrow></mml:mrow></mml:math><label>(18)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M48"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> signifies the fitness value of the updated position. The pseudo-code for SHSBOA is explained in <xref ref-type="other" rid="algorithm_2">Algorithm 2</xref>. Finally, after convergence, the optimal places for deploying the scaled-up nodes are obtained, and it is denoted as (<italic>Y</italic>).</p>
<statement content-type="algorithm" id="algorithm_2">
<label>Algorithm 2</label>
<p>Pseudo-code for the SHSBOA approach.
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0010.tif"/>
</p>
</statement>
</sec>
</sec>
<sec>
<label>3.5</label>
<title>Faulty fog node detection</title>
<p>The faults in the fog nodes are detected under both low-load and high-load conditions to reduce communication overhead and minimize processing delays. Here, iFogsim data is simulated, and the simulated data features are extracted. Lastly, the fault fog node is detected using BiSHAGRU.</p>
<p>Primarily, the iFogsim input values (<italic>q</italic><sub>iFog</sub>) are generated using the iFogsim for detecting the fault fog nodes in the fog computing environment. Then, the significant iFogsim features like task execution time, response time, response time, response time, task migration count, and task waiting time in the queue are extracted from (<italic>q</italic><sub>iFog</sub>). These extracted features are denoted by (<italic>G</italic>).</p>
<disp-formula id="EQ19"><mml:math id="M59"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>G</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>G</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>G</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>G</mml:mi></mml:mrow><mml:mrow><mml:mi>x</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(19)</label></disp-formula>
<p>Where, (<italic>xy</italic>) indicates the total number of features. Here, based on (<italic>G</italic>), the faulty fog nodes are detected using BiSHAGRU to avoid rerouting of the request. The conventional Bidirectional Gated Recurrent Unit (BiGRU) effectively processes the data in both directions and determines the dependency between the process before and after each time step. However, higher losses occur due to the improper tuning of the hyperparameter. Therefore, the Successive Halving (SH) function is utilized to find the best hyperparameter configuration of the model, thereby tuning the hyperparameter efficiently. In addition, the computational burden increased as the BiGRU captures all dependencies for long-range context. To avoid this, the Attention Layer (AL) is employed to focus on the most relevant time steps in the sequences, thereby reducing the complexity. The architecture of the proposed BiSHAGRU is shown in <xref ref-type="fig" rid="F2">Figure 2</xref>.</p>
<fig position="float" id="F2">
<label>Figure 2</label>
<caption><p>Architecture of the proposed BiSHAGRU classifier.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0002.tif">
<alt-text content-type="machine-generated">Diagram illustrating a neural network architecture involving Bidirectional GRU cells. It features an Input Layer with inputs (G1, G2, Gr), processed through SH Function (&#x003BB;), passing into Forward and Backward GRUs. The GRUs are arranged symmetrically, leading to an Attention Block and an Output Layer (M).</alt-text>
</graphic>
</fig>
<p>Initially, the hyperparameters of the network are tuned using the SH function (&#x003C7;), and it is given as,</p>
<disp-formula id="EQ20"><mml:math id="M60"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C7;</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>g</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>,</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mo>&#x000D7;</mml:mo><mml:msup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>g</mml:mi><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow></mml:msup></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(20)</label></disp-formula>
<p>Where, (<italic>g</italic>) is the hyperparameter of the network, and (&#x003B5;) and <inline-formula><mml:math id="M61"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicate the reduction factor and maximum epochs of the network, respectively.</p>
<sec>
<label>3.5.1</label>
<title>Forward layer</title>
<p>Here, the forward layer <inline-formula><mml:math id="M62"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> process (<italic>G</italic>) from beginning to the end to capture the context of the past elements. Also, <inline-formula><mml:math id="M63"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> incorporates an update gate and a reset gate. First, the reset gate <inline-formula><mml:math id="M64"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> receives two inputs, namely (<italic>G</italic>) and the previous hidden state <inline-formula><mml:math id="M65"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Here, AL (&#x0039E;) is employed to focus on the most relevant time steps in the sequence of the hidden state.</p>
<disp-formula id="EQ21"><mml:math id="M66"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mo>&#x0039E;</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mo class="qopname">exp</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mi>&#x003C5;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>&#x02211;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mo>&#x000AF;</mml:mo></mml:mover><mml:mo>&#x02022;</mml:mo><mml:msup><mml:mrow><mml:mo class="qopname">exp</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mi>&#x003C5;</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(21)</label></disp-formula>
<disp-formula id="EQ22"><mml:math id="M67"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover class="stackrel"><mml:mrow><mml:mi>R</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mo>=</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mtext>res</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x0039E;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mtext>res</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(22)</label></disp-formula>
<disp-formula id="EQ23"><mml:math id="M68"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>&#x003C3;</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mi>G</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(23)</label></disp-formula>
<p>Where, (&#x00113;) indicates the aggregate information from all parts of the sequence of (<italic>G</italic>), (&#x003C3;) denotes the sigmoid activation function, and (<italic>w</italic><sub>res</sub>) and (<italic>b</italic><sub>res</sub>) indicate the weight and bias of the reset gate belonging to (&#x003C7;). Next, the update gate <inline-formula><mml:math id="M69"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is determined as,</p>
<disp-formula id="EQ24"><mml:math id="M70"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x0039E;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mi>u</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(24)</label></disp-formula>
<p>Where, (<italic>w</italic><sub><italic>up</italic></sub>) and (<italic>b</italic><sub><italic>up</italic></sub>) denote the weight and bias of the update gate belonging to (&#x003C7;). Further, the candidate hidden state (&#x00109;) of <inline-formula><mml:math id="M71"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is defined by,</p>
<disp-formula id="EQ25"><mml:math id="M72"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo class="qopname">tan</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mrow><mml:mtext>can</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>&#x02297;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>G</mml:mi><mml:mo>,</mml:mo><mml:mo>&#x0039E;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo class="qopname">^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mtext>can</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(25)</label></disp-formula>
<disp-formula id="EQ26"><mml:math id="M73"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mo class="qopname">tan</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msup><mml:mo>-</mml:mo><mml:msup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mi>G</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:msup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mi>G</mml:mi></mml:mrow></mml:msup><mml:mo>&#x0002B;</mml:mo><mml:msup><mml:mrow><mml:mi>e</mml:mi></mml:mrow><mml:mrow><mml:mo>-</mml:mo><mml:mi>G</mml:mi></mml:mrow></mml:msup></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(26)</label></disp-formula>
<p>Where, (tan) represents the tangent activation function, and (<italic>w</italic><sub>can</sub>) and (<italic>b</italic><sub>can</sub>) represent the weight and bias of the candidate hidden state associated with (&#x003C7;). Moreover, the forward hidden state is computed as,</p>
<disp-formula id="EQ27"><mml:math id="M74"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x0039E;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>&#x02297;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>c</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(27)</label></disp-formula>
<p>Where, (&#x01E23;<sub><italic>for</italic></sub>) indicates the forward hidden state of the forward layer.</p>
</sec>
<sec>
<label>3.5.2</label>
<title>Backward layer</title>
<p>Next, the backward layer <inline-formula><mml:math id="M75"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> processes (<italic>G</italic>) from the end to the start to read the sequence in reverse order. <inline-formula><mml:math id="M76"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> performs operations similar to <inline-formula><mml:math id="M77"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> in the reverse order, and the backward hidden state (&#x01E23;<sub>bk</sub>) in <inline-formula><mml:math id="M78"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is determined as,</p>
<disp-formula id="EQ28"><mml:math id="M79"><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>h</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mtext>bk</mml:mtext></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>U</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mtext>bk</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x0039E;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msubsup><mml:mover accent='true'><mml:mi>h</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo>&#x02212;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>U</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mrow><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub><mml:mo>&#x02297;</mml:mo><mml:msub><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mrow><mml:mi>b</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math><label>(28)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M80"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>U</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>bk</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the update gate in <inline-formula><mml:math id="M81"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and (&#x00109;<sub><italic>bk</italic></sub>) denotes the candidate hidden state of <inline-formula><mml:math id="M82"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>B</mml:mi></mml:mrow><mml:mo>&#x00304;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Finally, both (&#x01E23;<sub><italic>for</italic></sub>) and (&#x01E23;<sub>bk</sub>) are concatenated to obtain the detected faulty fog node (<italic>Z</italic>).</p>
<disp-formula id="EQ29"><mml:math id="M83"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>Z</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>for</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>f</mml:mi><mml:mi>o</mml:mi><mml:mi>r</mml:mi></mml:mrow></mml:msub><mml:mo>&#x0002B;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>w</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>bk</mml:mtext></mml:mrow></mml:msub><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>h</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>bk</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mover class="stackrel"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(29)</label></disp-formula>
<p>Where, (&#x01E87;<sub>for</sub>) and (&#x01E87;<sub>bk</sub>) indicate the weights of (&#x01E23;<sub><italic>for</italic></sub>) and (&#x01E23;<sub>bk</sub>), respectively, and <inline-formula><mml:math id="M84"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>b</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> signify the bias of both (&#x01E23;<sub><italic>for</italic></sub>) and (&#x01E23;<sub>bk</sub>), respectively. Thus, BiSHAGRU effectively detected the faulty fog nodes. Thus, the faulty fog nodes are ignored, and the non-faulty fog node <inline-formula><mml:math id="M85"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is subjected to the load balancing process.</p>
</sec>
</sec>
<sec>
<label>3.6</label>
<title>Load balancing</title>
<p>In this phase, based on the features of <inline-formula><mml:math id="M86"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and (<italic>k</italic>), the requests are evenly distributed to the fog nodes using SHSBOA. Let <inline-formula><mml:math id="M87"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>Z</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and (<italic>k</italic>) be denoted as (&#x0210F;). Here, (&#x0210F;) is considered as the secretary bird population. After initialization, the fitness is determined by considering maximum throughput (<italic>y</italic><sub><italic>ab</italic></sub>), minimum waiting time (<italic>y</italic><sub><italic>bc</italic></sub>), minimum response time (<italic>y</italic><sub><italic>cd</italic></sub>), and minimum latency (<italic>y</italic><sub><italic>da</italic></sub>).</p>
<disp-formula id="EQ30"><mml:math id="M88"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo class="qopname">max</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>a</mml:mi><mml:mi>b</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x0002B;</mml:mo><mml:mo class="qopname">min</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>d</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mi>y</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>a</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(30)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M89"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> denotes the fitness of the population. Based on <inline-formula><mml:math id="M90"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003C2;</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>, the position of the population is updated in the upcoming sections of SHSBOA, and the detailed explanation of SHSBOA is discussed in section 3.4.</p>
<p>Afterward, the requests are processed by the fog nodes in the fog layer without any latency issues. The fog layer acts as an intermediary between the edge devices and the cloud, thereby balancing computation, storage, and networking needs.</p>
<p>Further, the fog nodes offloaded the complex request or the request processed details to the cloud layer. However, the repeated data <inline-formula><mml:math id="M91"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>rep</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> during offloading increases the network traffic and congestion. Hence, these <inline-formula><mml:math id="M92"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>rep</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> are handled to avoid redundant data transmission, which is explained in the upcoming section.</p>
</sec>
<sec>
<label>3.7</label>
<title>Repeated data handling during offload</title>
<p>Repeated data <inline-formula><mml:math id="M93"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>rep</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is handled by utilizing MAWRRL in the fog nodes to avoid network traffic and congestion. The traditional Multi-Agent Reinforcement Learning (MARL) effectively reduced the need for central control and improved the scalability in large systems, as the agents can learn independently. On the contrary, the agent that contributed to the outcome was not identified when the multiple agents shared a common reward. To avoid this, the Weighted Reward Function (WRF) is employed to differentiate the actions of each agent by assigning different weights to individual rewards.</p>
<p>Primarily, the agents (<italic>A</italic>) are initialized in the environment (&#x00114;) as follows,</p>
<disp-formula id="EQ31"><mml:math id="M94"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mi>A</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>A</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>A</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>A</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(31)</label></disp-formula>
<p>Where, (<italic>jj</italic>) indicates the total number of agents in the environment. Further, the state (&#x01E61;) and rewards <inline-formula><mml:math id="M95"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> are also initialized as follows,</p>
<disp-formula id="EQ32"><mml:math id="M96"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:msup><mml:mrow><mml:mtext>&#x003A8;</mml:mtext></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup><mml:mo>&#x02192;</mml:mo><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mi>&#x01E61;</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mi>s</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>s</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>s</mml:mi></mml:mrow><mml:mrow><mml:mn>3</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mi>s</mml:mi></mml:mrow><mml:mrow><mml:mi>o</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msub><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:mo>.</mml:mo><mml:msub><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>&#x02208;</mml:mo><mml:mi>A</mml:mi></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(32)</label></disp-formula>
<p>Where, (&#x003A8;&#x02032;) signifies the feature representation of the (&#x01E61;) and <inline-formula><mml:math id="M97"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>. Then, the policy <inline-formula><mml:math id="M98"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is determined for the agents to maximize the long-term reward. Further, based on <inline-formula><mml:math id="M99"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M100"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mtext>rep</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula>, the agents choose an action <inline-formula><mml:math id="M101"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> to execute in the environment.</p>
<disp-formula id="EQ33"><mml:math id="M102"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover><mml:mo>&#x000D7;</mml:mo><mml:mo>&#x02211;</mml:mo><mml:mi>A</mml:mi><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mo>&#x02022;</mml:mo><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>r</mml:mi><mml:mi>e</mml:mi><mml:mi>p</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(33)</label></disp-formula>
<p>Finally, the agents receive multiple rewards for <inline-formula><mml:math id="M103"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> carried out in the environment. Here, WRF <inline-formula><mml:math id="M104"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> is employed to assign different weights to individual rewards.</p>
<disp-formula id="EQ34"><mml:math id="M105"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>&#x02022;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>E</mml:mi></mml:mrow><mml:mo>&#x002D8;</mml:mo></mml:mover><mml:mo>&#x000D7;</mml:mo><mml:mstyle displaystyle="true"><mml:munderover accentunder="false" accent="false"><mml:mrow><mml:mo>&#x02211;</mml:mo></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mi>j</mml:mi><mml:mi>j</mml:mi></mml:mrow></mml:munderover></mml:mstyle><mml:mi>A</mml:mi><mml:mo>&#x000B7;</mml:mo><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(34)</label></disp-formula>
<disp-formula id="EQ35"><mml:math id="M106"><mml:mtable class="eqnarray" columnalign="left"><mml:mtr><mml:mtd><mml:mover accent="true"><mml:mrow><mml:mi>&#x003B7;</mml:mi></mml:mrow><mml:mo>.</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02211;</mml:mo><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mo>&#x000B7;</mml:mo><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>A</mml:mi></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math><label>(35)</label></disp-formula>
<p>Where, <inline-formula><mml:math id="M107"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mo>&#x003BB;</mml:mo></mml:mrow><mml:mo>&#x000A8;</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> specifies the multiple rewards given to the agents for <inline-formula><mml:math id="M108"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003B4;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M109"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>&#x003C8;</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02322;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> indicates the weight assigned to <inline-formula><mml:math id="M110"><mml:mrow><mml:mo stretchy="true">(</mml:mo><mml:mrow><mml:mover class="stackrel"><mml:mrow><mml:mi>r</mml:mi></mml:mrow><mml:mrow><mml:mrow><mml:mo>&#x02194;</mml:mo></mml:mrow></mml:mrow></mml:mover></mml:mrow><mml:mo stretchy="true">)</mml:mo></mml:mrow></mml:math></inline-formula> of the (<italic>ih</italic><sup><italic>th</italic></sup>) agent. This process is repeated iteratively. Finally, after convergence, the agents share their rewards with each other. During this sharing process, if multiple agents have obtained the same reward, only a single instance of that reward is offloaded to the cloud. Conversely, any unique reward obtained by an agent is individually offloaded to the cloud. This approach ensures that redundant data is minimized while all distinct rewards are properly transmitted. Implementation and training parameters are given in <xref ref-type="table" rid="T1">Table 1</xref>. Thus, the proposed framework processed the enormous requests of the healthcare IoT devices in the fog computing layer by considering the dynamic request-aware fog node deployment and reducing the latency efficiently.</p>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Implementation and training parameters.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th valign="top" align="left"><bold>Component</bold></th>
<th valign="top" align="left"><bold>Parameter</bold></th>
<th valign="top" align="center"><bold>Value</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">RTKDE</td>
<td valign="top" align="left">Kernel type</td>
<td valign="top" align="center">Gaussian</td>
</tr>
<tr>
<td valign="top" align="left">RTKDE</td>
<td valign="top" align="left">Initial bandwidth</td>
<td valign="top" align="center">Data-dependent</td>
</tr>
<tr>
<td valign="top" align="left">RTKDE</td>
<td valign="top" align="left">Learning rate</td>
<td valign="top" align="center">0.01</td>
</tr>
<tr>
<td valign="top" align="left">EHWMA</td>
<td valign="top" align="left">Half-life</td>
<td valign="top" align="center">5</td>
</tr>
<tr>
<td valign="top" align="left">SHSBOA</td>
<td valign="top" align="left">Population size</td>
<td valign="top" align="center">30</td>
</tr>
<tr>
<td valign="top" align="left">SHSBOA</td>
<td valign="top" align="left">Maximum iterations</td>
<td valign="top" align="center">100</td>
</tr>
<tr>
<td valign="top" align="left">BiSHAGRU</td>
<td valign="top" align="left">GRU layers</td>
<td valign="top" align="center">2</td>
</tr>
<tr>
<td valign="top" align="left">BiSHAGRU</td>
<td valign="top" align="left">Hidden units</td>
<td valign="top" align="center">64</td>
</tr>
<tr>
<td valign="top" align="left">BiSHAGRU</td>
<td valign="top" align="left">Attention size</td>
<td valign="top" align="center">32</td>
</tr>
<tr>
<td valign="top" align="left">BiSHAGRU</td>
<td valign="top" align="left">Optimizer</td>
<td valign="top" align="center">Adam</td>
</tr>
<tr>
<td valign="top" align="left">BiSHAGRU</td>
<td valign="top" align="left">Learning rate</td>
<td valign="top" align="center">0.001</td>
</tr>
<tr>
<td valign="top" align="left">MAWRRL</td>
<td valign="top" align="left">Learning algorithm</td>
<td valign="top" align="center">Independent Q-learning</td>
</tr>
<tr>
<td valign="top" align="left">MAWRRL</td>
<td valign="top" align="left">Discount factor (&#x003B3;)</td>
<td valign="top" align="center">0.9</td>
</tr>
<tr>
<td valign="top" align="left">MAWRRL</td>
<td valign="top" align="left">Exploration strategy</td>
<td valign="top" align="center">&#x003B5;-greedy</td>
</tr></tbody>
</table>
</table-wrap>
</sec>
</sec>
<sec id="s4">
<label>4</label>
<title>Results and discussion</title>
<p>In this section, the performance of the proposed work in dynamic request-aware fog-node deployment-based latency reduction in healthcare fog-computing platforms is demonstrated by comparing it with several traditional works. The implementation of the proposed work is carried out on Java platform .</p>
<sec>
<label>4.1</label>
<title>Dataset description</title>
<p>The values are generated using the iFogsim simulator for fault detection in fog nodes. During the simulation, faults are injected into the values to create the fault scenarios, resulting in approximately 23,765 data samples. Among these, 80% samples (19,012) are used for training, and the remaining 20% (4,753) are used for testing.</p>
</sec>
<sec>
<label>4.2</label>
<title>Performance analysis</title>
<p>In this section, the performance of the proposed work is validated regarding various performance metrics. The performance analysis of dynamic request change extraction, request growth rate analysis, load balancing, repeated data handling during offloading, fault node detection is explained in the subsequent subsections.</p>
<sec>
<label>4.2.1</label>
<title>Dynamic request change extraction analysis</title>
<p><xref ref-type="table" rid="T2">Table 2</xref> and <xref ref-type="fig" rid="F3">Figure 3</xref> depict the performance evaluation of the proposed RTKDE and the existing approaches in terms of Mean Integrated Square Error (MISE), Integrated Absolute Error (IAE), and Total Variation Distance (TVD). The proposed RTKDE achieved superior outcomes, demonstrating lower MISE, IAE, and TVD of 0.042, 0.255, and 0.987, respectively.</p>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p>Quantitative assessment-based performance evaluation of the proposed RTKDE and the existing approaches.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th valign="top" align="left"><bold>Techniques</bold></th>
<th valign="top" align="center"><bold>MISE</bold></th>
<th valign="top" align="center"><bold>IAE</bold></th>
<th valign="top" align="center"><bold>TVD</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Proposed RTKDE</td>
<td valign="top" align="center">0.042</td>
<td valign="top" align="center">0.255</td>
<td valign="top" align="center">0.987</td>
</tr>
<tr>
<td valign="top" align="left">KDE</td>
<td valign="top" align="center">0.086</td>
<td valign="top" align="center">0.762</td>
<td valign="top" align="center">2.365</td>
</tr>
<tr>
<td valign="top" align="left">GKDE</td>
<td valign="top" align="center">0.165</td>
<td valign="top" align="center">1.104</td>
<td valign="top" align="center">4.651</td>
</tr>
<tr>
<td valign="top" align="left">PE</td>
<td valign="top" align="center">1.204</td>
<td valign="top" align="center">1.674</td>
<td valign="top" align="center">6.213</td>
</tr>
<tr>
<td valign="top" align="left">MKDE</td>
<td valign="top" align="center">1.584</td>
<td valign="top" align="center">2.233</td>
<td valign="top" align="center">9.687</td>
</tr></tbody>
</table>
</table-wrap>
<fig position="float" id="F3">
<label>Figure 3</label>
<caption><p>Graphical representation of the proposed RTKDE and existing methods in terms of TVD.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0003.tif">
<alt-text content-type="machine-generated">Bar chart comparing total variation distance (TVD) for different density estimation methods. MKDE shows the highest TVD near 10, followed by PE, GKDE, KDE, and Proposed RTKDE, which has the lowest. Methods are displayed on the x-axis.</alt-text>
</graphic>
</fig>
<p>This improved performance was achieved due to the utilization of the RT function within the approach. The prevailing methods like KDE, Gaussian Kernel Density Estimation (GKDE), Parzen Estimator (PE), and Multi-variate Kernel Density Estimation (MKDE) attained an average MISE, IAE, and TVD values of 0.760, 1,443, and 5.729, respectively. Thus, RTKDE outperformed other approaches in dynamic request change extraction.</p>
</sec>
<sec>
<label>4.2.2</label>
<title>Request growth rate analysis</title>
<p>The performance evaluation of the proposed EHWMA and the prevailing methods concerning Mean Square Error (MSE), Root Mean Square Error (RMSE), and Mean Absolute Error (MAE) is displayed in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig position="float" id="F4">
<label>Figure 4</label>
<caption><p>Performance evaluation for the request growth assessment in terms of MSE, RMSE, and MAE.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0004.tif">
<alt-text content-type="machine-generated">Bar chart showing error values (MSE, RMSE, MAE) for different methods in request growth assessment. Proposed EHWMA has the lowest errors, while SMA shows the highest across all metrics.</alt-text>
</graphic>
</fig>
<p>The proposed EHWMA utilized HF, thereby attaining lower MSE (0.006), RMSE (0.079), and MAE (0.063) values. In contrast, the prevailing methods like EWMA, Triple Exponential Smoothing (TES), Double Exponential Smoothing (DES), and Simple Moving Average (SMA) achieved an average MSE, RMSE, and MAE of 1.108, 0.949, and 1.694, respectively. Thus, the proposed EHWMA assessed the request growth rate accurately.</p>
</sec>
<sec>
<label>4.2.3</label>
<title>Load balancing analysis</title>
<p><xref ref-type="table" rid="T3">Table 3</xref> and <xref ref-type="fig" rid="F5">Figure 5</xref> display the performance analysis of the proposed SHSBOA and traditional approaches in load balancing based on the throughput, Average Response Time (ART), Average Waiting Time (AWT), and latency.</p>
<table-wrap position="float" id="T3">
<label>Table 3</label>
<caption><p>Numerical assessment-based performance evaluation of the proposed SHSBOA and existing approaches in load balancing.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th valign="top" align="left" rowspan="2"><bold>Techniques</bold></th>
<th valign="top" align="left" rowspan="2"><bold>Metrics</bold></th>
<th valign="top" align="center" colspan="5"><bold>No of requests</bold></th>
</tr>
<tr>
<th valign="top" align="center"><bold>100</bold></th>
<th valign="top" align="center"><bold>200</bold></th>
<th valign="top" align="center"><bold>300</bold></th>
<th valign="top" align="center"><bold>400</bold></th>
<th valign="top" align="center"><bold>500</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left" rowspan="4">Proposed SHSBOA</td>
<td valign="top" align="left">Throughput</td>
<td valign="top" align="center">275</td>
<td valign="top" align="center">364</td>
<td valign="top" align="center">428</td>
<td valign="top" align="center">587</td>
<td valign="top" align="center">774</td>
</tr>
 <tr>
<td valign="top" align="left">Average response time</td>
<td valign="top" align="center">1,123</td>
<td valign="top" align="center">1,302</td>
<td valign="top" align="center">1,476</td>
<td valign="top" align="center">1,678</td>
<td valign="top" align="center">1,745</td>
</tr>
 <tr>
<td valign="top" align="left">Average waiting time</td>
<td valign="top" align="center">925</td>
<td valign="top" align="center">1,089</td>
<td valign="top" align="center">1,364</td>
<td valign="top" align="center">1,852</td>
<td valign="top" align="center">2,014</td>
</tr>
 <tr>
<td valign="top" align="left">Latency</td>
<td valign="top" align="center">3,122</td>
<td valign="top" align="center">5,698</td>
<td valign="top" align="center">7,143</td>
<td valign="top" align="center">9,968</td>
<td valign="top" align="center">10,662</td>
</tr>
<tr>
<td valign="top" align="left" rowspan="4">SBOA</td>
<td valign="top" align="left">Throughput</td>
<td valign="top" align="center">204</td>
<td valign="top" align="center">322</td>
<td valign="top" align="center">387</td>
<td valign="top" align="center">465</td>
<td valign="top" align="center">622</td>
</tr>
 <tr>
<td valign="top" align="left">Average response time</td>
<td valign="top" align="center">1,395</td>
<td valign="top" align="center">1,566</td>
<td valign="top" align="center">1,674</td>
<td valign="top" align="center">1,784</td>
<td valign="top" align="center">1,987</td>
</tr>
 <tr>
<td valign="top" align="left">Average waiting time</td>
<td valign="top" align="center">1,165</td>
<td valign="top" align="center">1,257</td>
<td valign="top" align="center">1,547</td>
<td valign="top" align="center">1,968</td>
<td valign="top" align="center">2,246</td>
</tr>
 <tr>
<td valign="top" align="left">Latency</td>
<td valign="top" align="center">4,897</td>
<td valign="top" align="center">6,398</td>
<td valign="top" align="center">8,334</td>
<td valign="top" align="center">10,241</td>
<td valign="top" align="center">11,698</td>
</tr>
<tr>
<td valign="top" align="left" rowspan="4">OOA</td>
<td valign="top" align="left">Throughput</td>
<td valign="top" align="center">186</td>
<td valign="top" align="center">263</td>
<td valign="top" align="center">334</td>
<td valign="top" align="center">402</td>
<td valign="top" align="center">541</td>
</tr>
 <tr>
<td valign="top" align="left">Average response time</td>
<td valign="top" align="center">1,522</td>
<td valign="top" align="center">1,639</td>
<td valign="top" align="center">1,854</td>
<td valign="top" align="center">1,963</td>
<td valign="top" align="center">2,025</td>
</tr>
 <tr>
<td valign="top" align="left">Average waiting time</td>
<td valign="top" align="center">1,687</td>
<td valign="top" align="center">1,754</td>
<td valign="top" align="center">1,985</td>
<td valign="top" align="center">2,154</td>
<td valign="top" align="center">2,435</td>
</tr>
 <tr>
<td valign="top" align="left">Latency</td>
<td valign="top" align="center">5,985</td>
<td valign="top" align="center">7,968</td>
<td valign="top" align="center">9,983</td>
<td valign="top" align="center">11,692</td>
<td valign="top" align="center">12,254</td>
</tr>
<tr>
<td valign="top" align="left" rowspan="4">GEOA</td>
<td valign="top" align="left">Throughput</td>
<td valign="top" align="center">147</td>
<td valign="top" align="center">203</td>
<td valign="top" align="center">301</td>
<td valign="top" align="center">388</td>
<td valign="top" align="center">513</td>
</tr>
 <tr>
<td valign="top" align="left">Average response time</td>
<td valign="top" align="center">1,698</td>
<td valign="top" align="center">1,856</td>
<td valign="top" align="center">2,123</td>
<td valign="top" align="center">2,457</td>
<td valign="top" align="center">2,743</td>
</tr>
 <tr>
<td valign="top" align="left">Average waiting time</td>
<td valign="top" align="center">1,963</td>
<td valign="top" align="center">2,017</td>
<td valign="top" align="center">2,371</td>
<td valign="top" align="center">2,547</td>
<td valign="top" align="center">2,749</td>
</tr>
 <tr>
<td valign="top" align="left">Latency</td>
<td valign="top" align="center">6,984</td>
<td valign="top" align="center">8,503</td>
<td valign="top" align="center">10,479</td>
<td valign="top" align="center">12,385</td>
<td valign="top" align="center">13,756</td>
</tr>
<tr>
<td valign="top" align="left" rowspan="4">MPA</td>
<td valign="top" align="left">Throughput</td>
<td valign="top" align="center">112</td>
<td valign="top" align="center">197</td>
<td valign="top" align="center">287</td>
<td valign="top" align="center">347</td>
<td valign="top" align="center">497</td>
</tr>
 <tr>
<td valign="top" align="left">Average response time</td>
<td valign="top" align="center">2,022</td>
<td valign="top" align="center">2,274</td>
<td valign="top" align="center">2,567</td>
<td valign="top" align="center">2,879</td>
<td valign="top" align="center">3,014</td>
</tr>
 <tr>
<td valign="top" align="left">Average waiting time</td>
<td valign="top" align="center">2,246</td>
<td valign="top" align="center">2,369</td>
<td valign="top" align="center">2,689</td>
<td valign="top" align="center">2,997</td>
<td valign="top" align="center">3,066</td>
</tr>
 <tr>
<td valign="top" align="left">Latency</td>
<td valign="top" align="center">7,896</td>
<td valign="top" align="center">9,365</td>
<td valign="top" align="center">11,423</td>
<td valign="top" align="center">13,687</td>
<td valign="top" align="center">14,976</td>
</tr></tbody>
</table>
</table-wrap>
<fig position="float" id="F5">
<label>Figure 5</label>
<caption><p>Graphical plot for latency reduction.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0005.tif">
<alt-text content-type="machine-generated">Line graph titled &#x0201C;Latency Comparison under Load Balancing&#x0201D; showing latency in milliseconds against the number of requests from 100 to 500. Five lines represent different methods: Proposed SHSBOA, SBOA, OOA, GEOA, and MPA. Proposed SHSBOA consistently shows the lowest latency, while MPA displays the highest. The other methods fall in between.</alt-text>
</graphic>
</fig>
<p>For 100 requests, the proposed SHSBOA attained throughput, ART, AWT, and latency of 275 Kpbs, 1,123 ms, 925 ms, and 3,122 ms, respectively. Similarly, for the increasing request numbers, the proposed SHSBOA attained higher throughput and lower ART, AWT, and latency. Meanwhile, the existing methods like Osprey Optimization Algorithm (OOA), Golden Eagle Optimization Algorithm (GEOA), and Marine Predators Algorithm (MPA) achieved lower throughput and higher ART, AWT, and latency. Thus, the proposed SHSBOA distributed the resources effectively and showed superior performance than other prevailing approaches due to the usage of the HS function.</p>
<p>While the individual components of the proposed framework are evaluated using module-specific performance metrics, it is essential to analyze their combined impact on end-to-end latency, which directly affects user-perceived response time in healthcare IoT applications. End-to-end latency in the proposed system is defined as the time elapsed from request generation at the device layer to the reception of processed results from the fog or cloud layer.</p>
<p>The reduction in end-to-end latency is achieved through the coordinated operation of RTKDE, EHWMA, and SHSBOA within the fog orchestration layer. RTKDE enables early detection of dynamic request variations, allowing the system to anticipate workload surges. EHWMA further quantifies request growth trends, facilitating timely decision-making regarding fog-node scaling. Based on these predictions, SHSBOA optimally deploys and balances fog nodes before severe congestion occurs.</p>
<p>As the number of requests increases from 100 to 500, the proposed framework consistently maintains lower latency compared to baseline approaches. For instance, at 100 requests, the proposed SHSBOA records an end-to-end latency of 3,122 ms as shown in <xref ref-type="table" rid="T3">Table 3</xref>, which is significantly lower than that of SBOA, OOA, GEOA, and MPA. This trend persists under higher workloads, demonstrating that proactive request-aware deployment and load balancing effectively prevent bottlenecks and queue buildup.</p>
<p>Unlike reactive scheduling methods, the proposed approach reduces latency before congestion manifests, thereby improving responsiveness for time-critical healthcare services. These results confirm that the integration of dynamic request analysis and optimal fog-node deployment yields a measurable system-level latency benefit.</p>
<p><xref ref-type="fig" rid="F6">Figure 6</xref> displays the performance evaluation of the proposed SHSBOA in fog node optimal deployment with respect to average fitness. The proposed SHSBOA improved the performance in the optimal deployment of fog nodes due to the utilization of the HS function. The prevailing techniques like SBOA, OOA, GEOA, and MPA attained an average fitness of 1,655 ms, 2,035 ms, 3,017 ms, and 4,124 ms, respectively. Subsequently, the proposed SHSMOA attained an average fitness of 856 ms, outperforming other traditional models in terms of success rate and learning efficiency.</p>
<fig position="float" id="F6">
<label>Figure 6</label>
<caption><p>Performance analysis of the proposed SHSBOA and traditional methods in fog node optimal deployment.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0006.tif">
<alt-text content-type="machine-generated">Bar chart titled &#x0201C;Average Fitness Comparison for Fog Node Deployment&#x0201D; compares average fitness in milliseconds across five methods: SHSBOA, SBOA, OOA, GEOA, and MPA. MPA has the highest average fitness at 4000 milliseconds, while SHSBOA has the lowest at about 750 milliseconds.</alt-text>
</graphic>
</fig>
</sec>
<sec>
<label>4.2.4</label>
<title>Analysis of repeated data handling during offloading</title>
<p>The performance of the proposed MAWRRL and traditional methods with respect to success rate and learning efficiency is displayed in <xref ref-type="fig" rid="F7">Figure 7</xref>. The proposed MAWRRL exhibited superior performance in handling the repeated data and attained higher values in success rate (93.02%) and learning rate (98.32%).</p>
<fig position="float" id="F7">
<label>Figure 7</label>
<caption><p>Graphical plot for the performance of the proposed MAWRRL and existing methods.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0007.tif">
<alt-text content-type="machine-generated">Bar chart comparing the performance of MAWRRL and existing RL methods. The proposed MAWRRL method shows the highest success rate and learning efficiency, followed by MARL, IQL, SARL, and VDN. Success rate and learning efficiency are represented by blue and orange bars, respectively.</alt-text>
</graphic>
</fig>
<p>This improvement was made possible by assigning different weights to individual rewards using WRF. In contrast, the traditional approaches like Independent Q-Learning (IQL), Single-Agent Reinforcement Learning (SARL), and Value Decomposition Network (VDN) attained an average success rate and learning efficiency of 79.50% and 78.76%, respectively. Thus, the proposed MAWRRL demonstrated a superior performance in handling the repeated data during offloading.</p>
</sec>
<sec>
<label>4.2.5</label>
<title>Faulty node detection analysis</title>
<p><xref ref-type="fig" rid="F8">Figure 8</xref> and <xref ref-type="table" rid="T4">Table 4</xref> depict the performance analysis of the proposed BiSHAGRU and existing methods across multiple evaluation metrics. The proposed BiSHAGRU consistently outperformed other conventional methods, achieving 99.23% accuracy, 98.97% precision, 99.12% recall, 99.04% F-Measure, and 58,326 ms training time.</p>
<fig position="float" id="F8">
<label>Figure 8</label>
<caption><p>Performance analysis for faulty fog node detection.</p></caption>
<graphic mimetype="image" mime-subtype="tiff" xlink:href="fcomp-08-1739223-g0008.tif">
<alt-text content-type="machine-generated">Bar chart comparing performance metrics (accuracy, precision, recall, F-measure) of models for faulty fog node detection. Models include BiSHAGRU, BiGRU, LSTM, RNN, and ANN. BiSHAGRU shows highest overall performance.</alt-text>
</graphic>
</fig>
<table-wrap position="float" id="T4">
<label>Table 4</label>
<caption><p>Numerical values-based performance evaluation of the proposed BiSHAGRU and the existing approaches.</p></caption>
<table frame="box" rules="all">
<thead>
<tr>
<th valign="top" align="left"><bold>Techniques</bold></th>
<th valign="top" align="center"><bold>Accuracy (%)</bold></th>
<th valign="top" align="center"><bold>Precision (%)</bold></th>
<th valign="top" align="center"><bold>Recall (%)</bold></th>
<th valign="top" align="center"><bold>F-Measure (%)</bold></th>
<th valign="top" align="center"><bold>Training time (ms)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">Proposed BiSHAGRU</td>
<td valign="top" align="center">99.23</td>
<td valign="top" align="center">98.97</td>
<td valign="top" align="center">99.12</td>
<td valign="top" align="center">99.04</td>
<td valign="top" align="center">58,326</td>
</tr>
<tr>
<td valign="top" align="left">BiGRU</td>
<td valign="top" align="center">91.26</td>
<td valign="top" align="center">90.56</td>
<td valign="top" align="center">90.16</td>
<td valign="top" align="center">90.36</td>
<td valign="top" align="center">69,352</td>
</tr>
<tr>
<td valign="top" align="left">LSTM</td>
<td valign="top" align="center">87.98</td>
<td valign="top" align="center">87.41</td>
<td valign="top" align="center">86.26</td>
<td valign="top" align="center">86.83</td>
<td valign="top" align="center">81,256</td>
</tr>
<tr>
<td valign="top" align="left">RNN</td>
<td valign="top" align="center">81.02</td>
<td valign="top" align="center">80.96</td>
<td valign="top" align="center">79.85</td>
<td valign="top" align="center">80.41</td>
<td valign="top" align="center">96,352</td>
</tr>
<tr>
<td valign="top" align="left">ANN</td>
<td valign="top" align="center">76.57</td>
<td valign="top" align="center">75.84</td>
<td valign="top" align="center">74.29</td>
<td valign="top" align="center">75.07</td>
<td valign="top" align="center">102,353</td>
</tr></tbody>
</table>
</table-wrap>
<p>In contrast, the existing BiGRU, LSTM, Recurrent Neural Network (RNN), and Artificial Neural Network (ANN) attained an average accuracy, precision, recall, F-Measure, and training time of 84.21%, 83.69%, 82.64%, 83.17%, and 87,328.25 ms, respectively. This improvement was largely due to the incorporation of SH function and attention blocks into the BiGRU framework, which significantly improved the fault node detection.</p>
</sec>
</sec>
</sec>
<sec sec-type="conclusion" id="s5">
<label>5</label>
<title>Conclusion</title>
<p>This paper presented a dynamic request-aware fog-node deployment framework aimed at reducing latency in healthcare fog-computing platforms under highly variable and resource-constrained conditions. Unlike conventional approaches that rely on static deployment or historical workload patterns, the proposed framework explicitly models request dynamics and system uncertainty across multiple fog layers.</p>
<p>Dynamic request variations were captured using RTKDE, enabling accurate identification of workload changes with low estimation error. Based on these variations, EHWMA effectively assessed request growth trends, allowing timely scaling decisions. Optimal fog-node deployment and load balancing were achieved using SHSBOA, which improved throughput while significantly reducing response time, waiting time, and end-to-end latency. System reliability was further enhanced through BiSHAGRU-based faulty node detection, minimizing unnecessary rerouting overhead. In addition, MAWRRL efficiently mitigated redundant data offloading between fog and cloud layers, reducing network congestion and improving learning efficiency.</p>
<p>Comprehensive simulation results demonstrated that the proposed framework consistently outperformed existing state-of-the-art methods in latency reduction, fault detection accuracy, and resource utilization under varying request loads. These outcomes confirm that incorporating dynamic request awareness into fog-node deployment is critical for supporting delay-sensitive healthcare IoT applications.</p>
<p>Future research will focus on intelligent request migration between fog nodes and real-world validation using large-scale healthcare datasets. Incorporating energy-aware constraints and multi-objective optimization under heterogeneous fog environments will further enhance the applicability of the proposed framework.</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>AB: Visualization, Conceptualization, Validation, Resources, Project administration, Formal analysis, Methodology, Data curation, Writing &#x02013; review &#x00026; editing, Writing &#x02013; original draft, Investigation, Software. GJ: Writing &#x02013; review &#x00026; editing, Supervision.</p>
</sec>
<sec sec-type="COI-statement" id="conf1">
<title>Conflict of interest</title>
<p>The author(s) declared that this work 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="ai-statement" id="s9">
<title>Generative AI statement</title>
<p>The author(s) declared that generative AI was not 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="s10">
<title>Publisher&#x00027;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>Ala&#x00027;Anzy</surname> <given-names>M. A.</given-names></name> <name><surname>Zhanuzak</surname> <given-names>R.</given-names></name> <name><surname>Akhmedov</surname> <given-names>R.</given-names></name> <name><surname>Mohamed</surname> <given-names>N.</given-names></name> <name><surname>Al-Jaroodi</surname> <given-names>J.</given-names></name></person-group> (<year>2024</year>). <article-title>Dynamic load balancing for enhanced network performance in IoT-enabled smart healthcare with fog computing</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>188957</fpage>&#x02013;<lpage>188975</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2024.3516362</pub-id></mixed-citation>
</ref>
<ref id="B2">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Aldossary</surname> <given-names>D.</given-names></name> <name><surname>Aldahasi</surname> <given-names>E.</given-names></name> <name><surname>Balharith</surname> <given-names>T.</given-names></name> <name><surname>Helmy</surname> <given-names>T.</given-names></name></person-group> (<year>2025</year>). <article-title>A systematic literature review on load-balancing techniques in fog computing: architectures, strategies, and emerging trends</article-title>. <source>Computers</source> <volume>14</volume>, <fpage>1</fpage>&#x02013;<lpage>42</lpage>. doi: <pub-id pub-id-type="doi">10.3390/computers14060217</pub-id></mixed-citation>
</ref>
<ref id="B3">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Anh</surname> <given-names>D.</given-names></name> <name><surname>Van</surname></name> <name><surname>Nguyen</surname> <given-names>V.-H</given-names></name></person-group>. (<year>2025</year>). <article-title>Leveraging priority queueing in IoT-edge-fog-cloud infrastructures for efficient healthcare monitoring</article-title>. <source>IEEE Access</source> <volume>13</volume>, <fpage>80461</fpage>&#x02013;<lpage>80477</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2025.3565679</pub-id></mixed-citation>
</ref>
<ref id="B4">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Choppara</surname> <given-names>P.</given-names></name> <name><surname>Lokesh</surname> <given-names>B.</given-names></name></person-group> (<year>2025</year>). <article-title>Efficient task scheduling and load balancing in fog computing for crucial healthcare through deep reinforcement learning</article-title>. <source>IEEE Access</source> <volume>13</volume>, <fpage>26542</fpage>&#x02013;<lpage>26563</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2025.3539336</pub-id></mixed-citation>
</ref>
<ref id="B5">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Choppara</surname> <given-names>P.</given-names></name> <name><surname>Mangalampalli</surname> <given-names>S. S.</given-names></name></person-group> (<year>2024</year>). <article-title>A hybrid task scheduling technique in fog computing using fuzzy logic and deep reinforcement learning</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>176363</fpage>&#x02013;<lpage>176388</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2024.3505546</pub-id></mixed-citation>
</ref>
<ref id="B6">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Choppara</surname> <given-names>P.</given-names></name> <name><surname>Mangalampalli</surname> <given-names>S. S.</given-names></name></person-group> (<year>2025</year>). <article-title>Resource adaptive automated task scheduling using deep deterministic policy gradient in fog computing</article-title>. <source>IEEE Access</source> <volume>13</volume>, <fpage>25969</fpage>&#x02013;<lpage>25994</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2025.3539606</pub-id></mixed-citation>
</ref>
<ref id="B7">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Chuan</surname> <given-names>W. C.</given-names></name> <name><surname>Laghari</surname> <given-names>S. U. A.</given-names></name> <name><surname>Manickam</surname> <given-names>S.</given-names></name> <name><surname>Ashraf</surname> <given-names>E.</given-names></name> <name><surname>Karuppayah</surname> <given-names>S.</given-names></name></person-group> (<year>2025</year>). <article-title>Challenges and opportunities in fog computing scheduling: a literature review</article-title>. <source>IEEE Access</source> <volume>13</volume>, <fpage>14702</fpage>&#x02013;<lpage>14726</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2024.3525261</pub-id></mixed-citation>
</ref>
<ref id="B8">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Du</surname> <given-names>H.</given-names></name> <name><surname>Liu</surname> <given-names>M.</given-names></name> <name><surname>Liu</surname> <given-names>N.</given-names></name> <name><surname>Li</surname> <given-names>D.</given-names></name> <name><surname>Li</surname> <given-names>W.</given-names></name> <name><surname>Xu</surname> <given-names>L.</given-names></name></person-group> (<year>2025</year>). <article-title>Scheduling of low-latency medical services in healthcare cloud with deep reinforcement learning</article-title>. <source>Tsinghua Sci. Technol.</source> <volume>30</volume>, <fpage>100</fpage>&#x02013;<lpage>111</lpage>. doi: <pub-id pub-id-type="doi">10.26599/TST.2024.9010033</pub-id></mixed-citation>
</ref>
<ref id="B9">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Elhadad</surname> <given-names>A.</given-names></name> <name><surname>Alanazi</surname> <given-names>F.</given-names></name> <name><surname>Taloba</surname> <given-names>A. I.</given-names></name> <name><surname>Abozeid</surname> <given-names>A.</given-names></name></person-group> (<year>2022</year>). <article-title>Fog computing service in the healthcare monitoring system for managing the real-time notification</article-title>. <source>J. Healthc. Eng.</source> <volume>2022</volume>, <fpage>1</fpage>&#x02013;<lpage>11</lpage>. doi: <pub-id pub-id-type="doi">10.1155/2022/5337733</pub-id><pub-id pub-id-type="pmid">35340260</pub-id></mixed-citation>
</ref>
<ref id="B10">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Gowda</surname> <given-names>V. D.</given-names></name> <name><surname>Sharma</surname> <given-names>A.</given-names></name> <name><surname>Rao</surname> <given-names>B. K.</given-names></name> <name><surname>Shankar</surname> <given-names>R.</given-names></name> <name><surname>Sarma</surname> <given-names>P.</given-names></name> <name><surname>Chaturvedi</surname> <given-names>A.</given-names></name> <etal/></person-group>. (<year>2022</year>). <article-title>Industrial quality healthcare services using internet of things and fog computing approach</article-title>. <source>Meas. Sens.</source> <volume>24</volume>, <fpage>1</fpage>&#x02013;<lpage>16</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.measen.2022.100517</pub-id></mixed-citation>
</ref>
<ref id="B11">
<mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Harasees</surname> <given-names>A.</given-names></name> <name><surname>Al-Ahmad</surname> <given-names>B.</given-names></name> <name><surname>Alsobeh</surname> <given-names>A.</given-names></name> <name><surname>Abuhussein</surname> <given-names>A.</given-names></name></person-group> (<year>2024</year>). <article-title>&#x0201C;A secure IoT framework for remote health monitoring using fog computing,&#x0201D;</article-title> in <source>2024 International Conference on Intelligent Computing, Communication, Networking and Services, ICCNS</source> (<publisher-loc>Dubrovnik</publisher-loc>), <fpage>1</fpage>&#x02013;<lpage>9</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ICCNS62192.2024.10776425</pub-id></mixed-citation>
</ref>
<ref id="B12">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Islam</surname> <given-names>U.</given-names></name> <name><surname>Alatawi</surname> <given-names>M. N.</given-names></name> <name><surname>Alqazzaz</surname> <given-names>A.</given-names></name> <name><surname>Alamro</surname> <given-names>S.</given-names></name> <name><surname>Shah</surname> <given-names>B.</given-names></name> <name><surname>Moreira</surname> <given-names>F.</given-names></name></person-group> (<year>2025</year>). <article-title>A hybrid fog-edge computing architecture for real-time health monitoring in IoMT systems with optimized latency and threat resilience</article-title>. <source>Sci. Rep.</source> <volume>15</volume>, <fpage>1</fpage>&#x02013;<lpage>22</lpage>. doi: <pub-id pub-id-type="doi">10.1038/s41598-025-09696-3</pub-id><pub-id pub-id-type="pmid">40665167</pub-id></mixed-citation>
</ref>
<ref id="B13">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Jasim</surname> <given-names>A. M.</given-names></name> <name><surname>Al-Raweshidy</surname> <given-names>H.</given-names></name></person-group> (<year>2024</year>). <article-title>An adaptive SDN-based load balancing method for edge/fog-based real-time healthcare systems</article-title>. <source>IEEE Syst. J.</source> <volume>18</volume>, <fpage>1139</fpage>&#x02013;<lpage>1150</lpage>. doi: <pub-id pub-id-type="doi">10.1109/JSYST.2024.3402156</pub-id></mixed-citation>
</ref>
<ref id="B14">
<mixed-citation publication-type="book"><person-group person-group-type="author"><name><surname>Kait</surname> <given-names>R.</given-names></name> <name><surname>Lokesh Kumar</surname> <given-names>T.</given-names></name> <name><surname>Girdhar</surname> <given-names>A.</given-names></name></person-group> (<year>2024</year>). <article-title>&#x0201C;Enhancing fog computing performance with squeezenet approach for IoT applications,&#x0201D;</article-title> in <source>Proceedings of the 2024 2nd International Conference on Advanced Computing and Communication Technologies, ICACCTech</source> (<publisher-loc>Sonipat</publisher-loc>), <fpage>1</fpage>&#x02013;<lpage>8</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ICACCTech65084.2024.00114</pub-id></mixed-citation>
</ref>
<ref id="B15">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Khan</surname> <given-names>F. U.</given-names></name> <name><surname>Shah</surname> <given-names>I. A.</given-names></name> <name><surname>Jan</surname> <given-names>S.</given-names></name> <name><surname>Ahmad</surname> <given-names>S.</given-names></name> <name><surname>Whangbo</surname> <given-names>T.</given-names></name></person-group> (<year>2025</year>). <article-title>Machine learning-based resource management in fog computing: a systematic literature review</article-title>. <source>Sensors</source> <volume>25</volume>, <fpage>1</fpage>&#x02013;<lpage>37</lpage>. doi: <pub-id pub-id-type="doi">10.3390/s25030687</pub-id><pub-id pub-id-type="pmid">39943326</pub-id></mixed-citation>
</ref>
<ref id="B16">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Lim</surname> <given-names>J. B.</given-names></name></person-group> (<year>2022</year>). <article-title>Latency-aware task scheduling for IoT applications based on artificial intelligence with partitioning in small-scale fog computing environments</article-title>. <source>Sensors</source> <volume>22</volume>, <fpage>1</fpage>&#x02013;<lpage>12</lpage>. doi: <pub-id pub-id-type="doi">10.3390/s22197326</pub-id><pub-id pub-id-type="pmid">36236423</pub-id></mixed-citation>
</ref>
<ref id="B17">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Malik</surname> <given-names>S.</given-names></name> <name><surname>Gupta</surname> <given-names>K.</given-names></name> <name><surname>Gupta</surname> <given-names>D.</given-names></name> <name><surname>Singh</surname> <given-names>A.</given-names></name> <name><surname>Ibrahim</surname> <given-names>M.</given-names></name> <name><surname>Ortega-Mansilla</surname> <given-names>A.</given-names></name> <etal/></person-group>. (<year>2022</year>). <article-title>Intelligent load-balancing framework for fog-enabled communication in healthcare</article-title>. <source>Electronics</source> <volume>11</volume>, <fpage>1</fpage>&#x02013;<lpage>18</lpage>. doi: <pub-id pub-id-type="doi">10.3390/electronics11040566</pub-id></mixed-citation>
</ref>
<ref id="B18">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Mangalampalli</surname> <given-names>S. S.</given-names></name> <name><surname>Reddy</surname> <given-names>P. V.</given-names></name> <name><surname>Karri</surname> <given-names>G. R.</given-names></name> <name><surname>Tippani</surname> <given-names>G.</given-names></name> <name><surname>Kota</surname> <given-names>H.</given-names></name></person-group> (<year>2025</year>). <article-title>Priority-aware multi-objective task scheduling in fog computing using simulated annealing</article-title>. <source>Sensors</source> <volume>25</volume>, <fpage>1</fpage>&#x02013;<lpage>30</lpage>. doi: <pub-id pub-id-type="doi">10.3390/s25185744</pub-id><pub-id pub-id-type="pmid">41012981</pub-id></mixed-citation>
</ref>
<ref id="B19">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Mohamed</surname> <given-names>S. S. S.</given-names></name> <name><surname>Gopi</surname> <given-names>R.</given-names></name> <name><surname>Kesavan</surname> <given-names>Vt.</given-names></name> <name><surname>Kaliyaperumal</surname> <given-names>K.</given-names></name></person-group> (<year>2024</year>). <article-title>Adaptive heuristic edge assisted fog computing design for healthcare data optimization</article-title>. <source>J. Cloud Comput.</source> <volume>13</volume>, <fpage>1</fpage>&#x02013;<lpage>18</lpage>. doi: <pub-id pub-id-type="doi">10.1186/s13677-024-00689-7</pub-id></mixed-citation>
</ref>
<ref id="B20">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Pati</surname> <given-names>A.</given-names></name> <name><surname>Panigrahi</surname> <given-names>A.</given-names></name> <name><surname>Parhi</surname> <given-names>M.</given-names></name> <name><surname>Pattanayak</surname> <given-names>B. K.</given-names></name> <name><surname>Sahu</surname> <given-names>B.</given-names></name> <name><surname>Kant</surname> <given-names>S.</given-names></name></person-group> (<year>2024</year>). <article-title>Simulating fog of medical things: research challenges and opportunities</article-title>. <source>IEEE Access</source> <volume>12</volume>, <fpage>146527</fpage>&#x02013;<lpage>146550</lpage>. doi: <pub-id pub-id-type="doi">10.1109/ACCESS.2024.3468015</pub-id></mixed-citation>
</ref>
<ref id="B21">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Su</surname> <given-names>X.</given-names></name> <name><surname>Fang</surname> <given-names>X.</given-names></name> <name><surname>Cheng</surname> <given-names>Z.</given-names></name> <name><surname>Gong</surname> <given-names>Z.</given-names></name> <name><surname>Choi</surname> <given-names>C.</given-names></name></person-group> (<year>2025</year>). <article-title>Deep reinforcement learning based latency-energy minimization in smart healthcare network</article-title>. <source>Digit. Commun. Netw.</source> <volume>11</volume>, <fpage>795</fpage>&#x02013;<lpage>805</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.dcan.2024.06.008</pub-id></mixed-citation>
</ref>
<ref id="B22">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Tripathy</surname> <given-names>S. S.</given-names></name> <name><surname>Rath</surname> <given-names>M.</given-names></name> <name><surname>Tripathy</surname> <given-names>N.</given-names></name> <name><surname>Roy</surname> <given-names>D. S.</given-names></name> <name><surname>Francis</surname> <given-names>J. S. A.</given-names></name> <name><surname>Bebortta</surname> <given-names>S.</given-names></name></person-group> (<year>2023</year>). <article-title>An intelligent health care system in fog platform with optimized performance</article-title>. <source>Sustainability</source> <volume>15</volume>, <fpage>1</fpage>&#x02013;<lpage>17</lpage>. doi: <pub-id pub-id-type="doi">10.3390/su15031862</pub-id></mixed-citation>
</ref>
<ref id="B23">
<mixed-citation publication-type="journal"><person-group person-group-type="author"><name><surname>Zagar</surname> <given-names>P.</given-names></name> <name><surname>Ravi</surname> <given-names>V.</given-names></name> <name><surname>Aalami</surname> <given-names>L.</given-names></name> <name><surname>Krusche</surname> <given-names>S.</given-names></name> <name><surname>Aalami</surname> <given-names>O.</given-names></name> <name><surname>Schmiedmayer</surname> <given-names>P.</given-names></name></person-group> (<year>2025</year>). <article-title>Dynamic fog computing for enhanced LLM execution in medical applications</article-title>. <source>Smart Health</source> <volume>36</volume>, <fpage>1</fpage>&#x02013;<lpage>9</lpage>. doi: <pub-id pub-id-type="doi">10.1016/j.smhl.2025.100577</pub-id></mixed-citation>
</ref>
</ref-list>
<fn-group>
<fn fn-type="custom" custom-type="edited-by" id="fn0001">
<p>Edited by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3105932/overview">Zhou Zhou</ext-link>, Changsha University, China</p>
</fn>
<fn fn-type="custom" custom-type="reviewed-by" id="fn0002">
<p>Reviewed by: <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3248357/overview">Han Shen</ext-link>, Xi&#x00027;an Technological University, China</p>
<p><ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/3313335/overview">Zhizhou He</ext-link>, University of Surrey, United Kingdom</p>
</fn>
</fn-group>
</back>
</article>