Abstract: Parallel processing issues become engrained into a variety of applications. This paper concentrates
on exploiting parallelism at machine level and data level for processing in AI systems. A review had been
conducted and the proposed algorithm is applied over the Knight Tour problem specified under several
scenarios. The result obtained from the scenarios prove that the proposed technique is advantageous over the
existing technique as there is a significant level of reduction in the machine response time, and also it eliminates
the need for extra memory, as it avoids backtracking. The proposed algorithm when applied over an enhanced
machine whose architecture is based on machine level parallelism results in an AI system, whose response time
would still be reduced.

the
rules are written as conclusion premise
For example. Since this is a conjunction of two expressions. Since this
goal unifies with move(1. and so on.
Another request might be to find all locations that can be reached in two moves from location 2.3) 7 8 9
6 move(3. and the substitutions are made
in the rule’s premise.y)  Z. the result is success.Through a similar process. from any number to 5. The goal move(2.1)
1 2 3
2 move(1.X) unifies with two different predicates in the knowledge base.3) 16 move(9.Y). Y)] ^ move (Z.1)
7 move(4. call pattern_search(move(1.4) 13 move(8. the result is a specific rule that defines the conditions required for the path:
Path (2(1.W)^move(W. we have reversed the direction of the implication arrow. we test for the existence of various moves on the
board .S.i.8) 9 move(6. As an example of how
unification is used to access this knowledge base .. This requires not only that both subgoals
succeed but also that any variable bindings be consistent across subgoals.
pattern_search will attempt to solve each subgoal separately. Y)  Z [move(X. a number
of such substitutions may be found.Vidyaathulasiraman
1 move(1. such as square
2 .Y) also fails because no assertions exist that define a move from square 5. Given the goal move(2.
Similarly. If pattern-search is called with the goal path2
(1.Y)]]
This clause can solve such goals as path3 (1. A 3X3 chessboard with move rules for the simplified Knight Tour Problem
These predicates form the knowledge base for the knight tour problem.2) 4 5 6
4 move(2.Y).once of the advantages of
pattern__ driven control: a variety of queries may be taken s the initial goal.2)
8 move(4. This
is accomplished by giving pattern_search the goal path2(2. First.3) exists in the knowledge base .9) 11 move(7.6) 10 move(6. Further requests could be to find a two-move path
from a number to itself. including {6/Y} and {2/Y} (with intermediate Z being 7) and
{2/Y} and {4/Y} (with intermediate location 9). it matches the goal with the consequence of the rule path2(X.8) 14 move(8.2). Y [path3(x. To emphasize
the goal-directed use of these rules. this is done through the use of predicate calculus implications.
The general path2 rule can be applied in a number of ways. Z) ^move (Z. a two –move path exists between them if there exists a
location Z such that the knight can move from X to Z and then move from Z to Y. Y [path2(X.X). with no variable substitutions
required.7) 12 move(7.Y). a two –move path could be formulated as:
 X.or even path3(X.
These are added to the knowledge base as rules for creating paths of successive moves . substituting 8 to Z allows
both subgoal to succeed.
The next task in constructing a search algorithm is to devise a general definition for a path of
successive moves around the board. This is defined by:
 X. path 3(1.
Another request might be to find where the knight can move from a particular location. The goal
query move(5.
International Journal of Emerging Engineering Research and Technology 384
.Z) ^ move (Z.Y)]]
This rule says that for all locations X and Y. 3)  Z [move (1.e.6)
5 move(3. 3).9) 15 move(9.8)).7)
3 move(2.Vijayakumar & Dr. To determine whether there is a move from 1 to 8. it may be used to determine whether
there is a two-move path from one location to another. with the
substitutions of {7/X} and {9/X}. We notice here .4)
Fig1.8) in the knowledge base.W[move(X. a three –move path is defined as including two intermediate locations that are part of the
path from initial to the goal. 3)]
Pattern_search then calls itself on this premise.

7) move(7.Y [path(X.Y([path3(X.
2.3 may be solved using a production system
approach.Y)]]
The last path can be used to determine whether a path of any length exists.Y)]]
We observe again the elegance and simplicity of the recursive formulation.1) move(6. such as:
 X.3)
move(6.
Since the search may lead to dead ends (from which every possible move leads to a previously visited
state and.3) move(8. 3) should terminate the
search could be overlooked.Y)^ path (Z. Y [path(X. Any attempt to
solve a goal involving the path predicate would fail to halt because each attempt to solve the premise
would lead to another recursive call on path (Z. Similarly. The rule may be stated as
“to find a path from one square to another. simply requiring
the proper number of intermediate places to “land”. Here each move would be represented as a rule whose condition is the location of the knight
on a particular square and whose action moves the knight to another square. X) will unify only with predicates such as path (3. if the
recursive rule is tried before the terminating condition. consequently. general recursive rule:
 X.Y)  Z [move(X.Y)]]
It is important to note that the solution to the problem is implemented through both the logical
descriptions that define the state space and the use of pattern_search to control search of that space.Y  [path(X.7)
move(3. the control regime should also allow backtracking.Y)  [move(X.”
This recursive “path” rule is incomplete in that it includes no terminating condition.Z)^path2(Z.Z)^path(Z.
both the loop and the correct path are logical consequences of the knowledge base. A simple conflict resolution scheme would fire
the first rule that did not cause the search to loop. Since path (X.9) move(4. allowing the search to continue meaninglessly.8) move(1. EXISTING PRODUCTION SYSTEM EXECUTION WITH SINGLE PROCESSOR
The 3x3 knight’s tour problem presented in section 1. X)
2 X.Z)^path (Z. without some way to prevent loops.4) move(3.2) move(9. Y). When combined with the
recursive control provided by pattern _search.8) move(4.
Research and Technology 385
International Journal of Emerging Engineering
. Sixteen productions
represent all possible moves of the knight. Combined with the move rules. the fact that path (3. it does not tell us how to find that path.2) move(7. these rules will search the space of possible paths in
the knight’s tour problem. 3) could lead to a path from 1to 8 to 3.5). this yields the complete problem
description (or knowledge base)
move(1.9) move(2.1) move(9. first make a move from the starting square to an
intermediate location and then find a path from the intermediate to the final square.Y) [move(X.6)
move(8. This can be remedied by adding the clause path(X.4)
1 X path (X. it
defines the desired terminating condition.Z)  Z [move(X. There is no test in the rule to determine whether
the desire goal state is ever reached.
Although the path rule is a satisfactory definition of a path.X)
2 X. an execution of
this production system that determines whether a path exists from square square 1 to 2 is shown in
Table 1. many undesirable or meaningless paths around the chessboard also fit this definition .Application of Parallel Algorithm for Knight Tour Problem to Avoid Backtracking
It soon becomes evident that the path moves are the same for a path of any length. The control regime applies rules until
the current state equals the goal state and then halts.6) move(2.
Indeed.For
example. the goal path (1. a loop). It is also evident that the path moves could be
stated in terms of each other. The general recursive path definition is then given by two
predicate calculus formulas:
1 X path (X.X)to the
knowledge base.
Working memory contains both the board state and goal state.Y)]]
This suggests the single.3) or path (5.

This program uses the simple conflict resolution strategy of selecting and firing the
first move predicate encountered in the knowledge base that does not lead to a repeated state. the
pattern move(9. The recognize-act cycle is implemented by the recursive path predicate.
Production systems are capable of generating infinite loops when searching a state space graph.2 and a conflict resolution strategy of selecting the first match. but it cannot easily be found from a
syntactic inspection of the rule set. A path from square 1 to square 2
Working memory
Iteration # Conflict Set Fire rule
Current square Goal square
0 1 2 1. the conflict set is all of the move expressions that will unify with the
goal move (x.
Research and Technology 386
International Journal of Emerging Engineering
. On the next iteration.2). we have actually implemented this production system solution. the pattern
move(2.
The production are the move facts. which causes its argument X to be entered into the working memory. causing a loop.
To prevent looping. the action (the square to which it can
move).3 .8 7
4 9 2 15. with the first parameter specifying the condition (the square the
piece must be on to make the move)and the second parameter.Vijayakumar & Dr.
Table1.
Assert is not an ordinary predicate but an action that is performed. indication a move to square 9. For example .6 5
3 4 2 7. looping may appear in the execution of the system. it always succeeds.X) would match with move(9.16 15
5 2 2 Halt
It is interesting to note that in implementing that path predicate in the knight’s tour example of section
1. From this point of view. The
controller also backtracks from dead-end state. Working memory
contains the current state and the desired goal state and is represented as the parameters of the path
predicate. hence.S. The actual conflict
resolution strategy was therefore: select the first matching move that leads to unvisited state.2 1
1 8 2 13.X) would match with move(2.
Let us assume that pattern_search does not maintain a global closed list or otherwise perform loop
detection. A 3X3 chessboard with Possible moves for the simplified Knight Tour Problem.14 13
2 3 2 5. Let us assume that our predicate calculus language is augmented by the addition of a
special construct. This characterization of the path definition as a
production system is given in figure 2. taking the search back to square 2. We can alter the path predicate
to use working memory for loop detection.Vidyaathulasiraman
RULE CONDITION ACTION
1 knight on square 1  move knight to square 8
2 knight on square 1  move knight to square 6
3 knight on square 2  move knight to square 9
4 knight on square 2  move knight to square 7
5 knight on square 3  move knight to square 4
6 knight on square 3  move knight to square 8
7 knight on square 4  move knight to square 9
8 knight on square 4  move knight to square 3
9 knight on square 6  move knight to square 1
10 knight on square 6  move knight to square 7
11 knight on square 7  move knight to square 2
12 knight on square 7  move knight to square 6
13 knight on square 8  move knight to square 3
14 knight on square 8  move knight to square 1
15 knight on square 9  move knight to square 2
16 knight on square 9  move knight to square 4
Fig2. pattern_search checks a global list (closed) of visited state.z).
In a production system. These
loops are particularly difficult to spot in a production system because the rule can fire in any order.
pattern_search is simply an interpreter.9).
That is. assert(X) . the proper place for recording such case-specific data as a list of previously
visited states is not a global closed list but the working memory itself. with the “move” rule of the knight’s tour problem
ordered as in section 5. On a given iteration. with the actual search implemented by the path definition.

The modified recursive path definition is written:
1 X path(X.Z).Y) Z move(X. iterations
shown in Table 2 result. For a specific value of Z. Then order of interpretation is provided by pattern_search. if we want to find it a path exists from Square 7 to Square 4.8)
move(1.7)
Working memory move(2.
.2)
Set X equal to Z
in working
memory(i. This
marker is a unary predicate. it will be
false). Thus.Y)
In this definition. The recursive path algorithm: a production system
Assert is used to place a “marker” in working memory to indicate when a state has been visited.
Research and Technology 387
International Journal of Emerging Engineering
.
pattern_search will then backtrack and try another match for move(X.Application of Parallel Algorithm for Knight Tour Problem to Avoid Backtracking
Halt
Recursive call to path(X.e. which takes as its argument a square on the board been(X) is
added to working memory when a new state X is visited.
We note that although predicate calculus is used as the language for both productions and working
memory entries.
Using assert: In this method.e. move(X. Conflict resolution may then require that
been(Z) must not be in working memory before move(X. call
path(Z. If square Z is a new state. If been(Z) matches with an entry in working memory. been(X). with been(Z) asserted to the working memory to prevent future loops.Y)(been(z))  assert(been(Z))  path(Z.
Path(X..Z) can fire .
the search will continue..
Move(9. The
actual firing of the production takes place when the path algorithm recurs.Y) Conflict Resolution
Use first match that
does not lead to loop
Fig3.Z)
against productions
Try to unify
working
Productions
memory with
path(X. this
can be tested by matching a pattern against working memory.Y) .Y) succeeds on the first match with a move predicate.-(been(Z)) will cause a failure (i.Y) causes iteration
X=Y?
Match move(X.X) move(1. This binds a value to
Z.9)
.6)
move(2. the procedural nature of production systems requires that the goal be tested in left-to-
right order in the path definition.X)
2 X path(X. the presence of been
predicates in working memory implements loop detection in this production system.

Step 7: Else
Initialize P1 as per the Fire Rule in Step 5.1 1
7 8 4 13.12. then halt. One production rule will be processed by processor 1 and
another processed by processor 2.
Step 5: P1 fires the Rule for First Conflict Set from the Working Memory.S.6). If the current state is the goal state. The current state of the
problem solving is maintained as a set of patterns in working memory. If one of the production rules unify with the working memory.15.15.3.
Step 6: If the P1 or P2 reaches the Goal State then Halt.12 11 11
1 2 4 3.4.Vidyaathulasiraman
Table2.15 15
3 2 4 4 11.9 9
6 1 4 1. Data Parallelism
For this problem we are going to use Data Parallelism which is the use of multiple functional units to
apply the same operation simultaneously to elements of a data set.4. Otherwise with recursive call to
the production rules.13.3 3
2 9 4 15. For
every square. Loop is avoided using assert in the path from square 7 to square 4
Working memory assert
Iteration # Current square Goal Conflict Set Fire rule
square
0 7 4 11.8) and move(1. if the possible two moves are simultaneously checked.15.16 11.
International Journal of Emerging Engineering
Research and Technology 388
. then there is no need for
backtracking and two processors are more than enough for this problem.Z [path(X.
P2 fires the Rule for Second Conflict Set from the Working Memory.4.1.3. from Square 1.12.1. PROPOSED PRODUCTION SYSTEM WITH MULTIPLE PROCESSORS
3.
Step 4: P1 obtains the two possible Conflict Set from the Production Rules. These patterns are matched
against the goal state. Step
3: Initialize Processor P1 with Current State. the possible moves are move(1.2 11.3. From the sixteen production rules given in the section 2. one of the processor may yield the goal state.12.9. we can observe that for
each square there exits exactly two possible moves.3.10 11.15.5 5
9 4 4 Halt
3.
Step 8: Repeat Step 4 to Step 7.3.
 X  Y.
From the above algorithm we test if a path exists from square 1 to square 2.Vijayakumar & Dr.13 13
8 3 4 5.2.4. then
halt.3.14 11.4 4
4 7 4 12 11. The conflict set
always contains two production rules.4 11.1. path(X. Working Method with Two Processors
Working memory is initialized at the beginning with problem descriptions.15.4. iterations are as shown in
table 3.12 12
5 6 4 9.9.3.
3. this produces a subset of production rules called the conflict set.
Step 2: Input the Current State and Goal State.15. The data set available here are the
production rules.Y). If these two moves are
checked simultaneously by separate processors.12.
An algorithm proposed for the new model is given below
Step 1: Start.6 11.9.Z)]
For example.

12 11 12
1 2 6 4 3. 2 1.
Table4. 4 11.16 15 16
3 2 4 4 Halt
Research and Technology 389
International Journal of Emerging Engineering
. both the algorithms reaches the goal state in five iterations.
An another Scenario.Application of Parallel Algorithm for Knight Tour Problem to Avoid Backtracking
Fig4.8 7 8
4 9 3 2 15.14 13 14
2 3 1 2 5.6 5 6
3 4 8 2 7. where if we want to find Whether a path exists from square 7 to square 4 . A path from square 1 to square 2 by two processor method
Working Memory Fire Rule
Conflict set from
Iteration # Current State P1 P2
Goal State P1
P1 P2 First Second
0 1 .2 1 2
1 8 6 2 13.
iterations are shown in Table 4.4 3 4
2 9 7 4 15. A path from square 7 to square 4 by two processor method
Working Memory Fire Rule
Iteration # Current State Conflict set from P1 P1 P2
Goal State
P1 P2 First Second
0 7 . where the Current State is 1 and the GOAL
state is 2). The recursive path algorithm: a production system with two processors
Table3.16 15 16
5 2 4 2 Halt
If we compare Table 1 and Table 3 (exhibiting a scenario.

A path from square 4 to square 7 by two processor method
Working Memory Fire Rule
Iteration # Current State Conflict set from P1 P1 P2
Goal State
P1 P2 First Second
0 4 .M.IEEE Trans .
Vol 18. scalable and Modular Algorithms for Floating point Matrix
Multiplication on Reconfigurable computing systems.16 15 16
2 2 4 7 3. M.A. and also it
eliminates the need for extra memory. i. To reduce considerable amount of iterations. Vol 18. whereas in Two processor method.
Hence our proposed algorithm finds the path from square 7 to squar 4 in three iterations without any
backtracking which is not possible in the existing algorithm. If we use the backtracking.Prasanna.
[3] L. Artificial intelligence structures and strategies for complex problem solving. it consumes 9
iterations to reach the GOAL state.S.
International Journal of Emerging Engineering
Research and Technology 390
.. as in Single processor method.Dhagl. the two processor method does
not require any extra memory. Here we are able to see a drastic reduction in the number of iterations.Zhuo and V.e.E. in this reduced 3X3 knight tour problem. it consumes 13 iterations to reach the GOAL state. when we compare Table 2 and Table 4. then definitely total execution time is reduced.Vijayakumar & Dr..Peoza C. so that both the
paths of the state are checked by the two processors simultaneously. which
totally avoided in two processor method.
[5] K. it consumes only 3 iterations to
reach the GOAL state. Searching with single processor from huge number
of production rules will take much time. We can manage this problem by multiple processors and
parallel algorithms.on parallel and Distributed
systems.Vidyaathulasiraman
According to the above specified example. it
consumes only 1 iterations to reach the GOAL state. we use one more processor.
REFERENCES
[1] Kai Hwang and Douglas. April 2007.Li. IV Edition
.IEEE Trans . we can find the path from any state as a current state
and reach the goal state without any backtracking.on parallel and Distributed systems Vol 18 .
Another Scenario is also specified in Appendix A. !
6X16. Pearson Education 2007. CONCLUSIONS
The result obtained from the scenarios prove that the proposed technique is advantageous over the
existing technique as there is a significant level of reduction in the machine response time.8 7 8
1 9 3 7 15. Suppose we want to find if a pat exists
from square 4 to square 7 which is converse to table 4. IEEE Trans . Parallel processing for super computers and artificial
intelligence.Bader. In this reduced 3X3 knight tour
problem. 7 7. etc then the production rules also increases. “Dynamic Load Balancing in
Distributed systems in the presence of Delays :.
[4] S. If the number of iterations are
reduced. The iterations are shown in Table 5. whereas in Two processor method. as it avoids backtracking. we are having only 16 production rules. Mc Graw Hills.on parallel and Distributed systems .K. as in Table 2. where the Current state is 6 and the GOAL state is
7. “Analysis of parallel Algorithms for Matrix chain product and Matrix power on
Distributed Memory systems “.
Table5. As a result.
[2] George F. we are able to see a drastic reduction in the number of
iterations. If we increase the rows and columns such as 8X8. a single processor
algorithm will test only one path of the current state and the goal state may be reached by many
iterations. pp 485-497.
Note: The single processor method consumes extra memory for storing assert.
Converse path is also possible by our proposed algorithm.4 3 4
3 9 7 7 Halt
Hence.pp 865-
878. as in Single processor
method. pp 433-448. 1989.Hayat J. Degroot.Yong and D. July 2007.
4. in Table 4. Apr2007.

June 1994.Vol 19. Dec 2007.Vijaya Kumar had completed his MCA from University of Madras in the year
2001. Government Arts &
Science College (W). “A Review of the Parallel Algorithms for
Solving
Multidimentional PDE Problems”. pp1642-1656. She is currently working as Assistant
Professor and Head in the Department of Computer Science. He had authored 1 Research
paper. Vellore
Dt. She had authored 16 papers
and had co-authored 4 papers.Phil students and her
area of interest includes Network Security Management. titled
“Computer Graphics” and “Biometrics”.Phil in the year 2007. She had also published two books. “Scalability of Parallel Algorithms. Rover.H.Phil in the year 2002 and Doctorate in the
year 2010 from Mother Teresa Women’s University.”Design and potential performance of Goal-Oriented Job
scheduling policies for parallel computer Worloads”.
[8] Norma Alias and Md. TN. She had guided around 45 M.
AUTHOR’S BIOGRAPHY
S.No 6. Artificial Intelligence
and Data Mining.
IEEE Trans.
International Journal of Emerging Engineering
Research and Technology 391
.Machine
Combinations”.Vol 5. and had completed his M. His area of interest includes Parallel Processing.Chiang and S. 2010. On parallel and distributed systems. Priyadashini Engineering College.He Sun and Diane T.
Vidyaathulasiraman had completed her MCA from University of Madras in the
year 1997. On parallel and distributed
systems. . and had completed her M. Jounal of Applied Sciences 10(19) pp 2187-2197. Artificial Intelligence
and Data Mining. He is currently working as Assistant Professor (Sr) in the Department of
Computer Applications. Bargur.
[7] Xian. pp599-613.Application of Parallel Algorithm for Knight Tour Problem to Avoid Backtracking
[6] S. IEEE Trans.Vasupongayya . Vaniyambadi. Rajibul Islam.