Машина Тьюринга
От: sendo  
Дата: 05.11.05 13:06
Оценка:
Дан внешний алфавит {a,b}.
Нужно заменить буквы первой половины входного слова на "а".
Не понимаю как заставить машину узнавать половину слова..
Объясните, пжлста, кто разбирается. Заранее благодарю.
Re: Машина Тьюринга
От: Mab Россия http://shade.msu.ru/~mab
Дата: 05.11.05 13:12
Оценка: 7 (2)
Здравствуйте, sendo, Вы писали:

Ну хотя бы так: начинаем с начала слова. Заменяем строчную букву прописаной (a -> A, b -> B). Идем вправо, пока видим строчные буквы. Заменяем
прописной. Идем влево, пока видим строчные буквы. Заменяем прописной. Идем вправо пока видим строчные... итд. Процесс сойдется в точке, которая представляет собой середину слова. Дальше ясно.
Re: Машина Тьюринга
От: Дио Россия  
Дата: 05.11.05 18:25
Оценка: 3 (1)
Здравствуйте, sendo, Вы писали:

S>Дан внешний алфавит {a,b}.

S>Нужно заменить буквы первой половины входного слова на "а".
S>Не понимаю как заставить машину узнавать половину слова..
S>Объясните, пжлста, кто разбирается. Заранее благодарю.

Пусть есть язык L = {w^2n|n принадлежит N, w принадлежит {a,b}}
Сделаем следующим образом:
1. Поиск середины слова.
Берем первый входной символ из алфавита {a,b} на A или B соответственно, далее перемащаемся по
ленте до её конца и производим замену строчной буквы на прописную. Потом идем обратно в начало ленты
и заменяем вторую букву и так далее....:
ababba -> Ababba -> AbabbA -> ABabbA -> ABabBA -> ABAbBA -> ABA!BBA
Кода цепочка кончилась головка машины аккурат находится по середине цепочки.
2. Идем в лево и заменяем все символы на a.
3. Идем назад в право пока не встретим прописной символ.
4. Продолжая движения направо, производим обратную замену прописных на строчные.
ИХМО усе, надеюсь общую идею алгоритма объяснил
Re[2]: Машина Тьюринга
От: sendo  
Дата: 05.11.05 18:46
Оценка:
Спасибо. Все верно.
Re[2]: Машина Тьюринга
От: sendo  
Дата: 05.11.05 18:51
Оценка:


Спасибо. Mab предложил тоже самое, но менее развернуто.
Я писал еще в другом форуме — там предлагали ставить после каждой второй буквы единицу и потом вернуться обратно на столько шагов, сколько единиц у меня получиться. Но это всё врядли применимо к Тьюрингу. По вашим советам я написал решение за три минуты.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.