<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20241031//EN" "JATS-journalpublishing1-4.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.4" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">ait</journal-id>
      <journal-title-group>
        <journal-title>Advances in Internet of Things</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2161-6825</issn>
      <issn pub-type="ppub">2161-6817</issn>
      <publisher>
        <publisher-name>Scientific Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.4236/ait.2026.164008</article-id>
      <article-id pub-id-type="publisher-id">ait-154846</article-id>
      <article-categories>
        <subj-group>
          <subject>Article</subject>
        </subj-group>
        <subj-group>
          <subject>Computer Science</subject>
          <subject>Communications</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Real-Time Drone Data Processing for Aerial Photography Using Edge Computing and AI-Powered Algorithms</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <contrib-id contrib-id-type="orcid">0000-0002-0882-3736</contrib-id>
          <name name-style="western">
            <surname>Rajapakse</surname>
            <given-names>Nuraj Indika</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author" corresp="yes">
          <name name-style="western">
            <surname>Ladipo</surname>
            <given-names>Ismail Ladele</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="aff1"><label>1</label> Faculty of Engineering, Higher Colleges of Technology, Sharjah, United Arab Emirates </aff>
      <author-notes>
        <fn fn-type="conflict" id="fn-conflict">
          <p>The authors declare no conflicts of interest regarding the publication of this paper.</p>
        </fn>
      </author-notes>
      <pub-date pub-type="epub">
        <day>19</day>
        <month>10</month>
        <year>2026</year>
      </pub-date>
      <pub-date pub-type="collection">
        <month>10</month>
        <year>2026</year>
      </pub-date>
      <volume>16</volume>
      <issue>04</issue>
      <fpage>124</fpage>
      <lpage>142</lpage>
      <history>
        <date date-type="received">
          <day>14</day>
          <month>03</month>
          <year>2026</year>
        </date>
        <date date-type="accepted">
          <day>24</day>
          <month>10</month>
          <year>2026</year>
        </date>
        <date date-type="published">
          <day>27</day>
          <month>10</month>
          <year>2026</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>© 2026 by the authors and Scientific Research Publishing Inc.</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="open-access">
          <license-p> This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license ( <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link> ). </license-p>
        </license>
      </permissions>
      <self-uri content-type="doi" xlink:href="https://doi.org/10.4236/ait.2026.164008">https://doi.org/10.4236/ait.2026.164008</self-uri>
      <abstract>
        <p>The rapid advancement of Unmanned Aerial Vehicles (UAVs) has made the field of aerial photography a dynamic, data-driven environment, requiring real-time data analysis and intelligent decision-making. However, the traditional cloud computing paradigm for processing UAV data has been found to be prone to latency, bandwidth constraints, and connectivity issues. This research is presented to address the problems in the traditional cloud computing paradigm for processing UAV data at a conceptual level, and it focuses on the integration of edge computing and AI-based algorithms for real-time data processing. This paper presents the use of edge computing and AI for real-time UAV data processing in aerial photography under obstacle constraints, emphasizing edge-AI, MDP and Q-learning concepts while providing a comparative study in evaluating various field-related examples. In the proposed framework, the intelligent decision-making for the UAV is achieved through the deployment of lightweight neural networks and computer vision models completely onboard or near-edge devices. This kind of system enables immediate object detection, scene classification, and adaptive flight control without entirely relying on continuous cloud connectivity. The proposed framework indicates the potential for improvements in processing speed, decision latency, and energy efficiency based on theoretical analysis and system design considerations. However, these benefits are not empirically validated in this study and are left for future experimental evaluation. The primary objective of this paper is to develop a unified edge-AI framework that enables real-time data processing and autonomous decision-making for UAVs operating in obstacle-constrained environments.</p>
      </abstract>
      <kwd-group kwd-group-type="author-generated" xml:lang="en">
        <kwd>Surveillance</kwd>
        <kwd>Autonomous Area Mapping</kwd>
        <kwd>Cloud &amp; Edge Computing</kwd>
        <kwd>Edge AI</kwd>
        <kwd>Q-Learning</kwd>
        <kwd>IoT Sensors</kwd>
        <kwd>Path Planning</kwd>
        <kwd>Reinforcement Learning</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1">
      <title>1. Introduction</title>
      <p>Surveillance, mapping, and inspection are some of the main areas of aerial photography that constantly utilize modern technological advancements to ensure increased accuracy as well as speed. Two main distributed computing models currently in use in this field include cloud computing as well as edge computing. The traditional cloud computing model mainly relies on the use of remote data centers for the purpose of storing as well as processing the data. However, the use of edge computing for the purpose of data processing allows for the creation of a faster, more dependable, as well as responsive environment. The use of edge computing enables the minimization of the degradation of performance caused by the latency of the network, thus allowing for the improvement of the real-time responsiveness of the system. This is because the use of edge computing allows the data to be processed in the devices or servers that are located at the edge of the network, thus eliminating the need for the data to be sent to the cloud servers for the purpose of analysis.</p>
      <p>In addition, the inclusion of Artificial Intelligence (AI) in aerial photography has significantly enhanced the efficiency and accuracy of data processing, particularly when dealing with large quantities of high-resolution images. AI-based imaging technologies can identify, classify, and segment objects within aerial photographs, facilitating faster data interpretability even when computational resources are scarce. Compared to conventional manual data analysis, AI-based processing provides higher accuracy, reduced human error, and increased efficiency.</p>
      <p>This paper is primarily focused on the use of the technology known as Edge Computing and Artificial Intelligence algorithms, collectively known as Edge AI, for the real-time processing of data in the context of aerial photography. The use of such technologies enables the real-time processing of data, reducing the energy required for the same. The proposed framework includes the use of intelligent cameras with IoT sensors, which enables the real-time collection of data. The IoT-enabled camera makes use of embedded AI algorithms that are capable of analyzing the collected data, making decisions, and even executing the imaging process autonomously. IoT technologies are generally known for collecting sensor data and providing continuous connectivity for remote monitoring. The use of AI enables the IoT technology to effectively process the collected data.</p>
      <p>Furthermore, the role of effective path planning requires fast and accurate aerial imaging for the optimizing of flight trajectories while avoiding obstacles. A well-established approach in machine learning, such as the Markov Decision Process (MDP), provides a powerful framework for optimizing the path planning of drones in dynamic environments. By combining Edge AI with path planning algorithms based on MDP, the efficiency of aerial photography systems can be significantly enhanced because of the fact that intelligent decisions can be made by the drone during navigation. This paper aims to discuss how the formulation of MDP for drone mapping can be practically achieved, including the definition of states, actions, and reward functions, and the possible solution approaches for various scenarios, including some cases that are modeled as a Partially Observable Markov Decision Process (POMDP) for real-world uncertainty handling.</p>
    </sec>
    <sec id="sec2">
      <title>2. Literature Review</title>
      <p>The recent developments in Unmanned Aerial Vehicles (UAVs) have been very instrumental in improving the capabilities of aerial photography. However, some limitations have been noted with the conventional use of clouds as a means of processing data. To reduce latency, bandwidth dependency, and scalability issues that are inherent with conventional means of processing data from aerial photography, researchers have been motivated to use edge computing with Artificial Intelligence (AI) as a means of processing visual data directly from the source [<xref ref-type="bibr" rid="B1">1</xref>][<xref ref-type="bibr" rid="B2">2</xref>]. Moreover, a real-time UAV object detection framework that combines Vision Transformer (ViT) architecture and edge computing has been presented, directly addressing real-time aerial image processing and edge AI deployment [<xref ref-type="bibr" rid="B3">3</xref>].</p>
      <p>The literature has identified that there are three major edge processing architectures that have been dominant with regard to processing data from drones. They are Onboard edge AI processing, where data processing takes place onboard of UAV; Near-edge or Micro-Edge processing, where processing takes place near the unmanned aerial vehicle; and a hybrid model that involves both clouds and edge servers [<xref ref-type="bibr" rid="B1">1</xref>][<xref ref-type="bibr" rid="B4">4</xref>].</p>
      <p>A major line of research focuses on tailoring AI algorithms for edge devices with hardware constraints. That kind of research work has utilized model compression, quantization, and pruning techniques to implement deep learning algorithms within hardware constraints of UAV devices [<xref ref-type="bibr" rid="B2">2</xref>][<xref ref-type="bibr" rid="B5">5</xref>]. Lightweight deep learning models such as MobileNet, YOLOv5-Nano, and CSPDNet are used for object detection, scene classification, and semantic segmentation tasks. Additionally, AI-based techniques for dynamic exposure compensation, image stabilization, and framing have been proposed to improve the quality of images captured by UAVs [<xref ref-type="bibr" rid="B5">5</xref>].</p>
      <p>UAV edge computing is typically carried out on hardware such as NVIDIA Jetson Nano/Xavier, Google Coral TPU, and Intel Movidius [<xref ref-type="bibr" rid="B6">6</xref>]. Such hardware allows for real-time processing at 15 - 30 frames per second for medium-resolution images. Middleware such as ROS and ROS2 are commonly used to integrate AI with flight control systems. Researchers have shown that such hardware-software stacks can be used to effectively manage data processing for UAVs [<xref ref-type="bibr" rid="B4">4</xref>][<xref ref-type="bibr" rid="B6">6</xref>]. Further, a system in processing a real-time aerial image under environmental noise to address AI robustness in drone imagery has been proposed to improve accuracy and robustness compared to standard models, which provide interpretable outputs [<xref ref-type="bibr" rid="B7">7</xref>].</p>
      <p>The evaluation metrics for this field are usually processing latency (ms/frame), energy efficiency (W or mAh), and model accuracy (mAP). Datasets such as VisDrone and UAVDT are used for benchmarking object detection and tracking for drones in dynamic flight conditions [<xref ref-type="bibr" rid="B5">5</xref>]. These datasets help to quantify the trade-offs between computation efficiency and visual quality for edge-based drones.</p>
      <p>Edge AI enables drones to conduct dynamic and adaptive aerial photography, where drones can change their exposure, position of the gimbal, and framing based on their understanding of the scene or tracking of subjects of interest. Various other applications of UAVs with edge AI include environmental, agricultural, and infrastructure inspection, where drones can conduct analysis to support field-level decision-making [<xref ref-type="bibr" rid="B4">4</xref>][<xref ref-type="bibr" rid="B6">6</xref>]. Related precision-agriculture applications are discussed in [<xref ref-type="bibr" rid="B8">8</xref>]-[<xref ref-type="bibr" rid="B12">12</xref>]. The use of edge AI with drones enables UAVs to be dynamically optimized rather than becoming simple data collectors.</p>
      <p>Despite these encouraging achievements, there are also a few limitations. For instance, energy constraints and thermal issues persist in the prolonged real-time processing of UAVs onboard [<xref ref-type="bibr" rid="B1">1</xref>]. Moreover, AI models trained on standard datasets may not generalize well under different lighting conditions, altitudes, and weather conditions. Communication issues also persist, especially when UAVs depend on unstable 4G/5G connections for hybrid edge-cloud computing [<xref ref-type="bibr" rid="B2">2</xref>]. These issues indicate that there is a strong need for more robust, adaptive, and energy-efficient AI systems and frameworks.</p>
      <p>Some of the emerging trends in UAV-based AI research include the application of tiny AI and NAS (Neural Architecture Search) for designing AI models that can specifically operate on UAVs. Additionally, there is also a growing interest in FL (Federated Learning), which enables UAVs to learn collaboratively without data transfer [<xref ref-type="bibr" rid="B2">2</xref>]. Furthermore, the application of MEC (Multi-access Edge Computing) and 5G connectivity for enabling ultra-low latency processing of large-scale UAVs also represents an emerging trend [<xref ref-type="bibr" rid="B4">4</xref>]. These issues indicate that the next step in UAV-based AI research involves the application of hardware-aware AI and context-driven data processing. To address the identified gaps, this study adopts reinforcement learning, specifically Q-learning, as a decision-making framework.</p>
    </sec>
    <sec id="sec3">
      <title>3. Core Methods for Real-Time Data Processing</title>
      <sec id="sec3dot1">
        <title>3.1. Onboard Data Acquisition and Pre-Processing</title>
        <p>One of the most significant techniques for processing data in real-time for drones is data acquisition and pre-processing. While drones take clear images and videos, data is immediately processed to eliminate lens distortion, reduce noise, and normalize lighting conditions. Pre-processing data is significant in reducing the complexity of processing data in subsequent stages. It is vital to ensure that data is processed correctly to ensure accurate analysis. With data pre-processing, drones are able to process data in real-time without having to maintain communication with other devices to achieve this task.</p>
      </sec>
      <sec id="sec3dot2">
        <title>3.2. Onboard Artificial Intelligence and Computer Vision Inference</title>
        <p>The use of artificial intelligence and computer vision inference is another important approach for data processing for aerial photography. In this approach, deep learning models are optimized and embedded in edge processors, which are then used for object detection, object tracking, feature recognition, and scene segmentation in real-time. This is a very speedy process in analyzing images and scenes, which in turn helps in intelligent decision-making, properly adjusting camera angles and fast-tracking objects while navigating autonomously. This immensely helps in reducing latency, which is important in dynamic scenarios like aerial photography.</p>
      </sec>
      <sec id="sec3dot3">
        <title>3.3. Region-of-Interest (ROI) Extraction and Event-Driven Processing</title>
        <p>Region of interest, as well as event-driven processing, can be used to improve the efficiency of real-time systems. In traditional real-time systems, the entire frame is constantly being analyzed. In edge computing, the analysis is done only on the region or event of interest. This improves the energy efficiency of the system while still providing high accuracy in the analysis. This means that the drones will be able to fly for a longer time without compromising real-time performance.</p>
      </sec>
      <sec id="sec3dot4">
        <title>3.4. Edge-Cloud Collaboration and Task Offloading</title>
        <p>Finally, edge-cloud collaboration and task offloading also have a significant role in the scalability of the real-time processing of drone data. Real-time tasks, like vision inference and navigation, are processed in the edge, while less urgent tasks, like high-resolution mapping, are offloaded to edge servers/cloud platforms, depending on the connectivity status. Resource-aware scheduling algorithms are also utilized to determine the execution location of tasks in a distributed manner, depending on the constraints and requirements of the tasks and the resources. This ensures a balanced and efficient processing paradigm for intelligent, autonomous, and real-time aerial photography systems.</p>
      </sec>
    </sec>
    <sec id="sec4">
      <title>4. AI-Driven Approaches to Real-Time Drone DATA Processing for Aerial Photography</title>
      <sec id="sec4dot1">
        <title>4.1. The Markov Decision Process</title>
        <p>The formal MDP is a collection of items of tuple <inline-formula><mml:math display="inline"><mml:mrow><mml:mrow><mml:mo> 〈 </mml:mo><mml:mrow><mml:mi> S </mml:mi><mml:mo> , </mml:mo><mml:mi> A </mml:mi><mml:mo> , </mml:mo><mml:mi> P </mml:mi><mml:mo> , </mml:mo><mml:mi> R </mml:mi><mml:mo> , </mml:mo><mml:mi> γ </mml:mi></mml:mrow><mml:mo> 〉 </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> , where <italic>S</italic> = State Space, <italic>A</italic> = Action Space, <italic>P</italic> = State Transition Probability, <italic>R</italic> = Reward Function and <inline-formula><mml:math><mml:mrow><mml:mi> γ </mml:mi><mml:mo> ∈ </mml:mo><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> = Discount Factor.</p>
        <p>The objective is to find policy <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> a </mml:mi><mml:mo> | </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> to choose actions in maximizing expected discounted returns.</p>
        <p>States: <italic>S</italic></p>
        <p>State Transition Probability: <inline-formula><mml:math><mml:mrow><mml:mi> P </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> | </mml:mo><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mtext> Pr </mml:mtext><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> S </mml:mi><mml:mrow><mml:mi> t </mml:mi><mml:mo> + </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:msub><mml:mo> = </mml:mo><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> | </mml:mo><mml:msub><mml:mi> S </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:msub><mml:mi> A </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
        <p>Reward Function: <inline-formula><mml:math><mml:mrow><mml:mi> R </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi><mml:mo> , </mml:mo><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
        <p>Policy: <inline-formula><mml:math><mml:mrow><mml:mi> π </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> a </mml:mi><mml:mo> | </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mi> P </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> A </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> a </mml:mi><mml:mo> | </mml:mo><mml:msub><mml:mi> S </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
        <p>Return (Total Discounted Reward): <inline-formula><mml:math><mml:mrow><mml:msub><mml:mi> G </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mstyle displaystyle="true"><mml:msubsup><mml:mo> ∑ </mml:mo><mml:mrow><mml:mi> k </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mi> ∞ </mml:mi></mml:msubsup><mml:mrow><mml:msup><mml:mi> γ </mml:mi><mml:mi> k </mml:mi></mml:msup><mml:msub><mml:mi> R </mml:mi><mml:mrow><mml:mi> t </mml:mi><mml:mo> + </mml:mo><mml:mi> k </mml:mi><mml:mo> + </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mstyle></mml:mrow></mml:math></inline-formula></p>
        <p>State Value Function: <inline-formula><mml:math><mml:mrow><mml:msup><mml:mi> V </mml:mi><mml:mi> π </mml:mi></mml:msup><mml:mrow><mml:mo> ( </mml:mo><mml:mi> s </mml:mi><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:msub><mml:mi mathvariant="double-struck"> E </mml:mi><mml:mi> π </mml:mi></mml:msub><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:msubsup><mml:mo> ∑ </mml:mo><mml:mrow><mml:mi> k </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mi> ∞ </mml:mi></mml:msubsup><mml:mrow><mml:msup><mml:mi> γ </mml:mi><mml:mi> k </mml:mi></mml:msup><mml:msub><mml:mi> R </mml:mi><mml:mrow><mml:mi> t </mml:mi><mml:mo> + </mml:mo><mml:mi> k </mml:mi><mml:mo> + </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mstyle><mml:mo> | </mml:mo><mml:msub><mml:mi> S </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> s </mml:mi></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
        <p>where,</p>
        <p><italic>s</italic>—Current state;</p>
        <p><italic>s</italic>ʹ—Next state;</p>
        <p><italic>a</italic>—Action taken;</p>
        <p><italic>a</italic>ʹ—Possible next action.</p>
        <p><bold>Q-Learning Formulation for Autonomous Area Mapping</bold></p>
        <p>Below is the Q-learning formulation (Action Value Function) of the autonomous area mapping MDP. The Q-value represents expected future reward.</p>
        <p>Action Value Function (Q-function): <inline-formula><mml:math><mml:mrow><mml:msup><mml:mi> Q </mml:mi><mml:mi> π </mml:mi></mml:msup><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:msub><mml:mi mathvariant="double-struck"> E </mml:mi><mml:mi> π </mml:mi></mml:msub><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mstyle displaystyle="true"><mml:msubsup><mml:mo> ∑ </mml:mo><mml:mrow><mml:mi> k </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow><mml:mi> ∞ </mml:mi></mml:msubsup><mml:mrow><mml:msup><mml:mi> γ </mml:mi><mml:mi> k </mml:mi></mml:msup><mml:msub><mml:mi> R </mml:mi><mml:mrow><mml:mi> t </mml:mi><mml:mo> + </mml:mo><mml:mi> k </mml:mi><mml:mo> + </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mstyle><mml:mo> | </mml:mo><mml:msub><mml:mi> S </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:msub><mml:mi> A </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> = </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
        <p><bold>Q-Learning Update Rule</bold> (Core Equation from Bellman Equation)</p>
        <p>The quality of an action is given by the Q-learning update rule, and the update rule adjusts the old value as follows:</p>
        <disp-formula id="FD1">
          <mml:math>
            <mml:mrow>
              <mml:mtext>New Q-value</mml:mtext>
              <mml:mo>=</mml:mo>
              <mml:mtext>Old Q-value</mml:mtext>
              <mml:mo>+</mml:mo>
              <mml:mtext>Learning Rate</mml:mtext>
              <mml:mo>×</mml:mo>
              <mml:mtext>Temporal Difference Error</mml:mtext>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD2">
          <mml:math>
            <mml:mrow>
              <mml:mtext>Temporal Difference</mml:mtext>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mtext>TD</mml:mtext>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mtext>
                 
              </mml:mtext>
              <mml:mtext>Error</mml:mtext>
              <mml:mo>=</mml:mo>
              <mml:mi>r</mml:mi>
              <mml:mo>+</mml:mo>
              <mml:mi>γ</mml:mi>
              <mml:munder>
                <mml:mrow>
                  <mml:mi>max</mml:mi>
                </mml:mrow>
                <mml:msup>
                  <mml:mi>a</mml:mi>
                  <mml:mo>′</mml:mo>
                </mml:msup>
              </mml:munder>
              <mml:mi>Q</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:msup>
                    <mml:mi>s</mml:mi>
                    <mml:mo>′</mml:mo>
                  </mml:msup>
                  <mml:mo>,</mml:mo>
                  <mml:msup>
                    <mml:mi>a</mml:mi>
                    <mml:mo>′</mml:mo>
                  </mml:msup>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>−</mml:mo>
              <mml:mi>Q</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>a</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD3">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mi>n</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>w</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>a</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>←</mml:mo>
              <mml:mi>Q</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>a</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:mi>α</mml:mi>
              <mml:mrow>
                <mml:mo>[</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>γ</mml:mi>
                  <mml:munder>
                    <mml:mrow>
                      <mml:mi>max</mml:mi>
                    </mml:mrow>
                    <mml:msup>
                      <mml:mi>a</mml:mi>
                      <mml:mo>′</mml:mo>
                    </mml:msup>
                  </mml:munder>
                  <mml:mi>Q</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msup>
                        <mml:mi>s</mml:mi>
                        <mml:mo>′</mml:mo>
                      </mml:msup>
                      <mml:mo>,</mml:mo>
                      <mml:msup>
                        <mml:mi>a</mml:mi>
                        <mml:mo>′</mml:mo>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                  <mml:mo>−</mml:mo>
                  <mml:mi>Q</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:mi>s</mml:mi>
                      <mml:mo>,</mml:mo>
                      <mml:mi>a</mml:mi>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>]</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <disp-formula id="FD4">
          <mml:math>
            <mml:mrow>
              <mml:msub>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mi>n</mml:mi>
                  <mml:mi>e</mml:mi>
                  <mml:mi>w</mml:mi>
                </mml:mrow>
              </mml:msub>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>a</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>=</mml:mo>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mn>1</mml:mn>
                  <mml:mo>−</mml:mo>
                  <mml:mi>α</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mi>Q</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>s</mml:mi>
                  <mml:mo>,</mml:mo>
                  <mml:mi>a</mml:mi>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
              <mml:mo>+</mml:mo>
              <mml:mi>α</mml:mi>
              <mml:mrow>
                <mml:mo>(</mml:mo>
                <mml:mrow>
                  <mml:mi>r</mml:mi>
                  <mml:mo>+</mml:mo>
                  <mml:mi>γ</mml:mi>
                  <mml:munder>
                    <mml:mrow>
                      <mml:mtext>max</mml:mtext>
                    </mml:mrow>
                    <mml:msup>
                      <mml:mi>a</mml:mi>
                      <mml:mo>′</mml:mo>
                    </mml:msup>
                  </mml:munder>
                  <mml:mi>Q</mml:mi>
                  <mml:mrow>
                    <mml:mo>(</mml:mo>
                    <mml:mrow>
                      <mml:msup>
                        <mml:mi>s</mml:mi>
                        <mml:mo>′</mml:mo>
                      </mml:msup>
                      <mml:mo>,</mml:mo>
                      <mml:msup>
                        <mml:mi>a</mml:mi>
                        <mml:mo>′</mml:mo>
                      </mml:msup>
                    </mml:mrow>
                    <mml:mo>)</mml:mo>
                  </mml:mrow>
                </mml:mrow>
                <mml:mo>)</mml:mo>
              </mml:mrow>
            </mml:mrow>
          </mml:math>
        </disp-formula>
        <p>where,</p>
        <p><inline-formula><mml:math display="inline"><mml:mi> r </mml:mi></mml:math></inline-formula> —Reward received after taking action (actual reward);</p>
        <p><inline-formula><mml:math><mml:mi> α </mml:mi></mml:math></inline-formula> —Learning rate (<inline-formula><mml:math><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> &lt; </mml:mo><mml:mi> α </mml:mi><mml:mo> ≤ </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> );</p>
        <p><inline-formula><mml:math><mml:mi> γ </mml:mi></mml:math></inline-formula> —Discount factor (<inline-formula><mml:math><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> ≤ </mml:mo><mml:mi> γ </mml:mi><mml:mo> &lt; </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> );</p>
        <p><inline-formula><mml:math><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Current estimate of value;</p>
        <p><inline-formula><mml:math><mml:mrow><mml:msub><mml:mrow><mml:mi> max </mml:mi></mml:mrow><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:msub><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> , </mml:mo><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Maximum Q-value for the next state;</p>
        <p><inline-formula><mml:math><mml:mrow><mml:mi> γ </mml:mi><mml:msub><mml:mrow><mml:mi> max </mml:mi></mml:mrow><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:msub><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> , </mml:mo><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Best future reward.</p>
        <p>The Q-learning update equation is used to learn the optimal action-value function <italic>Q</italic>(<italic>s, a</italic>) in a Reinforcement Learning (RL) environment without knowing the model (transition probabilities or rewards). The above equation moves the current Q-value toward a better estimate, and it directs the agent in the process of updating its knowledge after each action.</p>
        <p>Further, TD error is the difference between what you expected to happen and what actually happened and also the addition of the reward received after taking action. It can also be viewed as the learning signal in reinforcement learning. The positive TD error indicates that the outcome is better than expected and the negative TD error indicates that the outcome is worse than expected. Moreover, zero TD error indicates that the prediction mostly is perfect.</p>
      </sec>
      <sec id="sec4dot2">
        <title>4.2. Partially Observable Markov Decision Process</title>
        <p>It is worth mentioning that the Partially Observable Markov Decision Process (POMDP) is an extension of an MDP, which addresses the uncertainty of the agent’s perception of the state. This happens when the coverage depends on the entire history. Therefore, by incorporating the mapped state clearly in the state space (<italic>S</italic>), the process of aerial photography can be represented in the MDP. It’s proposed to formalize the UAV mission as a sequential decision-making problem under uncertainty. Depending on sensing completeness, the problem can be modeled as either a MDP or a POMDP. In realistic deployments, the UAV does not have full access to the true state and therefore it’s recommended to model the problem as a POMDP. Moreover, the MDP formulation works well when the state variables can be accurately estimated and known, whereas the POMDP formulation is necessary when sensing is incomplete and noisy, requiring reasoning over uncertainty via the observation model, justifying the use of a POMDP in realistic UAV deployments.</p>
        <p>As depicted in <xref ref-type="fig" rid="fig1">Figure 1</xref>, a discrete MDP defines state and action spaces as finite or countable sets, making it suitable for problems where variables like position, altitude and battery charge level can be reasonably discretized into grids or levels. Such a definition allows for the application of exact dynamic programming techniques like value iteration and policy iteration, providing convergence guarantees and a more computationally friendly problem definition. By contrast, a continuous MDP defines state and action spaces as real-valued, which is necessary when fine-grained control, precise dynamics, or safety constraints cannot be well-approximated using discretization. Continuous MDPs often require approximate solution techniques like policy gradients and MPC (Model Predictive Control), which, although more difficult to analyze, can provide more scalable and realistic models. In fact, a common approach in practice is to use a combination of a discrete MDP for high-level planning and a continuous control approach for low-level control.</p>
        <fig id="fig1">
          <label>Figure 1</label>
          <graphic xlink:href="https://html.scirp.org/file/4000524-rId57.jpeg?20261027043317" />
        </fig>
        <p><bold>Figure 1</bold>. MDP for area mapping with obstacles.</p>
      </sec>
    </sec>
    <sec id="sec5">
      <title>5. A Collection of Items for a Small Grid-World Numerical Model of Autonomous Area Mapping</title>
      <p>State Space, <inline-formula><mml:math><mml:mrow><mml:mi> S </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi><mml:mo> , </mml:mo><mml:mi> z </mml:mi><mml:mo> , </mml:mo><mml:mi> b </mml:mi><mml:mo> , </mml:mo><mml:mi> m </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></p>
      <p>where:</p>
      <p><inline-formula><mml:math><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow></mml:math></inline-formula> —Position (<italic>x</italic> is a row position and <italic>y</italic> is a column position);</p>
      <p><inline-formula><mml:math><mml:mi> z </mml:mi></mml:math></inline-formula> —Altitude;</p>
      <p><inline-formula><mml:math><mml:mi> b </mml:mi></mml:math></inline-formula> —Battery level;</p>
      <p><inline-formula><mml:math><mml:mi> m </mml:mi></mml:math></inline-formula> —Mapped/coverage state.</p>
      <p>1) Action Space, <italic>A</italic>: <italic>a</italic> ∈ {move, change altitude, return};</p>
      <p>2) For the discrete model, <italic>a</italic> ∈ {N/E/S/W/up/down};</p>
      <p>3) For the continuous model, <italic>a</italic> ∈ {velocity, climb rate};</p>
      <p>4) Transition Model <inline-formula><mml:math><mml:mrow><mml:mi> P </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> | </mml:mo><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> converts information such as motion dynamics, wind disturbance, sensor &amp; actuation uncertainty, etc. Therefore, the next state probability is modeled as the addition of the system dynamics and also the noise.</p>
      <disp-formula id="FD5">
        <mml:math>
          <mml:mrow>
            <mml:mi>P</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msup>
                  <mml:mi>s</mml:mi>
                  <mml:mo>′</mml:mo>
                </mml:msup>
                <mml:mo>|</mml:mo>
                <mml:mi>s</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>a</mml:mi>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mtext>Dynamics</mml:mtext>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>s</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>a</mml:mi>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>ϵ</mml:mi>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>where,</p>
      <p><inline-formula><mml:math><mml:mrow><mml:mtext> Dynamics </mml:mtext><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Deterministic system model predicting the next state;</p>
      <p><inline-formula><mml:math><mml:mi> ϵ </mml:mi></mml:math></inline-formula> —Small disturbance or the noise term.</p>
      <p>Therefore, the optimal Policy <inline-formula><mml:math><mml:mrow><mml:msup><mml:mi> π </mml:mi><mml:mtext> * </mml:mtext></mml:msup></mml:mrow></mml:math></inline-formula> produces an efficient path under uncertainty as below:</p>
      <disp-formula id="FD6">
        <mml:math>
          <mml:mrow>
            <mml:msup>
              <mml:mi>π</mml:mi>
              <mml:mo>*</mml:mo>
            </mml:msup>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mi>s</mml:mi>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mi>arg</mml:mi>
            <mml:munder>
              <mml:mrow>
                <mml:mi>max</mml:mi>
              </mml:mrow>
              <mml:mi>a</mml:mi>
            </mml:munder>
            <mml:mi mathvariant="double-struck">E</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:munderover>
                  <mml:mstyle mathsize="140%" displaystyle="true">
                    <mml:mo>∑</mml:mo>
                  </mml:mstyle>
                  <mml:mrow>
                    <mml:mi>t</mml:mi>
                    <mml:mo>=</mml:mo>
                    <mml:mn>0</mml:mn>
                  </mml:mrow>
                  <mml:mi>∞</mml:mi>
                </mml:munderover>
                <mml:mtext>
                   
                </mml:mtext>
                <mml:msup>
                  <mml:mi>γ</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msup>
                <mml:msub>
                  <mml:mi>R</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Reward function or the total reward, <inline-formula><mml:math><mml:mrow><mml:mi> R </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi><mml:mo> , </mml:mo><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the weighted combination of several reward components such as coverage, quality, energy and time.</p>
      <disp-formula id="FD7">
        <mml:math>
          <mml:mrow>
            <mml:mi>R</mml:mi>
            <mml:mo>=</mml:mo>
            <mml:msub>
              <mml:mi>w</mml:mi>
              <mml:mi>c</mml:mi>
            </mml:msub>
            <mml:mo>⋅</mml:mo>
            <mml:mtext>Coverage</mml:mtext>
            <mml:mo>+</mml:mo>
            <mml:msub>
              <mml:mi>w</mml:mi>
              <mml:mi>q</mml:mi>
            </mml:msub>
            <mml:mo>⋅</mml:mo>
            <mml:mtext>Quality</mml:mtext>
            <mml:mo>−</mml:mo>
            <mml:msub>
              <mml:mi>w</mml:mi>
              <mml:mi>e</mml:mi>
            </mml:msub>
            <mml:mo>⋅</mml:mo>
            <mml:mtext>Energy</mml:mtext>
            <mml:mo>−</mml:mo>
            <mml:msub>
              <mml:mi>w</mml:mi>
              <mml:mi>t</mml:mi>
            </mml:msub>
            <mml:mo>⋅</mml:mo>
            <mml:mtext>Time</mml:mtext>
          </mml:mrow>
        </mml:math>
      </disp-formula>
    </sec>
    <sec id="sec6">
      <title>6. Practical Solution Approaches of Fully Numerical Grid-World MDP for Autonomous Area Mapping</title>
      <p>It’s important that a drone must map an unknown area which is represented as a grid. The objective is to maximize the mapped area (information) while avoiding collisions and returning to base before battery runs out.</p>
      <p><bold>Case 1:</bold><bold>Autonomous area mapping for a 2</bold><bold>×</bold><bold>2 grid with Q-</bold><bold>l</bold><bold>earning in ab</bold><bold>sence of</bold><bold>an obstacle</bold></p>
      <p><bold>Grid Definition</bold></p>
      <p>Index cells row-wise (Vector size = 4):</p>
      <p>0 1</p>
      <p>2 3</p>
      <p>So: Mapped state, <inline-formula><mml:math><mml:mrow><mml:mi> M </mml:mi><mml:mo> ∈ </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow><mml:mn> 4 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> (For each entry, explored is taken as one (1) and unexplored is taken as zero (0)).</p>
      <p><bold>State Definition</bold></p>
      <p><inline-formula><mml:math display="inline"><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> p </mml:mi><mml:mo> , </mml:mo><mml:mi> M </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —total of 64 states and <inline-formula><mml:math display="inline"><mml:mrow><mml:mrow><mml:mo> | </mml:mo><mml:mi> S </mml:mi><mml:mo> | </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 4 </mml:mn><mml:mo> × </mml:mo><mml:msup><mml:mn> 2 </mml:mn><mml:mn> 4 </mml:mn></mml:msup><mml:mo> = </mml:mo><mml:mn> 64 </mml:mn></mml:mrow></mml:math></inline-formula></p>
      <p>where:</p>
      <p><inline-formula><mml:math><mml:mrow><mml:mi> p </mml:mi><mml:mo> ∈ </mml:mo><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn><mml:mo> , </mml:mo><mml:mn> 2 </mml:mn><mml:mo> , </mml:mo><mml:mn> 3 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> ;<inline-formula><mml:math><mml:mrow><mml:mi> M </mml:mi><mml:mo> ∈ </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow><mml:mn> 4 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> .</p>
      <p><bold>Action Space Table</bold></p>
      <table-wrap id="tbl1">
        <label>Table 1</label>
        <table>
          <tbody>
            <tr>
              <td>Action</td>
              <td>Code</td>
            </tr>
            <tr>
              <td>Up</td>
              <td>0</td>
            </tr>
            <tr>
              <td>Down</td>
              <td>1</td>
            </tr>
            <tr>
              <td>Left</td>
              <td>2</td>
            </tr>
            <tr>
              <td>Right</td>
              <td>3</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p><bold>Reward Function</bold></p>
      <disp-formula id="FD8">
        <mml:math>
          <mml:mrow>
            <mml:mi>R</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>s</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>a</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:msup>
                  <mml:mi>s</mml:mi>
                  <mml:mo>′</mml:mo>
                </mml:msup>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mrow>
              <mml:mo>{</mml:mo>
              <mml:mrow>
                <mml:mtable columnalign="left">
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:mn>5</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>new cell explored</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>1</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>visited cell</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>5</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>invalid move</mml:mtext>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mtext>wall</mml:mtext>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                </mml:mtable>
              </mml:mrow>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Initial State—start at cell 0:</p>
      <p><italic>p</italic><sub>0</sub> = 0</p>
      <p><italic>M</italic><sub>0</sub> = [1, 0, 0, 0]</p>
      <p><bold>Transition Steps</bold></p>
      <p>Step 1: Action: Right (3)</p>
      <p>0 → 1—valid move</p>
      <p><italic>p</italic><sub>1</sub> = 1</p>
      <p><italic>M</italic><sub>1</sub> = [1, 1, 0, 0]</p>
      <p>Reward = +5</p>
      <p>Step 2: Action: Down (1)</p>
      <p>1 → 3—valid move</p>
      <p><italic>p</italic><sub>2</sub> = 3</p>
      <p><italic>M</italic><sub>2</sub> = [1, 1, 0, 1]</p>
      <p>Reward = +5</p>
      <p>Step 3: Action: Left (2)</p>
      <p>3 → 2—valid move</p>
      <p><italic>p</italic><sub>3</sub> = 2</p>
      <p><italic>M</italic><sub>3</sub> = [1, 1, 1, 1]</p>
      <p>Reward = +5</p>
      <p>It’s noted that all cells are now explored.</p>
      <p><bold>Q-Learning Update Equation</bold></p>
      <disp-formula id="FD9">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>s</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
                <mml:mo>,</mml:mo>
                <mml:msub>
                  <mml:mi>a</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>s</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
                <mml:mo>,</mml:mo>
                <mml:msub>
                  <mml:mi>a</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:msub>
                  <mml:mi>r</mml:mi>
                  <mml:mi>t</mml:mi>
                </mml:msub>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:munder>
                  <mml:mrow>
                    <mml:mtext>max</mml:mtext>
                  </mml:mrow>
                  <mml:mi>a</mml:mi>
                </mml:munder>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:msub>
                      <mml:mi>s</mml:mi>
                      <mml:mrow>
                        <mml:mi>t</mml:mi>
                        <mml:mo>+</mml:mo>
                        <mml:mn>1</mml:mn>
                      </mml:mrow>
                    </mml:msub>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:msub>
                      <mml:mi>s</mml:mi>
                      <mml:mi>t</mml:mi>
                    </mml:msub>
                    <mml:mo>,</mml:mo>
                    <mml:msub>
                      <mml:mi>a</mml:mi>
                      <mml:mi>t</mml:mi>
                    </mml:msub>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Step 1: From state 0, the agent has taken an action “Right” (action code is 3).</p>
      <p>Current state, <inline-formula><mml:math><mml:mrow><mml:mi> s </mml:mi><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and action taken, <inline-formula><mml:math><mml:mrow><mml:mi> a </mml:mi><mml:mo> = </mml:mo><mml:mn> 3 </mml:mn></mml:mrow></mml:math></inline-formula> (Right). From state 0, moving Right leads to the next state, <inline-formula><mml:math display="inline"><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> = </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:math></inline-formula> . Since state 1 is new, <inline-formula><mml:math><mml:mrow><mml:mi> r </mml:mi><mml:mo> = </mml:mo><mml:mo> + </mml:mo><mml:mn> 5 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>Since no learning has happened yet, it’s reasonable to consider current Q-value at the start as <inline-formula><mml:math><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 3 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and the maximum future Q-value from next state (1) as <inline-formula><mml:math><mml:mrow><mml:mi> max </mml:mi><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>Also consider the learning parameters as follows:</p>
      <p>Learning rate: <inline-formula><mml:math><mml:mrow><mml:mi> α </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.5 </mml:mn></mml:mrow></mml:math></inline-formula> ;</p>
      <p>Discount factor: <inline-formula><mml:math><mml:mrow><mml:mi> γ </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.9 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>Q-learning update for step 1:</p>
      <disp-formula id="FD10">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>0</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>3</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Substituting values:</p>
      <disp-formula id="FD11">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>5</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>2.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <table-wrap id="tbl2">
        <label>Table 2</label>
        <table>
          <tbody>
            <tr>
              <td>State</td>
              <td>Up (0)</td>
              <td>Down (1)</td>
              <td>Left (2)</td>
              <td>Right (3)</td>
            </tr>
            <tr>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
            </tr>
            <tr>
              <td>1</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
            <tr>
              <td>3</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
            <tr>
              <td>2</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>Partially updated Q-table for changing status is:</p>
      <p>It’s important to note that the agent has learnt, going right from state 0 is a better choice and also future selection of actions prefers going right. This way of learning is driven by the positive reward. Moreover, a negative TD error indicates that the action was worse than expected and the high Q-value indicates that the direction of movement is in the right direction.</p>
      <p>Step 2: From state 1, the agent has taken an action “Down” (action code is 1).</p>
      <p>Current state, <italic>s</italic> = 1 and action taken, <italic>a</italic> = 1 (“Down”).</p>
      <p>From state 1, moving down leads to the next state, <italic>s</italic>ʹ = 3.</p>
      <p>Since state 3 is new, <italic>r</italic> = +5.</p>
      <p>Also consider current Q-value at the start, <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 1 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is zero (0).</p>
      <p>The maximum future Q-value from next state (3), <inline-formula><mml:math><mml:mrow><mml:mi> max </mml:mi><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 3 </mml:mn><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> can be assumed as 0 since no learning has happened yet.</p>
      <p>Q-learning update for step 2:</p>
      <disp-formula id="FD12">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>1</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>1</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Substituting values:</p>
      <disp-formula id="FD13">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>5</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>1</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>2.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <table-wrap id="tbl3">
        <label>Table 3</label>
        <table>
          <tbody>
            <tr>
              <td>State</td>
              <td>Up (0)</td>
              <td>Down (1)</td>
              <td>Left (2)</td>
              <td>Right (3)</td>
            </tr>
            <tr>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
            </tr>
            <tr>
              <td>1</td>
              <td>0</td>
              <td>2.5</td>
              <td>0</td>
              <td>0</td>
            </tr>
            <tr>
              <td>3</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
            <tr>
              <td>2</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>Partially updated Q-table</p>
      <p>Step 3: From state 3, the agent has taken an action “Left” (action code is 2).</p>
      <p>Current state, s = 3 and action taken, <italic>a</italic> = 2 (“Left”).</p>
      <p>From state 3, moving left leads to the next state, <italic>s</italic>ʹ = 2.</p>
      <p>Since state 2 is new, <italic>r</italic> = +5.</p>
      <p>Also consider current Q-value at the start as <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 3 </mml:mn><mml:mo> , </mml:mo><mml:mn> 2 </mml:mn></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>The maximum future Q-value from next state (2), <inline-formula><mml:math><mml:mrow><mml:mi> max </mml:mi><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mn> 2 </mml:mn><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> can be assumed as 0 since no learning has happened yet.</p>
      <p>Q-learning update for step 3:</p>
      <disp-formula id="FD14">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>2</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Substituting values:</p>
      <disp-formula id="FD15">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>5</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>2.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <table-wrap id="tbl4">
        <label>Table 4</label>
        <table>
          <tbody>
            <tr>
              <td>State</td>
              <td>Up (0)</td>
              <td>Down (1)</td>
              <td>Left (2)</td>
              <td>Right (3)</td>
            </tr>
            <tr>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
            </tr>
            <tr>
              <td>1</td>
              <td>0</td>
              <td>2.5</td>
              <td>0</td>
              <td>0</td>
            </tr>
            <tr>
              <td>3</td>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
              <td>0</td>
            </tr>
            <tr>
              <td>2</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>Partially updated Q-table for the above state changes</p>
      <p><bold>Case 2: Autonomous area mapping for the same 2</bold><bold>×</bold><bold>2 grid with Q-</bold><bold>l</bold><bold>earning in the presence of</bold><bold>an obstacle</bold></p>
      <p>Index cells row-wise from 0 to 3 (Vector size = 4):</p>
      <p>Let <bold>cell 1</bold> be an obstacle so that the robot cannot enter cell 1.</p>
      <p>0 X</p>
      <p>2 3</p>
      <p>where:</p>
      <p><inline-formula><mml:math><mml:mrow><mml:mi> p </mml:mi><mml:mo> ∈ </mml:mo><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 2 </mml:mn><mml:mo> , </mml:mo><mml:mn> 3 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> (cell 1 is forbidden);<inline-formula><mml:math><mml:mrow><mml:mi> M </mml:mi><mml:mo> ∈ </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow><mml:mn> 4 </mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> .</p>
      <p><bold>Updated Reward Function</bold></p>
      <disp-formula id="FD16">
        <mml:math>
          <mml:mrow>
            <mml:mi>R</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>s</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>a</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:msup>
                  <mml:mi>s</mml:mi>
                  <mml:mo>′</mml:mo>
                </mml:msup>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mrow>
              <mml:mo>{</mml:mo>
              <mml:mrow>
                <mml:mtable columnalign="left">
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:mn>5</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>new cell explored</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>1</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>revisiting a cell</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>10</mml:mn>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>hit obstacle or wall</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                </mml:mtable>
              </mml:mrow>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Initial State—start at cell 0:</p>
      <p><italic>p</italic><sub>0</sub> = 0</p>
      <p><italic>M</italic><sub>0</sub> = [1, 0, 0, 0]</p>
      <p>Valid Transitions from cell 0:</p>
      <p>Right → obstacle → stay in 0, down → cell 2, left → wall and up → wall</p>
      <p><bold>Transition Steps</bold></p>
      <p>Step 1: Action: Right (3)</p>
      <p>0 → 1—hit obstacle (blocked), therefore the next state = 0 (no movement)</p>
      <p><italic>p</italic><sub>1</sub> = 0</p>
      <p><italic>M</italic><sub>1</sub> = [1, 0, 0, 0]</p>
      <p>Reward = −10</p>
      <p>Step 2: Action: Down (1)</p>
      <p>0 → 2—valid move</p>
      <p><italic>p</italic><sub>2</sub> = 2</p>
      <p><italic>M</italic><sub>2</sub> = [1, 0, 1, 0]</p>
      <p>Reward = +5</p>
      <p>Step 3: Action: Right (3)</p>
      <p>2 → 3—valid move</p>
      <p><italic>p</italic><sub>3</sub> = 3</p>
      <p><italic>M</italic><sub>3</sub> = [1, 0, 1, 1]</p>
      <p>Reward = +5</p>
      <p>Step 4: Action: Up (0)</p>
      <p>3 → 1—blocked (obstacle)</p>
      <p><italic>p</italic><sub>4</sub> = 3</p>
      <p><italic>M</italic><sub>4</sub> = [1, 0, 1, 1]</p>
      <p>Reward = −10</p>
      <p>Map after exploration:</p>
      <p>+-----+-----+</p>
      <p>X</p>
      <p>+-----+-----+</p>
      <p>+-----+-----+</p>
      <p><bold>Q-Learning update</bold><bold>(</bold><bold>numerical)</bold></p>
      <p>Assume:</p>
      <p><inline-formula><mml:math><mml:mrow><mml:mi> α </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.5 </mml:mn></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math><mml:mrow><mml:mi> γ </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.9 </mml:mn></mml:mrow></mml:math></inline-formula> , <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math display="inline"><mml:mrow><mml:mi> max </mml:mi><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> , </mml:mo><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> since no learning has happened yet.</p>
      <p>Q-learning update for step 1—Action: Right (3):</p>
      <disp-formula id="FD17">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>0</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>0</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>3</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD18">
        <mml:math display="inline">
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>10</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mo>−</mml:mo>
            <mml:mn>5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Q-learning update for step 2—Action: Down (1):</p>
      <disp-formula id="FD19">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>0</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>0</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>3</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD20">
        <mml:math display="inline">
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mn>5</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>2.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Q-learning update for step 3—Action: Right (3):</p>
      <disp-formula id="FD21">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>2</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>3</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD22">
        <mml:math display="inline">
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>2</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mn>5</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>2.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Q-learning update for step 4—Action: Up (0):</p>
      <disp-formula id="FD23">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>0</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD24">
        <mml:math display="inline">
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>10</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mo>−</mml:mo>
            <mml:mn>5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Q-learning update for step 5—Action: Left (2):</p>
      <disp-formula id="FD25">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>←</mml:mo>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>+</mml:mo>
            <mml:mi>α</mml:mi>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mi>r</mml:mi>
                <mml:mo>+</mml:mo>
                <mml:mi>γ</mml:mi>
                <mml:mi>max</mml:mi>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>2</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mi>a</mml:mi>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mi>Q</mml:mi>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mrow>
                    <mml:mn>3</mml:mn>
                    <mml:mo>,</mml:mo>
                    <mml:mn>2</mml:mn>
                  </mml:mrow>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <disp-formula id="FD26">
        <mml:math display="inline">
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>3</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>2</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>[</mml:mo>
              <mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>1</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mrow>
                  <mml:mo>(</mml:mo>
                  <mml:mn>0</mml:mn>
                  <mml:mo>)</mml:mo>
                </mml:mrow>
              </mml:mrow>
              <mml:mo>]</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mo>−</mml:mo>
            <mml:mn>0.5</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <table-wrap id="tbl5">
        <label>Table 5</label>
        <table>
          <tbody>
            <tr>
              <td>State</td>
              <td>Up (0)</td>
              <td>Down (1)</td>
              <td>Left (2)</td>
              <td>Right (3)</td>
            </tr>
            <tr>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
              <td>0</td>
              <td>−5</td>
            </tr>
            <tr>
              <td>1</td>
              <td>-</td>
              <td>-</td>
              <td>-</td>
              <td>-</td>
            </tr>
            <tr>
              <td>2</td>
              <td>0</td>
              <td>0</td>
              <td>0</td>
              <td>2.5</td>
            </tr>
            <tr>
              <td>3</td>
              <td>−5</td>
              <td>0</td>
              <td>−0.5</td>
              <td>0</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>Updated Q-table</p>
      <p>State Space Size is given by the multiplication of reachable positions (3) and mapped states (16).</p>
      <p>State Space Size, <inline-formula><mml:math><mml:mrow><mml:mrow><mml:mo> | </mml:mo><mml:mi> S </mml:mi><mml:mo> | </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 3 </mml:mn><mml:mo> × </mml:mo><mml:msup><mml:mn> 2 </mml:mn><mml:mn> 4 </mml:mn></mml:msup><mml:mo> = </mml:mo><mml:mn> 48 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>It’s understood that the agent has strongly avoided walls due to obstacle penalty and also the looping has prevented due to revisit penalty. In here, the exploration is encouraged, but it’s finite to a great extent.</p>
      <p><bold>Case 3:</bold><bold>Autonomous area mapping for 5</bold><bold>×</bold><bold>5 grid with Q-</bold><bold>l</bold><bold>earning in the</bold><bold>presence of</bold><bold>obstacles</bold></p>
      <p><bold>Grid Definition</bold></p>
      <p>Index cells row-wise (vector size = 25): (index 0 - 24)</p>
      <p>0 1 2 3 4</p>
      <p>5 6 <bold>7</bold> 8 9</p>
      <p>10 11 12 <bold>13</bold> 14</p>
      <p>15 16 17 18 19</p>
      <p>20 <bold>21</bold> 22 23 24</p>
      <p>Let <bold>cells 7</bold>, <bold>13</bold>, <bold>and</bold><bold>21</bold> be obstacles (3 obstacle cells), so that the robot cannot enter those cells. A penalty should be imposed if the robot attempts those cells. It’s also counted as an obstacle if action moves outside the grid and, as a result, the agent stays in same state.</p>
      <p><inline-formula><mml:math display="inline"><mml:mrow><mml:mi> S </mml:mi><mml:mo> = </mml:mo><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> , </mml:mo><mml:mi> M </mml:mi><mml:mo> ∈ </mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo> { </mml:mo><mml:mrow><mml:mn> 0 </mml:mn><mml:mo> , </mml:mo><mml:mn> 1 </mml:mn></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn> 25 </mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mo> } </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Robot position is given by <inline-formula><mml:math display="inline"><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and the mapped state by <italic>M</italic></p>
      <p>where:</p>
      <p><inline-formula><mml:math display="inline"><mml:mrow><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> x </mml:mi><mml:mo> , </mml:mo><mml:mi> y </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> —Robot position (<italic>x</italic> is a row position and <italic>y</italic> is a column position);</p>
      <p><inline-formula><mml:math><mml:mi> M </mml:mi></mml:math></inline-formula> —Mapped/coverage state.</p>
      <disp-formula id="FD27">
        <mml:math>
          <mml:mrow>
            <mml:mi>A</mml:mi>
            <mml:mo>=</mml:mo>
            <mml:mrow>
              <mml:mo>{</mml:mo>
              <mml:mrow>
                <mml:mtext>up</mml:mtext>
                <mml:mo>,</mml:mo>
                <mml:mtext>down</mml:mtext>
                <mml:mo>,</mml:mo>
                <mml:mtext>left</mml:mtext>
                <mml:mo>,</mml:mo>
                <mml:mtext>right</mml:mtext>
                <mml:mo>,</mml:mo>
                <mml:mtext>stay</mml:mtext>
              </mml:mrow>
              <mml:mo>}</mml:mo>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p><bold>Action Space Table</bold></p>
      <table-wrap id="tbl6">
        <label>Table 6</label>
        <table>
          <tbody>
            <tr>
              <td>Action</td>
              <td>Code</td>
            </tr>
            <tr>
              <td>Up</td>
              <td>0</td>
            </tr>
            <tr>
              <td>Down</td>
              <td>1</td>
            </tr>
            <tr>
              <td>Left</td>
              <td>2</td>
            </tr>
            <tr>
              <td>Right</td>
              <td>3</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p><bold>Updated Reward Function</bold></p>
      <p>Typical rewards for area mapping are to encourage exploration and also to avoid unnecessary movement.</p>
      <disp-formula id="FD28">
        <mml:math>
          <mml:mrow>
            <mml:mi>R</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mi>s</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:mi>a</mml:mi>
                <mml:mo>,</mml:mo>
                <mml:msup>
                  <mml:mi>s</mml:mi>
                  <mml:mo>′</mml:mo>
                </mml:msup>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mrow>
              <mml:mo>{</mml:mo>
              <mml:mrow>
                <mml:mtable columnalign="left">
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>+</mml:mo>
                        <mml:mn>10</mml:mn>
                        <mml:mo>,</mml:mo>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>if</mml:mtext>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:msup>
                          <mml:mi>s</mml:mi>
                          <mml:mo>′</mml:mo>
                        </mml:msup>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mtext>is a new</mml:mtext>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mtext>unvisited</mml:mtext>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mtext>cell</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>1</mml:mn>
                        <mml:mo>,</mml:mo>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>if</mml:mtext>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:msup>
                          <mml:mi>s</mml:mi>
                          <mml:mo>′</mml:mo>
                        </mml:msup>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mtext>is already visited</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>5</mml:mn>
                        <mml:mo>,</mml:mo>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>if</mml:mtext>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:msup>
                          <mml:mi>s</mml:mi>
                          <mml:mo>′</mml:mo>
                        </mml:msup>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mtext>is an obstacle</mml:mtext>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                  <mml:mtr columnalign="left">
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mo>−</mml:mo>
                        <mml:mn>0.1</mml:mn>
                        <mml:mo>,</mml:mo>
                      </mml:mrow>
                    </mml:mtd>
                    <mml:mtd columnalign="left">
                      <mml:mrow>
                        <mml:mtext>every step</mml:mtext>
                        <mml:mtext>
                           
                        </mml:mtext>
                        <mml:mrow>
                          <mml:mo>(</mml:mo>
                          <mml:mrow>
                            <mml:mtext>energy cost</mml:mtext>
                          </mml:mrow>
                          <mml:mo>)</mml:mo>
                        </mml:mrow>
                      </mml:mrow>
                    </mml:mtd>
                  </mml:mtr>
                </mml:mtable>
              </mml:mrow>
            </mml:mrow>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Rewards for various actions:</p>
      <p>If agent enters a new cell: <inline-formula><mml:math><mml:mrow><mml:mi> R </mml:mi><mml:mo> = </mml:mo><mml:mo> + </mml:mo><mml:mn> 10 </mml:mn><mml:mo> − </mml:mo><mml:mn> 0.1 </mml:mn><mml:mo> = </mml:mo><mml:mo> + </mml:mo><mml:mn> 9.9 </mml:mn></mml:mrow></mml:math></inline-formula> . If it revisits a cell: <inline-formula><mml:math><mml:mrow><mml:mi> R </mml:mi><mml:mo> = </mml:mo><mml:mo> − </mml:mo><mml:mn> 1 </mml:mn><mml:mo> − </mml:mo><mml:mn> 0.1 </mml:mn><mml:mo> = </mml:mo><mml:mo> − </mml:mo><mml:mn> 1.1 </mml:mn></mml:mrow></mml:math></inline-formula> . If it hits obstacle: <inline-formula><mml:math><mml:mrow><mml:mi> R </mml:mi><mml:mo> = </mml:mo><mml:mo> − </mml:mo><mml:mn> 5 </mml:mn><mml:mo> − </mml:mo><mml:mn> 0.1 </mml:mn><mml:mo> = </mml:mo><mml:mo> − </mml:mo><mml:mn> 5.1 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p><bold>Q-</bold><bold>l</bold><bold>earning</bold><bold>formulation</bold></p>
      <p>Update Rule—<inline-formula><mml:math><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> ← </mml:mo><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> + </mml:mo><mml:mi> α </mml:mi><mml:mrow><mml:mo> [ </mml:mo><mml:mrow><mml:mi> r </mml:mi><mml:mo> + </mml:mo><mml:mi> γ </mml:mi><mml:munder><mml:mrow><mml:mtext> max </mml:mtext></mml:mrow><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:munder><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msup><mml:mi> s </mml:mi><mml:mo> ′ </mml:mo></mml:msup><mml:mo> , </mml:mo><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> − </mml:mo><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:mi> s </mml:mi><mml:mo> , </mml:mo><mml:mi> a </mml:mi></mml:mrow><mml:mo> ) </mml:mo></mml:mrow></mml:mrow><mml:mo> ] </mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> . Assume Learning Rate, <inline-formula><mml:math><mml:mrow><mml:mi> α </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.5 </mml:mn></mml:mrow></mml:math></inline-formula> and Discount Factor, <inline-formula><mml:math><mml:mrow><mml:mi> γ </mml:mi><mml:mo> = </mml:mo><mml:mn> 0.9 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p>The exploration objectives are:</p>
      <p>1) The agent learns to maximize coverage (visit all non-obstacle cells);</p>
      <p>2) Avoid obstacles;</p>
      <p>3) Avoid unnecessary revisits; and</p>
      <p>4) Minimize movement cost.</p>
      <p><bold>Various actions by the agent</bold></p>
      <p>Assume <inline-formula><mml:math><mml:mrow><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> s </mml:mi><mml:mi> t </mml:mi></mml:msub><mml:mo> , </mml:mo><mml:msub><mml:mi> a </mml:mi><mml:mi> t </mml:mi></mml:msub></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math><mml:mrow><mml:munder><mml:mrow><mml:mi> max </mml:mi></mml:mrow><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:munder><mml:mi> Q </mml:mi><mml:mrow><mml:mo> ( </mml:mo><mml:mrow><mml:msub><mml:mi> s </mml:mi><mml:mrow><mml:mi> t </mml:mi><mml:mo> + </mml:mo><mml:mn> 1 </mml:mn></mml:mrow></mml:msub><mml:mo> , </mml:mo><mml:msup><mml:mi> a </mml:mi><mml:mo> ′ </mml:mo></mml:msup></mml:mrow><mml:mo> ) </mml:mo></mml:mrow><mml:mo> = </mml:mo><mml:mn> 0 </mml:mn></mml:mrow></mml:math></inline-formula> .</p>
      <p><bold>Various Transition Steps</bold></p>
      <p>Action: Move from state 0 to 1—moving right (3)</p>
      <p>0 → 1 is a valid move</p>
      <p><italic>p</italic><sub>0</sub> = 0 and <italic>p</italic><sub>1</sub> = 1</p>
      <p><italic>M</italic><sub>0</sub> = [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]—Note that the robot has not explored any cells yet.</p>
      <p><italic>M</italic><sub>1</sub> = [1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]</p>
      <p>Reward = +9.9</p>
      <p>Q-learning update for the above step:</p>
      <disp-formula id="FD29">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>0</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>9.9</mml:mn>
                <mml:mo>+</mml:mo>
                <mml:mn>0.9</mml:mn>
                <mml:mo>⋅</mml:mo>
                <mml:mn>0</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>4.95</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Action: Move from state 6 to 7—moving right (3)</p>
      <p>6 → 7 is not a valid move (obstacle)</p>
      <p><italic>p</italic><sub>6</sub> = 6 and <italic>p</italic><sub>7</sub> = 6</p>
      <p><italic>M</italic><sub>6</sub> = [1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]—the robot has explored 6 cells.</p>
      <p>Reward = −5.1</p>
      <p>Q-learning update for the above step:</p>
      <disp-formula id="FD30">
        <mml:math>
          <mml:mrow>
            <mml:mi>Q</mml:mi>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mn>6</mml:mn>
                <mml:mo>,</mml:mo>
                <mml:mn>3</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mn>0</mml:mn>
            <mml:mo>+</mml:mo>
            <mml:mn>0.5</mml:mn>
            <mml:mrow>
              <mml:mo>(</mml:mo>
              <mml:mrow>
                <mml:mo>−</mml:mo>
                <mml:mn>5.1</mml:mn>
              </mml:mrow>
              <mml:mo>)</mml:mo>
            </mml:mrow>
            <mml:mo>=</mml:mo>
            <mml:mo>−</mml:mo>
            <mml:mn>2.55</mml:mn>
          </mml:mrow>
        </mml:math>
      </disp-formula>
      <p>Although the above-described architecture can minimize latency, maximize energy efficiency, and boost processing speed using onboard computation and hierarchical task execution, these advantages are anticipated on the basis of the theoretical framework that underpins the architecture. They are not empirically established in this research.</p>
    </sec>
    <sec id="sec7">
      <title>7. IoT ML Models for Autonomous Area Mapping</title>
      <p>Reinforcement Learning (RL) models have been used to carry out autonomous area mapping in Internet of Things (IoT) settings, as this allows agents to efficiently explore unknown spaces with limited resources. In this case, IoT technology is used to create intelligent agents, like robots, drones, and sensors, that can collect spatial information and interact with edge or cloud nodes for processing. Among the different reinforcement learning models, Q-learning is considered very appropriate for autonomous area mapping as it does not require previous models of the environment and the optimal navigation policies can be learnt directly from interaction with the surrounding of the environment.</p>
      <p>In an autonomous mapping scenario based on IoT, the physical world is typically represented as a grid-world, where each cell of the grid corresponds to a state. Obstacles like walls, furniture, or restricted areas are represented either as invalid states or as states with high negative rewards. The IoT agent explores the environment using its onboard sensors (LiDAR, ultrasonic, infrared, and cameras) to identify obstacles and unvisited areas in real-time [<xref ref-type="bibr" rid="B13">13</xref>]. The sensor data is converted into state transitions for the Q-learning algorithm, where moving up, down, left, or right actions are assessed based on their long-term expected reward. This close integration of sensing (IoT layer) and learning (ML layer) makes it possible to learn adaptive maps even in dynamic or partially observable environments [<xref ref-type="bibr" rid="B14">14</xref>]-[<xref ref-type="bibr" rid="B16">16</xref>].</p>
      <p>The reward function is of significant importance in guiding the Q-learning algorithm in autonomous mapping. For example, positive reward is usually provided when entering unexplored cells, thus maximizing coverage, while negative reward is provided in cases of re-visiting areas, collision with obstacles, or excessive energy usage. In the case of IoT networks, since the energy level of batteries is important, step penalty is usually integrated into the algorithm to represent battery usage or communication overheads. Therefore, the inclusion of Q-values to balance exploration, energy cost and safety is very important, resulting in an optimal navigation policy while avoiding obstacles and efficiency.</p>
      <p>From a system perspective, IoT systems frequently utilize Q-learning in combination with edge computing to achieve efficient autonomous mapping. This is because, instead of transmitting raw sensor data to the cloud for processing, edge nodes may update Q-values and partial maps in parallel, transmitting only higher-level information if necessary. This is particularly beneficial in multi-agent systems where multiple IoT devices may cooperatively map large areas. Each agent is able to manage its own Q-table while sharing its learning with other agents to achieve faster convergence of the learning process.</p>
      <p>In conclusion, Q-learning-based ML models in IoT systems provide an efficient and clear framework for autonomous area mapping in the presence of obstacles for applications such as smart buildings, environmental monitoring, and warehouse automation. This is because they have low computational complexity with model-free nature, and can handle discrete state-action spaces, making them suitable for practical applications in IoT systems. Although more advanced models such as DRL (Deep Reinforcement Learning) can handle large and complex spaces, Q-learning is still an efficient solution for autonomous mapping in the presence of obstacles in IoT systems, even with limited resources.</p>
    </sec>
    <sec id="sec8">
      <title>8. A Potential System Design Model</title>
      <p>Building on the decision-making model, the system-level architecture required to support real-time deployment is described. A potential system design model that can support the suggested approach can be based on a lightweight drone such as a quadcopter that is dedicated to imaging. The quadcopter will be equipped with a high-resolution RGB camera, along with a multispectral thermal camera, as well as IMU (Inertial Measurement Unit). IMU could be a set of hardware sensors capable of measuring the movements and rotations of the drone generally made up of accelerometers, gyros, and a magnetometer. The edge computing device should also be attached to the quadcopter.</p>
      <p>Vision transformers and other efficient deep learning architectures that enhance images, detect objects, and interpret scenes can also be deployed in a hierarchical computing system. Tasks with tight latency requirements, such as capturing, stabilization, and enhancement of images and object detection, are performed locally on the UAV. All other tasks requiring more resources, such as stitching multiple frames, performing sophisticated filtering, and tracking features, can be assigned to a nearby edge server through a low-latency connection. The most computationally intensive tasks, such as analyzing big data sets, training machine learning models, and storing data for archival purposes, are delegated to the cloud.</p>
    </sec>
    <sec id="sec9">
      <title>9. Conclusions</title>
      <p>In summary, incorporating Q-learning in autonomous area mapping provides an impressive and intuitive approach for enabling intelligent agents to explore unknown environments with obstacles. By modeling the area mapping problem as a Markov Decision Process, the agent learns optimal navigation policies by interacting with the environment directly, without the need for priori knowledge. The addition of obstacles as penalized states or forbidden transitions enables the learned policy to seek safe and feasible paths naturally, while simultaneously improving map coverage over time.</p>
      <p>Reinforcement learning is very effective in situations where uncertainty and partial observability are common. By formulating a thoughtfully planned reward function that favors the exploration of new regions while discouraging collisions, redundant movement, and high energy usage, the agent can effectively explore and exploit the environment. In the long run, this learning mechanism enables efficient area coverage, reduced navigation errors, and improved adaptability to complex environments. The interpretability of Q-learning also makes it easier to validate for real-world scenarios.</p>
      <p>The presence of obstacles underscores the significance of adaptive decision-making for autonomous mapping systems. Static and dynamic obstacles play an important role in influencing state transitions and reward functions, thus forcing the system to be constantly updated. However, Q-learning is able to handle such challenges through incremental updates to the action value estimates, thus enabling the system to be constantly updated as more information is available from the environment. This is highly advantageous for indoor and urban settings where obstacles are common.</p>
      <p>In practical terms, Q-learning-embodied autonomous area mapping is highly appropriate for platforms such as mobile robots and IoT devices, even with limited resources. This is due to the low computational complexity associated with discrete state-action spaces, thus enabling real-time learning and decision-making for such platforms at the edge. Alternatively, it is also possible to use Q-learning as a basis for mapping with automated decision-making, thus enabling seamless integration with more complex planning and cooperative multi-agent mapping strategies.</p>
      <p>Although the framework has proven to be effective in a controlled numeric environment, some limitations emerge when it is used for actual UAV operations. Firstly, scaling beyond small or grid-based problems poses certain computational problems, because the state space and action space increase significantly in size, requiring approximation techniques or planning in hierarchical form. Secondly, the current model works in discrete time, which may not entirely reflect the continuous dynamics, control inputs, and aerodynamics of real UAVs. Thirdly, the current framework is based on idealized sensory inputs. In a real situation, sensors will have noise, inaccuracies in perception, and limited observation capability, which will affect the operation efficiency of the algorithm. Lastly, there are some other important safety requirements that should be taken into account. Collision avoidance, no-fly zones, and regulatory limitations, although they are implicitly included, should be considered explicitly during the implementation process.</p>
      <p>Overall, Q-learning-embodied autonomous area mapping presents a strong balance of efficiency, robustness, and simplicity of implementation for aerial photography using edge computing and AI-powered algorithms. Although there is a need to extend this to a wider scope with function approximation and deep reinforcement learning, the basic principles of this case are very relevant. Thus, Q-learning in reinforcement learning paradigm remains a trusted and clear approach for obstacle-aware autonomous mapping and it provides a good foundation for intelligent navigation and exploration systems.</p>
    </sec>
    <sec id="sec10">
      <title>Author Contributions</title>
      <p>Conceptualization, Nuraj Indika Rajapakse; methodology, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; software, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; validation, Nuraj Rajapakse and Ismail Ladele Ladipo; formal analysis, Nuraj Indika Rajapakse; investigation, Nuraj Rajapakse and Ismail Ladele Ladipo; resources, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; data curation, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; writing—original draft preparation, Nuraj Indika Rajapakse; writing—review and editing, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; visualization, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; supervision, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; project administration, Nuraj Indika Rajapakse and Ismail Ladele Ladipo; funding acquisition, N/A. All authors have read and agreed to the published version of the manuscript.</p>
    </sec>
    <sec id="sec11">
      <title>Funding</title>
      <p>This research received no external funding.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="B1">
        <label>1.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Xia, X., Fattah, S.M.M. and Babar, M.A. (2023) A Survey on UAV-Enabled Edge Computing: Resource Management Perspective. <italic>ACM Computing Surveys</italic>, 56, 1-36. https://doi.org/10.1145/3626566 <pub-id pub-id-type="doi">10.1145/3626566</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/3626566">https://doi.org/10.1145/3626566</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Xia, X.</string-name>
              <string-name>Fattah, S.M.M.</string-name>
              <string-name>Babar, M.A.</string-name>
            </person-group>
            <year>2023</year>
            <article-title>A Survey on UAV-Enabled Edge Computing: Resource Management Perspective</article-title>
            <source>ACM Computing Surveys</source>
            <volume>56</volume>
            <pub-id pub-id-type="doi">10.1145/3626566</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B2">
        <label>2.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Chang, Z., Liu, S., Xiong, X., Cai, Z. and Tu, G. (2021) A Survey of Recent Advances in Edge-Computing-Powered Artificial Intelligence of Things. <italic>IEEE Internet of Things</italic><italic>Journal</italic>, 8, 13849-13875. https://doi.org/10.1109/jiot.2021.3088875 <pub-id pub-id-type="doi">10.1109/jiot.2021.3088875</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/jiot.2021.3088875">https://doi.org/10.1109/jiot.2021.3088875</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Chang, Z.</string-name>
              <string-name>Liu, S.</string-name>
              <string-name>Xiong, X.</string-name>
              <string-name>Cai, Z.</string-name>
              <string-name>Tu, G.</string-name>
            </person-group>
            <year>2021</year>
            <article-title>A Survey of Recent Advances in Edge-Computing-Powered Artificial Intelligence of Things</article-title>
            <source>IEEE Internet of Things Journal</source>
            <volume>8</volume>
            <pub-id pub-id-type="doi">10.1109/jiot.2021.3088875</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B3">
        <label>3.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Zhu, W. and Chen, K. (2026) Real-Time Object Detection for Unmanned Aerial Vehicles Based on Vision Transformer and Edge Computing. <italic>Scientific Reports</italic>, 16, Article No. 6814. https://doi.org/10.1038/s41598-026-37938-5 <pub-id pub-id-type="doi">10.1038/s41598-026-37938-5</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/s41598-026-37938-5">https://doi.org/10.1038/s41598-026-37938-5</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Zhu, W.</string-name>
              <string-name>Chen, K.</string-name>
            </person-group>
            <year>2026</year>
            <article-title>Real-Time Object Detection for Unmanned Aerial Vehicles Based on Vision Transformer and Edge Computing</article-title>
            <source>Scientific Reports</source>
            <volume>16</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.1038/s41598-026-37938-5</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B4">
        <label>4.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Koubaa, A., Ammar, A., Abdelkader, M., Alhabashi, Y. and Ghouti, L. (2023) AERO: AI-Enabled Remote Sensing Observation with Onboard Edge Computing in UAVs. <italic>Remote Sensing</italic>, 15, Article No. 1873. https://doi.org/10.3390/rs15071873 <pub-id pub-id-type="doi">10.3390/rs15071873</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/rs15071873">https://doi.org/10.3390/rs15071873</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Koubaa, A.</string-name>
              <string-name>Ammar, A.</string-name>
              <string-name>Abdelkader, M.</string-name>
              <string-name>Alhabashi, Y.</string-name>
              <string-name>Ghouti, L.</string-name>
            </person-group>
            <year>2023</year>
            <article-title>AERO: AI-Enabled Remote Sensing Observation with Onboard Edge Computing in UAVs</article-title>
            <source>Remote Sensing</source>
            <volume>15</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/rs15071873</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B5">
        <label>5.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Cao, Z., Kooistra, L., Wang, W., Guo, L. and Valente, J. (2023) Real-Time Object Detection Based on UAV Remote Sensing: A Systematic Literature Review. <italic>Drones</italic>, 7, Article No. 620. https://doi.org/10.3390/drones7100620 <pub-id pub-id-type="doi">10.3390/drones7100620</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/drones7100620">https://doi.org/10.3390/drones7100620</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Cao, Z.</string-name>
              <string-name>Kooistra, L.</string-name>
              <string-name>Wang, W.</string-name>
              <string-name>Guo, L.</string-name>
              <string-name>Valente, J.</string-name>
            </person-group>
            <year>2023</year>
            <article-title>Real-Time Object Detection Based on UAV Remote Sensing: A Systematic Literature Review</article-title>
            <source>Drones</source>
            <volume>7</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/drones7100620</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B6">
        <label>6.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Hakani, R. and Rawat, A. (2024) Edge Computing-Driven Real-Time Drone Detection Using YOLOv9 and NVIDIA Jetson Nano. <italic>Drones</italic>, 8, Article No. 680. https://doi.org/10.3390/drones8110680 <pub-id pub-id-type="doi">10.3390/drones8110680</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/drones8110680">https://doi.org/10.3390/drones8110680</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Hakani, R.</string-name>
              <string-name>Rawat, A.</string-name>
            </person-group>
            <year>2024</year>
            <article-title>Edge Computing-Driven Real-Time Drone Detection Using YOLOv9 and NVIDIA Jetson Nano</article-title>
            <source>Drones</source>
            <volume>8</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/drones8110680</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B7">
        <label>7.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Manoj, H.M., Shanthi, D.L., Lakshmi, B.N., Archana, K.J., Venkata Naga Jyothi, E. and Archana, K. (2025) AI-Driven Drone Technology and Computer Vision for Early Detection of Crop Disease in Large Agricultural Areas. <italic>Scientific Reports</italic>, 16, Article No. 2479. https://doi.org/10.1038/s41598-025-32384-1 <pub-id pub-id-type="doi">10.1038/s41598-025-32384-1</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/s41598-025-32384-1">https://doi.org/10.1038/s41598-025-32384-1</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Manoj, H.M.</string-name>
              <string-name>Shanthi, D.L.</string-name>
              <string-name>Lakshmi, B.N.</string-name>
              <string-name>Archana, K.J.</string-name>
              <string-name>Jyothi, E.</string-name>
              <string-name>Archana, K.</string-name>
            </person-group>
            <year>2025</year>
            <article-title>AI-Driven Drone Technology and Computer Vision for Early Detection of Crop Disease in Large Agricultural Areas</article-title>
            <source>Scientific Reports</source>
            <volume>16</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.1038/s41598-025-32384-1</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B8">
        <label>8.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Katarya, R., Raturi, A., Mehndiratta, A. and Thapper, A. (2020) Impact of Machine Learning Techniques in Precision Agriculture. 2020 3 <italic>rd International Conference on Emerging Technologies in Computer Engineering</italic>: <italic>Machine Learning and Internet of Things</italic> ( <italic>ICETCE</italic>), Jaipur, 7-8 February 2020, 1-6. https://doi.org/10.1109/icetce48199.2020.9091741 <pub-id pub-id-type="doi">10.1109/icetce48199.2020.9091741</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/icetce48199.2020.9091741">https://doi.org/10.1109/icetce48199.2020.9091741</ext-link></mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Katarya, R.</string-name>
              <string-name>Raturi, A.</string-name>
              <string-name>Mehndiratta, A.</string-name>
              <string-name>Thapper, A.</string-name>
            </person-group>
            <year>2020</year>
            <article-title>Impact of Machine Learning Techniques in Precision Agriculture</article-title>
            <source>2020 3rd International Conference on Emerging Technologies in Computer Engineering: Machine Learning and Internet of Things (ICETCE)</source>
            <volume>7</volume>
            <pub-id pub-id-type="doi">10.1109/icetce48199.2020.9091741</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B9">
        <label>9.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Torai, S., Chiyoda, S. and Ohara, K. (2020) Application of AI Technology to Smart Agriculture: Detection of Plant Diseases. 2020 59 <italic>th Annual Conference of the Society of Instrument and</italic><italic>Control</italic><italic>Engineers of Japan</italic> ( <italic>SICE</italic>), Chiang Mai, 23-26 September 2020, 1514-1519. https://doi.org/10.23919/sice48898.2020.9240353 <pub-id pub-id-type="doi">10.23919/sice48898.2020.9240353</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.23919/sice48898.2020.9240353">https://doi.org/10.23919/sice48898.2020.9240353</ext-link></mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Torai, S.</string-name>
              <string-name>Chiyoda, S.</string-name>
              <string-name>Ohara, K.</string-name>
            </person-group>
            <year>2020</year>
            <article-title>Application of AI Technology to Smart Agriculture: Detection of Plant Diseases</article-title>
            <source>2020 59th Annual Conference of the Society of Instrument and Control Engineers of Japan (SICE)</source>
            <volume>23</volume>
            <pub-id pub-id-type="doi">10.23919/sice48898.2020.9240353</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B10">
        <label>10.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Harmani, V.P., Himawan, B.M., Alhadi, M.A., Gunawan, A.A.S. and Anderies (2022) Systematic Literature Review: Implementation of Artificial Intelligence in Precision Agriculture. 2022 5 <italic>th International Conference on Information and Communic</italic><italic>ations Technology</italic> ( <italic>ICOIACT</italic>), Yogyakarta, 24-25 August 2022, 479-484. https://doi.org/10.1109/icoiact55506.2022.9971917 <pub-id pub-id-type="doi">10.1109/icoiact55506.2022.9971917</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/icoiact55506.2022.9971917">https://doi.org/10.1109/icoiact55506.2022.9971917</ext-link></mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Harmani, V.P.</string-name>
              <string-name>Himawan, B.M.</string-name>
              <string-name>Alhadi, M.A.</string-name>
              <string-name>Gunawan, A.A.S.</string-name>
            </person-group>
            <year>2022</year>
            <article-title>Systematic Literature Review: Implementation of Artificial Intelligence in Precision Agriculture</article-title>
            <source>2022 5th International Conference on Information and Communications Technology (ICOIACT)</source>
            <volume>24</volume>
            <pub-id pub-id-type="doi">10.1109/icoiact55506.2022.9971917</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B11">
        <label>11.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Baghel, S.S., Rawat, P., Singh, R., Akram, S.V., Pandey, S. and Baghel, A.S. (2022) AI, IoT and Cloud Computing Based Smart Agriculture. 2022 5 <italic>th International Conference on Contemporary Computing and Informatics</italic> ( <italic>IC</italic>3 <italic>I</italic>), Uttar Pradesh, 14-16 December 2022, 1658-1661. https://doi.org/10.1109/ic3i56241.2022.10072567 <pub-id pub-id-type="doi">10.1109/ic3i56241.2022.10072567</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/ic3i56241.2022.10072567">https://doi.org/10.1109/ic3i56241.2022.10072567</ext-link></mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Baghel, S.S.</string-name>
              <string-name>Rawat, P.</string-name>
              <string-name>Singh, R.</string-name>
              <string-name>Akram, S.V.</string-name>
              <string-name>Pandey, S.</string-name>
              <string-name>Baghel, A.S.</string-name>
              <string-name>AI, I</string-name>
            </person-group>
            <year>2022</year>
            <article-title>AI, IoT and Cloud Computing Based Smart Agriculture</article-title>
            <source>2022 5th International Conference on Contemporary Computing and Informatics (IC3I)</source>
            <volume>14</volume>
            <pub-id pub-id-type="doi">10.1109/ic3i56241.2022.10072567</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B12">
        <label>12.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Kuradusenge, M., Hitimana, E., Hanyurwimfura, D., Rukundo, P., Mtonga, K., Mukasine, A., <italic>et al</italic>. (2023) Crop Yield Prediction Using Machine Learning Models: Case of Irish Potato and Maize. <italic>Agriculture</italic>, 13, Article No. 225. https://doi.org/10.3390/agriculture13010225 <pub-id pub-id-type="doi">10.3390/agriculture13010225</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/agriculture13010225">https://doi.org/10.3390/agriculture13010225</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Kuradusenge, M.</string-name>
              <string-name>Hitimana, E.</string-name>
              <string-name>Hanyurwimfura, D.</string-name>
              <string-name>Rukundo, P.</string-name>
              <string-name>Mtonga, K.</string-name>
              <string-name>Mukasine, A.</string-name>
            </person-group>
            <year>2023</year>
            <article-title>Crop Yield Prediction Using Machine Learning Models: Case of Irish Potato and Maize</article-title>
            <source>Agriculture</source>
            <volume>13</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/agriculture13010225</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B13">
        <label>13.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Ullo, S.L. and Sinha, G.R. (2021) Advances in IoT and Smart Sensors for Remote Sensing and Agriculture Applications. <italic>Remote Sensing</italic>, 13, Article No. 2585. https://doi.org/10.3390/rs13132585 <pub-id pub-id-type="doi">10.3390/rs13132585</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/rs13132585">https://doi.org/10.3390/rs13132585</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Ullo, S.L.</string-name>
              <string-name>Sinha, G.R.</string-name>
            </person-group>
            <year>2021</year>
            <article-title>Advances in IoT and Smart Sensors for Remote Sensing and Agriculture Applications</article-title>
            <source>Remote Sensing</source>
            <volume>13</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/rs13132585</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B14">
        <label>14.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Sharma, A., Jain, A., Gupta, P. and Chowdary, V. (2021) Machine Learning Applications for Precision Agriculture: A Comprehensive Review. <italic>IEEE Access</italic>, 9, 4843-4873. https://doi.org/10.1109/access.2020.3048415 <pub-id pub-id-type="doi">10.1109/access.2020.3048415</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/access.2020.3048415">https://doi.org/10.1109/access.2020.3048415</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Sharma, A.</string-name>
              <string-name>Jain, A.</string-name>
              <string-name>Gupta, P.</string-name>
              <string-name>Chowdary, V.</string-name>
            </person-group>
            <year>2021</year>
            <article-title>Machine Learning Applications for Precision Agriculture: A Comprehensive Review</article-title>
            <source>IEEE Access</source>
            <volume>9</volume>
            <pub-id pub-id-type="doi">10.1109/access.2020.3048415</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B15">
        <label>15.</label>
        <citation-alternatives>
          <mixed-citation publication-type="other">Liakos, K., Busato, P., Moshou, D., Pearson, S. and Bochtis, D. (2018) Machine Learning in Agriculture: A Review. <italic>Sensors</italic>, 18, Article No. 2674. https://doi.org/10.3390/s18082674 <pub-id pub-id-type="doi">10.3390/s18082674</pub-id><pub-id pub-id-type="pmid">30110960</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.3390/s18082674">https://doi.org/10.3390/s18082674</ext-link></mixed-citation>
          <element-citation publication-type="other">
            <person-group person-group-type="author">
              <string-name>Liakos, K.</string-name>
              <string-name>Busato, P.</string-name>
              <string-name>Moshou, D.</string-name>
              <string-name>Pearson, S.</string-name>
              <string-name>Bochtis, D.</string-name>
            </person-group>
            <year>2018</year>
            <article-title>Machine Learning in Agriculture: A Review</article-title>
            <source>Sensors</source>
            <volume>18</volume>
            <elocation-id>No</elocation-id>
            <pub-id pub-id-type="doi">10.3390/s18082674</pub-id>
            <pub-id pub-id-type="pmid">30110960</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B16">
        <label>16.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Yu, J., Sharpe, S.M., Schumann, A.W. and Boyd, N.S. (2019) Deep Learning for Image-Based Weed Detection in Turfgrass. <italic>European Journal of Agronomy</italic>, 104, 78-84. https://doi.org/10.1016/j.eja.2019.01.004 <pub-id pub-id-type="doi">10.1016/j.eja.2019.01.004</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.eja.2019.01.004">https://doi.org/10.1016/j.eja.2019.01.004</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Yu, J.</string-name>
              <string-name>Sharpe, S.M.</string-name>
              <string-name>Schumann, A.W.</string-name>
              <string-name>Boyd, N.S.</string-name>
            </person-group>
            <year>2019</year>
            <article-title>Deep Learning for Image-Based Weed Detection in Turfgrass</article-title>
            <source>European Journal of Agronomy</source>
            <volume>104</volume>
            <pub-id pub-id-type="doi">10.1016/j.eja.2019.01.004</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
    </ref-list>
  </back>
</article>