Изменения

Перейти к: навигация, поиск

NP-полнота игры Тетрис

1480 байт добавлено, 02:02, 31 марта 2016
Нет описания правки
Опишем отображение из 3-Partition в k-cleared-rows. Для заданного ввода 3-Partition <math>P = \langle a_1,\dots,a_{3s},T \rangle</math>, составим игру <math>G(P)</math>, поле которой может быть полностью очищено, только если для <math>P</math> в задаче 3-Partition ответ положительный.
[[Файл:board_partition.png|300px|thumb|right| Начальное игровое поле]]
Начальное игровое поле содержит <math>s</math> ''контейнеров'', соответствующих множествам <math>A_1,\dots,A_s</math> в задаче 3-Partition. Последовательность фигур состоит из некоторого числа фигур, соответствующих каждому из <math>a_i</math> и подобранных так, что все фигуры для <math>a_i</math> должны быть помещены в один и тот же контейнер. Существует подходящее решение задачи 3-Partition для <math>\{a_1,\dots,a_{3s}\}</math> в том и только том случае, когда наборы фигур во всех контейнерах имеют одинаковую высоту. Последние три столбца в игровом поле представляют собой ''блокстопор'', который не дает очистить ряды, пока не подойдет к концу последовательность фигур; если все контейнеры заполнены на одинаковую высоту, то все поле может быть очищено с помощью последней (специальнойзавершающей) части последовательности.
Игра <math>G</math> состоит из следующих компонент:
# Шестой столбец не имеет пустых клеток.
НаПоследняя логическая часть — стопор шириной в три клетки:# В первом столбце заполнены все клетки, кроме двух верхних.# Во втором столбце заполнены все клетки, кроме верхней.# В третьей колонке пусты все клетки, кроме второй сверху.
: '''Фигуры.''' Последовательностью фигур для всей игры будет конкатенация последовательностей для каждого <math>a_i</math> и завершающей последовательности. Для каждого числа <math>a_1,\dots,a_{3s}</math> имеем следующие части:# ''Инициатор'' — последовательность <math>\langle I,LG,SQ \rangle</math>.# ''Наполнитель'' — последовательность <math>\langle LG,LS,LG,LG,SQ \rangle</math>, повторенная <math>a_i</math> раз.# ''Завершитель''— последовательность <math>\langle SQ,SQ \rangle</math>.Вышеописанные части подаются для <math>a_1,a_2,\dots</math> последовательно. После частей, соответствующих <math>a_{Лемма3s}</math>, идет завершающая последовательность:# <math>s</math> фигур <math>I</math> подряд.|statement=# одна фигура <math>RG</math>.Игра # <math>G(P)3T/2 + 5</math> имеет полиномиальный размер от входных данныхфигур <math>I</math> подряд.|proof=}}//продолжение
}}
74
правки

Навигация