BACKTRACKING

Information about BACKTRACKING

Published on March 5, 2009

Author: ankush85

Source: authorstream.com

Content

BACKTRACKING : 1 BACKTRACKING GENERAL METHOD Problems searching for a set of solutions or which require an optimal solution can be solved using the backtracking method . To apply the backtrack method, the solution must be expressible as an n-tuple(x1,…,xn), where the xi are chosen from some finite set si The solution vector must satisfy the criterion function P(x1 , ….. , xn). BACKTRACKING (Contd..) : 2 BACKTRACKING (Contd..) Suppose there are m n-tuples which are possible candidates for satisfying the function P. Then m= m1, m2…..mn where mi is size of set si 1<=i<=n. The brute force approach would be to form all of these n-tuples and evaluate each one with P, saving the optimum. BACKTRACKING (Contd..) : 3 BACKTRACKING (Contd..) The backtracking algorithm has the ability to yield the same answer with far fewer than m-trials. In backtracking, the solution is built one component at a time. Modified criterion functions Pi (x1...xn) called bounding functions are used to test whether the partial vector (x1,x2,......,xi) can lead to an optimal solution. If (x1,...xi) is not leading to a solution, mi+1,....,mn possible test vectors may be ignored. BACKTRACKING (Contd..) : 4 BACKTRACKING (Contd..) The constraints may be of two categories. EXPLICIT CONSTRAINTS are rules which restrict the values of xi. Examples xi ? 0 or x1= 0 or 1 or li ? xi ? ui. All tuples that satisfy the explicit constraints define a possible solution space for I. IMPLICIT CONSTRAINTS describe the way in which the xi must relate to each other . Implicit constraints allow to find these tuples in the solution space that satisfy the criterion function. Example : 8 queens problem. BACKTRACKING (Contd..) : 5 BACKTRACKING (Contd..) The problem is to place eight queens on an 8 x 8 chess board so that no two queens attack i.e. no two of them are on the same row, column or diagonal. Strategy : The rows and columns are numbered through 1 to 8. The queens are also numbered through 1 to 8. Since each queen is to be on a different row without loss of generality, we assume queen i is to be placed on row i . BACKTRACKING (Contd..) : 6 BACKTRACKING (Contd..) The solution is an 8 tuple (x1,x2,.....,x8) where xi is the column on which queen i is placed. The explicit constraints are : Si = {1,2,3,4,5,6,7,8} 1 ? i ? n or 1 ? xi ? 8 i = 1,.........8 The solution space consists of 88 8- tuples. BACKTRACKING (Contd..) : 7 BACKTRACKING (Contd..) The implicit constraints are : (i) no two xis can be the same that is, all queens must be on different columns. (ii) no two queens can be on the same diagonal. reduces the size of solution space from 88 to 8! 8 – tuples. Two solutions are (4,6,8,2,7,1,3,5) and (3,8,4,7,1,6,2,5) BACKTRACKING (Contd..) : 8 BACKTRACKING (Contd..) BACKTRACKING (Contd..) : 9 BACKTRACKING (Contd..) Solution Space : Tuples that satisfy the explicit constraints define a solution space. The solution space can be organized into a tree. Each node in the tree defines a problem state. All paths from the root to other nodes define the state-space of the problem. Solution states are those states leading to a tuple in the solution space. Answer nodes are those solution states leading to an answer-tuple( i.e. tuples which satisfy implicit constraints). BACKTRACKING (Contd..) : 10 BACKTRACKING (Contd..) The problem may be solved by systematically generating the problem states determining which are solution states, and determining the answer states. Let us see the following terminology LIVE NODE A node which has been generated and all of whose children are not yet been generated . E-NODE (Node being expanded) - The live node whose children are currently being generated . BACKTRACKING (Contd..) : 11 BACKTRACKING (Contd..) DEAD NODE - A node that is either not to be expanded further, or for which all of its children have been generated. DEPTH FIRST NODE GENERATION- In this, as soon as a new child C of the current E-node R is generated, C will become the new E-node. R will become E-node again when C has been fully explored. BACKTRACKING (Contd..) : 12 BACKTRACKING (Contd..) BOUNDING FUNCTION - will be used to kill live nodes without generating all their children. BACTRACKING-is depth – first node generation with bounding functions. BRANCH-and-BOUND is a method in which E-node remains E-node until it is dead. BACKTRACKING (Contd..) : 13 BACKTRACKING (Contd..) BREADTH-FIRST-SEARCH : Branch-and Bound with each new node placed in a queue . The front of the queen becomes the new E-node. DEPTH-SEARCH (D-Search) : New nodes are placed in to a stack. The last node added is the first to be explored. BACKTRACKING (Contd..) : 14 BACKTRACKING (Contd..) Example : 4 Queens problem 1 . . 2 1 2 1 2 3 . . . . 1 1 1 2 3 . , 4 BACKTRACKING (Contd..) : 15 BACKTRACKING (Contd..) 1 x1 = 1 x1=2 2 18 x2=2 3 4 x2=1 x2=3 x2 = 4 B 3 8 13 19 24 29 x3=3 x3=4 2 3 B B 4 6 14 16 x3 = 1 x4=4 3 B 30 5 7 15 x4 = 3 B 31 BACKTRACKING (Contd..) : 16 BACKTRACKING (Contd..) If (x1….xi) is the path to the current E-node , a bounding function has the criterion that (x1..xi+1) represents a chessboard configuration, in which no queens are attacking. A node that gets killed as a result of the bounding function has a B under it. BACKTRACKING (Contd..) : 17 BACKTRACKING (Contd..) We start with root node as the only live node. The path is ( ); we generate a child node 2. The path is (1).This corresponds to placing queen 1 on column 1 . Node 2 becomes the E node. Node 3 is generated and immediately killed. (because x1=1,x2=2). As node 3 is killed, nodes 4,5,6,7 need not be generated. BACKTRACKING (Contd..) : 18 BACKTRACKING (Contd..) Node 8 is generated, and the path is (1,3). Node 8 gets killed as all its children represent board configurations that cannot lead to answer. We backtrack to node 2 and generate another child node 13. But the path (1,4) cannot lead to answer nodes. So , we backtrack to 1 and generate the path (2) with node 18. We observe that the path to answer node is (2 4 1 3 ) GENERAL BACKTRACKING METHOD : 19 GENERAL BACKTRACKING METHOD All answer nodes are to be found If (x1…..xi) is a path from root to a node then T (x1,….,xi) be the set of all possible values for Xi+1, such that (x1,x2,…….,xi,xi+1) is also a path from root to a problem state. B(x1…xi+1) or Bxi+1is false for the path (x1,..,xi+1) if the path cannot reach an answer node. The solution vector X (1: n) are those values which are generated by T and satisfy Bi+1. GENERAL BACKTRACKING METHOD (Contd..) : 20 GENERAL BACKTRACKING METHOD (Contd..) Procedure backtrack (n) // solution vectors are X(1:n) and printed as soon as generated// .//T {X(1),….X(k-1)} gives all possible values of X(k) given that X(1),…..,X(k-1) have already been chosen // //The predicates Bk( X(1),….X(k-1) ) determine// //those elements which satisfy the// // implicit constraints// GENERAL BACKTRACKING METHOD (Contd..) : 21 GENERAL BACKTRACKING METHOD (Contd..) Procedure backtrack (n) // solution vectors are X(1:n)// // and printed as soon as generated // // T {X(1),….X(k-1)} gives all possible values of X(k) // given that X(1),…..,X(k-1) have already been chosen // // The predicates Bk (X(1),….X(k-1) ) determine those elements // // which satisfy the implicit constraints // // Implicit constraints are “no two X is can be the same” // Integer k, n; local X (1:n) GENERAL BACKTRACKING METHOD (Contd..) : 22 GENERAL BACKTRACKING METHOD (Contd..) K? 1 while K > 0 do if there remained an untried X(K) such that X(K) ? T ( X (1) , …..X(k-1) ) and Bk X (1) ,…,X(K) ) = true then if (X (1),…, X(k) ) is a path to an answer node then print ( X (1) ,…X (k) ) end if K? K+1 // consider next set // else K? K-1 // backtrack to previous set endif repeat end Backtrack EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS : 23 EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS k? 1 loop 1 X0 =1,1 ?{1,2,3,4} and B1 (X (1)) = true 1 is not a path to answer node K ? 1+1=2 repeat K? 2 loop 2 X(2)?{2,3,4}and B2 (1,2) is False but there remains untried X(k)=3 and X(K) =4 EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS (Contd..) : 24 EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS (Contd..) B2 (1,3)=true , but (1,3) Is not a path to answer node ; so K? K+1=3 There is no X(3) such that B3(1,3,2) or B3 (1,3,4) is true . So backtrack K? K-1=2 consider X (2) ? 4 EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS (Contd..) : 25 EXAMPLE OF ALGORITHM WITH 4 QUEENS PROBLEMS (Contd..) (1,4) is not a path to answer (1,4,2) is not a path to answer B4(1,4,2,3)=false. Thus X(2)=4 is false With X(1)=1, we have seen that there is no X(2) satisfying the constraints so K?K-1=2-1=1 There remained untried X(k)=2,3,4. Repeating with X(1)=2, we observe (2,4,1, 3) is a path to an answer node . Similarly the other solution is (3,1,4,2) BACKTRACKING ALGORITHM WITH RECURSION : 26 BACKTRACKING ALGORITHM WITH RECURSION Procedure RBACKTRACK (k) // on entering the first K-1 values X(1),…..,X(k-1)// // of the solution vector X(1:n) have been assigned // global n , X(1:n) for each X(k) such that X(k) ? T ( X (1),..X(k-1) ) and Bk (X(1)..,X(k-1), X(k) )= true do if ( X (1) ,….,X(k) ) is a path to an answer node then print ( X(1),……,X(k) ) end if If (k<n) CALL RBACKTRACK (k+1) endif repeat end RBACKTRACK BACKTRACKING ALGORITHM WITH RECURSION (Contd..) : 27 BACKTRACKING ALGORITHM WITH RECURSION (Contd..) EXAMPLE (RB – RBACKTRACK) Initially RB(1) is called for each X(1) ? X(1) ?{1,2,3,4} and B1 (1) is true , but 1 is not an answer node. RB (2) is called X(2) ?{2,3,4} and B2 (1,3) = true and B2 (1,4) = true (1,3) is not an answer node , RB(3) is called,X(3) = 2, BACKTRACKING ALGORITHM WITH RECURSION (Contd..) : 28 BACKTRACKING ALGORITHM WITH RECURSION (Contd..) but (1,3,2) is not Answer node , so , RB(4) is called B4 (1,3,2,4) = false. (1,3,4,2) is not bounded so , X(2) = 4 is tried (1,4,2,3) is not bounded . With X(1)=1 no solution Now for X(1) = 2,3,4 repeat (2,4,1,3) is an answer node, other paths with X(1) = 2 are not leading to answer node. With X (1) = 3 , (3,1,4,2) is an answer node. X (1) = 4 - no solution. EFFICIENCY OF BACKTRACKING ALGORITHM : 29 EFFICIENCY OF BACKTRACKING ALGORITHM The time required by a backtracking algorithm or the efficiency depends on four factors (i) The time to generate the next X(k); (ii) The no. of X(k) satisfying the explicit constraints (iii) The time for bounding functions Bi (iv) The no. of X(k) satisfying the Bi for all i. EFFICIENCY OF BACKTRACKING ALGORITHM (BT) (Contd..) : 30 EFFICIENCY OF BACKTRACKING ALGORITHM (BT) (Contd..) The first three are relatively independent of the problem instance being solved. The complexity for the first three is of polynomial complexity . If the number of nodes generated is 2n , then the worst case complexity for a backtracking algorithm is O(P(n)2n) where P(n) is a polynomial in n . Estimation Of Nodes generated in a BT Algorithm : 31 Estimation Of Nodes generated in a BT Algorithm Generate a random path in the state space tree. Let X be a node at level i on this path. Let mi be the children of X ( at level i+1 ) that do not get bounded. (i.e. mi are the nodes which can be considered for getting an answer node ). Choose randomly one of the mi. Continue this until this node is either is a leaf or all its children are bounded. Estimation of Nodes generated in a BT Algorithm (Contd..) : 32 Estimation of Nodes generated in a BT Algorithm (Contd..) Let m be the no. of unbounded nodes to be generated. Let us assume that the bounding functions are static, i.e., the BT algorithm does not change its bounding functions. The number of estimated number of unbounded nodes =1+m1+m1m2+….. +m1m2m3..mi where mi is to be estimated no. of nodes at level i+ 1. Estimation of Nodes generated in a BT Algorithm (Contd..) : 33 Estimation of Nodes generated in a BT Algorithm (Contd..) The number of unbounded nodes on level one is 1. The number of unbounded nodes on level 2 is m1 The total no. of nodes generated till level 2 is 1 + m1 ? The total number of nodes generated till level i+1 is 1+m1+…+m1…mi . The above procedure can be written as an algorithm. Estimation of Nodes generated in a BT Algorithm (Contd..) : 34 Estimation of Nodes generated in a BT Algorithm (Contd..) Procedure Estimate m?1; r?1; k?1 loop Tk ?{X (k): X(k) ?T ( X(1) ,….X(k-1)) and Bk (X (1), …., X(k))} If size (Tk) = 0 then exit endif // SIZE returns the // r ? r * SIZE (Tk) // size of the set Tk // m ? m+r X (k) ? CHOOSE (Tk) // CHOOSE makes a random choice of an element in Tk // k? k+1 repeat return (m) end estimate Estimation of Nodes generated in a BT Algorithm (Contd..) : 35 Estimation of Nodes generated in a BT Algorithm (Contd..) Then n-queens problem (8 queens problem) and solution In implementing the n – queens problem we imagine the chessboard as a two-dimensional array A (1 : n, 1 : n). The condition to test whether two queens, at positions (i, j) and (k, l) are on the same row or column is simply to check I = k or j = l two queens are on the same diagonal or not. Estimation Of Nodes generated in a BT Algorithm (Contd..) : 36 Estimation Of Nodes generated in a BT Algorithm (Contd..) Let m be the no. of unbounded nodes to be generated. Let us assume that the bounding functions are static, i.e., the BT algorithm does not change its bounding functions . The number of estimated no. of unbounded nodes The n-queens problem and solution : 37 The n-queens problem and solution In implementing the n – queens problem we imagine the chessboard as a two-dimensional array A (1 : n, 1 : n). The condition to test whether two queens, at positions (i, j) and (k, l) are on the same row or column is simply to check I = k or j = l The conditions to test whether two queens are on the same diagonal or not are to be found The n-queens problem and solution contd.. : 38 The n-queens problem and solution contd.. Observe that For the elements in the the upper left to lower Right diagonal, the row - column values are same or row- column = 0, e.g. 1-1=2-2=3-3=4-4=0 ii) For the elements in the upper right to the lower left diagonal, row + column value is the same e.g. 1+4=2+3=3+2=4+1=5 (1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (4,1) (4,2) (4,3) (4,4) The n-queens problem and solution contd.. : 39 The n-queens problem and solution contd.. Thus two queens are placed at positions (i, j) and (k, l), then they are on the same diagonal only if i – j = k - l or i + j = k+l or j - l = i - k or j - l = k - i Two queens lie on the same diagonal if and only if |j – l| = |i - k| The n-queens problem -Algorithm : 40 The n-queens problem -Algorithm Procedure PLACE (k) //returns true if a queen can be placed in the kth row and X(k)th column w.r.t.already placed rows 1..k-1// global X (1:k); integer i, k for i ? 1 to k-1 do // test if X (k) is on the same column or same// //diagonal with any of X(1) ….X(k-1)// The n-queens problem -Algorithm contd.. : 41 The n-queens problem -Algorithm contd.. if X(i) = X(k)// two are in the same column// or ABS(X(i) –X(k)) = ABS(i-k) // in the same diagonal // then Return (false) end if repeat return (true) end PLACK Above procedure is used in the solution to n queens problem The n-queens problem -Algorithm contd.. : 42 The n-queens problem -Algorithm contd.. Procedure N queens(n) //solves n queens problem, gives all solutions // integer k,n; X(1:n) X(1)? 0 ; k?1 // k is the current row,// //X(k) is the current column // while k > 0 do X(k) ? X(k) + 1 // move to the next column // The n-queens problem -Algorithm contd.. : 43 The n-queens problem -Algorithm contd.. While X(k) ? n and not PLACE(k) // queen k cannot be placed at X(k) th column // X(k) ? X(k) + 1 // move to the next column // repeat if X(k) ? n // place(k) is true i.e.a position X(k) // //is found for queen k // then if k = n // Is a solution complete ? // then print(X) The n-queens problem -Algorithm contd.. : 44 The n-queens problem -Algorithm contd.. else k ? k+1; X(k) = 0; //compute next component X (k) // endif else // no X(k) is suitable for placing queen k // k? k-1 //backtrack// endif repeat end NQUEENS The n-queens problem –Algorithm with example : 45 The n-queens problem –Algorithm with example Example : k?1, X (1) ? 0 k > 0 so X(1) ? 0+1 = 1 Place (1) is true so queen 1 is placed in X(1) = 1st column X(1) ? 4 but 1 ? 4 so k?1+1=2, X(2)?0 while loop is repeated X(2)? 0+1=1 X(2) ? 4 and PLACE (2) is false as X(1)=1=X(2) =1 PLACK(3) is true GRAPH COLOURING PROBLEM : 46 GRAPH COLOURING PROBLEM Let G be a graph and m be a positive integer . The problem is to colour the vertices of G using only m colours in such a way that no two adjacent nodes / vertices have the same color. It is necessary to find the smallest integer m. m is referred to as the chromatic number of G. A special case of graph colouring problem is the four colour problem for planar graphs . GRAPH COLOURING PROBLEM (Contd..) : 47 GRAPH COLOURING PROBLEM (Contd..) A graph is planar iff it can be drawn in a plane in such a way that no two edges cross each other. 4- colour problem for planar graphs Given any map, can the regions be coloured in such a way that no two adjacent regions have the same colour with only four colours? GRAPH COLOURING PROBLEM (Contd..) : 48 GRAPH COLOURING PROBLEM (Contd..) A map can be transformed into a graph by representing each region of map into a node and if two regions are adjacent, then the corresponding nodes are joined by an edge. For many years it was known that 5 colours are required to colour any map. After a several hundred years, mathematicians with the help of a computer showed that 4 colours are sufficient. GRAPH COLOURING PROBLEM (Contd..) : 49 GRAPH COLOURING PROBLEM (Contd..) 4 5 1 2 1 2 3 3 5 4 (a) (b) A map (a) and its planar graph (b) representation Solving the Graph Colouring Problems : 50 Solving the Graph Colouring Problems The graph is represented by its adjacency matrix Graph (1:n,1:n) where GRAPH (i,j) = true if <i,j> is an edge and Graph (i,j) = false otherwise. The colours will be represented by the integers 1,2….m and the solution with n–tuple (X(1),….X(n)), where X(i) is the colour of node i. Solving the Graph Colouring Problems (Contd..) : 51 Solving the Graph Colouring Problems (Contd..) The solution can be represented as a state space tree. Each node at level i has m children corresponding to m possible assignments to X(i) 1=i=m. Nodes at level n+1, are leaf nodes. The tree has degree m with height n+1. State space tree for m colouring problem with n = 3 and m = 3 : 52 State space tree for m colouring problem with n = 3 and m = 3 1 X(1)=1 X(1)=3 X(1)=2 2 X(2)=1 2 3 3 X(3)=1 2 3 4 5 6 Graph Colouring Problem- Algorithm : 53 Graph Colouring Problem- Algorithm Procedure MCOLORING (k) // Recursive backtracking for// // graph colouring problem // // k is the index of the next vertex to colour // global integer m,n,X(1:n); boolean GRAPH (1:n,1:n) integer k loop //generates values for X(k) // Solving the Graph Colouring Problems (Contd..) : 54 Solving the Graph Colouring Problems (Contd..) Call NEXTVALUE(K) // assign to X(k) a legal colour // if X(k) = 0 then exit endif // no new colour is possible // if k = n then Print X // m colours are assigned to n vertices // else call MCOLOURING(k+1) endif repeat end MCOLOURING Solving the Graph Colouring Problems (Contd..) : 55 Solving the Graph Colouring Problems (Contd..) Procedure NEXTVALUE(k) // X(1)….X(k-1) have been assigned // // to vertices 1,…k-1 // // X(k) is the next highest numbered // colour different from those adjacent to k // global integer m,n X(1:n) boolean GRAPH(1:n,1:n) integer j,k Solving the Graph Colouring Problems (Contd..) : 56 Solving the Graph Colouring Problems (Contd..) loop X(k)?( X(k) +1 ) mod(m+1) //next highest colour// if X(k)=0 then return endif //All colours have been exhausted// for j? 1 to n do //Check if this colour is distinct from // //adjacent colours// Solving the Graph Colouring Problems (Contd..) : 57 Solving the Graph Colouring Problems (Contd..) if GRAPH(k,j) and // if (k,j) is an edge // X(k)=X(j) then exit endif repeat if j = n+1 then return endif // the loop is exited with the last value // // i.e. j = n+1 and hence new colour is found // repeat // try to find another colour // end NEXTVALUE Solving the Graph Colouring Problems (Contd..) : 58 Solving the Graph Colouring Problems (Contd..) Example for NEXTVALUE(k) 1 Let m = 3 n = 4 2 Nextvalue(1) 4 X(1)=(0+1) mod 4 =1 3 for j?1 to 4 initially 1?0 so j=5 so return X(1)=X(2)=X(3) Nextvalue(2) returns (0+1)mod4=1 =X(4)=0 but X(2)=X(1) for j=1 and j?5 so loop is repeated and Nextvalue(2) is 2 Similarly Next value(3) is 3 and Next value (4) is 2 HAMILTONIAN CYCLES : 59 HAMILTONIAN CYCLES Let G=(V,E) be a connected graph with n vertices . A Hamiltonian cycle is a round path along n edges of G which visits every vertex once and returns to its starting position. The tour of a traveling salesperson problem is a Hamiltonian cycle. A tour may exist or not. HAMILTONIAN CYCLES (Contd..) : 60 HAMILTONIAN CYCLES (Contd..) 1 2 3 4 1 2 3 8 7 6 5 5 4 (a) (b) Hamiltonian Cycle is 1,2,8,7,6,5,4,3,1 No Hamiltonian Cycle HAMILTONIAN CYCLES (Contd..) : 61 HAMILTONIAN CYCLES (Contd..) The backtracking solution is a vector (x1,……,xn) where xi represents the ith visited vertex of the cycle. To avoid printing of the same cycle n times we require X(1) = 1 (as 128765431, 287654312, 87654312) We compute X(k) given (x1…..xk-1) have already been chosen. Two procedures NEXTVALUE(k) and HAMILTONIAN are used,to find the tour. We initialize Graph (1:n,1:n) and X(2:n)?0, X(1)?1 and start with HAMILTONIAN (2). HAMILTONIAN CYCLES -Algorithm : 62 HAMILTONIAN CYCLES -Algorithm Procedure HAMILTONIAN(k) // uses recursive backtracking // // All the H- cycles are to be found // // All cycles begin at vertex 1// global integer X(1:n) local integer k,n loop // generate values for X(k) // HAMILTONIAN CYCLES -Algorithm (Contd..) : 63 HAMILTONIAN CYCLES -Algorithm (Contd..) call NEXTVALUE(k) // assign a legal vertex to X(k) // if X(k)=0 then return endif if k = n then print (X, ’1’) // a cycle is printed // else print (HAMILTONIAN (K+1)) endif repeat end HAMILTONIAN HAMILTONIAN CYCLES -Algorithm (Contd..) : 64 HAMILTONIAN CYCLES -Algorithm (Contd..) Procedure NEXTVALUE(k) // X(1) ,.,x(k-1) is a path of k-1vertices,// //X(k) is the next highest value vertex,// //X(k) = 0 means, no vertex has been // //assigned to X(k) // global integer n,X(1:n); boolean GRAPH(1:n,1:n) integer k, j HAMILTONIAN CYCLES -Algorithm (Contd..) : 65 HAMILTONIAN CYCLES -Algorithm (Contd..) loop X(k)? (X(k)+1) mod(n+1) // next vertex // if X(k) = 0 then return endif if GRAPH (X(k-1),X(k)) // if there is an edge // then for j?1 to k-1 do // check whether the same vertex is generated // if X(j) = X(k) then exit // for loop exit // endif repeat // for // HAMILTONIAN CYCLES -Algorithm (Contd..) : 66 HAMILTONIAN CYCLES -Algorithm (Contd..) if j = k // the for loop is exited with // // last value I.e. j = k –1+1 = k // then if k < n or (k = n and GRAPH(X(n),1)) then return endif endif endif repeat end NEXTVALUE HAMILTONIAN CYCLES -Algorithm Example : 67 HAMILTONIAN CYCLES -Algorithm Example Example: Let n = 8 X(1) = 1, HAMILTONIAN(2) i.e.H(2) is called, so NEXTVALUE(2) i.e.N(2) is called. Initially X(2)=0 X(2)=0+1 mod 9 = 1 but X(1) = X(2) so loop is repeated and X(2) = 2 mod 9 = 2 X(1)?X(2) and j=k=2, k < 8 so return 2 NV(3)=8 as Graph(2,3), Graph(2,5) HAMILTONIAN CYCLES -Algorithm Example contd.. : 68 HAMILTONIAN CYCLES -Algorithm Example contd.. Graph(2,6),Graph(2,7),Graph(2,4) are false. Thus NV(4) = 7,NV(5) = 6,NV(6) = 5 NV(7) = 4, NV(8) = 3. At NV(8), k = 8 and GRAPH(X(8),1) is satisfied. Thus The cycle is printed.

