Back tracking

Keshav Memorial Institute of Technology
Keshav Memorial Institute of TechnologyProfessor, R & D cell at Keshav Memorial Institute of Technology en Keshav Memorial Institute of Technology
Backtracking:
Technique & Examples
By,
Fahim Ferdous
Back
Track
Yes Solution
No Solution
Backtracking
History
• ‘Backtrack’ the Word was first introduced by Dr. D.H.
Lehmer in 1950s.
• R.J Walker Was the First man who gave algorithmic
description in 1960.
• Later developed by S. Golamb and L. Baumert.
Backtracking
• What is Backtracking?
----- Backtracking is nothing but the modified process of the brute
force approach. where the technique systematically searches for a
solution to a problem among all available options. It does so by
assuming that the solutions are represented by vectors (v1, ..., in) of
values and by traversing through the domains of the vectors until
the solutions is found.
Backtracking
• The Algorithmic Approach
– Backtracking systematically try and search possibilities to find the
solution. Also it is an important process for solving constraint
satisfaction problem like crossword, Sudoku and many other puzzles. It
can be more continent technique for parsing other combinatorial
optimization problem.
– Basically the process is used when the problem has a number of option
and just one solution have to be selected. After having a new option set
means recursion, the procedure is repeated over and over until final
stage.
Backtracking
Algorithm Backtrack (v1,Vi)
If (V1,……., Vi) is a Solution Then
Return (V1,…, Vi)
For each v DO
If (V1,…….,Vi) is acceptable vector THEN
Sol = try (V1,…,Vi, V)
If sol != () Then
RETURN sol
End
End
Return ( )
Backtracking
• Advantages
– Comparison with the Dynamic Programming, Backtracking Approach is more effective in some cases.
– Backtracking Algorithm is the best option for solving tactical problem.
– Also Backtracking is effective for constraint satisfaction problem.
– In greedy Algorithm, getting the Global Optimal Solution is a long procedure and depends on user
statements but in Backtracking It Can Easily getable.
– Backtracking technique is simple to implement and easy to code.
– Different states are stored into stack so that the data or Info can be usable anytime.
– The accuracy is granted.
Backtracking
• Disadvantages
– Backtracking Approach is not efficient for solving strategic Problem.
– The overall runtime of Backtracking Algorithm is normally slow
– To solve Large Problem Sometime it needs to take the help of other
techniques like Branch and bound.
– Need Large amount of memory space for storing different state function
in the stack for big problem.
– Thrashing is one of the main problem of Backtracking.
– The Basic Approach Detects the conflicts too late.
Backtracking
• Application of Backtracking
• Optimization and tactical problems
• Constraints Satisfaction Problem
• Electrical Engineering
• Robotics
• Artificial Intelligence
• Genetic and bioinformatics Algorithm
• Materials Engineering
• Network Communication
• Solving puzzles and path
Backtracking
• Some Problem Solved with Backtracking Technique
– N- Queens Problem
– Sum of Subset
– Sudoku Puzzle
– Maze Generation
– Hamiltonian Cycle
N-Queens Problem
• History:
First Introduced in 1848 which was known as 8- queens Puzzle. Surprisingly,
The First Solution was created in 1950 by Franz Nauck. Nauck made an 8X8
Chessboard to find the first Feasible Solution.
N-Queens Problem
• Problem Description
In a NxN square board N – number of queens need to be
placed considering three Condition ---
• No two Queens can be placed in same row.
• No two Queens Can be places in same Column
• No two queens Can be placed in same Diagonal.
N-Queens Problem
• Backtracking approach for solution
- - The Algorithm will check each position [i , j] for each queens . If any Suitable places found , It will
place a queen on that position. If not Algorithm will try same approach for next position.
Algorithm Nqueen(K,n){
For i= 1 to n {
If Place(K,i){
X[k] = I;
If(k = n) then
Write x[1:n];
Else
Nqueen(k+1, n) ;
}
}
}
Place(k,i){
For j=1 to k-1{
If((x[j] = i) or abs(x[j] – 1 = abs(j-k)))
Return false;
}
Return true;
}
N-Queens Problem
Maze Generation
Problem Description
A N X N board is made in a way So that 1 or 0 can be placed in
each box where 1 is for valid path for moving towards exit and 0 is
the Closed path. Now, by using Backtracking Algorithm The path to
the exit need to be find.
Maze Generation
• -- Algorithm will try to follow the box which has the value 1 and
generate a path. Again, it will check for 1 at the next box. If not
found it will go through next box. If entire row is complete, then it will
move to the next row and look for 1.
Maze Generation
• Solution Using Backtracking Technique
Algorithm Maze_Gen(graph){
If(Maze_operator(graph, x,y, canvas)
== false)
Write (“No result”);
Return false;
Print_Result(canvas);
Return true;
}
Algorithm Maze_operator(graph, x,y, canvas){
If(x ==N-1 && y == N-1){
Canvas[x][y] = 1;
Return true;
}
If(IsSafe(graph, x,y) == true){
Canvas[x][y] = 1;
If(Maze_operator(graph, x+1,y, canvas))
Return true;
If(Maze_operator(graph, x,y+1, canvas))
Return true;
Canvas [x][y] = 0;
Return true;
}
Return false;
}
Maze Generation
Hamiltonian Cycle
Hamiltonian Cycle is a graph theory problem where the graph cycle
through a graph can visit each node only once. The puzzle was first
devised by Sir William Rowan Hamilton and the Problem is named after
Him.
Condition: The Cycle Started with a Starting Node, and visit all the Nodes in the Graph
(Not necessary to visit in sequential Order and not creating edge that is not given) And
Stop at The Starting Point/Node.
Hamiltonian Cycle
• The Backtracking Approach
The Algorithm First Check the Starting Node, if there is any edge to the next node. If
yes, then the Algorithm will check that node for the edge to the next Node. It will Also
Check If any Node is visited twice by the previous Node. If there is any then the
Algorithm Will Ignore One and Choose the Optimal One for the Solution.
 The Important thing is the tour must finish at the starting point.
