Skip to content

Commit e02f8fa

Browse files
authored
Uploaded Bidirectional A Star Search Algorithm
1 parent 5cc9c75 commit e02f8fa

File tree

1 file changed

+20
-71
lines changed

1 file changed

+20
-71
lines changed

BidirectionalSearch.py renamed to BiDiAstarSearch.py

Lines changed: 20 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -152,86 +152,35 @@ def heuristic(self, currentNode, targetNode):
152152
# method for getting the node with minimum value from the either direction
153153
def minValueNodeFromEitherDirection(self, forwardDiscovered, backwardDiscovered, forwardFinalized, backwardFinalised):
154154

155-
# -------- Direction with Minimum F value node ---------------------
156-
157-
# forwardMinItem = forwardDiscovered.rootItemAtHeap()
158-
# backwardMinItem = backwardDiscovered.rootItemAtHeap()
159-
#
160-
# if forwardMinItem.f < backwardMinItem.f:
161-
#
162-
# result = forwardDiscovered.minItemInHeap()
163-
# forwardFinalized.append(result)
164-
# return result, "forward"
165-
#
166-
# elif forwardMinItem.f > backwardMinItem.f:
167-
#
168-
# result = backwardDiscovered.minItemInHeap()
169-
# backwardFinalised.append(result)
170-
# return result, "backward"
171-
#
172-
# elif forwardMinItem.f == backwardMinItem.f:
173-
#
174-
# if forwardMinItem.h > backwardMinItem.h:
175-
#
176-
# result = forwardDiscovered.minItemInHeap()
177-
# forwardFinalized.append(result)
178-
# return result, "forward"
179-
#
180-
# else:
181-
#
182-
# result = backwardDiscovered.minItemInHeap()
183-
# backwardFinalised.append(result)
184-
# return result, "backward"
185-
186-
# -------- Direction with Minimum F value node ---------------------
187-
188-
# ----------- Cardinality Criterion --------------------------------
189-
190-
if len(backwardDiscovered.getHeap()) < len(forwardDiscovered.getHeap()):
191-
192-
result = backwardDiscovered.minItemInHeap()
193-
backwardFinalised.append(result)
194-
return result, "backward"
195-
196-
elif len(backwardDiscovered.getHeap()) > len(forwardDiscovered.getHeap()):
197-
155+
forwardMinItem = forwardDiscovered.rootItemAtHeap()
156+
backwardMinItem = backwardDiscovered.rootItemAtHeap()
157+
158+
if forwardMinItem.f < backwardMinItem.f:
159+
198160
result = forwardDiscovered.minItemInHeap()
199161
forwardFinalized.append(result)
200162
return result, "forward"
201-
202-
elif len(backwardDiscovered.getHeap()) == len(forwardDiscovered.getHeap()):
203-
204-
forwardMinItem = forwardDiscovered.rootItemAtHeap()
205-
backwardMinItem = backwardDiscovered.rootItemAtHeap()
206-
207-
if forwardMinItem.f < backwardMinItem.f:
208-
163+
164+
elif forwardMinItem.f > backwardMinItem.f:
165+
166+
result = backwardDiscovered.minItemInHeap()
167+
backwardFinalised.append(result)
168+
return result, "backward"
169+
170+
elif forwardMinItem.f == backwardMinItem.f:
171+
172+
if forwardMinItem.h > backwardMinItem.h:
173+
209174
result = forwardDiscovered.minItemInHeap()
210175
forwardFinalized.append(result)
211176
return result, "forward"
212-
213-
elif forwardMinItem.f > backwardMinItem.f:
214-
177+
178+
else:
179+
215180
result = backwardDiscovered.minItemInHeap()
216181
backwardFinalised.append(result)
217182
return result, "backward"
218183

219-
elif forwardMinItem.f == backwardMinItem.f:
220-
221-
if forwardMinItem.h > backwardMinItem.h:
222-
223-
result = forwardDiscovered.minItemInHeap()
224-
forwardFinalized.append(result)
225-
return result, "forward"
226-
227-
else:
228-
229-
result = backwardDiscovered.minItemInHeap()
230-
backwardFinalised.append(result)
231-
return result, "backward"
232-
233-
# ----------- Cardinality Criterion --------------------------------
234-
235184
def minItemFromList(self, node, givenList):
236185

237186
for item in givenList:
@@ -723,4 +672,4 @@ def biDirectionalSearch(self, source, target):
723672

724673
print("Number of correct cases: ", correct)
725674
print("Number of wrong cases: ", wrong)
726-
print("Number of not walkable source issues: ", unWalkable)
675+
print("Number of not walkable source issues: ", unWalkable)

0 commit comments

Comments
 (0)