Related presentations


Other presentations created by ankush85

Nanotechnology
03. 04. 2009
0 views

Nanotechnology

Human Resource Management System
06. 03. 2009
0 views

Human Resource Management System

Nanotechnology
27. 03. 2009
0 views

Nanotechnology

INTRODUCTION TO NANOTECHNOLOGY
20. 11. 2009
0 views

INTRODUCTION TO NANOTECHNOLOGY

Nanotechnology in Sports
22. 11. 2009
0 views

Nanotechnology in Sports

Computer Architecture
14. 07. 2009
0 views

Computer Architecture

HR
18. 03. 2009
0 views

HR

Hospital Management System
08. 04. 2009
0 views

Hospital Management System

Welcome to Visual Basic
06. 03. 2009
0 views

Welcome to Visual Basic

HTML
20. 04. 2009
0 views

HTML

Computer Languages
03. 06. 2013
0 views

Computer Languages

Taking Care of Computer
03. 06. 2013
0 views

Taking Care of Computer

Understanding Camera
16. 10. 2012
0 views

Understanding Camera

Photography Technical Terms
25. 09. 2012
0 views

Photography Technical Terms

Basics of Photography
25. 09. 2012
0 views

Basics of Photography

AIR MUSCLES
03. 01. 2012
0 views