Hamiltonian Cycle
Algorithm Hamilton_Cycle(k){
Repeat{
NextVal(k);
If(x[k]==0) then
Return;
If (k ==n) then
Write (x[1:n]);
Else
Hamilton_Cycle(k+1);
}
Until (false);
}
AlgortihmNextVal(k){
Repeat{
X[k] = (x[k]+1) mod (n+1);
If(x[k]=0) then return;
If (G[x[k-1],x[k]] != 0 ) then{
For j = 1 to k-1 do
If(x[j]=x[k]) then
Break;
If(j = k) then
If ((k<n or k=n) && G[x[n],x[1]] != 0)
Then return;
}
}
Until (false);
}
Hamiltonian Cycle
Sudoku Puzzle
• The Word ‘Sudoku’ is a Japanese Word. But The Sudoku Puzzle Was First
Invented in Switzerland
• In a N X N Square Board, The Numbers 1 to N to be Placed in a way that:
– All the Number from 1 to N can be Placed in each row.
– All the Number from 1 to N can be Placed in each Column.
– All The Number from 1 to N Can be Placed in Sub Square boxes of the given box.
Sudoku Puzzle
• Backtracking Approach
The Algorithm Will Check Each Box’s value if the value is in the same
row, or same column or same sub-square box. If not,then it placed the value
in the box. And go to the next box for the next value, and check the Above
Condition. If there is any duplicate value, then The Algorithm check for the
next value.
Sudoku Puzzle
Algorithm Sudoku_Solver(canvas, row,
col){
If(anyEmptyLocation(canvas, row, col))
Return true;
For I = 1 to n do, {
If (find_location(canvas, row,col, i))
{
Canvas[row][col] = i;
If (Sudoku_Solver(canvas))
Return true;
Canvas [row][col] = -1;
}
}
Return false;
}
Sum of Subset
• The Sum of Subset Problem is, there will be a set of distinct positive
Numbers X and a given Number N. Now, we have to find all the
combination of numbers from X that sum up to N. Make a Set of
those Number.
W = {4,5,6,3}
M = 13
Sum of Subset
Sum of Subset
• Backtracking Approach
First, organize the numbers in non decreasing order. Then generating a tree, we
can find the solution by adding the weight of the nodes. Note that, here more than
necessary nodes can be generated. The algorithm will search for the weighted amount
of the nodes. If it goes beyond given Number N, then it stops generating nodes and
move to other parent nodes for finding solution.
Algorithm SumOfSubset(s,k,y){
X[k] = 1;
If(s+w[k] = m)
Write (x[1:n]);
Else if((s+w[k] + w[k+1]) <= m)
SumOfSubset(s+w[k], k+1, y-w[k]);
If ((s+ y-w[k]>=m) &&(s =w[k+1] <=m)) {
X[k] =0;
SumOfSubset(s,k+1,y-w[k]);
}
}
Sum of Subset
Here M = 53
W = {8,9,14,15,16,22}
References
• Chapter 6, Backtracking, Design and Analysis of Algorithms – V.V. Muniswami
• Chapter – 4, Non- Chronological Backtracking, Handbook on Constraint Programming – F.
Rossi, Van Beek
• web.cse.ohio-state.edu/~gurari/course/cis680/cis680Ch19.html
• www.classle.net/faq/comparisons-divide-and-conquergreedy-methoddynamic-
programmingbacktracking-and-branch-and-bound-
• Backtracking algorithms for constraint satisfaction problems; a survey
R. Dechter, D. Frost, in Constraints, International Journal, 1998.
• Bessiere C., Maestre A., Meseguer P., Distributed dynamic backtracking, in M.C. Silaghi, editor,
Proceedings of the IJCAI’01 workshop on Distributed Constraint Reasoning, Seattle WA,
2001, pp. 9–16.
• A First Look at Graph Theory – Jhon Clark, Allan Holton
• Principles and Practice of Constraint Programming- CP 2001: 7th International Conference,
CP 2001, Paphos, Cyprus, November 26 - December 1, 2001
Thank you!!
1 de 30

