MCPcopy Create free account
hub / github.com/TheAlgorithms/Python / search

Method search

graphs/bidirectional_a_star.py:103–130  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

101 self.reached = False
102
103 def search(self) -> list[TPosition]:
104 while self.open_nodes:
105 # Open Nodes are sorted using __lt__
106 self.open_nodes.sort()
107 current_node = self.open_nodes.pop(0)
108
109 if current_node.pos == self.target.pos:
110 return self.retrace_path(current_node)
111
112 self.closed_nodes.append(current_node)
113 successors = self.get_successors(current_node)
114
115 for child_node in successors:
116 if child_node in self.closed_nodes:
117 continue
118
119 if child_node not in self.open_nodes:
120 self.open_nodes.append(child_node)
121 else:
122 # retrieve the best current path
123 better_node = self.open_nodes.pop(self.open_nodes.index(child_node))
124
125 if child_node.g_cost < better_node.g_cost:
126 self.open_nodes.append(child_node)
127 else:
128 self.open_nodes.append(better_node)
129
130 return [self.start.pos]
131
132 def get_successors(self, parent: Node) -> list[Node]:
133 """

Callers 3

indian_phone_validatorFunction · 0.45

Calls 5

retrace_pathMethod · 0.95
get_successorsMethod · 0.95
sortMethod · 0.80
popMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected