Efficient Algorithms for Battleship

Abstract

We consider an algorithmic problem inspired by the Battleship game. In the variant of the problem that we investigate, there is a unique ship of shape SZ2S \subset Z^2 which has been translated in the lattice Z2Z^2. We assume that a player has already hit the ship with a first shot and the goal is to sink the ship using as few shots as possible, that is, by minimizing the number of missed shots. While the player knows the shape SS, which position of SS has been hit is not known. Given a shape SS of nn lattice points, the minimum number of misses that can be achieved in the worst case by any algorithm is called the Battleship complexity of the shape SS and denoted c(S)c(S). We prove three bounds on c(S)c(S), each considering a different class of shapes. First, we have c(S)n1c(S) \leq n-1 for arbitrary shapes and the bound is tight for parallelogram-free shapes. Second, we provide an algorithm that shows that c(S)=O(logn)c(S) = O(\log n) if SS is an HV-convex polyomino. Third, we provide an algorithm that shows that c(S)=O(loglogn)c(S) = O(\log \log n) if SS is a digital convex set. This last result is obtained through a novel discrete version of the Blaschke-Lebesgue inequality relating the area and the width of any convex body.Comment: Conference version at 10th International Conference on Fun with Algorithms (FUN 2020

    Similar works