Recomendados

Knights tour on chessboard using backtracking por
Knights tour on chessboard using backtrackingKnights tour on chessboard using backtracking
Knights tour on chessboard using backtrackingAbhishek Singh
2.3K vistas12 diapositivas
BackTracking Algorithm: Technique and Examples por
BackTracking Algorithm: Technique and ExamplesBackTracking Algorithm: Technique and Examples
BackTracking Algorithm: Technique and ExamplesFahim Ferdous
45K vistas30 diapositivas
N Queens problem por
N Queens problemN Queens problem
N Queens problemArkadeep Dey
6.4K vistas17 diapositivas
Backtracking por
BacktrackingBacktracking
BacktrackingPranay Meshram
4.6K vistas26 diapositivas
Queue- 8 Queen por
Queue- 8 QueenQueue- 8 Queen
Queue- 8 QueenHa Ninh
6.7K vistas20 diapositivas
backtracking algorithms of ada por
backtracking algorithms of adabacktracking algorithms of ada
backtracking algorithms of adaSahil Kumar
35.6K vistas34 diapositivas

Más contenido relacionado

La actualidad más candente

Knapsack problem using fixed tuple por
Knapsack problem using fixed tupleKnapsack problem using fixed tuple
Knapsack problem using fixed tupleMohanlal Sukhadia University (MLSU)
6.5K vistas17 diapositivas
Q por
QQ
Qguest9b2176
809 vistas15 diapositivas
Np cooks theorem por
Np cooks theoremNp cooks theorem
Np cooks theoremNarayana Galla
26.4K vistas65 diapositivas
Computability - Tractable, Intractable and Non-computable Function por
Computability - Tractable, Intractable and Non-computable FunctionComputability - Tractable, Intractable and Non-computable Function
Computability - Tractable, Intractable and Non-computable FunctionReggie Niccolo Santos
5.6K vistas40 diapositivas
Greedy Algorithm por
Greedy AlgorithmGreedy Algorithm
Greedy AlgorithmWaqar Akram
4.4K vistas22 diapositivas
algorithm Unit 3 por
algorithm Unit 3algorithm Unit 3
algorithm Unit 3Monika Choudhery
5.9K vistas26 diapositivas

La actualidad más candente(20)

