780 likes | 938 Views
Easy, Hard, and Impossible. Easy. Tic Tac Toe. Hard. Chess. Recall the Approach - Search. Searching for the Best Move. A B C D E F G H I J K L M
E N D
Searching for the Best Move A B C D E F G H I J K L M (8) (-6) (0) (0) (2) (5) (-4) (10) (5)
How Much Computation Does it Take? • Middle game branching factor 35 • Lookahead required to play master level chess 8 • 358
How Much Computation Does it Take? • Middle game branching factor 35 • Lookahead required to play master level chess 8 • 358 2,000,000,000,000 • Seconds in a year
How Much Computation Does it Take? • Middle game branching factor 35 • Lookahead required to play master level chess 8 • 358 2,000,000,000,000 • Seconds in a year 31,536,000 • Seconds since Big Bang 300,000,000,000,000,000
Yet Machines Can Do It In 1997, Deep Blue beat Garry Kasparov.
Nim At your turn, you must choose a pile, then remove as many sticks from the pile as you like. The player who takes the last stick(s) wins.
Nim Now let’s try:
Nim Now let’s try: Oops, now there are a lot of possibilities to try.
Nim My turn: 10 (2) 10 (2) 11(3) 11 • For the current player: • Guaranteed loss if last row is all 0’s. • Guaranteed win otherwise.
Nim My turn: 100 (4) 010 (2) 101 (5) 011 • For the current player: • Guaranteed loss if last row is all 0’s. • Guaranteed win otherwise.
Nim Your turn: 100 (4) 001 (1) 101 (5) 000 • For the current player: • Guaranteed loss if last row is all 0’s. • Guaranteed win otherwise.
Seven Bridges of Königsberg Seven Bridges of Königsberg: 1 3 4 2
Seven Bridges of Königsberg Seven Bridges of Königsberg: 1 3 4 2 As a graph:
For Any Graph An Eulerian path : Cross every edge exactly once. All these people care: Bridge inspectors Road cleaners Network analysts
Another Example Define the degree of a vertex to be the number of edges with it as an endpoint.
Euler’s Observation Define the degree of a vertex to be the number of edges with it as an endpoint. Euler observed that: ● Eulerian path if and only if exactly two vertices of odd degree. ● Eulerian circuit if and only if all vertices have even degree.
An Efficient Algorithm def eulerian_circuit(vertices, edges): for v in vertices: count = 0 for e in edges: if e touches v: count += 1 if odd(count): return(False) return(True) How many steps does it take?
An Efficient Algorithm def eulerian_circuit(vertices, edges): for v in vertices: count = 0 for e in edges: if e touches v: count += 1 if odd(count): return(False) return(True) How many steps does it take? O(|vertices| * |edges|)
Back to the Bridges 1 3 4 2 As a graph:
The Good King and the Evil King The good king wants to build exactly one new bridge so that: • There’s an Eulerian path from the pub to his castle. • But there isn’t one from the pub to the castle of his evil brother on the other bank of the river.
Here’s What He Starts With 1 3 4 2 As a graph:
Unfortuntately, There Isn’t Always a Trick Suppose we need to visit every vertex exactly once.
The Traveling Salesman Problem 15 25 10 28 20 4 8 40 9 7 3 23 Find the shortest circuit that visits every city exactly once.
Visting Vertices Rather Than Edges ● A Hamiltonian path: visit every vertex exactly once. ● A Hamiltonian circuit: visit every vertex exactly once and end up where you started. • All these people care: • Salesmen, • Farm inspectors, • Network analysts
The Traveling Salesman Problem 15 25 10 28 20 4 8 40 9 7 3 23 Given n cities: Choose a first city n Choose a second n-1 Choose a third n-2 … n!
The Traveling Salesman Problem Can we do better than n! ● First city doesn’t matter. ● Order doesn’t matter. So we get (n-1)!/2.
Getting Close Enough • Use a technique that is guaranteed to find an optimal solution and likely to do so quickly. • Use a technique that is guaranteed to run quickly and find a “good” solution. The Concorde TSP Solver found an optimal route that visits 24,978 cities in Sweden. The World Tour Problem
Is This The Best We Can Do? • It is generally believed that there’s no efficient algorithm that finds an exact solution to: • The Traveling Salesman problem • The question of whether or not a Hamiltonian circuit exists. Would you like to win $1M? The Millenium Prize
An Interesting Puzzle 2 List 1 b a b b b List 2 b a
An Interesting Puzzle 2 1 List 1 b a b b b b List 2 b a b b b
An Interesting Puzzle 2 1 1 List 1 b a b b b b b List 2 b a b b b b b b
An Interesting Puzzle 2 1 1 3 List 1 b a b b b b b b a List 2 b a b b b b b b a
The Post Correspondence Problem Shortest solution has length 252. http://webdocs.cs.ualberta.ca/~games/PCP/