Игра «Жизнь» — различия между версиями
Mariashka (обсуждение | вклад) |
Mariashka (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
== Правила == | == Правила == | ||
− | + | : '''Правило 1.''' Действие происходит на бесконечной плоскости, разделенной на клетки, которую можно иногда представить как зацикленную конечную | |
− | + | : '''Правило 2.''' Каждая клетка может находиться в двух состояниях: быть живой или быть мёртвой | |
− | + | : '''Правило 3.''' У каждой клетки <tex>8</tex> соседей | |
− | + | : '''Правило 4.''' Если клетка жива и у нее <tex>2-3</tex> живых соседа, то она остается живой, иначе умирает | |
− | + | : '''Правило 5.''' Если клетка мертва и у нее <tex>3</tex> живых соседа, то она становится живой, иначе остается мертвой | |
− | + | : '''Правило 6.''' Игра прекращается, если на поле не останется ни одной живой клетки | |
− | + | : '''Правило 7.''' Игра прекращается, если при очередном шаге ни одна из клеток не меняет своего состояния | |
− | + | : '''Правило 8.''' Игра прекращается, если конфигурация на очередном шаге в точности повторит себя же на одном из более ранних шагов | |
== Универсальность == | == Универсальность == | ||
Строка 58: | Строка 58: | ||
Если показать, что мы можем построить в игре "Жизнь" любую булеву функцию, то мы сможем построить булеву функцию УМТ. | Если показать, что мы можем построить в игре "Жизнь" любую булеву функцию, то мы сможем построить булеву функцию УМТ. | ||
Из курса дискретной математики [[Полные системы функций. Теорема Поста о полной системе функций |известно]], что <tex>NAND</tex> - полная система, т.е. с его помощью можно построить любую. Следовательно, чтобы построить любую булеву функцию, нам нужно просто построить <tex>NAND</tex>, то есть <tex>NOT</tex> и <tex>AND</tex> в игре "Жизнь". | Из курса дискретной математики [[Полные системы функций. Теорема Поста о полной системе функций |известно]], что <tex>NAND</tex> - полная система, т.е. с его помощью можно построить любую. Следовательно, чтобы построить любую булеву функцию, нам нужно просто построить <tex>NAND</tex>, то есть <tex>NOT</tex> и <tex>AND</tex> в игре "Жизнь". | ||
− | |||
− | |||
===Построение NOT=== | ===Построение NOT=== | ||
Рассмотрим поток данных, состоящий из планеров. Наличие планера {{---}} <tex>1</tex>, отсутствие {{---}} <tex>0</tex>. Добавим поток планеров, состоящий только из <tex>1</tex>. При столкновении планеры исчезают, следовательно на месте <tex>1</tex> образуется <tex>0</tex> и наоборот.<br> | Рассмотрим поток данных, состоящий из планеров. Наличие планера {{---}} <tex>1</tex>, отсутствие {{---}} <tex>0</tex>. Добавим поток планеров, состоящий только из <tex>1</tex>. При столкновении планеры исчезают, следовательно на месте <tex>1</tex> образуется <tex>0</tex> и наоборот.<br> |
Версия 13:37, 13 января 2016
Игра «Жизнь» (англ. Conway's Game of Life) — клеточный автомат, придуманный английским математиком Джоном Конвеем в 1970.
Содержание
Правила
- Правило 1. Действие происходит на бесконечной плоскости, разделенной на клетки, которую можно иногда представить как зацикленную конечную
- Правило 2. Каждая клетка может находиться в двух состояниях: быть живой или быть мёртвой
- Правило 3. У каждой клетки соседей
- Правило 4. Если клетка жива и у нее живых соседа, то она остается живой, иначе умирает
- Правило 5. Если клетка мертва и у нее живых соседа, то она становится живой, иначе остается мертвой
- Правило 6. Игра прекращается, если на поле не останется ни одной живой клетки
- Правило 7. Игра прекращается, если при очередном шаге ни одна из клеток не меняет своего состояния
- Правило 8. Игра прекращается, если конфигурация на очередном шаге в точности повторит себя же на одном из более ранних шагов
Универсальность
Теорема: |
Игра "Жизнь" вычисляет то же множество функций, что и МТ. |
Доказательство: |
Для того, чтобы доказать этот факт, докажем возможность построения всех возможных машин Тьюринга.
Базовые конструкцииРассмотрим базовые конструкции необходимые для построения этих элементов МТ.
ПамятьЯчейки памяти можно построить с помощью стабильныx конструкций ЧасыВ клеточных автоматах изначально есть часы, так как время увеличивается. Но в МТ необходимо, например, через определенное время передвигать головку записи, передавать информацию и пр. Для этой цели можно использовать планеры или космические корабли, так как они двигаются с известной скоростью. Следовательно, в качестве часов используем glider gun. Булевы функцииЗаметим, что управляющая часть МТ считывает с ленты входную строчку и завершается, записав на ленту выходную строчку. Без ограничения общности, будем рассматривать бинарные строки. Следовательно, управляющая часть МТ есть булева функция.
Построение NOTРассмотрим поток данных, состоящий из планеров. Наличие планера — Построение ANDСм. рисунок. Пусть |
См.также
- Rendell, P. (2014) Turing machine universality of the game of life. PhD, University of the West of England. Available from: http://eprints.uwe.ac.uk/22323