Computability - Tractable, Intractable and Non-computable Function por Reggie Niccolo Santos
Computability - Tractable, Intractable and Non-computable FunctionComputability - Tractable, Intractable and Non-computable Function
Computability - Tractable, Intractable and Non-computable Function
Reggie Niccolo Santos5.6K vistas
Greedy Algorithm por Waqar Akram
Greedy AlgorithmGreedy Algorithm
Greedy Algorithm
Waqar Akram4.4K vistas
Backtracking por Sally Salem
BacktrackingBacktracking
Backtracking
Sally Salem2.5K vistas
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen... por Amrinder Arora
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Bron Kerbosch Algorithm - Presentation by Jun Zhai, Tianhang Qiang and Yizhen...
Amrinder Arora3.7K vistas
Asymptotic Notations por NagendraK18
Asymptotic NotationsAsymptotic Notations
Asymptotic Notations
NagendraK1869 vistas
Solution of N Queens Problem genetic algorithm por MohammedAlKazal
Solution of N Queens Problem genetic algorithm  Solution of N Queens Problem genetic algorithm
Solution of N Queens Problem genetic algorithm
MohammedAlKazal1.2K vistas
Computational Complexity: Introduction-Turing Machines-Undecidability por Antonis Antonopoulos
Computational Complexity: Introduction-Turing Machines-UndecidabilityComputational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Introduction-Turing Machines-Undecidability
Computational Complexity: Oracles and the Polynomial Hierarchy por Antonis Antonopoulos
Computational Complexity: Oracles and the Polynomial HierarchyComputational Complexity: Oracles and the Polynomial Hierarchy
Computational Complexity: Oracles and the Polynomial Hierarchy
5.5 back track por Krish_ver2
5.5 back track5.5 back track
5.5 back track
Krish_ver21.5K vistas
Skiena algorithm 2007 lecture16 introduction to dynamic programming por zukun
Skiena algorithm 2007 lecture16 introduction to dynamic programmingSkiena algorithm 2007 lecture16 introduction to dynamic programming
Skiena algorithm 2007 lecture16 introduction to dynamic programming
zukun998 vistas
lecture 30 por sajinsc
lecture 30lecture 30
lecture 30
sajinsc2.4K vistas

Similar a Back tracking

algorithm Unit 4 por
algorithm Unit 4 algorithm Unit 4
algorithm Unit 4 Monika Choudhery
3.5K vistas16 diapositivas
Unit 4 jwfiles por
Unit 4 jwfilesUnit 4 jwfiles
Unit 4 jwfilesNv Thejaswini
728 vistas16 diapositivas
Data Analysis and Algorithms Lecture 1: Introduction por
 Data Analysis and Algorithms Lecture 1: Introduction Data Analysis and Algorithms Lecture 1: Introduction
Data Analysis and Algorithms Lecture 1: IntroductionTayyabSattar5
36 vistas24 diapositivas
module5_backtrackingnbranchnbound_2022.pdf por
module5_backtrackingnbranchnbound_2022.pdfmodule5_backtrackingnbranchnbound_2022.pdf
module5_backtrackingnbranchnbound_2022.pdfShiwani Gupta
116 vistas44 diapositivas
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle por
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycleBacktracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cyclevarun arora
3.2K vistas30 diapositivas
backtracking 8 Queen.pptx por
backtracking 8 Queen.pptxbacktracking 8 Queen.pptx
backtracking 8 Queen.pptxJoshipavanEdduluru1
3 vistas20 diapositivas

Similar a Back tracking(20)

Data Analysis and Algorithms Lecture 1: Introduction por TayyabSattar5
 Data Analysis and Algorithms Lecture 1: Introduction Data Analysis and Algorithms Lecture 1: Introduction