AIR MUSCLES

Molecular Nanotechnology
24. 11. 2009
0 views

Molecular Nanotechnology

Nanotech Innovation
22. 11. 2009
0 views

Nanotech Innovation

FINANCIAL  MARKET
16. 05. 2009
0 views

FINANCIAL MARKET

Operating System
19. 04. 2009
0 views

Operating System

Management Control
10. 07. 2009
0 views

Management Control

Accounting Principles
01. 07. 2009
0 views

Accounting Principles

Balance Sheet
21. 07. 2009
0 views

Balance Sheet

Balance Sheet Auditing
01. 07. 2009
0 views

Balance Sheet Auditing

BRANCH AND BOUND
05. 03. 2009
0 views

BRANCH AND BOUND

THE  THREE  BRANCHES  OF GOVERNMENT
13. 06. 2009
0 views

THE THREE BRANCHES OF GOVERNMENT

Structure of Atom
11. 05. 2009
0 views

Structure of Atom

Compression Techniques
05. 03. 2009
0 views

Compression Techniques

DYNAMIC PROGRAMMING
06. 03. 2009
0 views

DYNAMIC PROGRAMMING

Quantum Mechanics
25. 08. 2009
0 views

Quantum Mechanics

Marketing Plan
19. 06. 2009
0 views

