Итальянец Джованни Вильетта из Пизанского университета подсчитал вычислительную сложность известных компьютерных игр. Он оценивал сложность вычисления последовательности действий, который приводят к победе в игре. В первой части своей статьи итальянец приводит серию теорем, которые позволяют связать вычислительную сложность игры с наличием в ней некоторых конкретных элементов. К последним, например, относятся рычаги, которые надо нажать, чтобы открылась некоторая дверь, призы, которые необходимо собирать, и многое другое.
Как оказалось, большая часть игр принадлежит к так называемому классу NP - это задачи, решающиеся за полиномиальное время на недетерминированной машине Тьюринга (то есть машине, программа которой допускает развилки). Также нашлись игры, принадлежащие к классу P (полиномиальное время на детерминированной машине Тьюринга), L (задачи, решаемые с привлечением логарифмически зависящего от начальных данных количества памяти детерминированной машиной Тьюринга), NL (то же, что и L, только машина недетрминированная) и PSPACE.
Кроме этого, несколько задач оказались NP-полными и PSPACE-полными. По сути это самые сложные задачи в своих классах - к ним за полиномиальное время можно свести любую задачу из данного класса. Например, к NP-полным задачам относится задача коммивояжера - поиск замкнутого кратчайшего пути в графе, который проходит по каждой вершине хотя бы один раз. Вильетта также заявил, что аналогичный анализ для современных игр смысла не имеет, так как в них могут встречаться неразрешимые головоломки.
Полный список результатов выглядит так:
Boulder Dash (1984) - сложность NP
Deflektor (1987) - сложность L
Doom (1993) - сложность PSPACE
Lemmings (1991) - сложность NP
Lode Runner (1983) - сложность NP
Mindbender (1989) - сложность NL
Pac-Man (1980) - сложность NP
Pipe Mania (1989) - NP-полная игра
Prince of Persia (1989) - PSPACE-полная игра
Puzzle Bobble 3 (1996) - NP-полная игра
Skweek (1989) - NP-полная игра
Starcraft (1998) - сложность NP
Tron (1982) - сложность NP