Data Analysis and Algorithms Lecture 1: Introduction
TayyabSattar536 vistas
module5_backtrackingnbranchnbound_2022.pdf por Shiwani Gupta
module5_backtrackingnbranchnbound_2022.pdfmodule5_backtrackingnbranchnbound_2022.pdf
module5_backtrackingnbranchnbound_2022.pdf
Shiwani Gupta116 vistas
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle por varun arora
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycleBacktracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
Backtracking-N Queens Problem-Graph Coloring-Hamiltonian cycle
varun arora3.2K vistas
unit-4-dynamic programming por hodcsencet
unit-4-dynamic programmingunit-4-dynamic programming
unit-4-dynamic programming
hodcsencet378 vistas
Back tracking and branch and bound class 20 por Kumar
Back tracking and branch and bound class 20Back tracking and branch and bound class 20
Back tracking and branch and bound class 20
Kumar 20.6K vistas
Branch and bound por Acad
Branch and boundBranch and bound
Branch and bound
Acad3.8K vistas
AAC ch 3 Advance strategies (Dynamic Programming).pptx por HarshitSingh334328
AAC ch 3 Advance strategies (Dynamic Programming).pptxAAC ch 3 Advance strategies (Dynamic Programming).pptx
AAC ch 3 Advance strategies (Dynamic Programming).pptx
HarshitSingh33432832 vistas
Parallel_Algorithms_In_Combinatorial_Optimization_Problems.ppt por BinayakMukherjee4
Parallel_Algorithms_In_Combinatorial_Optimization_Problems.pptParallel_Algorithms_In_Combinatorial_Optimization_Problems.ppt
Parallel_Algorithms_In_Combinatorial_Optimization_Problems.ppt
Undecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWER por muthukrishnavinayaga
Undecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWERUndecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWER
Undecidable Problems - COPING WITH THE LIMITATIONS OF ALGORITHM POWER
muthukrishnavinayaga1.4K vistas
Unit 3- Greedy Method.pptx por MaryJacob24
Unit 3- Greedy Method.pptxUnit 3- Greedy Method.pptx
Unit 3- Greedy Method.pptx
MaryJacob2412 vistas
Undecidable Problems and Approximation Algorithms por Muthu Vinayagam
Undecidable Problems and Approximation AlgorithmsUndecidable Problems and Approximation Algorithms
Undecidable Problems and Approximation Algorithms
Muthu Vinayagam140 vistas
Unit 3 - Greedy Method por MaryJacob24
Unit 3  - Greedy MethodUnit 3  - Greedy Method
Unit 3 - Greedy Method
MaryJacob2495 vistas
Unit 3 greedy method por MaryJacob24
Unit 3  greedy methodUnit 3  greedy method
Unit 3 greedy method
MaryJacob2472 vistas
Limits of Computation por Joshua Reuben
Limits of ComputationLimits of Computation
Limits of Computation
Joshua Reuben1.2K vistas

Último