Marketing Plan

Book Keeping
24. 06. 2009
0 views

Book Keeping

DFDS
02. 10. 2008
0 views

DFDS

Semiconductors
25. 04. 2009
0 views

Semiconductors

Organic  Chemistry
28. 04. 2009
0 views

Organic Chemistry

Atoms Molecules and Ions
17. 06. 2009
0 views

Atoms Molecules and Ions

Covalent Bond
25. 04. 2009
0 views

Covalent Bond

Cost Accounting Standards
25. 06. 2009
0 views

Cost Accounting Standards

Crisis Management
19. 06. 2009
0 views

Crisis Management

Marketing
18. 03. 2009
0 views

Marketing

Business Strategy
27. 04. 2009
0 views

Business Strategy

Time Management
23. 03. 2009
0 views

Time Management

Networking Protocols
23. 05. 2009
0 views

Networking Protocols

Network Layer
23. 05. 2009
0 views

Network Layer

Final Accounts
24. 06. 2009
0 views

Final Accounts

ARTIFICIAL  INTELLIGENCE
03. 04. 2009
0 views

ARTIFICIAL INTELLIGENCE

Play with C
08. 04. 2009
0 views

Play with C

Software Development Cycle
23. 03. 2009
0 views

Software Development Cycle

THE GREEDY METHOD
06. 03. 2009
0 views

