Введение

Логическая головоломка Light Up, изданная компанией Nikoli.

Light Up (яп. 美術館 bijutsukan, художественная галерея), также известная как Akari (яп. 明かり, свет) — это логическая головоломка с двоичным определением, изданная компанией Nikoli. По состоянию на 2011 год компанией Nikoli было опубликовано три книги, состоящие исключительно из головоломок Light Up.

Правила

Light Up играется на прямоугольной сетке из белых и черных клеток. Игрок расставляет лампочки в белых ячейках так, чтобы ни одна лампочка не освещала другую, пока вся сетка не будет освещена. Лампочка излучает свет горизонтально и вертикально, освещая всю строку и столбец, если ее свет не блокируется черной ячейкой. На черной ячейке может быть число от 0 до 4, указывающее, сколько лампочек должно быть размещено рядом с ее четырьмя сторонами; например, ячейка с числом 4 должна иметь четыре лампочки вокруг, по одной с каждой стороны, а ячейка с числом 0 не должна иметь лампочек рядом ни с одной из своих сторон. Непронумерованная черная ячейка может иметь любое количество лампочек, прилегающих к ней, или не иметь их вовсе. Лампочки, расположенные по диагонали к пронумерованной ячейке, не учитываются при подсчете количества лампочек.

Методы растворения

Типичная отправная точка в решении головоломки Light Up — найти чёрную ячейку с числом 4 или ячейку с меньшим числом, которая заблокирована с одной или нескольких сторон (например, 3 у стены или 2 в углу) и, следовательно, имеет только одну возможную конфигурацию окружающих лампочек. После этого шага другие пронумерованные ячейки могут быть освещены с одной или нескольких сторон, сужая возможные конфигурации лампочек вокруг них и, в некоторых случаях, оставляя только одну возможную конфигурацию. Другой распространённый приём — искать ячейку, которая ещё не освещена, и определить, есть ли только одна возможная ячейка, в которую можно поместить лампочку, чтобы её осветить. Если неясно, куда поместить лампочку, можно также ставить точки в белые ячейки, в которых лампочка не может быть установлена, например, вокруг 0 или в местах, где лампочка приведёт к противоречию. Например, лампочка, расположенная по диагонали рядом с 3, блокирует две окружающие её ячейки, делая невозможным размещение трёх лампочек вокруг неё; следовательно, диагональные ячейки вокруг 3 никогда не могут быть освещены и всегда могут быть отмечены точками. Аналогично, можно ставить точки в местах, где лампочка «загонит в угол» другую неосвещённую ячейку, делая невозможным её освещение без нарушения правил. Более продвинутые техники обычно сосредоточены на различных комбинациях подсказок. Например, две 3, расположенные на расстоянии одного шага друг от друга, при отсутствии ячеек между ними или по другим двум сторонам промежуточной ячейки, должны иметь лампочку в этой промежуточной ячейке, а также по одной лампочке в двух ячейках, соседних с обеими 3, на линии, соединяющей их. В противном случае получится, что две лампочки освещают друг друга. Кроме того, из этого следует, что оставшиеся четыре ячейки, окружающие обе 3, должны содержать две лампочки. Обратите внимание, что поскольку эти четыре ячейки расположены в два ряда без промежутков, в каждом ряду должна быть одна лампочка, поэтому все остальные ячейки в этих рядах можно пометить как пустые. Другой довольно распространённый шаблон — 1, расположенная по диагонали к 2, при этом одна из ячеек, соседних с 2, но не соседних с 1, либо пуста, либо заблокирована стеной. В двух ячейках, общих для обеих подсказок, можно разместить не более одной лампочки, поэтому последняя лампочка должна быть помещена в последнюю свободную ячейку вокруг 2. Теперь известно, что в этих ячейках находится ровно одна лампочка, поэтому остальные ячейки, соседние с 1, должны быть пустыми.

Комплексность вычислений

Определение того, можно ли решить данную головоломку Light Up, является NP-полной задачей. Это доказано полиномиальным сведением из Circuit SAT, которая, как известно, является NP-полной, к головоломкам Light Up. Вариации оригинальной головоломки Light Up, включающие стены без чисел и стены с одним определенным числом – 0, 1, 2, 3 или 4 (мы называем эти вариации Акари) – также исследовались с точки зрения сложности. Показано, с помощью полиномиального сведения из Circuit SAT, что Акари 1, Акари 2 и Акари 3 являются NP-полными; для Акари 4 и головоломок без чисел доказано, что они решаются за полиномиальное время (относятся к классу P); Акари 0 пока не классифицирована.