Professional Documents
Culture Documents
10 11
A simple way of understanding HAO* is as an AO* variant
where states with identical discrete component are expanded 4 B C D 10
in unison. HAO* works with two graphs:
4
1) The explicit graph describes all the states that have been
generated so far and the AND/OR edges that connect G 3 H E F
them. The nodes of the explicit graph are stored in two 7 4 4
lists: OPEN and CLOSED.
2) The greedy policy (or partial solution) graph, denoted
G
GREEDY in the algorithms, is a sub-graph of the explicit
graph describing the current optimal policy. 2
Fig. 3: Search Tree with better solution
It is the first algorithm to deal with: limited continuous
resources, uncertainty, and oversubscription planning. They The algorithm can be optimised by measuring the goodness
developed a sophisticated reachability analysis involving con- of a node with a look ahead. In figure 3 node G is further
tinuous variables that could be useful for heuristic search estimated and found that I is giving a solution with better
algorithms at large heuristic value. If there a look ahead on node B this would
have been explored. Also node C may or may not give better
value if explored further. This look ahead is implemented
efficiently using a depth limited search on nodes examined
by step 2(b) in the basic AO* algorithm.
C. MAO* Now we have to delve deeper and explore the ranges that
are required to convert the proposed methodology into a
One lesser known variant of AO* algorithm is MAO* al- functioning alogrithm.
gorithm, Modification to AO* [6]. The locla maxima problem
is the problem that is a hindrance to the popularity of AO* A. Depth Limited Search
algorithm. Many time a problem is not converted to AO*
alogrithm, the sole reason being A* is a better algorithm as Basically Depth Limited Search(DLS) [2] is only a Depth
it definitely gives a optimal solutio when compared to AO* First Search(DFS) with a depth limit. In a recursive method
algrithm. for DFS each recursive call is performed only if depth of
To overcome the problem of local maxima, it is proposed the search tree is less than depth limit. But there is some
that whenever an AND arc is encountered between two nodes, change in the DLS algorithm for AND-OR graphs since
compare the weight of the two nodes. The node with the higher arcs are there. The non promising nodes can be explored
weight should be made a child of the node with higher weight. efficiently by the DLS method [2]. So this modification will
This algorithm generates correct solution as it overcomes the propagate back a stable result to ancestors. In the figure
problem of the local maxima. By employing this algorithm, 1 search with a depth limit 3 will give a solution with score 10.
the space complexity remains same. The time complexity
increases slightly by a fraction of nano seconds. But in today’s Algorithm:
world, with the changing technologies and the commencement 1) The start node or node 1 is added to the beginning of
of high speed processors, this fraction of time is quite negli- the stack.
gible. 2) Then it is marked as visited and if node 1 is not the goal
node in the search, then we push second node 2 on top
of the stack.
3) Next, we mark it as visited and check if node 2 is the
goal node or not.
IV. P ROPOSED W ORK
4) If node 2 is not found to be the goal node then we push
node 4 on top of the stack.
5) Now we search in the same depth limit and move along
When performing AO* algorithm some non promising depth-wise to check for the goal nodes.
nodes will be underestimated (Fig. 3). Once solution is found 6) If Node 4 is also not found to be the goal node and
AO* is not looking into that. Here in Fig. 3 arc containing depth limit is found to be reached then we retrace back
nodes B and C is becoming a promising on further exploration. to nearest nodes that remain unvisited or unexplored.
So node A is getting a better score of 10. 7) Then we push them into the stack and mark them visited.
8) We continue to perform these steps in iterative ways 2) Loop with CURRENT until the starting node is labelled
unless the goal node is reached or until all nodes within SOLVED or until its cost goes above FUTILITY:
depth limit have been explored for the goal. a) If depth limit has reached return node’s or arc’s
heuristic value.
B. Interacting Sub Problems b) Explore successor nodes and arcs of CURRENT.
Interacting sub problem is one of the limitation to the If there are no successors, assign FUTILITY as the
algorithm. Here in Fig. 4 nodes B and C are interacting. But value of this node and exit.
C finds that D optimal compared to B for solving it. This is c) Otherwise loop for each SUCCESSOR node or arc
an overhead for finding the solution since both B and D has of CURRENT.
to be solved separately. i) find unexpanded successors of the SUCCES-
SOR of CURRENT by referring Explored List
A if CURRENT is in Explored List.
ii) make recursive calls for the algorithm with
9
unexpanded successors SUCCESSOR as the
4 B C 3 starting node.
iii) if SUCCESSOR is an arc check for loops based
on the parental information for finding interact-
ing sub problems obtained from Explored List.
D Evaluate the score for the loop and assign to
2 SUCCESSOR if it is better than that of previous
step.
Fig. 4: Solution for Interacting Sub Problems in AO* iv) if SUCCESSOR is giving better value change
Considering the interaction the cost on A will get reduced the f estimate of the CURRENT node to reflect
to 7 (Fig. 5) instead of 9 without considering the node D. the new information provided by its successors.
Here B has to be done only once under the arc. So B and C v) if SUCCESSOR is giving better value call it
altogether taking a cost of 5 and the cost of the arc is 2 which the BEST SUCC.
will bring the total cost to 7. vi) add or update CURRENT and the successor in
Explored List with relevant information.
A d) Propagate this change backward through the graph
till the initial node. If any node contains a successor
7 arc whose descendants are all solved, label the
node itself as SOLVED.
4 B C 5
e) Make the BEST SUCC as the CURRENT node.
The OAO* algorithm is finding a solution according to best
first search where each node or arc performing a depth
D limited search. The Explored List is keeping an updated list
2 of explored nodes so that DLS overhead is reduced. Here the
search is started only from the unexpanded nodes because the
Fig. 5: Solution for Interacting Sub Problems in OAO* other explored nodes are already evaluated which reduces the
search overhead. The interacting sub problems are identified
C. Optimised AO*(OAO*) Algorithm
by checking loops [7] making use of parental information in
The optimization of AO* algorithm can done based the the Explored List. If loops are there the evaluation is done as
two aspects as discussed above. One is considering the non in Fig. 5. This is giving more realistic solution to problems.
promising nodes and the other is considering interacting sub
problems. The algorithm 2 is explaining the depth limited V. A NALYSIS
search on nodes which will consider the non promising nodes The Optimised AO* algorithm is always giving a better
also. An additional data structure in the form of Explored List result with new concepts like depth limited search and evalua-
containing explored nodes with the information about the tion of loop for interacting sub problems. This is verified with
parent, list of unexpanded successors obtained through depth evaluation of graphs shown in Fig. 3 and Fig. 5. The OAO*
limited search, depth and evaluated score is required for the algorithm is evaluating lesser number of nodes compared to
algorithm. AO* with the a look up in Explored List. So the explored
Algorithm OAO* nodes are not evaluated further which improves time com-
Data Structure : Explored List for explored nodes. plexity even though slight compromise with space complexity
1) Initialize the graph with the starting node as CURRENT is required. Here the algorithm offers a better consistent trace
node. for the solution by the look ahead based on a depth limited
search. R EFERENCES
These improvement, however, could not advance the usage of [1] Artificial Intelligence by Elaine Rich and Kevin Knight, McGraw Hill
AO* algorithm to cyclic graph and thus only work in absence (1991).
of any loop. Nevertheless, the finding done by our algorithm, [2] Richard E. korf, Depth limited search for real time problem solving,
The journal of real time systems,2,1990,7-24.
i.e, OAO* algorithm has paved a way to find a optimal path [3] Shraddha Ramteke, Mrs. Deepty Dubey, AO* algorithm for solving
in a state space search in AND-OR graph. That all said is travelling salesman problem.
just theoretical and proposed and we have yet to program [4] Eric A. Hansen, Shlomo Zilberstein, LAO*: A heuristic search algorithm
that finds solutions with loops
this algorithm in a programming language, most preferably [5] Emmanuel Benazera Ronen Brafman, Nicolas Meuleau, An AO* Algo-
MATLAB. But the theoretical concept of our algorithm has rithm for Planning with Continuous Resources
removed the vulnerability of AO* algorithm and thus it has [6] Dr. Mahesh Kumar,Shikha Aggarwal,An AO* Algorithm for Planning
with Continuous Resources
now came to ranks with A* algorithm, which is the most [7] Eric A. Hansen, Shlomo Zilberstein, LAO*: A heuristic search algorithm
famous of state space search algorithm present. The next that finds solutions with loops, Artificial Intelligence, 129, 2001, 35–62.
test that this algorithm is to underatke is fight with the A* [8] Ethan Burns, Sofia Lemons, Wheeler Ruml, Rong Zhou, Best-First
Heuristic Search for Multicore Machines, Journal of Artificial Intelli-
algorithm for finding optimal solution of cyclic graph for state gence Research, 39, 2010, 689–743.
space search. The heuristic used will have a impact in both.
C ONCLUSION
The AO* algorithm, as stated previously has many flaws
that kept it away from the mainstream usage and most of
the academic syllabus. Unlike A* algorithm, which finds an
optimal path, AO* suffered from the problem of leaving the
search after it found a solution and surely does not care for
optimal solution. AO* algorithm, thus is considered unstable.
But as we have included, there have been variations of the
algorithm and those are improving the results obatined and
making AO* algorithm optimal.
Among the above mentioned modifications of the algorithm,
we propose our OAO* algorithm that is short for Optimal
AO* algorithm. The OAO* algorithm has taken care of major
drawbacks basic AO* algorithm. The proposed algorithm gives
a stable heuristic search by avoiding underestimation of non
promising nodes and overestimation of promising nodes. The
algorithm has handled the problem of interacting sub problems
to give better heuristic search. Also the algorithm is giving
more consistent search path compared to AO* algorithm.
As we have seen that LAO* algorithm is able to find solution
in a cyclic graph whereas normal AO* algorithm is only able to
find solution in acyclic graph, though not optimal. Our OAO*
algorithm is able to find an optimal solution in cyclic graph,
an improvement over normal AO* algorithm, but it still lack
the approach to find the solution in a cyclic graph. What next
we can do is to merge the two algorithm so as to advance the
working of our algorithm so that cyclic graph, when made to
AND-OR graph, will be able to find the optimal solution.
VI. ACKNOWLEDGMENT
We are grateful to everyone who has diretly or indirectly
helped us in completing this research paper. We are very
thankful to Dr. Abhimanyu Kumar, who gave us the op-
portunity to go beyond our institute syllabus and find what
other technique are present outside the course.There are many
researchers whose works helped us in this research paper.
This project work has undertaken a comprehensive study of
Artificial Intelligence and Graph Theory ideas and has helped
us in our academics also.