Примеры выполнения программ.
Пример 1. Пусть имеется следующая программа машины Поста:
1. V 4
2. С 3
3.
2
4.
5
5. ? 4, 3
Применим эту программу к следующему начальному состоянию (закрашенная клетка будет означать обозреваемую в данный момент ячейку):
| V |
– начальное состояние
На первом шаге будет выполняться команда № 1. После первого шага состояние машины станет таким:
| V | V |
Следующей будет выполняться команда, на которую отсылает команда № 1, т.е. команда № 4:
| V | V |
Теперь надо выполнить команду под номером 5 (т.к.отсылка команды № 4 равна 5):
| V | V |
Состояние ленты при этом не изменится. Поскольку обозреваемая секция при этом пуста, то следующей должна выполняться команда, номер которой равен верхней (первой) отсылке, т.е. № 4:
| V | V |
Теперь снова выполняем команду под номером 5:
| V | V |
На этот раз обозреваемая секция отмечена, поэтому следующей будет выполняться команда с номером, равным нижней (второй) отсылке, т.е. команда с номером 3:
| V | V |
Команда № 3 делает отсылку на команду № 2, которая предписывает стереть метку в обозреваемой секции. Но машина сделать этого не может, т.к. обозреваемая в данный момент секция пуста. Следовательно, происходит безрезультатная остановка.
Пример 2. Пусть дано начальное состояние машины Поста:
| V |
Применим к этому начальному состоянию программу:
1.
2
2.
3
3. V 1.
Машина сделает два шага, а на третьем произойдет безрезультатная остановка:
| V |
1 шаг:
| V |
2 шаг:
3 шаг: машина должна напечатать метку в обозреваемой ячейке, но она там уже есть.
Безрезультатная остановка.
Применим к этому же начальному состоянию следующую программу:
1.
2
2.
3
3. стоп.
Машина сделает два шага, а затем на третьем произойдет результативная остановка.
Применим к этому же начальному состоянию программу:
1.
1.
Машина будет работать бесконечно.
Точно так же различные варианты может давать одна и та же программа, примененная к различным начальным состояниям.