| ||||||
---|---|---|---|---|---|---|
|
| |||||
|
Лекция 14. Понятие итерации машин
Тьюринга
памяти q01, ..., q0k.
Отождествим одно из этих состояний (например, q0i) с
начальным состоянием машины. Операция отождествления одного из
заключительных состояний внутренней памяти машины с ее исходным
состоянием называется операцией итерации18.
Машина Т, получаемая в результате итерации машины Т1,
обозначается через точки над символами, которые указывают на
отождествление i-го заключительного состояния с начальным
состоянием машины T1. В результате итерации получаем машину,
внутренняя память которой во время работы совершает один или несколько
замкнутых циклов. Если в процессе выполнения программы внутренняя память
машины должна прийти в состояние q0i, то она
возвращается в начальное состояние, и машина вновь начинает работать.
Работа машины продолжается до тех пор, пока ее внутренняя память не
придет в какое-либо из остальных заключительных состояний. Если машина Т1
имеет лишь одно заключительное состояние, то в результате итерации
получаем машину, вообще не имеющую заключительных состояний. Такая
машина работает по замкнутому циклу бесконечно или останавливается, если
в процессе работы получено машинное слово, к которому программа машины
неприменима. после того, как внутренняя память приходит в состояние q0i, выполняется программа Т2, после чего внутренняя память приходит в начальное состояние, и вновь выполняется программа T1. Использование операций композиции и итерации позволяет построить из простых машин более сложные; при этом сложные машины описываются компактным выражением.
Представим машину K1 с помощью композиции и итерации введенных выше машин. Найдем сначала машину, осуществляющую при x—i > 0 циклическое преобразование:
Далее применим программы «С+» и «1»:
Таким образом, нужное преобразование
осуществляет композиция (-1)С+1С-. Для того чтобы
замкнуть цикл, перед выполнением программы (-1)С+1С-
нужно осуществить проверку равенства x-i=0. Для этого
воспользуемся машиной «Пр». Если x-i>0, то внутренняя память
приходит в состояние q02», и далее выполняется
программа (-1)С+1С-. Если эта машина начинает работать при i=l, то через (х—1) циклов получим слово 0q10x1x0. Для получения нужного машинного слова 01x01x-1q10 применим далее машины: З: 01x-1q101x0, C+: 01x01x-1q010.
Осталось построить машину, осуществляющую преобразование т.е. машину, преобразующую исходное слово в слово, к которому применимо наше циклическое преобразование. Для этого используем машины: H: 01x0q100 … , C-: 01x-1q10100 … . Окончательно получаем или Последнее выражение несколько короче предыдущего, но описывает ту же самую программу, т. е. количество тактов при осуществлении программы и в том, и в другом случае одинаково. Можно найти, что в общем случае (при т > 1) | |||||
|