THE GREEDY METHOD

JOB SEQUENCING
06. 03. 2009
0 views

JOB SEQUENCING

Electricity and Magnetism
29. 04. 2009
0 views

Electricity and Magnetism

Optical Fiber
24. 05. 2009
0 views

Optical Fiber

Quality Assurance
06. 03. 2009
0 views

Quality Assurance

Object-oriented Design
11. 04. 2009
0 views

Object-oriented Design

A.R. Rahman
08. 03. 2009
0 views

A.R. Rahman

Hollywood Female Celebrities
13. 03. 2009
0 views

Hollywood Female Celebrities

Flow nets
04. 09. 2009
0 views

Flow nets

Energy and Nanotechnology
22. 11. 2009
0 views

Energy and Nanotechnology

LOGIC  DESIGN
06. 03. 2009
0 views

LOGIC DESIGN

VB-IDE
06. 03. 2009
0 views

VB-IDE

DLF IPL FINAL
25. 05. 2009
0 views

DLF IPL FINAL

MINIMUM SPANNING TREES
06. 03. 2009
0 views

MINIMUM SPANNING TREES

CPU Scheduling
05. 03. 2009
0 views

CPU Scheduling

Virtual Memory
05. 03. 2009
0 views

Virtual Memory

POK
09. 05. 2009
0 views

