Faster Evaluation of Subtraction Games David Eppstein 9th - - PowerPoint PPT Presentation

faster evaluation of subtraction games
SMART_READER_LITE
LIVE PREVIEW

Faster Evaluation of Subtraction Games David Eppstein 9th - - PowerPoint PPT Presentation

Faster Evaluation of Subtraction Games David Eppstein 9th International Conference on Fun With Algorithms (FUN 2018) La Maddalena, Italy, June 2018 Nim Start with several piles of matches (or other objects) Each turn: take any number of


slide-1
SLIDE 1

Faster Evaluation of Subtraction Games

David Eppstein 9th International Conference on Fun With Algorithms (FUN 2018) La Maddalena, Italy, June 2018

slide-2
SLIDE 2

Nim

Start with several piles of matches (or other objects) Each turn: take any number of matches from one pile Win by emptying the last pile

slide-3
SLIDE 3

Featured in Last Year at Marienbad (1960)

slide-4
SLIDE 4

Nim strategy

Aim to make bitwise xor of pile values become zero If it is already zero, your opponent is winning

slide-5
SLIDE 5

Subtract-a-square

Can only take a square number of objects per turn Can be interesting even with only a single pile Golomb (1966) credits its invention to Richard A. Epstein

slide-6
SLIDE 6

Hot position

You want to move, because you can win if you make the right move

slide-7
SLIDE 7

Cold position

You don’t want to move, because your opponent is already winning

slide-8
SLIDE 8

Sieving algorithm for telling hot from cold

Mark all positions as cold For i = 0, 1, 2 . . . n: if i is still marked cold: Mark all i + j2 as hot Evaluates first n positions in time O(cn √n) where cn = # cold positions Les cribleuses de bl´ e [the grain sifters], Gustave Courbet, 1854

slide-9
SLIDE 9

Divide-and-conquer for telling hot from cold

(Outside the recursion): Mark all positions as cold Recursively evaluate the first half of the positions Mark as hot all positions i + j2 in the second half such that i is a cold position in the first half Recursively evaluate the second half of the positions The middle “conquer” step is Boolean convolution, O(n log n) time So the whole algorithm takes O(n log2 n) time

slide-10
SLIDE 10

Which algorithm is faster?

  • 5

10 15 20 25 30 5 10 15 20 log2 n log2 # cold c = 0.897244337916743 * n**0.698354314248528

Experimentally, sieving takes O(n1.2) time Divide-and-conquer is faster in theory, but

  • nly for n > 1018
slide-11
SLIDE 11

What about multiple piles?

Sprague–Grundy theorem: Every position is equivalent to a position in standard nim Strategy: Move to make xor of nim-values become zero

slide-12
SLIDE 12

Dynamic programming for nim-values

For each position i = 0, 1, 2, . . . n:

◮ Look up nim-values of all positions i − j2 ◮ Value for i is the smallest value that is not in this set

File:Puzzle black-white missing.jpg on Wikimedia commons, by Willi Heidelbach

Time: O(n3/2)

slide-13
SLIDE 13

Divide-and-conquer for nim-values

For each nim-value v = 0, 1, 2, . . . :

◮ Mark positions with value < v as hot, others as cold ◮ Apply the divide-and-conquer hot-cold algorithm ◮ Set the value of the remaining cold positions to v

Thermochromic mugs. File:Hot Cold mug.jpg on Wikimedia commons, by Damianosullivan.

Time: O(mn log2 n) where m = max nim-value encountered

slide-14
SLIDE 14

Which algorithm is faster?

  • 5

10 15 20 2 4 6 8 log2 n log2 max nim−value m = 1.3251885340723 * n**0.350735691549274

Experimentally, divide-and-conquer takes O(n1.35 log2 n), versus O(n1.5) for dynamic programming Divide-and-conquer is faster in theory, but

  • nly for n > 1026
slide-15
SLIDE 15

Conclusions

New divide-and-conquer algorithms for subtract-a-square Extends to any similar subtraction game Improvement in theory but not in practice Connections to deep results in number theory Furstenberg–S´ ark¨

  • zy theorem: # cold = o(n)

Time comparison is experimental rather than proven; can we prove n1/2+ǫ ≤ # of cold positions ≤ n1−ǫ

  • r nǫ ≤ max nim-value ≤ n1/2−ǫ?