<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article article-type="research-article" dtd-version="2.3" xml:lang="EN" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Sig. Proc.</journal-id>
<journal-title>Frontiers in Signal Processing</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Sig. Proc.</abbrev-journal-title>
<issn pub-type="epub">2673-8198</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">788943</article-id>
<article-id pub-id-type="doi">10.3389/frsip.2022.788943</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Signal Processing</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>A Robust Security Task Offloading in Industrial IoT-Enabled Distributed Multi-Access Edge Computing</article-title>
<alt-title alt-title-type="left-running-head">Gyamfi and Jurcut</alt-title>
<alt-title alt-title-type="right-running-head">Robust Security for IIoT Networks Utilizing MEC</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name>
<surname>Gyamfi</surname>
<given-names>Eric</given-names>
</name>
<xref ref-type="corresp" rid="c001">&#x2a;</xref>
<uri xlink:href="https://loop.frontiersin.org/people/1503453/overview"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Jurcut</surname>
<given-names>Anca</given-names>
</name>
<uri xlink:href="https://loop.frontiersin.org/people/1033072/overview"/>
</contrib>
</contrib-group>
<aff>
<institution>School of Computer Science</institution>, <institution>University College Dublin</institution>, <addr-line>Dublin</addr-line>, <country>Ireland</country>
</aff>
<author-notes>
<fn fn-type="edited-by">
<p>
<bold>Edited by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1005043/overview">Jihong Park</ext-link>, Deakin University, Australia</p>
</fn>
<fn fn-type="edited-by">
<p>
<bold>Reviewed by:</bold> <ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1168527/overview">Jun Li</ext-link>, Guangzhou University, China</p>
<p>
<ext-link ext-link-type="uri" xlink:href="https://loop.frontiersin.org/people/1149857/overview">Xuelin Cao</ext-link>, Singapore University of Technology and Design, Singapore</p>
</fn>
<corresp id="c001">&#x2a;Correspondence: Eric Gyamfi, <email>eric.gyamfi@ucdconnect.ie</email>
</corresp>
<fn fn-type="other">
<p>This article was submitted to Signal Processing for Communications, a section of the journal Frontiers in Signal Processing</p>
</fn>
</author-notes>
<pub-date pub-type="epub">
<day>28</day>
<month>04</month>
<year>2022</year>
</pub-date>
<pub-date pub-type="collection">
<year>2022</year>
</pub-date>
<volume>2</volume>
<elocation-id>788943</elocation-id>
<history>
<date date-type="received">
<day>04</day>
<month>10</month>
<year>2021</year>
</date>
<date date-type="accepted">
<day>03</day>
<month>02</month>
<year>2022</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#xa9; 2022 Gyamfi and Jurcut.</copyright-statement>
<copyright-year>2022</copyright-year>
<copyright-holder>Gyamfi and Jurcut</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/">
<p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). 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.</p>
</license>
</permissions>
<abstract>
<p>The rapid increase in the Industrial Internet of Things (IIoT) use cases plays a significant role in Industry 4.0 development. However, IIoT systems face resource constraints problems and are vulnerable to cyberattacks due to their inability to implement existing sophisticated security systems. One way of alleviating these resource constraints is to utilize multi-access edge computing (MEC) to provide computational resources at the network edge to execute the security applications. To provide resilient security for IIoT using MEC, the offloading latency, synchronization time, and turnaround time must be optimized to provide real-time attack detection. Hence, this paper provides a novel adaptive machine learning&#x2013;based security (MLS) task offloading (ASTO) mechanism to ensure that the connectivity between the MEC server and IIoT is secured and guaranteed. We explored the trade-off between the limited computing capacity and high cloud computing latency to propose an ASTO, where MEC and IIoT can collaborate to provide optimized MLS to protect the network. In the proposed system, we converted the MLS task offloading and synchronization problem into an equivalent mathematical model, which can be solved by applying Markov transition probability and clock offset estimation using maximum likelihood. Our extensive simulations show that the proposed algorithm provides robust security for the IIoT network with low latency, synchronization accuracy, and energy efficiency.</p>
</abstract>
<kwd-group>
<kwd>internet of things</kwd>
<kwd>iot-edge</kwd>
<kwd>task offloading</kwd>
<kwd>multi-access edge computing</kwd>
<kwd>time-synchronization</kwd>
<kwd>latency</kwd>
<kwd>security task offloading</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<title>Introduction</title>
<p>Over the decade, high latency, throughput, high cost of setting up cloud infrastructure, and energy optimization have been the principal influence of the IIoT developers to find an alternative to the cloud computing services. Cloud computing consolidates computing, storage, and network management functions in a centralized manner. Hence, there is a need for a modern computing paradigm that will support the IIoT system, which alleviates the challenges mentioned above. Another contributing factor for a change in cloud computing services is the IIoT devices&#x2019; ability to get real-time responses. Industrial and manufacturing segments have embraced IoT technologies, known as the Industrial Internet of Things (IIoT). This concept of IIoT, which also referred to as industry 4.0., enhances factory and industrial transformation. The IIoT transforms traditional and linear manufacturing supply chains into dynamic, interconnected systems, also known as the digital supply network (DSN). As key enablers of DSNs, IIoT technologies change the way products are made and delivered. IIoT makes factories more efficient, ensuring better safety for human operators and, in some cases, saving millions of dollars. However, the development of this emerging phenomenal (IIoT) has faced substantial security challenges (<xref ref-type="bibr" rid="B3">Bakhshi et al., 2018</xref>). Security is a fundamental concern for the safe and reliable operation of IIoT devices. According to research conducted by the University of Portsmouth (<xref ref-type="bibr" rid="B8">Finnerty et al., 2018</xref>) in 2018, 32% of small businesses, 60% of medium companies, and 69% of large-scale businesses in the United Kingdom experienced IIoT security breaches. IIoT security breach had increased to 69% across industries in 2019. In the work of <xref ref-type="bibr" rid="B11">Irdeto-Media-Team (2019</xref>), it was forecasted in 2019 that eight out of 10 businesses encountered cyberattacks on their IIoT devices. The increasing number of cyberattacks is critical because organizations use IIoT to capture vital information to make life-dependent decisions. IIoT devices also serve as a platform for cyberattackers to initiate threats against other connected devices in the same network. Such attacks are successful because the IIoT devices are resource-constrained and cannot run the existing security software. Hence, deploying sophisticated security applications at the edge of the IIoT network utilizing multi-access edge computing (MEC) becomes the ideal solution (<xref ref-type="fig" rid="F1">Figure 1</xref>). Edge computing is implemented based on a network virtualized platform. Specifically, <italic>network functions virtualization</italic> (NFV) enhances an edge device to supply computing services to numerous connected IIoT devices by creating multiple <italic>virtual machines</italic> (VMs) (<xref ref-type="bibr" rid="B12">Mao et al., 2017</xref>) to perform different tasks spontaneously or operate different network functions.</p>
<fig id="F1" position="float">
<label>FIGURE 1</label>
<caption>
<p>MEC server connected IIoT architecture.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g001.tif"/>
</fig>
<sec id="s1-1">
<title>Paper Motivation</title>
<p>Because IIoT plays a critical role in the modern industrial revolution and livelihood, creating a resilient security system to protect IIoT devices is paramount (<xref ref-type="bibr" rid="B21">Wurm et al., 2016</xref>). However, the IIoT has resource-constraint problems, and they are deployed in hostile distributed environments, which expose their network interfaces to external access and cyberattacks. The issues above can be mitigated by placing a MEC server at the edge of the IIoT network, which hosts a sophisticated security system. The proposed method demonstrates the deployment of an online machine learning&#x2013;based security (MLS) system to the MEC server while offloading the MLS task from the IIoT devices at a timely interval to perform deep intrusion analysis and provide adequate security for the connected IIoT devices. An online machine learning algorithm is employed in our proposed method to enhance the security model ability to continuously learn new attacks and normal data to prevent it from been obsolete. The offloading process between the IIoT and the MEC server must be optimized to achieve real-time security response. Because of the number of IIoT devices that share the MEC server resources in the network topology, three common problems arise (<xref ref-type="bibr" rid="B1">Akherfi et al., 2018</xref>).<list list-type="simple">
<list-item>
<p>&#x2022; Network congestion</p>
</list-item>
<list-item>
<p>&#x2022; Energy wastage</p>
</list-item>
<list-item>
<p>&#x2022; The inability of the MEC server to identify high priority tasks.</p>
</list-item>
</list>
</p>
<p>This paper presents a novel ASTO that uses a minimum resource to offload computational MLS from the IIoT devices (nodes or the sources) to a proximal MEC server (vertices). The MEC server receives the IIoT end device request and creates a schedule for offloading MLS task based on the availability of resources, congestion rate (latency on the network), and priority of the task. Each IIoT in the queue receives an update timestamp from the MEC server to enhance time synchronization and energy consumption optimization. We also modeled the network between the IIoT devices and the MEC servers as a probabilistic direct acyclic graph. Moreover, we applied the Markov queuing process to optimize the congestion and latency rate during the MLS task offloading. Our contributions in this paper are summarized as follows:<list list-type="simple">
<list-item>
<p>&#x2022; We propose a novel energy-efficient ASTO to produce reliable security in a distributed large-scale IIoT network.</p>
</list-item>
<list-item>
<p>&#x2022; Node pair selection algorithms to determine the next available MEC server to handle the incoming high-intensity security computation are also applied.</p>
</list-item>
<list-item>
<p>&#x2022; We derive an efficient algorithm for clock offset that employs a two-way synchronization exchange model for the MLS task offloading process.</p>
</list-item>
<list-item>
<p>&#x2022; Finally, the proposed technique is validated by offloading a MLS task to a proximal MEC server in a distributed IIoT network.</p>
</list-item>
</list>
</p>
</sec>
<sec id="s1-2">
<title>Outline</title>
<p>The rest of this paper is organized as follows: <xref ref-type="sec" rid="s2">Section 2</xref> contains the related works. <xref ref-type="sec" rid="s3">Section 3</xref> presents the mathematical models of the task offload process. <xref ref-type="sec" rid="s4">Section 4</xref> provides a detailed presentation of the proposed ASTO algorithm. <xref ref-type="sec" rid="s5">Section 5</xref> describes the experimental setup and performance evaluations, and <xref ref-type="sec" rid="s6">Section 6</xref> concludes our findings.</p>
</sec>
</sec>
<sec id="s2">
<title>Related Works</title>
<p>Recently, many researchers have proposed algorithms for computational task offloading in MEC. Sun and Ansari (<xref ref-type="bibr" rid="B17">Sun and Ansari, 2017</xref>) solved the latency problem in task offloading by formulating a mathematical model for the task offloading to minimize the average response time for IoT devices and presented a method to solve it efficiently. The resources available in MEC compared to centralized cloud computing have motivated many researchers to jointly address the resource allocation and task offloading problem in the quest to utilize the available resources (<xref ref-type="bibr" rid="B18">Tanaka et al., 2018</xref>). <xref ref-type="bibr" rid="B6">Chen et al. (2019)</xref> tackled the energy efficiency challenges in task offloading by applying stochastic optimization techniques to transform the original stochastic problem (energy wasted) into a deterministic optimization problem and proposed an energy-efficient dynamic offloading algorithm called EEDOA. <xref ref-type="bibr" rid="B22">Xu et al. (2019)</xref> used a blockchain-enabled computation offloading method, called BeCome, in their research. Blockchain technology is applied in edge computing to secure data integrity. Using a genetic sorting algorithm, they adopted strategies to balance resource allocation among the connected IoT devices. <xref ref-type="bibr" rid="B20">Wu et al. (2020)</xref> solved the trade-off overheads of limited computing capacity and high latency while ensuring data integrity during the offloading process in IoT. The authors considered a blockchain scenario where edge computing and cloud computing can collaborate to secure the task offloading process. <xref ref-type="bibr" rid="B5">Chen et al. (2018)</xref> and <xref ref-type="bibr" rid="B10">Hsu et al. (2019)</xref> explored the novel perspective of resource efficiency and created an efficient computation offloading mechanism, which consists of a delay-aware task graph partition algorithm. They used an optimal VM selection approach to reduce IoT and edge resource occupancy while satisfying its QoS requirement. Moreover, <xref ref-type="bibr" rid="B2">Ansere et al. (2019)</xref> focused on using time synchronization in large-scale VANETs and proposed an adaptive beacon time synchronization (ABTS) algorithm to intensify timing message synchronization. Their ABTS algorithm selects the best time synchronization pairs to decrease the number of timing messages transmitted. A distributed time synchronization approach was proposed by <xref ref-type="bibr" rid="B13">Nasrallah et al. (2016)</xref> for the two-way timing message synchronization exchange system in inter-cluster and intra-cluster nodes communication. Their architecture allows the automatic clustering of nodes and selection of node heads to maximize energy efficiency. <xref ref-type="bibr" rid="B23">Yang et al. (2021</xref>, <xref ref-type="bibr" rid="B24">2022)</xref> proposed machine learning&#x2013;based IoT to MEC offloading. The authors demonstrated the need to offload computational intensive to the MEC server due to resource-constraint problems on the IoT devices. Their proposed frameworks were backed with experimentation, which proved promising. <xref ref-type="bibr" rid="B16">Sun et al. (2019)</xref> also proposed an intelligent computing architecture for the IIoT, including cooperative edge and cloud computing. An AI-enhanced offloading framework for service accuracy maximization is provided based on the proposed computational architecture, including service correctness as a new parameter and latency, and intelligently distributes traffic to MEC servers. In all the above research works, the authors provided the various ways of offloading data to MEC server. However, our paper adds to knowledge by proposing a novel method of providing security for the resource constraint IIoT by offloading the computational logic (MLS) to the MEC while enhancing the task offloading processes using the Markov transition.</p>
<p>
<xref ref-type="bibr" rid="B19">Tange et al. (2020)</xref> and <xref ref-type="bibr" rid="B14">Sadeghi et al. (2015)</xref> reviewed most of the security challenges in IIoT and elaborated on the need to use MEC and Fog to design security for the IIoT devices. They demonstrated that IIoT devices generate, process, and exchange vast amounts of security-critical and privacy-sensitive data, which draws the attention of attackers.</p>
</sec>
<sec id="s3">
<title>System Model and Problem Formulation</title>
<p>This section details the system design in detail, including the IIoT model, MEC model, energy-efficient control, latency in IIoT to MEC offloading, and MLS to be offloaded to the MEC server.</p>
<sec id="s3-1">
<title>Industrial Internet of Things to Multi-Access Edge Computing Network Model</title>
<p>Consider a practical industrial context consisting of <italic>nth</italic> number of IIoT devices <italic>&#x3bc;</italic>
<sub>
<italic>n</italic>
</sub>, such that each IIoT device can connect to one of the <italic>kth</italic> number of the proximal distributed MEC servers &#x3a6;<sub>
<italic>k</italic>
</sub>, through a wireless connection with distance <italic>&#x3b4;</italic> at the edge of the network. We also assumed that each IIoT device connects to a selected MEC server in an orthogonal link, whereas the IIoT devices share security information through context-awareness. Let <italic>&#x3d1;</italic> represent the network traffic density for the interconnected IIoT devices and the MEC servers. By applying Poisson distribution for a large-scale network, the probability of selecting the closest MEC server &#x3a6;<sub>
<italic>k</italic>
</sub> with a wireless link <italic>x</italic>
<sub>
<italic>n</italic>
</sub> can be expressed as follows:<disp-formula id="e1">
<mml:math id="m1">
<mml:mi>F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c7;</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>!</mml:mo>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
<mml:mspace width="0.3333em"/>
</mml:math>
<label>(1)</label>
</disp-formula>where <italic>&#x3c7;</italic> &#x3d; <italic>&#x3d1;x</italic> signifies the Poisson distribution parameter for a random bounded section of the distributed network. We obtain the probability that the distance between the connected IIoT device and a MEC is minimal than <italic>&#x3b4;</italic>. Hence, the likelihood that at least one IIoT connects to a MEC server within <italic>&#x3b4;</italic> is expressed as follows:<disp-formula id="e2">
<mml:math id="m2">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(2)</label>
</disp-formula>
</p>
<p>Considering that the IIoT devices connects to a MEC server in an industrial settings, we define a variable <inline-formula id="inf1">
<mml:math id="m3">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="fraktur">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> to determine whether the MEC servers &#x3a6;<sub>
<italic>k</italic>
</sub> are deployed at location <inline-formula id="inf2">
<mml:math id="m4">
<mml:mi mathvariant="fraktur">L</mml:mi>
</mml:math>
</inline-formula>; then, we can express the variable as follows:<disp-formula id="e3">
<mml:math id="m5">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="fraktur">R</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>1</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>&#x2009;if&#x2009;MEC&#x2009;server&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mtext>&#x2009;is&#x2009;deployed&#x2009;at&#x2009;location&#x2009;</mml:mtext>
<mml:mi mathvariant="fraktur">L</mml:mi>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mn>0</mml:mn>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>&#x2009;otherwise.&#x2009;</mml:mtext>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(3)</label>
</disp-formula>
</p>
<p>However, let the probability that there is no accessible MEC server available for the IIoT device be represented as <italic>&#x3c1;</italic>
<sub>
<italic>o</italic>
</sub> at a distance <italic>&#x3b4;</italic> such that MLS task offloading can take place is given by<disp-formula id="e4">
<mml:math id="m6">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>o</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>F</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d1;</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(4)</label>
</disp-formula>
</p>
<p>The state of <italic>&#x3c1;</italic>
<sub>
<italic>o</italic>
</sub> could occur when all the MEC servers are engaged with an equally important task to execute. However, the IIoT device will move into a waiting state and continue to retry till a connection is established to a MEC server. This state is considered in the MLS task offload model in the following subsection.</p>
</sec>
<sec id="s3-2">
<title>Computational Machine Learning&#x2013;Based Security Task Offloading Model</title>
<p>In a MEC-IIoT environment, each IIoT device executes MLS locally or remotely on the MEC servers. We represent each MLS task as <italic>&#x3c6;</italic>[<italic>&#x3b3;</italic>, <italic>&#x3c4;</italic>, <italic>&#x3ba;</italic>] where <italic>&#x3b3;</italic> denotes the input size (in bit), <italic>&#x3c4;</italic> denotes completion deadline (in seconds), and <italic>&#x3ba;</italic> is the computational workload intensity (in CPU cycles per bit). Moreover, the MLS algorithms are implemented on various MEC servers based on a virtualized platform (<xref ref-type="bibr" rid="B4">Bing et al., 2019</xref>; <xref ref-type="bibr" rid="B7">Doan et al., 2019</xref>) that leverages the current improvements in NFV, information-centric, and software-defined network. During task offloading processes, the IIoT devices could be destructed by network attacks, such as denial-of-service (DoS) network flooding, increasing energy consumption and latency. In our proposed model, the MLS detects network attacks, thereby mitigating all attacks to enhance the optimal offloading process. All our assumptions are based on these virtualization technologies. The MLS begins its process on the IIoT devices and performs deep intrusion analysis, which requires high computation resources on the MEC server. During the MLS task offloading process, energy and latency must be paramount. We represent the task offloading algorithms with the principle of the task call graph. <xref ref-type="fig" rid="F2">Figure 2</xref> shows the directed acyclic graph (DAG) of a computational offloading.</p>
<fig id="F2" position="float">
<label>FIGURE 2</label>
<caption>
<p>IIoT to MEC DAG representation.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g002.tif"/>
</fig>
<p>For a computational MLS task <italic>&#x3c6;</italic>[<italic>&#x3b3;</italic>, <italic>&#x3c4;</italic>, <italic>&#x3ba;</italic>] with CPU clock speed <italic>fm</italic>, the total energy that is required to execute the task on the IIoT is derived as follows:<disp-formula id="e5">
<mml:math id="m7">
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>z</mml:mi>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>&#x3ba;</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:math>
<label>(5)</label>
</disp-formula>and the base execution latency task of <italic>&#x3c6;</italic>[<italic>&#x3b3;</italic>, <italic>&#x3c4;</italic>, <italic>&#x3ba;</italic>] can be calculated with the equation<disp-formula id="e6">
<mml:math id="m8">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>&#x3ba;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(6)</label>
</disp-formula>where <italic>z</italic> &#x3d; 1 denotes the coefficient of proportionality of the energy consumed per CPU cycle on the IIoT device. If the wireless bandwidth required during task offloading from each IIoT devices to the proximal MEC is <inline-formula id="inf3">
<mml:math id="m9">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, <italic>&#x3d6;</italic>
<sub>
<italic>m</italic>
</sub> is the latency on the wireless network during the task offloading, and <inline-formula id="inf4">
<mml:math id="m10">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> is the size of offloaded task, then we compute the wireless communication overheads <italic>&#x3bd;</italic>
<sub>
<italic>m</italic>
</sub> as follows:<disp-formula id="e7">
<mml:math id="m11">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3d6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(7)</label>
</disp-formula>
</p>
<p>According to <xref ref-type="disp-formula" rid="e5">Eqs 5</xref>&#x2013;<xref ref-type="disp-formula" rid="e7">7</xref>, we can then compute the computational overhead in terms of offloading latency and energy as follows:<disp-formula id="e8">
<mml:math id="m12">
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:math>
<label>(8)</label>
</disp-formula>where <inline-formula id="inf5">
<mml:math id="m13">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf6">
<mml:math id="m14">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> represent the weighting parameters of computational time and energy for IIoT device, respectively. The <inline-formula id="inf7">
<mml:math id="m15">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> and <inline-formula id="inf8">
<mml:math id="m16">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> are expressed mathematically as follows:<disp-formula id="e9">
<mml:math id="m17">
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2208;</mml:mo>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>0,1</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>,</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x2b;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>&#x3b1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>.</mml:mo>
</mml:math>
<label>(9)</label>
</disp-formula>
</p>
<p>Suppose each MLS task must be offloaded from the IIoT to the MEC server at the edge of the network, then the probability of losing a task during the offloading process is <italic>&#x3c1;</italic>. If a task is destroyed on any wireless networks, then it must be re-offloaded across a different route in the distributed network. The probability that the MLS task is offloaded successfully is denoted by (1 &#x2212; <italic>&#x3c1;</italic>)<sup>
<italic>r</italic>
</sup>, where r is the total number of remote radio units (RRU) available and (1 &#x2212; <italic>&#x3c1;</italic>) is the probability of successful offloaded task in <italic>d</italic> consecutive independent trials.</p>
<p>An IIoT composed of <italic>d</italic> MLS tasks is much less likely to offload efficiently on the first trial. In such a scenario, the <italic>d</italic> tasks must be offloaded over the RRU network until it is received successfully or a total of <italic>rd</italic> successful transmissions. The probability of such an instance is expressed as (1 &#x2212; <italic>&#x3c1;</italic>)<sup>
<italic>rd</italic>
</sup>. Let <italic>&#x3c9;</italic> be the random variable representing the number of times the MLS is offloaded over the selected wireless network path, the average number of offloaded tasks through the shortest path, <italic>E</italic>(<italic>&#x3c9;</italic>), and <italic>q</italic>
<sub>
<italic>r</italic>,<italic>d</italic>
</sub> denote the probability that the task is offloaded successfully in <italic>d</italic> trials. The <italic>q</italic>
<sub>
<italic>r</italic>,<italic>d</italic>
</sub> can be expressed mathematically as follows:<disp-formula id="equ1">
<mml:math id="m18">
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
</disp-formula>
<disp-formula id="e10">
<mml:math id="m19">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:munderover>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(10)</label>
</disp-formula>
</p>
<p>All the previous attempts must have failed for the re-offloading to be accomplished on the <italic>dth</italic> try. For the possibility that the offloading succeeded for some <italic>j</italic> &#x3c; <italic>d</italic> is <inline-formula id="inf9">
<mml:math id="m20">
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>, the prospect of failing is <inline-formula id="inf10">
<mml:math id="m21">
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo movablelimits="false" form="prefix">&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula>. Finally, the <italic>dth</italic> attempt must succeed to obtain (1 &#x2212; <italic>&#x3c1;</italic>)<sup>
<italic>r</italic>
</sup>. However, using non-recursive computation, <xref ref-type="disp-formula" rid="e8">Eq. 8</xref> can be expressed as follows:<disp-formula id="equ2">
<mml:math id="m22">
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>p</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
<disp-formula id="e11">
<mml:math id="m23">
<mml:msub>
<mml:mrow>
<mml:mi>q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(11)</label>
</disp-formula>
</p>
<p>Then, the average number of transmissions required to offload a single MLS task to the MEC is given by<disp-formula id="e12">
<mml:math id="m24">
<mml:mi>E</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mi>d</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c1;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(12)</label>
</disp-formula>
</p>
<p>We can also estimate the energy saved after offloading the MLS task completely to the selected MEC server as follows:<disp-formula id="e13">
<mml:math id="m25">
<mml:msup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(13)</label>
</disp-formula>where <inline-formula id="inf11">
<mml:math id="m26">
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the <italic>dth</italic> energy saved. If <italic>C</italic>
<sub>
<italic>m</italic>
</sub> represent the computational overhead in terms of offloading latency and energy, then, using <xref ref-type="disp-formula" rid="e4">Eqs 4</xref>, <xref ref-type="disp-formula" rid="e6">6</xref>, <inline-formula id="inf12">
<mml:math id="m27">
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> for offloading MLS task to a MEC server can be calculated with the equation<disp-formula id="e14">
<mml:math id="m28">
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>d</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mi>v</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>E</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3c9;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(14)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-3">
<title>Industrial Internet of Things to Multi-Access Edge Computing Network Connectivity Analysis</title>
<p>We determined the shortest route from an IIoT device (source node) to a selected MEC server by analyzing a collection of available wireless links with a minimum distance and congestion (minimum latency). In the proposed model, the IIoT device denotes the source node, and the target vertex is the MEC server. We apply the shortest route analysis (SRA) approach to solve a minimization problem to create an optimization technique for the offloading process. Our adopted SRA uses the greedy search algorithm to find the optimal solution.</p>
<p>Let <italic>S</italic> denote a set of IIoT devices (nodes) connected in a network whose final shortest route to the MEC server is determined, <italic>&#x3bc;</italic>
<sub>
<italic>n</italic>
</sub> is the source node, and &#x3a6;<sub>
<italic>k</italic>
</sub> is any of the MEC server nodes connected to <italic>&#x3bc;</italic>
<sub>
<italic>n</italic>
</sub>. <italic>&#x3d1;</italic> is the cost of weight or the network traffic on the link between two nodes, and then, <italic>&#x3d1;</italic>, in our scenario, can be defined as <italic>&#x3d1;</italic> &#x3d; [<italic>N</italic>
<sub>
<italic>T</italic>
</sub>, <italic>&#x3b4;</italic>], where <italic>N</italic>
<sub>
<italic>T</italic>
</sub> is the offloaded tasks between two nodes, and <italic>&#x3b4;</italic> is the distance between the nodes with a priority queue <italic>Q</italic> of<disp-formula id="e15">
<mml:math id="m29">
<mml:mi>Q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">&#x3a6;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(15)</label>
</disp-formula>
</p>
<p>We can represent our network topology as a directed graph <italic>G</italic> and find the shortest distance between the IIoT device and MEC server using <xref ref-type="statement" rid="alg1">Algorithm 1</xref>.</p>
<p>
<statement content-type="algorithm" id="alg1">
<label>Algorithm 1</label>
<p>SRA(G, <bold>
<italic>&#x3d1;</italic>
</bold>, S)</p>
</statement>
</p>
<p>
<statement>
<p>
<inline-graphic xlink:href="frsip-02-788943-fx1.tif"/>
</p>
</statement>
</p>
</sec>
<sec id="s3-4">
<title>Adaptive Time Synchronization</title>
<p>We made the following assumptions during our design process to help the IIoT device synchronize with the MEC server during the offloading process.<list list-type="simple">
<list-item>
<p>&#x2022; Each IIoT device is considered a node that offloads its task and receives responses from the proximal MEC server.</p>
</list-item>
<list-item>
<p>&#x2022; Each IIoT device maintains its time synchronization information.</p>
</list-item>
<list-item>
<p>&#x2022; Each IIoT device uses its address (mac address) as an ID during the synchronization process to avoid collisions.</p>
</list-item>
<list-item>
<p>&#x2022; It is assumed that the network can consist of more than one MEC server with multiple functionalities.</p>
</list-item>
</list>
</p>
<p>The following two major steps were considered during the ATS processes:</p>
<sec id="s3-4-1">
<title>Two-Way Time Synchronization Between Multi-Access Edge Computing Server and Industrial Internet of Things Device</title>
<p>In this section, the two-way timing synchronization and update mechanism for the queuing process required for task offloading are determined. The timing process requires minimal complexity due to the resource constraint problems faced by the IIoT device. The proposed algorithm is self-configured, which allows each IIoT device to record, update, and store its timestamps with its local clock. This method requires three phases: <italic>discovery phase, synchronization</italic>, and <italic>the network evaluation phase</italic>. The following brief description summarizes the ATS;<list list-type="simple">
<list-item>
<p>1. Discovery phase: This is when the IIoT device identifies the proximal MEC server in the network.</p>
</list-item>
<list-item>
<p>2. Synchronization: The ATS establishes a link between the selected MEC server and requests time for offloading based on the priority and available jobs.</p>
</list-item>
<list-item>
<p>3. Evaluation phase: The MEC server re-examines the available jobs in the process queue and network congestion to update the various IIoT devices.</p>
</list-item>
</list>
</p>
<p>In the ATS, the time updates received by the IIoT device determine when to initiate the task offloading process to minimize energy consumption.</p>
<p>
<xref ref-type="fig" rid="F3">Figure 3</xref> notes a two-way IIoT-MEC-IIoT time exchange handshake between an IIoT device and a MEC server. The timestamps <italic>T</italic>
<sub>1</sub>, <italic>T</italic>
<sub>2</sub>, <italic>T</italic>
<sub>3</sub>, and <italic>T</italic>
<sub>4</sub> are obtained from the duration of the <italic>k</italic>th offloading request based on the local clocks of IIoT and MEC server, respectively. During the request process, <italic>T</italic>
<sub>1</sub> and <italic>T</italic>
<sub>4</sub> signify the local clock time captured by the IIoT device, whereas <italic>T</italic>
<sub>2</sub> and <italic>T</italic>
<sub>3</sub> denote local clock time captured by MEC server. First, the IIoT sends an offloading request to the MEC server with its current timestamp <italic>T</italic>
<sub>1</sub> after obtaining the shortest path with the SRA. The proximal MEC server records and keeps its new time <italic>T</italic>
<sub>2</sub> at the reception of the request. At time <italic>T</italic>
<sub>3</sub>, the MEC server sends a synchronization message to the IIoT device including <italic>T</italic>
<sub>2</sub> and <italic>T</italic>
<sub>3</sub> and a timestamp <italic>T</italic>
<sub>4</sub> for the offloading to initiate. The IIoT device has a new set of timestamps <italic>T</italic>
<sub>1</sub>, <italic>T</italic>
<sub>2</sub>, <italic>T</italic>
<sub>3</sub>, and <italic>T</italic>
<sub>4</sub> rounds of message exchanges. On the basis of the pairwise synchronization model in <xref ref-type="fig" rid="F3">Figure 3</xref>, we represent the clock offset in the following equations:<disp-formula id="e16">
<mml:math id="m30">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b6;</mml:mi>
</mml:math>
<label>(16)</label>
</disp-formula>
<disp-formula id="e17">
<mml:math id="m31">
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3c8;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
</mml:math>
<label>(17)</label>
</disp-formula>
</p>
<fig id="F3" position="float">
<label>FIGURE 3</label>
<caption>
<p>ATS time Synchronization model.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g003.tif"/>
</fig>
<p>
<italic>&#x3c8;</italic> is the clock offset of source IIoT device, <italic>d</italic> is the propagation delay assuming symmetric direction is employed, and <italic>&#x3b6;</italic> and <italic>&#x3b2;</italic> are random variables. The presence of clock skew causes the drifting of clock offset in the IIoT end device and the MEC server. The ATS improves the clock skew to secure offloading reliability and optimize energy consumption in synchronization processes. The clock offset (<italic>&#x3c8;</italic>) and propagation delay <italic>d</italic> can be estimated as follows:<disp-formula id="e18">
<mml:math id="m32">
<mml:mi>&#x3c8;</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2212;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(18)</label>
</disp-formula>
<disp-formula id="e19">
<mml:math id="m33">
<mml:mi>d</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(19)</label>
</disp-formula>
</p>
<p>We considered the errors as a Gaussian probability density function to reduce synchronization errors. The IIoT devices&#x2019; clock offsets are changed regularly to ensure that the clock and timing synchronization is reliable. The timing synchronization ensures that the IIoT device offloading its MLS task maintains functional network connectivity.</p>
</sec>
<sec id="s3-4-2">
<title>ATS Clock Offset Estimation Using Maximum Likelihood Technique</title>
<p>To retain the MLS task offloading process described in <xref ref-type="fig" rid="F3">Figure 3</xref>, we assume that the clock skew is absent by this period. The clock offset for maximum likelihood (ML) and CRLB across linked IIoT devices is calculated using the two-way timing data exchange paradigm. Because of the task offloading latency over the network, the random variables <italic>&#x3b6;</italic> and <italic>&#x3b2;</italic> are assumed to be autonomous and arbitrarily distributed, for the corresponding mean <italic>&#x3bd;</italic> and variance <italic>&#x3be;</italic>
<sup>2</sup> as <inline-formula id="inf13">
<mml:math id="m34">
<mml:mi>C</mml:mi>
<mml:mo>&#x223c;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mi mathvariant="fraktur">G</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>. Hence, the likelihood function is realized in <inline-formula id="inf14">
<mml:math id="m35">
<mml:mi mathvariant="fraktur">I</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b6;</mml:mi>
</mml:math>
</inline-formula> and <inline-formula id="inf15">
<mml:math id="m36">
<mml:mi mathvariant="double-struck">H</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>4</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3b2;</mml:mi>
</mml:math>
</inline-formula> observations. Mathematically, the ML is computed as follows:<disp-formula id="e20">
<mml:math id="m37">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>;</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mfenced open="/" close="">
<mml:mrow>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>n</mml:mi>
<mml:mfenced open="/" close="">
<mml:mrow>
</mml:mrow>
</mml:mfenced>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(20)</label>
</disp-formula>
</p>
<p>Applying <xref ref-type="disp-formula" rid="e17">Eq. 17</xref> to estimate ML expression<disp-formula id="e21">
<mml:math id="m38">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2061;</mml:mo>
<mml:mi>exp</mml:mi>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>&#x3c0;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mfenced open="[" close="">
<mml:mrow>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:mfenced open="" close="}">
<mml:mrow>
<mml:mfenced open="" close="]">
<mml:mrow>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>d</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3d5;</mml:mi>
<mml:mo>&#x2b;</mml:mo>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(21)</label>
</disp-formula>
</p>
<p>By differentiating the log-likelihood role in <xref ref-type="disp-formula" rid="e18">Eq. 18</xref>, we arrive at<disp-formula id="e22">
<mml:math id="m39">
<mml:mtable class="aligned">
<mml:mtr>
<mml:mtd columnalign="right">
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2322;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>arg</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
<label>(22)</label>
</disp-formula>
</p>
<p>Therefore, ML of clock offset is estimated by<disp-formula id="e23">
<mml:math id="m40">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mi mathvariant="double-struck">H</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2322;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>E</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(23)</label>
</disp-formula>
<disp-formula id="e24">
<mml:math id="m41">
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2322;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>arg</mml:mi>
<mml:munder>
<mml:mrow>
<mml:mi>max</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:munder>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(24)</label>
</disp-formula>where <italic>N</italic> designates the number of observations; <inline-formula id="inf16">
<mml:math id="m42">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> and <inline-formula id="inf17">
<mml:math id="m43">
<mml:mrow>
<mml:mover accent="true">
<mml:mrow>
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:mrow>
<mml:mo>&#x304;</mml:mo>
</mml:mover>
</mml:mrow>
</mml:math>
</inline-formula> denote the mean sampling of observations <inline-formula id="inf18">
<mml:math id="m44">
<mml:mi mathvariant="fraktur">I</mml:mi>
</mml:math>
</inline-formula> and <inline-formula id="inf19">
<mml:math id="m45">
<mml:mi mathvariant="double-struck">H</mml:mi>
</mml:math>
</inline-formula>.</p>
</sec>
<sec id="s3-4-3">
<title>Cramer&#x2013;Rao Lower Bound Technique</title>
<p>The deterministic parameter of the approximate estimate in variance is the foundation of CRLB. It is mostly useful in practice due to its easy implementation. Assume that Equation <xref ref-type="disp-formula" rid="e15">(15)</xref> fulfills a regularity requirement in CRLB that exists in a given estimation is 0 and that the CRLB result is obtained by differentiating Equation (15) as follows:<disp-formula id="e25">
<mml:math id="m46">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(25)</label>
</disp-formula>
</p>
<p>Then, the CRLB for clock offset is given by<disp-formula id="e26">
<mml:math id="m47">
<mml:mi mathvariant="double-struck">H</mml:mi>
<mml:mi>a</mml:mi>
<mml:mi>r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mover>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2322;</mml:mo>
</mml:mrow>
</mml:mover>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2265;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>E</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mi>I</mml:mi>
<mml:mi>n</mml:mi>
<mml:mi>L</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x2202;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3d5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3be;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(26)</label>
</disp-formula>
</p>
</sec>
</sec>
<sec id="s3-5">
<title>Industrial Internet of Things to Multi-Access Edge Computing Pair Selection and Scheduling Using Markov Transition</title>
<p>Assume that there is <italic>c</italic> number of MEC servers at the network edge, and the various IIoT devices preparing to offload their data are organized in a queue according to a Poisson process with rate <italic>&#x3bb;</italic> &#x3e; 0. The inter-arrival times of the various IIoT devices are then independent and identically exponentially distributed with <italic>&#x3bb;</italic>. The service times are also independent and identically exponentially distributed with rate <italic>&#x3c5;</italic> &#x3e; 0. We apply First-In First-Out principle and leave the queue <bold>Q</bold> capacity to infinity. This information indicates that the process <inline-formula id="inf20">
<mml:math id="m48">
<mml:mi mathvariant="double-struck">X</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>t</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula>, where <inline-formula id="inf21">
<mml:math id="m49">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> represent the number of IIoT end devices in the queue at time <italic>t</italic>, is a homogeneous Markov chain on state space <inline-formula id="inf22">
<mml:math id="m50">
<mml:mi mathvariant="double-struck">S</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="double-struck">N</mml:mi>
</mml:math>
</inline-formula>. The continuous-time Markov transition employs the birth-and-death process, where <bold>birth</bold> increase the number of IIoT end devices in the offloading queue (state variables) by one and <bold>death</bold> decrease the state by one. When birth transpires, the number of IIoT devices in the queue advances from state <italic>n</italic> to <italic>n</italic> &#x2b; 1. When a death occurs, the queue goes from state <italic>n</italic> to state <italic>n</italic> &#x2212; 1. The Markov chain state diagram is represented in <xref ref-type="fig" rid="F4">Figure 4</xref>.</p>
<fig id="F4" position="float">
<label>FIGURE 4</label>
<caption>
<p>Continuous-time birth-and-death process state diagram.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g004.tif"/>
</fig>
<p>For any <italic>n</italic> &#x2265; 0, we represent <italic>&#x3bb;</italic>
<sub>
<italic>n</italic>
</sub> by the transition rate from state <italic>n</italic> to state <italic>n</italic> &#x2b; 1 and for any <italic>n</italic> &#x2265; 1, we denote by <italic>&#x3c5;</italic>
<sub>
<italic>n</italic>
</sub> the transition rate from state <italic>n</italic> to state <italic>n</italic> &#x2212; 1. We assume that <italic>&#x3c5;</italic>
<sub>
<italic>n</italic>
</sub> &#x3e; 0 for any <italic>n</italic> &#x2265; 1 and that <italic>&#x3c5;</italic>
<sub>
<italic>n</italic>
</sub> &#x3e; 0 for any <italic>n</italic> &#x2265; 1. The IIoT end device MLS task offloading process generates <bold>Q</bold> of chain represented as follows:<disp-formula id="e27">
<mml:math id="m51">
<mml:mi mathvariant="bold">Q</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mtable class="matrix">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2212;</mml:mo>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>3</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22ee;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mo>&#x22f1;</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(27)</label>
</disp-formula>
</p>
<p>The discrete-time Markov chain embedded during the transition period of <inline-formula id="inf23">
<mml:math id="m52">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula> consists of the parameters <bold>p</bold>
<sub>
<italic>n</italic>
</sub> and <bold>q</bold>
<sub>
<italic>n</italic>
</sub>, for <italic>n</italic> &#x2265; 1 is expressed mathematically as follows:<disp-formula id="e28">
<mml:math id="m53">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">p</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mspace width="1em"/>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:mspace width="1em"/>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">q</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(28)</label>
</disp-formula>
</p>
<p>However, we introduce a quantity <italic>&#x3b7;</italic>
<sub>
<italic>n</italic>
</sub> defined as follows:<disp-formula id="e29">
<mml:math id="m54">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mtext>&#x2009;and&#x2009;</mml:mtext>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(29)</label>
</disp-formula>
</p>
<p>We then compute the sums <italic>A</italic> as follows:<disp-formula id="e30">
<mml:math id="m55">
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
<label>(30)</label>
</disp-formula>
</p>
<p>The transition process converges to equilibrium with the expected time, <inline-formula id="inf24">
<mml:math id="m56">
<mml:msub>
<mml:mrow>
<mml:mi>w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="double-struck">E</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
<mml:mo stretchy="false">&#x2223;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula>, of the first passage to state 0, starting from state <italic>n</italic>. The first passage time <inline-formula id="inf25">
<mml:math id="m57">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mo stretchy="false">)</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> to state 0 is defined as follows:<disp-formula id="e31">
<mml:math id="m58">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3c4;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>inf</mml:mi>
<mml:mfenced open="{" close="}">
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo stretchy="false">&#x2223;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(31)</label>
</disp-formula>where <italic>T</italic>
<sub>1</sub> is the first instant of jump of chain <inline-formula id="inf26">
<mml:math id="m59">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula>. The transient process with respect to <inline-formula id="inf27">
<mml:math id="m60">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula> can be represented using the annotations<disp-formula id="equ3">
<mml:math id="m61">
<mml:mi mathvariant="double-struck">X</mml:mi>
<mml:mtext>&#x2009;is&#x2009;transient</mml:mtext>
<mml:mo>&#x21d4;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
<mml:mo>,</mml:mo>
</mml:math>
</disp-formula>or<disp-formula id="equ4">
<mml:math id="m62">
<mml:mi mathvariant="double-struck">X</mml:mi>
<mml:mtext>&#x2009;is&#x2009;recurrent</mml:mtext>
<mml:mo>&#x21d4;</mml:mo>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:math>
</disp-formula>
</p>
<p>To define the positive recurrence of chain <inline-formula id="inf28">
<mml:math id="m63">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula>, it is no longer adequate in the discrete state to examine the invariant probability, and chain <inline-formula id="inf29">
<mml:math id="m64">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula> is non-explosive, which is expressed as follows:<disp-formula id="e32">
<mml:math id="m65">
<mml:msub>
<mml:mrow>
<mml:mi>v</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="array">
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:msubsup>
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mtext>&#x2009;if&#x2009;</mml:mtext>
<mml:mi>A</mml:mi>
<mml:mo>&#x3c;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="center">
<mml:mn>0</mml:mn>
</mml:mtd>
<mml:mtd columnalign="center">
<mml:mtext>&#x2009;if&#x2009;</mml:mtext>
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>&#x221e;</mml:mi>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(32)</label>
</disp-formula>where <inline-formula id="inf30">
<mml:math id="m66">
<mml:msubsup>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
</mml:msubsup>
</mml:math>
</inline-formula> is the probability, starting from <italic>n</italic> that the first return to state <italic>n</italic> occurs at <inline-formula id="inf31">
<mml:math id="m67">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula>. If <italic>n</italic> &#x2265; 0, applying <xref ref-type="disp-formula" rid="e30">Equation (30</xref>) to <italic>&#x3b7;</italic>
<sub>
<italic>n</italic>
</sub> will produce<disp-formula id="e33">
<mml:math id="m68">
<mml:msub>
<mml:mrow>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mfenced open="{" close="">
<mml:mrow>
<mml:mtable class="cases">
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>&#x2009;if&#x2009;</mml:mtext>
<mml:mi>n</mml:mi>
<mml:mo>&#x2264;</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd columnalign="left">
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msup>
<mml:msup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>c</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mspace width="1em"/>
</mml:mtd>
<mml:mtd columnalign="left">
<mml:mtext>&#x2009;if&#x2009;</mml:mtext>
<mml:mi>n</mml:mi>
<mml:mo>&#x2265;</mml:mo>
<mml:mi>c</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(33)</label>
</disp-formula>
</p>
<p>However, the quantity <italic>A</italic> defined in <xref ref-type="disp-formula" rid="e32">Equation (32)</xref> is given by<disp-formula id="e34">
<mml:math id="m69">
<mml:mi>A</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>&#x2212;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:munderover>
<mml:mfrac>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi>n</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:mo>&#x2b;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mo>!</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x221e;</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>c</mml:mi>
<mml:mi>&#x3c5;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>&#x3bb;</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(34)</label>
</disp-formula>where <italic>A</italic> &#x3c; <italic>&#x221e;</italic>&#x21d4;<italic>&#x3bb;</italic> &#x3e; <italic>c&#x3c5;</italic>. The above relations indicate that chain <inline-formula id="inf32">
<mml:math id="m70">
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:math>
</inline-formula> is non-explosive and uniform.</p>
</sec>
<sec id="s3-6">
<title>Estimating the Task Offloading Error</title>
<p>In this paper, we considered two types of errors that are likely to occur.</p>
<sec id="s3-6-1">
<title>Maximum Location Error</title>
<p>The proposed algorithm requires the IIoT device to find the shortest route to the MEC server. Hence, the location of the IIoT devices and the MEC server in the network is important. Therefore, minimizing location error <italic>M</italic>
<sub>
<italic>E</italic>
</sub> is determined to measure the connected IIoT device&#x2019;s estimated location (<italic>a</italic>
<sub>2</sub>, <italic>b</italic>
<sub>2</sub>) and the actual location (<italic>a</italic>
<sub>1</sub>, <italic>b</italic>
<sub>1</sub>). The average location error <italic>A</italic>
<sub>
<italic>VE</italic>
</sub> is given by<disp-formula id="e35">
<mml:math id="m71">
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>V</mml:mi>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfrac>
<mml:mrow>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<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>&#x2212;</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:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(35)</label>
</disp-formula>
</p>
<p>We then compute the maximum location error <italic>M</italic>
<sub>
<italic>E</italic>
</sub> achieved by applying the localization approach, which is calculated as follows:<disp-formula id="e36">
<mml:math id="m72">
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>&#x3d;</mml:mo>
<mml:mi>max</mml:mi>
<mml:msqrt>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<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>&#x2212;</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:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2b;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2212;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:msqrt>
</mml:math>
<label>(36)</label>
</disp-formula>
</p>
</sec>
<sec id="s3-6-2">
<title>Offloading Failure Probability</title>
<p>During the MLS task offloading processes, wireless and network channel fluctuation causes fading and shadow effects. The effects cause an offloading failure, which is a problem. Assuming that <italic>&#x3b7;</italic> is the block error rate, <italic>&#x3bd;m</italic> denotes transport block size for offloading the MLS task to the MEC server, and then, the error probability of offloading is given by<disp-formula id="e37">
<mml:math id="m73">
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3b7;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:mi>&#x3b3;</mml:mi>
<mml:mi>&#x3c4;</mml:mi>
<mml:mi>&#x3ba;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>&#x3bd;</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(37)</label>
</disp-formula>
</p>
<p>The offloading failure probability is given by<disp-formula id="e38">
<mml:math id="m74">
<mml:msup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x220f;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="[" close="]">
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>&#x2212;</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:mfenced>
</mml:math>
<label>(38)</label>
</disp-formula>
</p>
<p>Combining the two errors will give the total error rate <italic>T</italic>
<sup>
<italic>err</italic>
</sup> that is likely to occur in the offloading process.<disp-formula id="e39">
<mml:math id="m75">
<mml:msup>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>e</mml:mi>
<mml:mi>r</mml:mi>
<mml:mi>r</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>P</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="italic">&#x3b3;</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x2b;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:math>
<label>(39)</label>
</disp-formula>
</p>
</sec>
</sec>
</sec>
<sec id="s4">
<title>Proposed ASTO Algorithm</title>
<p>This section analyzes the proposed algorithms to enhance the MLS task offloading among the connected IIoT devices and the MEC server. The ASTO algorithm ensures that the IIoT device under attack can offload their MLS tasks to the selected MEC server and receive the attack analysis results in time. The whole detection process must complete in real time to prevent the IIoT device from experiencing downtime. The IIoT must first establish the shortest route to the proximal MEC server in the network hierarchy (<xref ref-type="bibr" rid="B9">Han et al., 2018)</xref>. Assuming that there are different MEC servers available at the edge of the network such as <inline-formula id="inf33">
<mml:math id="m76">
<mml:mrow>
<mml:mo stretchy="false">{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">M</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 mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="script">M</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">}</mml:mo>
</mml:mrow>
</mml:math>
</inline-formula> and that the source node connects to different routes to the MEC server, then the IIoT selects the optimal path that maximizes latency and the synchronization errors. This approach aims to reduce the time required by the IIoT end device to thoroughly perform attack detection and minimize energy consumption while preserving synchronization accuracy. The proposed ASTO algorithm is divided into two: the machine learning&#x2013;based security system and the adaptive task offload.</p>
<sec id="s4-1">
<title>Machine Learning&#x2013;Based Security System</title>
<p>In this subsection, we demonstrate how the online machine learning method was used to design network attack detection system deployed to the MEC server. All the network traffic captured (MLS) by the IIoT devices are offloaded to MEC server using the proposed ASTO algorithm. Several machine learning methods exist in literature, but, to prove our concept, a stochastic gradient descent (SGD) was adopted to design an online network attack detection system. We adopted SGD due to the dynamic (frequent change in environmental data and network traffic) nature of the data offloaded from the IIoT devices. Moreover, cyberattackers keep changing their approaches. It is difficult to rely on classical machine learning methods to design a network attack detection system. Hence, using online SGD allows the model to learn new attacks and system operational data to prevent the model from becoming obsolete. Unlike batch gradient descent, which calculates the gradient using the whole dataset, SGD, also known as incremental gradient descent, iterates over a single randomly selected training sample to identify minimums or maximums. To achieve accurate results with SGD, the data sample should be in a stochastic order by shuffling the training set for every epoch. First, we define a cost function for determining the weights of <italic>i</italic> &#x2212; <italic>th</italic> observation in the training dataset for an adaptive linear neuron as follows:<disp-formula id="e40">
<mml:math id="m77">
<mml:mi>J</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
</mml:mfenced>
<mml:mo>&#x3d;</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d6;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(40)</label>
</disp-formula>where <inline-formula id="inf34">
<mml:math id="m78">
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:math>
</inline-formula> is least squares with features from the training data, <inline-formula id="inf35">
<mml:math id="m79">
<mml:mi>y</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mrow>
<mml:mo stretchy="false">[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</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>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn>2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:mo>&#x2026;</mml:mo>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo stretchy="false">]</mml:mo>
</mml:mrow>
<mml:mo>&#x2208;</mml:mo>
<mml:mi mathvariant="double-struck">R</mml:mi>
</mml:math>
</inline-formula> denote the observations, <bold>w</bold> &#x3d; [<bold>w</bold>
<sub>1</sub>, <bold>w</bold>
<sub>2</sub>, <italic>&#x2026;</italic>, <bold>w</bold>
<sub>
<italic>i</italic>
</sub>] are the weight vectors, and <italic>&#x3d6;</italic> represent the an activation function. If a defined negative gradient weight change &#x394;<bold>w</bold> is multiply by a learning rate <bold>r</bold>, then the cost function can be expressed as follows:<disp-formula id="e41">
<mml:math id="m80">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mo>&#x2207;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:munderover accentunder="false" accent="false">
<mml:mrow>
<mml:mo>&#x2211;</mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mn>1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d6;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(41)</label>
</disp-formula>
</p>
<p>In batch gradient descent, the gradient is computed from the whole training set to minimize a cost function. If we have a large dataset with millions of data points, then performing batch gradient descent may be extremely expensive because we must assess the whole training dataset once we go one step closer to the global minimum. Rather than updating the weights based on the total cumulative errors across all samples <inline-formula id="inf36">
<mml:math id="m81">
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close="">
<mml:mrow>
<mml:mspace width="-0.17em"/>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mi>i</mml:mi>
<mml:mfenced open="" close=")">
<mml:mrow>
<mml:mspace width="-0.17em"/>
</mml:mrow>
</mml:mfenced>
</mml:math>
</inline-formula> through the &#x394;<bold>w</bold> described above, we may utilize the following update in the SGD method:<disp-formula id="e42">
<mml:math id="m82">
<mml:mi mathvariant="normal">&#x394;</mml:mi>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mo>&#x2212;</mml:mo>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mo>&#x2207;</mml:mo>
<mml:mi>J</mml:mi>
<mml:mo>&#x3d;</mml:mo>
<mml:mi mathvariant="bold">r</mml:mi>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
<mml:mo>&#x2212;</mml:mo>
<mml:mi>&#x3d6;</mml:mi>
<mml:msup>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mfenced>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mfenced open="(" close=")">
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:mfenced>
</mml:mrow>
</mml:msup>
</mml:math>
<label>(42)</label>
</disp-formula>
</p>
<p>However, we update the weights incrementally when new data arrive from IIoT devices.</p>
</sec>
<sec id="s4-2">
<title>Adaptive Security Task Offloading</title>
<p>Assuming the <italic>T</italic>
<sub>
<italic>sync</italic>
</sub> is the average synchronization time (in seconds) of the MEC server connected with <italic>S</italic>
<sub>
<italic>i</italic>
</sub> IIoT devices, <inline-formula id="inf37">
<mml:math id="m83">
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="double-struck">X</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:msub>
</mml:math>
</inline-formula> denotes the various of IIoT in the queue, and <italic>T</italic>
<sub>
<italic>resp</italic>
</sub> is the average response time of the MEC server.</p>
<p>
<statement content-type="algorithm" id="alg2">
<label>Algorithm 2</label>
<p>Proposed Adaptive Time Synchronization</p>
</statement>
</p>
<p>
<statement>
<p>
<inline-graphic xlink:href="frsip-02-788943-fx2.tif"/>
</p>
<p>The shortest route between the selected MEC server and the source node is determined based on <xref ref-type="statement" rid="alg2">Algorithm 2</xref>. The MEC server creates an offloading task schedule and communicates the result to the IIoT devices. If any of the MEC servers experience changes or delays, then the new offloading time is synchronized with the IIoT devices to minimized latency, energy consumption, and offloading errors. The task offloading process initializes after the aforementioned processes. Finally, the selected MEC server applies the online SGD to perform attack detection and return the security responses to the corresponding IIoT devices in the network to implement the right security policies on the network, where <italic>T</italic>
<sub>
<italic>off</italic>
</sub> is the scheduled offloading time by the MEC server, <italic>T</italic>
<sub>sn</sub> is the synchronized time on the IIoT end device, and <italic>T</italic>
<sub>
<italic>local</italic>
</sub> is the local time of the IIoT end device.</p>
</statement>
</p>
</sec>
</sec>
<sec id="s5">
<title>Performance Evaluation and Results Analysis</title>
<p>In this section, we present the experimental implementation of our proposed system in a controlled environment using MATLAB Simulink library. Our design mimics a real-world IIoT scenario.</p>
<sec id="s5-1">
<title>Testbed Preparation</title>
<p>The setup consists of three IIoT devices connected in a mesh topology to two remote radio head made up of wireless routers. The IIoT devices connect to the router <italic>via</italic> its wireless links. The MEC layer consists of three MEC servers connected in a mesh topology <italic>via</italic> a border router. In each of the experiments, the network traffics <italic>w</italic> on the various links are varied. <xref ref-type="fig" rid="F5">Figure 5</xref> shows a sample of the SRA algorithm finding the shortest route from the IIoT device to the MEC server based on <italic>w</italic> on the network link. Node 1, Node 2, and Node 3 represent our IIoT end devices, Node 4 and Node 5 form the RHH that connects the three IIoT devices in a mesh topology, Node 6 and Node 7 are the border routers that connect the MEC servers (Node 8, Node 9, and Node 10) at the edge of the network. The red path indicates the selected optimal path with minimum network congestion from a source node 1 (IIoT end device) to a MEC server (Node 10). The values assigned to the links between the connected nodes show the network traffic <italic>w</italic>.</p>
<fig id="F5" position="float">
<label>FIGURE 5</label>
<caption>
<p>Sra algorithm response and network connection.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g005.tif"/>
</fig>
<p>The MEC servers contain the trained MLS model for network attack analysis, the synchronization algorithm, and the Markov chain queuing algorithm. Because the IIoT devices are resource constraints, we reduced the computational stress on these nodes. We deployed a simple model consisting of a network packet capturing, a table for the queuing, synchronization time parameter, and task offloading system. The IIoT devices sampled different sizes of the test set and submit it to the MEC servers. In each sample, MLS model performs network attack analysis and send responds to the IIoT device that offloaded the task.</p>
</sec>
<sec id="s5-2">
<title>Dataset Used</title>
<p>There are no approved public datasets for network attack detection created in the context of IIoT devices to MEC networks during our studies, as far as we know. However, we created and tested the MLS model&#x2019;s performance using a publicly available DoS dataset known as the CICDDoS2019 intrusion datasets created by the Canadian Institute for Cybersecurity (<xref ref-type="bibr" rid="B15">Sharafaldin et al., 2019</xref>). CICDDoS2019 is a collection of benign and up-to-date common DDoS attacks that closely mimics real-world data. It also provides the results of a network traffic analysis with labeled flows based on the time stamp, source and destination IPs, source and destination ports, protocols, and attack using CICFlowMeter-V3. PortMap, NetBIOS, LDAP, MSSQL, UDP, UDP-Lag, SYN, NTP, DNS, and SNMP are among the contemporary reflecting DDoS network attacks included in the dataset. The CICDDoS2019 dataset suites our experiment due to its modern attacks, structure, and network architecture used during its creation.</p>
</sec>
<sec id="s5-3">
<title>Numerical Results</title>
<p>In the experiment, we repeated our algorithms multiple times in a loop (30 iterations) and calculated an average value from the results obtained. <xref ref-type="table" rid="T1">Table 1</xref> shows the response from the MLS model, which was trained and deployed to the MEC servers.</p>
<table-wrap id="T1" position="float">
<label>TABLE 1</label>
<caption>
<p>SGD MLS model on the MEC server.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th colspan="4" align="left">Performance of the MLS model. Accuracy: 0.99</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left"/>
<td align="center">Precision</td>
<td align="center">Recall</td>
<td align="center">F1-Score</td>
</tr>
<tr>
<td align="left">Attacks detection rate</td>
<td align="center">0.98</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">Normal detection rate</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">Macro avg</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">Weighted avg</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>The experiment was repeated for 10 different samples of the test dataset, and <xref ref-type="table" rid="T2">Table 2</xref> shows the results obtained.</p>
<table-wrap id="T2" position="float">
<label>TABLE 2</label>
<caption>
<p>MLS model response for 10 samples offloaded to the MEC server.</p>
</caption>
<table>
<thead valign="top">
<tr>
<th colspan="6" align="left">Performance of 10 samples</th>
</tr>
<tr>
<th align="left">Experiment</th>
<th align="center">Data records</th>
<th align="center">Precision</th>
<th align="center">Recall</th>
<th align="center">F1-score</th>
<th align="center">Accuracy</th>
</tr>
</thead>
<tbody valign="top">
<tr>
<td align="left">EXP 1</td>
<td align="center">1,000</td>
<td align="center">0.89</td>
<td align="center">0.87</td>
<td align="center">0.87</td>
<td align="center">0.87</td>
</tr>
<tr>
<td align="left">EXP 2</td>
<td align="center">2,491</td>
<td align="center">0.81</td>
<td align="center">0.75</td>
<td align="center">0.73</td>
<td align="center">0.75</td>
</tr>
<tr>
<td align="left">EXP 3</td>
<td align="center">3,985</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 4</td>
<td align="center">4,981</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 5</td>
<td align="center">7,471</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 6</td>
<td align="center">9,962</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 7</td>
<td align="center">12,452</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 8</td>
<td align="center">14,942</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 9</td>
<td align="center">17,433</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
<tr>
<td align="left">EXP 10</td>
<td align="center">19,923</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
<td align="center">0.99</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>
<xref ref-type="fig" rid="F6">Figure 6</xref> compares the prediction of different the machine learning models deployed to the MEC server. <xref ref-type="fig" rid="F6">Figure 6A</xref> provides the total time (turnaround time) required to complete for each IIoT device to offload the sampled test data to the MEC server for network attack analysis. <xref ref-type="fig" rid="F6">Figure 6B</xref> shows the average time taken for the MEC server to perform attack analysis based on the size of test sampled dataset received.</p>
<fig id="F6" position="float">
<label>FIGURE 6</label>
<caption>
<p>Comparing different machine learning models.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g006.tif"/>
</fig>
<p>In <xref ref-type="fig" rid="F7">Figure 7</xref>, we increased the number of connected IIoT devices and measured the latency and the energy consumed when our proposed system was applied. <xref ref-type="fig" rid="F7">Figure 7C</xref> and <xref ref-type="fig" rid="F7">Figure 7D</xref> show respectfully the latency and the energy consumed (in kilojoules).</p>
<fig id="F7" position="float">
<label>FIGURE 7</label>
<caption>
<p>Latency and energy consumed.</p>
</caption>
<graphic xlink:href="frsip-02-788943-g007.tif"/>
</fig>
</sec>
</sec>
<sec id="s6">
<title>Results Discussion</title>
<p>From <xref ref-type="fig" rid="F6">Figure 6</xref>, when the load of the sampled test set is increased, the time required by the IIoT to perform a network attack also increases. The average accuracy of the SGD model is 99.9%, multilayer perceptron also produced 99.62%, and the Naive Bayes also produced the lowest with 57.78%. However, in all cases, the SGD outperformed the other machine learning models in execution time and performance (accuracy). It is evident that, as the number of connected IIoT devices requesting to offload their MLS task increases, the energy required to offload their task also increases. The conventional method also performed better than the conventional method. <xref ref-type="fig" rid="F7">Figure 7C</xref> shows that, when the number of IIoT devices increases, the MEC server requires more time to synchronize and offload the MLS task. Energy consumed increases with the increasing number of IIoT devices. Hence, increasing the number of IIoT devices will require more energy. The latency also increases rapidly, which indicate that special bandwidth and network channel must be allocated for such a security system. We believe that our proposed method improves the task offloading, but applying other techniques such as machine learning, specifically reinforcement learning methods, will help optimize the security system. Moreover, attacks such as network flooding targeting the IIoT device could hinder the offloading of the MLS task to the IIoT devices before the MEC server performs the deep intrusion detection. Such cases may require exceptional circumstances to be created in the proposed model to resolve them.</p>
</sec>
<sec sec-type="conclusion" id="s7">
<title>Conclusion</title>
<p>This paper proposed a novel adaptive time synchronization MLS to provide security for the IIoT utilizing MEC. By employing the ATSO, all connected IIoT end devices can synchronize with the MEC server to enhance performance requirements in latency, MLS task offloading, and energy consumption. We proposed node pair selection algorithms for IIoT devices to synchronize with the proximal MEC servers. ATS significantly increased the task offloading accuracy and reduced the energy consumed by the various IIoT devices. The Markov chain contributed to the queuing process of the MLS task offloading by the various IIoT devices. However, the adopted SGD online learning model also outperformed the other machine learning models. The proposed ATSO system is scalable with the IIoT to MEC mesh topology from the experimental results. Future works will explore different online machine learning methods to improve intrusion detection on the MEC server and deep reinforcement learning to create routing algorithms to optimize the task offloading process.</p>
</sec>
</body>
<back>
<sec id="s8">
<title>Data Availability Statement</title>
<p>Publicly available datasets were analyzed in this study. This data can be found at <ext-link ext-link-type="uri" xlink:href="https://www.unb.ca/cic/datasets/ddos-2019.html">https://www.unb.ca/cic/datasets/ddos-2019.html</ext-link>.</p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>EG prepared the paper while AJ also reviewed and provided extensive ideas.</p>
</sec>
<sec id="s10">
<title>Funding</title>
<p>The paper publication will be paid for by the School of Computer Science, University College Dublin.</p>
</sec>
<sec sec-type="COI-statement" id="s11">
<title>Conflict of Interest</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
<sec sec-type="disclaimer" id="s12">
<title>Publisher&#x2019;s Note</title>
<p>All claims expressed in this article are solely those of the authors and do not necessarily represent those of their affiliated organizations or those of the publisher, the editors, and the reviewers. Any product that may be evaluated in this article, or claim that may be made by its manufacturer, is not guaranteed or endorsed by the publisher.</p>
</sec>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Akherfi</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Gerndt</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Harroud</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Mobile Cloud Computing for Computation Offloading: Issues and Challenges</article-title>. <source>Appl. Comput. Inform.</source> <volume>14</volume>, <fpage>1</fpage>&#x2013;<lpage>16</lpage>. <pub-id pub-id-type="doi">10.1016/j.aci.2016.11.002</pub-id> </citation>
</ref>
<ref id="B2">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ansere</surname>
<given-names>J. A.</given-names>
</name>
<name>
<surname>Han</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>H.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>A Novel Reliable Adaptive beacon Time Synchronization Algorithm for Large-Scale Vehicular Ad Hoc Networks</article-title>. <source>IEEE Trans. Veh. Technol.</source> <volume>68</volume>, <fpage>11565</fpage>&#x2013;<lpage>11576</lpage>. <pub-id pub-id-type="doi">10.1109/tvt.2019.2946225</pub-id> </citation>
</ref>
<ref id="B3">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Bakhshi</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Balador</surname>
<given-names>A.</given-names>
</name>
<name>
<surname>Mustafa</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). &#x201c;<article-title>Industrial Iot Security Threats and Concerns by Considering cisco and Microsoft Iot Reference Models</article-title>,&#x201d; in <conf-name>Proceedings of the 2018 IEEE Wireless Communications and Networking Conference Workshops (WCNCW)</conf-name>, <conf-date>Barcelona, SpainApril 2018</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>173</fpage>&#x2013;<lpage>178</lpage>. <pub-id pub-id-type="doi">10.1109/wcncw.2018.8368997</pub-id> </citation>
</ref>
<ref id="B4">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Bing</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Yunyong</surname>
<given-names>Z.</given-names>
</name>
<name>
<surname>Lei</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>An Mec and Nfv Integrated Network Architecture</article-title>. <source>ZTE Commun.</source> <volume>15</volume>, <fpage>19</fpage>&#x2013;<lpage>25</lpage>. <pub-id pub-id-type="doi">10.3969/j.issn.1673-5188.2017.02.003</pub-id> </citation>
</ref>
<ref id="B5">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Shi</surname>
<given-names>Q.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>J.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Thriftyedge: Resource-Efficient Edge Computing for Intelligent Iot Applications</article-title>. <source>IEEE Netw.</source> <volume>32</volume>, <fpage>61</fpage>&#x2013;<lpage>65</lpage>. <pub-id pub-id-type="doi">10.1109/mnet.2018.1700145</pub-id> </citation>
</ref>
<ref id="B6">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>N.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>X.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Energy Efficient Dynamic Offloading in mobile Edge Computing for Internet of Things</article-title>. <source>IEEE Trans. Cloud Comput.</source> <volume>9</volume>, <fpage>1050</fpage>&#x2013;<lpage>1060</lpage>. <pub-id pub-id-type="doi">10.1109/TCC.2019.2898657</pub-id> </citation>
</ref>
<ref id="B7">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Doan</surname>
<given-names>T. V.</given-names>
</name>
<name>
<surname>Nguyen</surname>
<given-names>G. T.</given-names>
</name>
<name>
<surname>Salah</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Pandi</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Jarschel</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Pries</surname>
<given-names>R.</given-names>
</name>
<etal/>
</person-group> (<year>2019</year>). &#x201c;<article-title>Containers vs Virtual Machines: Choosing the Right Virtualization Technology for mobile Edge Cloud</article-title>,&#x201d; in <conf-name>Proceedings of the 2019 IEEE 2nd 5G World Forum (5GWF)</conf-name>, <conf-loc>Dresden, Germany</conf-loc>, <conf-date>30 September-2 October 2019</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>46</fpage>&#x2013;<lpage>52</lpage>. <pub-id pub-id-type="doi">10.1109/5gwf.2019.8911715</pub-id> </citation>
</ref>
<ref id="B8">
<citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname>Finnerty</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Motha</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Shah</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>White</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Button</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>V.</given-names>
</name>
</person-group> (<year>2018</year>). <source>Cyber Security Breaches Survey 2018: Statistical Release</source>. <publisher-loc>Portsmouth, England</publisher-loc>: <publisher-name>University of Portsmouth</publisher-name>. </citation>
</ref>
<ref id="B9">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Han</surname>
<given-names>G.</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Chan</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>A Coverage-Aware Hierarchical Charging Algorithm in Wireless Rechargeable Sensor Networks</article-title>. <source>IEEE Netw.</source> <volume>33</volume>, <fpage>201</fpage>&#x2013;<lpage>207</lpage>. <pub-id pub-id-type="doi">10.1109/MNET.2018.1800197</pub-id> </citation>
</ref>
<ref id="B10">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Hsu</surname>
<given-names>C.-W.</given-names>
</name>
<name>
<surname>Hsu</surname>
<given-names>Y.-L.</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>H.-Y.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Energy-efficient and Reliable Mec Offloading for Heterogeneous Industrial Iot Networks</article-title>,&#x201d; in <conf-name>Proceedings of the 2019 European Conference on Networks and Communications (EuCNC)</conf-name>, <conf-loc>Valencia, Spain</conf-loc>, <conf-date>June 2019</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>384</fpage>&#x2013;<lpage>388</lpage>. <pub-id pub-id-type="doi">10.1109/eucnc.2019.8802020</pub-id> </citation>
</ref>
<ref id="B11">
<citation citation-type="web">
<collab>Irdeto-Media-Team</collab> (<year>2019</year>). <article-title>New 2019 Global Survey: Iot-Focused Cyberattacks Are the New normal - Irdeto</article-title>. <comment>Available at: <ext-link ext-link-type="uri" xlink:href="https://irdeto.com/news/new-2019-global-survey-iot-focused-cyberattacks-are-the-new-normal/">https://irdeto.com/news/new-2019-global-survey-iot-focused-cyberattacks-are-the-new-normal/</ext-link>
</comment>(<comment>Accessed on 03 06, 2020)</comment>. </citation>
</ref>
<ref id="B12">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Mao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>You</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Letaief</surname>
<given-names>K. B.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>A Survey on mobile Edge Computing: The Communication Perspective</article-title>. <source>IEEE Commun. Surv. Tutorials</source> <volume>19</volume>, <fpage>2322</fpage>&#x2013;<lpage>2358</lpage>. <pub-id pub-id-type="doi">10.1109/comst.2017.2745201</pub-id> </citation>
</ref>
<ref id="B13">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Nasrallah</surname>
<given-names>Y. Y.</given-names>
</name>
<name>
<surname>Al-Anbagi</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Mouftah</surname>
<given-names>H. T.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Distributed Time Synchronization Mechanism for Large-Scale Vehicular Networks</article-title>,&#x201d; in <conf-name>Proceedings of the 2016 International Conference on Selected Topics in Mobile &#x26; Wireless Networking (MoWNeT)</conf-name>, <conf-loc>Cairo, EgyptApril 2016</conf-loc> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/mownet.2016.7496600</pub-id> </citation>
</ref>
<ref id="B14">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Sadeghi</surname>
<given-names>A.-R.</given-names>
</name>
<name>
<surname>Wachsmann</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Waidner</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2015</year>). &#x201c;<article-title>Security and Privacy Challenges in Industrial Internet of Things</article-title>,&#x201d; in <conf-name>Proceedings of the 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC)</conf-name>, <conf-loc>San Francisco, CA, USA</conf-loc>, <conf-date>June 2015</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1145/2744769.2747942</pub-id> </citation>
</ref>
<ref id="B15">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Sharafaldin</surname>
<given-names>I.</given-names>
</name>
<name>
<surname>Lashkari</surname>
<given-names>A. H.</given-names>
</name>
<name>
<surname>Hakak</surname>
<given-names>S.</given-names>
</name>
<name>
<surname>Ghorbani</surname>
<given-names>A. A.</given-names>
</name>
</person-group> (<year>2019</year>). &#x201c;<article-title>Developing Realistic Distributed Denial of Service (DDoS) Attack Dataset and Taxonomy</article-title>,&#x201d; in <conf-name>Proceedings of the 2019 International Carnahan Conference on Security Technology (ICCST)</conf-name>, <conf-loc>Chennai, India</conf-loc>, <conf-date>October 2018</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x2013;<lpage>8</lpage>. <pub-id pub-id-type="doi">10.1109/ccst.2019.8888419</pub-id> </citation>
</ref>
<ref id="B16">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>W.</given-names>
</name>
<name>
<surname>Liu</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Yue</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Ai-enhanced Offloading in Edge Computing: When Machine Learning Meets Industrial Iot</article-title>. <source>IEEE Netw.</source> <volume>33</volume>, <fpage>68</fpage>&#x2013;<lpage>74</lpage>. <pub-id pub-id-type="doi">10.1109/mnet.001.1800510</pub-id> </citation>
</ref>
<ref id="B17">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Sun</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Ansari</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2017</year>). <article-title>Latency Aware Workload Offloading in the Cloudlet Network</article-title>. <source>IEEE Commun. Lett.</source> <volume>21</volume>, <fpage>1481</fpage>&#x2013;<lpage>1484</lpage>. <pub-id pub-id-type="doi">10.1109/lcomm.2017.2690678</pub-id> </citation>
</ref>
<ref id="B18">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tanaka</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Yoshida</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Mori</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Takahashi</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2018</year>). <article-title>Multi-access Edge Computing: A Survey</article-title>. <source>J. Inf. Process.</source> <volume>26</volume>, <fpage>87</fpage>&#x2013;<lpage>97</lpage>. <pub-id pub-id-type="doi">10.2197/ipsjjip.26.87</pub-id> </citation>
</ref>
<ref id="B19">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Tange</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>De Donno</surname>
<given-names>M.</given-names>
</name>
<name>
<surname>Fafoutis</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Dragoni</surname>
<given-names>N.</given-names>
</name>
</person-group> (<year>2020</year>). <article-title>A Systematic Survey of Industrial Internet of Things Security: Requirements and Fog Computing Opportunities</article-title>. <source>IEEE Commun. Surv. Tutorials</source> <volume>22</volume>, <fpage>2489</fpage>&#x2013;<lpage>2520</lpage>. <pub-id pub-id-type="doi">10.1109/comst.2020.3011208</pub-id> </citation>
</ref>
<ref id="B20">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Wu</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Wolter</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Jiao</surname>
<given-names>P.</given-names>
</name>
<name>
<surname>Deng</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Zhao</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>M.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Eedto: An Energy-Efficient Dynamic Task Offloading Algorithm for Blockchain-Enabled Iot-Edge-Cloud Orchestrated Computing</article-title>. <source>IEEE Internet Things J.</source> <volume>8</volume>, <fpage>2163</fpage>&#x2013;<lpage>2176</lpage>. <pub-id pub-id-type="doi">10.1109/JIOT.2020.3033521</pub-id> </citation>
</ref>
<ref id="B21">
<citation citation-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wurm</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Hoang</surname>
<given-names>K.</given-names>
</name>
<name>
<surname>Arias</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Sadeghi</surname>
<given-names>A.-R.</given-names>
</name>
<name>
<surname>Jin</surname>
<given-names>Y.</given-names>
</name>
</person-group> (<year>2016</year>). &#x201c;<article-title>Security Analysis on Consumer and Industrial Iot Devices</article-title>,&#x201d; in <conf-name>Proceedings of the 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC)</conf-name>, <conf-loc>Macao, China</conf-loc>, <conf-date>January 2016</conf-date> (<publisher-loc>Piscataway, New Jersey, United States</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>519</fpage>&#x2013;<lpage>524</lpage>. <pub-id pub-id-type="doi">10.1109/aspdac.2016.7428064</pub-id> </citation>
</ref>
<ref id="B22">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Gao</surname>
<given-names>H.</given-names>
</name>
<name>
<surname>Xue</surname>
<given-names>Y.</given-names>
</name>
<name>
<surname>Qi</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Dou</surname>
<given-names>W.</given-names>
</name>
</person-group> (<year>2019</year>). <article-title>Become: Blockchain-Enabled Computation Offloading for Iot in mobile Edge Computing</article-title>. <source>IEEE Trans. Ind. Inform.</source> <volume>16</volume>, <fpage>4187</fpage>&#x2013;<lpage>4195</lpage>. </citation>
</ref>
<ref id="B23">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Bassey</surname>
<given-names>J.</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>L.</given-names>
</name>
</person-group> (<year>2021</year>). <article-title>Computation Offloading in Multi-Access Edge Computing: A Multi-Task Learning Approach</article-title>. <source>IEEE Trans. Mobile Comput.</source> <volume>20</volume>, <fpage>2745</fpage>&#x2013;<lpage>2762</lpage>. <pub-id pub-id-type="doi">10.1109/TMC.2020.2990630</pub-id> </citation>
</ref>
<ref id="B24">
<citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>B.</given-names>
</name>
<name>
<surname>Fagbohungbe</surname>
<given-names>O.</given-names>
</name>
<name>
<surname>Cao</surname>
<given-names>X.</given-names>
</name>
<name>
<surname>Yuen</surname>
<given-names>C.</given-names>
</name>
<name>
<surname>Qian</surname>
<given-names>L.</given-names>
</name>
<name>
<surname>Niyato</surname>
<given-names>D.</given-names>
</name>
<etal/>
</person-group> (<year>2022</year>). <article-title>A Joint Energy and Latency Framework for Transfer Learning over 5g Industrial Edge Networks</article-title>. <source>IEEE Trans. Ind. Inf.</source> <volume>18</volume>, <fpage>531</fpage>&#x2013;<lpage>541</lpage>. <pub-id pub-id-type="doi">10.1109/TII.2021.3075444</pub-id> </citation>
</ref>
</ref-list>
</back>
</article>