POK

2D Transformations
05. 03. 2009
0 views

2D Transformations

Greedy Algorithms
05. 03. 2009
0 views

Greedy Algorithms

DIVIDE And CONQUER
06. 03. 2009
0 views

DIVIDE And CONQUER

ELEMENTARY DATA STRUCTURES
06. 03. 2009
0 views

ELEMENTARY DATA STRUCTURES

JPEG Compression
06. 03. 2009
0 views

JPEG Compression

Mpeg-compression
06. 03. 2009
0 views

Mpeg-compression

NP - HARD
06. 03. 2009
0 views

NP - HARD

TRAVELLING SALESPERSON PROBLEM
06. 03. 2009
0 views

TRAVELLING SALESPERSON PROBLEM

VBA Introduction
06. 03. 2009
0 views

VBA Introduction

Introduction to Java
09. 03. 2009
0 views

Introduction to Java

Java  Basics
09. 03. 2009
0 views

Java Basics

Heuristic Search
13. 03. 2009
0 views

Heuristic Search

HSM
19. 03. 2009
0 views

HSM

Tata's  Nano  Car
25. 03. 2009
0 views

Tata's Nano Car

Air Cranes
08. 04. 2009
0 views

Air Cranes

Newborn Care
10. 04. 2009
0 views

Newborn Care

