## 3 The Proposed Model  
The proposed Hybrid Spiral Spanning Tree Coverage-Hedge Algebras model in Knowledge Reasonings for Robot Coverage Path Planning is designed to achieve improvements to the Spiral STC algorithm, combined with fuzzy rules in order to find optimal CPP areas. To find an optimal path, avoid obstacles, and maximize coverage, a robot can apply its rules in the knowledge base. The proposed model for Robot Coverage Path Planning is as shown in Figure 4.  
In the proposed model, before releasing the robot in the operating space, the rules and the hedge algebra are programmed into the robot in order to quantify the robot sensing and reasoning in CPP  
Figure 4: The proposed model. problems. The proposed model consists of five steps: Step 1 creates a matrix for robot knowledge reasonings in order to consider a robot direction based on robot stages. All data sets quantified by hedge algebras, together with reasoning techniques. Step 2 considers an average vector from the robot reasoning matrix, in order to find the best directions. To cover all path planning, Step 3 can be applied as the STC algorithm for the optimal robot coverage path. To use the rules in knowledge-base to find an optimal path while avoiding fixed and moving obstacles, the robot applies forward chaining approach with updated rules to the knowledge base. For the similar conditions in the case study of robot simulations and real robot experiments, the robot applies existing rules with good behaviors in reasonings for coverage path planning. The rules (in the knowledge-base) are created existent rules, and are updated by experts to find the optimal approach for cleaning. The rules are applied as follows: (i) The robot traverses the operating space, visiting all the nodes, (ii) the robot must complete all the nodes in the operating space, such as obstacle(s), bounded walls, without repeating or overlapping paths (i.e., to enable the identification of the optimal coverage path), (iii) the robot must avoid all obstacles (static and moving objects); (iv) the robot will find the 'optimal path' including the uncertainties (a dynamic operating space) with its motion trajectories. The proposed algorithm is described as follows:  
**Step 1. Create a matrix for robot knowledge reasonings**  
Let \(S^{T}=\left\{S^{T}_{1},\ S^{T}_{2},\ldots,\ S^{T}_{m}\right\}\) be a set of robot stages (after a robot visited each node in the path) that is used to show robot directions in its knowledge reasoning, where \(m\) is the number of robot stages in an environment \(T\). To consider robot direction \(D^{T}_{j}\) in an environment \(T\), its robot stage weight \(p^{t}_{ij}\) represented by the \(i\)-th robot direction of the \(j\)-th robot reasoning, considered by the \(t\)-th robot case study in the past (quantified historical data sets in the reasoning robot), where \(n\) is the number of robot directions. A reasoning robot matrix can be constructed as follows:  
\[\left[ \begin{array}{ccc}p_{11}&\cdots&p_{1m}\\ \vdots&\ddots&\vdots\\ p_{n1}&\cdots&p_{nm}\end{array} \right]\]  
Note that an initial robot weight is zero value for a robot matrix. As considering hedge algebras discussed in Section B1, it can be quantified to input the reasoning robot matrix. A robot direction can be used in Step 2 using the robot reasoning matrix. **Step 2. Consider a vector average from the reasoning robot matrix. **  
For each direction of a robot, \(n\) directions of a controlled robot can be represented by the vector as follows:  
\[V_{i}(v_{i1},\ v_{i2},\ \ldots,\ v_{im})\]  
To calculate the vector, we have a result of the vector as follows:  
\[V^{*}\Big{(}v^{*}_{1},\ v^{*}_{2},\ \ldots,\ v^{*}_{m}\Big{)} \tag{2}\]  
where \(v^{*}_{j}=\sum_{i=1}^{n}m_{i}*v_{ij}\); the output of \(V^{*}\) is the average vector of considered robot directions. **Step 3. Apply STC algorithm for optimal robot coverage path by using Procedure _STC(v, x)_ to create a spanning tree coverage  
**Procedure \(STC(w,x)\)**. While \(x\) is a root contained a starting cell, \(w\) is a main cell. 1.