# Optimization of Intelligent Maintenance System in Smart Factory Using State Space Search Algorithm
### Literature Review on Available Solutions
#### 1.1.3 State Space Search Algorithms  
Currently, various types of artificial intelligence employ different search algorithms as a foundation for addressing significant problems. The state space search algorithm is a process utilized in computer science, including the field of artificial intelligence (AI) [16]. One important method in artificial intelligence is the local state search, which explores potential states and transitions to address problems. The objective is to determine the sequence of actions that leads from the initial state to the target state [17; 18]. The search process within the state space necessitates a systematic exploration of all possible states related to the problem. This method can be applied to a wide range of artificial intelligence challenges, including pathfinding, puzzle solving, gameplay, and more. The fundamental concept is to represent the problem graphically, with nodes indicating states and edges representing transitions between those states. Key concepts:  
State Status: Specific configuration of the problem. Initial State: The beginning of the search. Goal State: Desired final configuration  
Transition: An action that changes one state to another. Path: A sequence of states connected by changes. Search Strategy: A method used in the search process in the state space. The process of searching within the state space provides a structured framework for modeling and analyzing problems, enabling AI algorithms to identify solutions that achieve their desired objectives. The effectiveness of the search algorithm is influenced by the size of the state space, which represents the total amount of data processed. Consequently, it is crucial to select the appropriate representation and search strategy [18]. To effectively explore state spaces, various forms of search algorithms in artificial intelligence exist, as illustrated in Figure 7, which highlights the most widely used search methods today. Artificial Intelligence (AI) is the study of developing agents that act rationally, often by utilizing search algorithms to accomplish specific tasks. Search algorithms represent a fundamental area within AI, serving as universal methods for problem-solving. In AI, rational agents--commonly referred to as problem-solving agents--frequently employ these search strategies to resolve various problems and identify optimal solutions [19]. The following uninformed search algorithms are examined in this research, each of which possesses distinct characteristics. * A problem graph, containing the start node (S) and the goal node (G). * A strategy, describing how the graph will be traversed to arrive at (G). Figure 7: Representation of AI search algorithms. * A fringe is a data structure used to store all the possible states (nodes) that one can enter from the current states. * A tree, produced by traversing to the goal node. * A solution plan, which is the sequence of nodes from S to G.  
**Uniformed Search/Blind Algorithms:**  
1. Depth-First Search Depth-first search (DFS) is a search algorithm that begins at the root node and explores as far as possible along each branch before backtracking (Figure 8). When a dead end is reached, the algorithm retreats to explore alternative paths. The path is recorded using a stack (last in, first out (LIFO)) structure. Each time a vertex is traversed, it is pushed onto the stack to keep track of the visited path. This algorithm is used for exploring or traversing tree data structures and algorithmic graphs. d = the depth of the search tree = the number of levels of the search tree;  
n'i = number of nodes in level i. **Time complexity:** V is the number of nodes, and E is the number of lines connected in the graph:  
O(V+E)  
**Space complexity:** This is required because it takes up space on the stack to store recursive function calls. O(V)  
It can be written as follows:  
2. Breadth-First Search The breadth-first search method employs a positive cost function, notably exemplified by the A* algorithm [20].