Photosynthesis Process
10. 04. 2009
0 views

Photosynthesis Process

ActionScript
13. 04. 2009
0 views

ActionScript

Xml
15. 04. 2009
0 views

Xml

Snakes mis use
17. 04. 2009
0 views

Snakes mis use

Php Web Development
21. 04. 2009
0 views

Php Web Development

Cricket Intro
21. 04. 2009
0 views

Cricket Intro

Cricket Umpiring and Rules
21. 04. 2009
0 views

Cricket Umpiring and Rules

Arm and Forearm
23. 04. 2009
0 views

Arm and Forearm

Elements Ions Isotopes
25. 04. 2009
0 views

Elements Ions Isotopes

Chemical Bond
25. 04. 2009
0 views

Chemical Bond

Discovering Newtons Laws
29. 04. 2009
0 views

Discovering Newtons Laws

FreeFall
29. 04. 2009
0 views

FreeFall

Digital photography
26. 04. 2009
0 views

Digital photography

Health Effects of Alcohol
26. 04. 2009
0 views

Health Effects of Alcohol

Poetry Terminology
27. 04. 2009
0 views

Poetry Terminology

Indian Force
05. 05. 2009
0 views

Indian Force

Machine Intelligence
14. 05. 2009
0 views

Machine Intelligence

