algorithmic basic techniques
TRANSCRIPT
![Page 1: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/1.jpg)
Algorithmic PuzzlesFirst Meetup 2016/12/12
![Page 3: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/3.jpg)
Exhaustive SearchTry all possible candidate solutions until a solution
to the problem is found.
![Page 4: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/4.jpg)
Exhaustive Search
• Magic Square p.4
![Page 5: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/5.jpg)
BacktrackingAn important improvement over the brute-force
approach of exhaustive search.
![Page 6: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/6.jpg)
Backtracking
• A method for generating candidate solutions while making it possible to avoid generating unnecessary candidates.
• state-space-tree
![Page 7: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/7.jpg)
Backtracking
• The n-Queens Problem p.6
![Page 8: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/8.jpg)
Decrease-and-Conquer
Finding a relationship between a solution to a given problem and a solution to its smaller
instance
![Page 9: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/9.jpg)
Decrease-and-Conquer
• Celebrity Problem p.8• Decrease by one
• Number Guessing p.9• Decrease by half
![Page 10: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/10.jpg)
Divide-and-ConquerPartition a problem into smaller subproblems,
solve each of them, combine their solutions to get a solution to the original problem.
![Page 11: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/11.jpg)
Divide-and-Conquer
• Tromino Puzzle p.10
![Page 12: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/12.jpg)
Transform-and-Conquer
Transform original problem into another problem, then solve the problem
![Page 13: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/13.jpg)
Transform-and-Conquer
• transformation stage• instance simplification• representation change• problem reduction
• conquering stage
![Page 14: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/14.jpg)
Transform-and-Conquer
• Anagram Detection p.11• Cash Envelopes p.12• Two Jealous Husbands p.12• Guarini’s Puzzle p.14• Optimal Pie Cutting p.15
![Page 15: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/15.jpg)
Greedy ApproachA sequence of steps, each expanding a partially constructed solution until a complete solution is
reached.
![Page 16: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/16.jpg)
Greedy Approach
• How to prove it’s indeed an optimal solution?
![Page 17: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/17.jpg)
Greedy Approach
• Non-Attacking Kings p.16• Bridge Crossing at Night p.17
![Page 18: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/18.jpg)
Iterative Improvement
Start with some easily obtainable approximation to a solution and improves upon it by repeated
applications of some simple step.
![Page 19: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/19.jpg)
Iterative Improvement
• Lemonade Stand Placement p.18• Positive Changes p.19
![Page 20: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/20.jpg)
Dynamic Programming
Solve problems with overlapping subproblems, where they are solved once and recorded results in a table which a solution to the original problem can
then be obtained.
![Page 21: Algorithmic Basic Techniques](https://reader035.vdocuments.site/reader035/viewer/2022070603/58706d861a28ab48378b6d53/html5/thumbnails/21.jpg)
Dynamic Programming
• Shortest Path Counting p.20