Algorithmic Basic Techniques

21
Algorithmic Puzzles First Meetup 2016/12/12

Transcript of Algorithmic Basic Techniques

Page 1: Algorithmic Basic Techniques

Algorithmic PuzzlesFirst Meetup 2016/12/12

Page 2: Algorithmic Basic Techniques

About Me致煜IoT Front-end Engineer at Advantech

my website: http://www.cyyeh.tw

Page 3: Algorithmic Basic Techniques

Exhaustive SearchTry all possible candidate solutions until a solution

to the problem is found.

Page 4: Algorithmic Basic Techniques

Exhaustive Search

• Magic Square p.4

Page 5: Algorithmic Basic Techniques

BacktrackingAn important improvement over the brute-force

approach of exhaustive search.

Page 6: Algorithmic Basic Techniques

Backtracking

• A method for generating candidate solutions while making it possible to avoid generating unnecessary candidates.

• state-space-tree

Page 7: Algorithmic Basic Techniques

Backtracking

• The n-Queens Problem p.6

Page 8: Algorithmic Basic Techniques

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

Decrease-and-Conquer

• Celebrity Problem p.8• Decrease by one

• Number Guessing p.9• Decrease by half

Page 10: Algorithmic Basic Techniques

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

Divide-and-Conquer

• Tromino Puzzle p.10

Page 12: Algorithmic Basic Techniques

Transform-and-Conquer

Transform original problem into another problem, then solve the problem

Page 13: Algorithmic Basic Techniques

Transform-and-Conquer

• transformation stage• instance simplification• representation change• problem reduction

• conquering stage

Page 14: Algorithmic Basic Techniques

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

Greedy ApproachA sequence of steps, each expanding a partially constructed solution until a complete solution is

reached.

Page 16: Algorithmic Basic Techniques

Greedy Approach

• How to prove it’s indeed an optimal solution?

Page 17: Algorithmic Basic Techniques

Greedy Approach

• Non-Attacking Kings p.16• Bridge Crossing at Night p.17

Page 18: Algorithmic Basic Techniques

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

Iterative Improvement

• Lemonade Stand Placement p.18• Positive Changes p.19

Page 20: Algorithmic Basic Techniques

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

Dynamic Programming

• Shortest Path Counting p.20