Data Link Layer
16. 05. 2009
0 views

Data Link Layer

Database Development Cycle
15. 05. 2009
0 views

Database Development Cycle

Queue
15. 05. 2009
0 views

Queue

Presentaion Skills
23. 04. 2009
0 views

Presentaion Skills

Network Layers
23. 05. 2009
0 views

Network Layers

Narmada Dam, India
23. 05. 2009
0 views

Narmada Dam, India

User Datagram Protocol
24. 05. 2009
0 views

User Datagram Protocol

Linear Momentum
28. 05. 2009
0 views

Linear Momentum

Stack and Queue
04. 06. 2009
0 views

Stack and Queue

Information Management
19. 06. 2009
0 views

Information Management

Role of Senior Management
19. 06. 2009
0 views

Role of Senior Management

Wake Up India
07. 06. 2009
0 views

Wake Up India

Adobe Flex 3.0
13. 06. 2009
0 views

Adobe Flex 3.0

Adobe Flex Presentation
13. 06. 2009
0 views

Adobe Flex Presentation

Introduction to Adobe Flex
13. 06. 2009
0 views

Introduction to Adobe Flex

Adobe Flash Media Server
13. 06. 2009
0 views

Adobe Flash Media Server

Dreamweaver
13. 06. 2009
0 views

Dreamweaver

Adobe Flash
13. 06. 2009
0 views

Adobe Flash

Flash CS4 Professional
13. 06. 2009
0 views

Flash CS4 Professional

Adobe Flash Lite
13. 06. 2009
0 views

Adobe Flash Lite

Digital Camera
13. 06. 2009
0 views

Digital Camera

Mozilla_Firefox
15. 06. 2009
0 views

Mozilla_Firefox

Managerial Accounting
27. 06. 2009
0 views

Managerial Accounting

Accounting  Information  System
01. 07. 2009
0 views

Accounting Information System

RETAILING AND MARKETING
06. 07. 2009
0 views

RETAILING AND MARKETING

ACCOUNTING IN BUSINESS
05. 07. 2009
0 views

ACCOUNTING IN BUSINESS

STRATEGIC RETAIL MANAGEMENT
05. 07. 2009
0 views

STRATEGIC RETAIL MANAGEMENT

Reiki
01. 08. 2009
0 views

Reiki

Using Buttons in PowerPoint
26. 04. 2009
0 views

Using Buttons in PowerPoint

Nanotechnology  for  Students
21. 08. 2009
0 views

Nanotechnology for Students

NANOSCIENCE
25. 08. 2009
0 views

NANOSCIENCE

Fundamentals of Nanoscience
27. 08. 2009
0 views

Fundamentals of Nanoscience

Nanoscience in Nature
27. 08. 2009
0 views

Nanoscience in Nature

Applied Mechanics
04. 09. 2009
0 views

Applied Mechanics

Accounts Payable Training
27. 06. 2009
0 views

Accounts Payable Training