[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx por
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptxDataScienceConferenc1
5 vistas12 diapositivas
Survey on Factuality in LLM's.pptx por
Survey on Factuality in LLM's.pptxSurvey on Factuality in LLM's.pptx
Survey on Factuality in LLM's.pptxNeethaSherra1
7 vistas9 diapositivas
Organic Shopping in Google Analytics 4.pdf por
Organic Shopping in Google Analytics 4.pdfOrganic Shopping in Google Analytics 4.pdf
Organic Shopping in Google Analytics 4.pdfGA4 Tutorials
16 vistas13 diapositivas
How Leaders See Data? (Level 1) por
How Leaders See Data? (Level 1)How Leaders See Data? (Level 1)
How Leaders See Data? (Level 1)Narendra Narendra
15 vistas76 diapositivas
UNEP FI CRS Climate Risk Results.pptx por
UNEP FI CRS Climate Risk Results.pptxUNEP FI CRS Climate Risk Results.pptx
UNEP FI CRS Climate Risk Results.pptxpekka28
11 vistas51 diapositivas
Cross-network in Google Analytics 4.pdf por
Cross-network in Google Analytics 4.pdfCross-network in Google Analytics 4.pdf
Cross-network in Google Analytics 4.pdfGA4 Tutorials
6 vistas7 diapositivas

Último(20)

[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx por DataScienceConferenc1
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
Survey on Factuality in LLM's.pptx por NeethaSherra1
Survey on Factuality in LLM's.pptxSurvey on Factuality in LLM's.pptx
Survey on Factuality in LLM's.pptx
NeethaSherra17 vistas
Organic Shopping in Google Analytics 4.pdf por GA4 Tutorials
Organic Shopping in Google Analytics 4.pdfOrganic Shopping in Google Analytics 4.pdf
Organic Shopping in Google Analytics 4.pdf
GA4 Tutorials16 vistas
UNEP FI CRS Climate Risk Results.pptx por pekka28
UNEP FI CRS Climate Risk Results.pptxUNEP FI CRS Climate Risk Results.pptx
UNEP FI CRS Climate Risk Results.pptx
pekka2811 vistas
Cross-network in Google Analytics 4.pdf por GA4 Tutorials
Cross-network in Google Analytics 4.pdfCross-network in Google Analytics 4.pdf
Cross-network in Google Analytics 4.pdf
GA4 Tutorials6 vistas
3196 The Case of The East River por ErickANDRADE90
3196 The Case of The East River3196 The Case of The East River
3196 The Case of The East River
ErickANDRADE9016 vistas
Advanced_Recommendation_Systems_Presentation.pptx por neeharikasingh29
Advanced_Recommendation_Systems_Presentation.pptxAdvanced_Recommendation_Systems_Presentation.pptx
Advanced_Recommendation_Systems_Presentation.pptx
neeharikasingh295 vistas
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation por DataScienceConferenc1
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
CRM stick or twist workshop por info828217
CRM stick or twist workshopCRM stick or twist workshop
CRM stick or twist workshop
info82821710 vistas
PRIVACY AWRE PERSONAL DATA STORAGE por antony420421
PRIVACY AWRE PERSONAL DATA STORAGEPRIVACY AWRE PERSONAL DATA STORAGE
PRIVACY AWRE PERSONAL DATA STORAGE
antony4204215 vistas
[DSC Europe 23][AI:CSI] Dragan Pleskonjic - AI Impact on Cybersecurity and P... por DataScienceConferenc1
[DSC Europe 23][AI:CSI]  Dragan Pleskonjic - AI Impact on Cybersecurity and P...[DSC Europe 23][AI:CSI]  Dragan Pleskonjic - AI Impact on Cybersecurity and P...
[DSC Europe 23][AI:CSI] Dragan Pleskonjic - AI Impact on Cybersecurity and P...
Ukraine Infographic_22NOV2023_v2.pdf por AnastosiyaGurin
Ukraine Infographic_22NOV2023_v2.pdfUkraine Infographic_22NOV2023_v2.pdf
Ukraine Infographic_22NOV2023_v2.pdf
AnastosiyaGurin1.4K vistas
[DSC Europe 23] Ivana Sesic - Use of AI in Public Health.pptx por DataScienceConferenc1
[DSC Europe 23] Ivana Sesic - Use of AI in Public Health.pptx[DSC Europe 23] Ivana Sesic - Use of AI in Public Health.pptx
[DSC Europe 23] Ivana Sesic - Use of AI in Public Health.pptx
Data Journeys Hard Talk workshop final.pptx por info828217
Data Journeys Hard Talk workshop final.pptxData Journeys Hard Talk workshop final.pptx
Data Journeys Hard Talk workshop final.pptx
info82821710 vistas
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M... por DataScienceConferenc1
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
OECD-Persol Holdings Workshop on Advancing Employee Well-being in Business an... por StatsCommunications
OECD-Persol Holdings Workshop on Advancing Employee Well-being in Business an...OECD-Persol Holdings Workshop on Advancing Employee Well-being in Business an...
OECD-Persol Holdings Workshop on Advancing Employee Well-being in Business an...
CRIJ4385_Death Penalty_F23.pptx por yvettemm100
CRIJ4385_Death Penalty_F23.pptxCRIJ4385_Death Penalty_F23.pptx
CRIJ4385_Death Penalty_F23.pptx
yvettemm1006 vistas

Back tracking

  • 1. Backtracking: Technique & Examples By, Fahim Ferdous Back Track Yes Solution No Solution
  • 2. Backtracking History • ‘Backtrack’ the Word was first introduced by Dr. D.H. Lehmer in 1950s. • R.J Walker Was the First man who gave algorithmic description in 1960. • Later developed by S. Golamb and L. Baumert.
  • 3. Backtracking • What is Backtracking? ----- Backtracking is nothing but the modified process of the brute force approach. where the technique systematically searches for a solution to a problem among all available options. It does so by assuming that the solutions are represented by vectors (v1, ..., in) of values and by traversing through the domains of the vectors until the solutions is found.
  • 4. Backtracking • The Algorithmic Approach – Backtracking systematically try and search possibilities to find the solution. Also it is an important process for solving constraint satisfaction problem like crossword, Sudoku and many other puzzles. It can be more continent technique for parsing other combinatorial optimization problem. – Basically the process is used when the problem has a number of option and just one solution have to be selected. After having a new option set means recursion, the procedure is repeated over and over until final stage.
  • 5. Backtracking Algorithm Backtrack (v1,Vi) If (V1,……., Vi) is a Solution Then Return (V1,…, Vi) For each v DO If (V1,…….,Vi) is acceptable vector THEN Sol = try (V1,…,Vi, V) If sol != () Then RETURN sol End End Return ( )
  • 6. Backtracking • Advantages – Comparison with the Dynamic Programming, Backtracking Approach is more effective in some cases. – Backtracking Algorithm is the best option for solving tactical problem. – Also Backtracking is effective for constraint satisfaction problem. – In greedy Algorithm, getting the Global Optimal Solution is a long procedure and depends on user statements but in Backtracking It Can Easily getable. – Backtracking technique is simple to implement and easy to code. – Different states are stored into stack so that the data or Info can be usable anytime. – The accuracy is granted.
  • 7. Backtracking • Disadvantages – Backtracking Approach is not efficient for solving strategic Problem. – The overall runtime of Backtracking Algorithm is normally slow – To solve Large Problem Sometime it needs to take the help of other techniques like Branch and bound. – Need Large amount of memory space for storing different state function in the stack for big problem. – Thrashing is one of the main problem of Backtracking. – The Basic Approach Detects the conflicts too late.
  • 8. Backtracking • Application of Backtracking • Optimization and tactical problems • Constraints Satisfaction Problem • Electrical Engineering • Robotics • Artificial Intelligence • Genetic and bioinformatics Algorithm • Materials Engineering • Network Communication • Solving puzzles and path
  • 9. Backtracking • Some Problem Solved with Backtracking Technique – N- Queens Problem – Sum of Subset – Sudoku Puzzle – Maze Generation – Hamiltonian Cycle
  • 10. N-Queens Problem • History: First Introduced in 1848 which was known as 8- queens Puzzle. Surprisingly, The First Solution was created in 1950 by Franz Nauck. Nauck made an 8X8 Chessboard to find the first Feasible Solution.
  • 11. N-Queens Problem • Problem Description In a NxN square board N – number of queens need to be placed considering three Condition --- • No two Queens can be placed in same row. • No two Queens Can be places in same Column • No two queens Can be placed in same Diagonal.
  • 12. N-Queens Problem • Backtracking approach for solution - - The Algorithm will check each position [i , j] for each queens . If any Suitable places found , It will place a queen on that position. If not Algorithm will try same approach for next position. Algorithm Nqueen(K,n){ For i= 1 to n { If Place(K,i){ X[k] = I; If(k = n) then Write x[1:n]; Else Nqueen(k+1, n) ; } } } Place(k,i){ For j=1 to k-1{ If((x[j] = i) or abs(x[j] – 1 = abs(j-k))) Return false; } Return true; }
  • 14. Maze Generation Problem Description A N X N board is made in a way So that 1 or 0 can be placed in each box where 1 is for valid path for moving towards exit and 0 is the Closed path. Now, by using Backtracking Algorithm The path to the exit need to be find.
  • 15. Maze Generation • -- Algorithm will try to follow the box which has the value 1 and generate a path. Again, it will check for 1 at the next box. If not found it will go through next box. If entire row is complete, then it will move to the next row and look for 1.
  • 16. Maze Generation • Solution Using Backtracking Technique Algorithm Maze_Gen(graph){ If(Maze_operator(graph, x,y, canvas) == false) Write (“No result”); Return false; Print_Result(canvas); Return true; } Algorithm Maze_operator(graph, x,y, canvas){ If(x ==N-1 && y == N-1){ Canvas[x][y] = 1; Return true; } If(IsSafe(graph, x,y) == true){ Canvas[x][y] = 1; If(Maze_operator(graph, x+1,y, canvas)) Return true; If(Maze_operator(graph, x,y+1, canvas)) Return true; Canvas [x][y] = 0; Return true; } Return false; }
  • 18. Hamiltonian Cycle Hamiltonian Cycle is a graph theory problem where the graph cycle through a graph can visit each node only once. The puzzle was first devised by Sir William Rowan Hamilton and the Problem is named after Him. Condition: The Cycle Started with a Starting Node, and visit all the Nodes in the Graph (Not necessary to visit in sequential Order and not creating edge that is not given) And Stop at The Starting Point/Node.
  • 19. Hamiltonian Cycle • The Backtracking Approach The Algorithm First Check the Starting Node, if there is any edge to the next node. If yes, then the Algorithm will check that node for the edge to the next Node. It will Also Check If any Node is visited twice by the previous Node. If there is any then the Algorithm Will Ignore One and Choose the Optimal One for the Solution.  The Important thing is the tour must finish at the starting point.
  • 20. Hamiltonian Cycle Algorithm Hamilton_Cycle(k){ Repeat{ NextVal(k); If(x[k]==0) then Return; If (k ==n) then Write (x[1:n]); Else Hamilton_Cycle(k+1); } Until (false); } AlgortihmNextVal(k){ Repeat{ X[k] = (x[k]+1) mod (n+1); If(x[k]=0) then return; If (G[x[k-1],x[k]] != 0 ) then{ For j = 1 to k-1 do If(x[j]=x[k]) then Break; If(j = k) then If ((k<n or k=n) && G[x[n],x[1]] != 0) Then return; } } Until (false); }
  • 22. Sudoku Puzzle • The Word ‘Sudoku’ is a Japanese Word. But The Sudoku Puzzle Was First Invented in Switzerland • In a N X N Square Board, The Numbers 1 to N to be Placed in a way that: – All the Number from 1 to N can be Placed in each row. – All the Number from 1 to N can be Placed in each Column. – All The Number from 1 to N Can be Placed in Sub Square boxes of the given box.
  • 23. Sudoku Puzzle • Backtracking Approach The Algorithm Will Check Each Box’s value if the value is in the same row, or same column or same sub-square box. If not,then it placed the value in the box. And go to the next box for the next value, and check the Above Condition. If there is any duplicate value, then The Algorithm check for the next value.
  • 24. Sudoku Puzzle Algorithm Sudoku_Solver(canvas, row, col){ If(anyEmptyLocation(canvas, row, col)) Return true; For I = 1 to n do, { If (find_location(canvas, row,col, i)) { Canvas[row][col] = i; If (Sudoku_Solver(canvas)) Return true; Canvas [row][col] = -1; } } Return false; }
  • 25. Sum of Subset • The Sum of Subset Problem is, there will be a set of distinct positive Numbers X and a given Number N. Now, we have to find all the combination of numbers from X that sum up to N. Make a Set of those Number. W = {4,5,6,3} M = 13
  • 27. Sum of Subset • Backtracking Approach First, organize the numbers in non decreasing order. Then generating a tree, we can find the solution by adding the weight of the nodes. Note that, here more than necessary nodes can be generated. The algorithm will search for the weighted amount of the nodes. If it goes beyond given Number N, then it stops generating nodes and move to other parent nodes for finding solution. Algorithm SumOfSubset(s,k,y){ X[k] = 1; If(s+w[k] = m) Write (x[1:n]); Else if((s+w[k] + w[k+1]) <= m) SumOfSubset(s+w[k], k+1, y-w[k]); If ((s+ y-w[k]>=m) &&(s =w[k+1] <=m)) { X[k] =0; SumOfSubset(s,k+1,y-w[k]); } }
  • 28. Sum of Subset Here M = 53 W = {8,9,14,15,16,22}
  • 29. References • Chapter 6, Backtracking, Design and Analysis of Algorithms – V.V. Muniswami • Chapter – 4, Non- Chronological Backtracking, Handbook on Constraint Programming – F. Rossi, Van Beek • web.cse.ohio-state.edu/~gurari/course/cis680/cis680Ch19.html • www.classle.net/faq/comparisons-divide-and-conquergreedy-methoddynamic- programmingbacktracking-and-branch-and-bound- • Backtracking algorithms for constraint satisfaction problems; a survey R. Dechter, D. Frost, in Constraints, International Journal, 1998. • Bessiere C., Maestre A., Meseguer P., Distributed dynamic backtracking, in M.C. Silaghi, editor, Proceedings of the IJCAI’01 workshop on Distributed Constraint Reasoning, Seattle WA, 2001, pp. 9–16. • A First Look at Graph Theory – Jhon Clark, Allan Holton • Principles and Practice of Constraint Programming- CP 2001: 7th International Conference, CP 2001, Paphos, Cyprus, November 26 - December 1, 2001