13293-1 (Формализация понятия алгоритма), страница 2

2016-07-31СтудИзба

Описание файла

Документ из архива "Формализация понятия алгоритма", который расположен в категории "". Всё это находится в предмете "информатика" из , которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "рефераты, доклады и презентации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "13293-1"

Текст 2 страницы из документа "13293-1"

В общем случае сложность этого алгоритма будет равна k+1, где k - число десятичных цифр в записи числа. Докажем это утверждение. Для k=1 истинность этого утверждения очевидна. Пусть это утверждение верно для k=l. Докажем, что оно сохранит истинность и для k=l+1. Появление очередной цифры в старшем разряде числа потребует от нас вместо исполнения команды qs !H или команды qo1!Л либо увеличить эту цифру на 1, т.е. выполнить одну из команд в столбце а), либо “перескочить” через эту цифру, выполнив одну из команд группы b), после чего остановиться, выполнив команду 11 b). Таким образом, после обработки k цифр наша Машина Тьюринга выполнит k команд, обработка последней цифры потребует 2-х команд. Тем самым, общее количество выполненных команд будет равно l+2=(l+1)+1, что и требовалось доказать.

Обратите внимание, что вместе с оценкой сложности мы фактически доказали свойство конечности нашего алгоритма, т.е., что он обязательно остановится.

Пример 2. Построить Машину Тьюринга, вычисляющую

U((n)1)=(n-1)1 ,

где n>0 и (n)1 означает запись числа n в унарной форме, т.е. в виде . Другими словами, эта Машина Тьюринга с алфавитом D={ , | }должна стирать одну палочку в записи числа. На рисунке 3 показана программа для этой машины.

|

qo

qsЛ

|qoЛ

qs

|qsЛ

!H

Рис.3

Обратите внимание, что если по ошибке в вход этой машине будет подано “пустое” слово, то она “зациклится”, т.е. будет бесконечно долго писать | . Действительно, единственно некоректной конфигурацией в начале работы будет сочетание qo. По условию n>0. Поэтому в этом “неправильном” случае машина будет зацикливаться. Нетрудно подсчитать, что сложность этого алгоритма равна n+1.

Пример 3. Построить Машину Тьюринга

U((n)1)=(n)10 ,

где n>0 и (n)10 - запись числа n в десятичной системе. Другими словами эта Машина Тьюринга приводит запись числа n из унарной формы в десятичную. Работу этой машины организуем следующим образом.

Изначально на ленте находится слово из одних | символов и каретка находится над крайне правым | символом. Сотрем один символ |, а перед словом из символов | поставим цифру 1. Затем опять сотрем крайне правый символ | , а затем увеличим цифровую запись слева от слова из | на 1 и т.д. Обратим внимание, что стирать палочки мы умеем, это делает Машина U2((n)1)=(n-1)1 и увеличивать десятичную запись числа на 1 тоже умеем, это делает машина U1((n)10)=(n+1)10. Программа для этой машины показана на рисунке 4.

|

1

2

3

4

5

6

7

8

9

0

Нач. состояние

Сти

раем палочку

(крайнеправый сим

вол |)

qo

qerH

qeH

1qerH

2qerH

3qerH

4qerH

5qerH

6qerH

7qerH

8qerH

9qerH

0qerH

ql

1qrП

|qlЛ

1qerH

2qerH

3qerH

4qerH

5qerH

6qerH

7qerH

8qerH

9qerH

0qerH

Про

дви-жение вправо до пер

вой | , либо если нет | , то пе

реход в q2l

qr

q2lЛ

|q2rH

1qrП

2qrП

3qrП

4qrП

5qrП

6qrП

7qrП

8qrП

9qrП

0qrП

Движе-ние влево до на

чала слова из цифр и стоп

q2l

!H

|qerH

1q2lЛ

2q2lЛ

3q2lЛ

4q2lЛ

5q2lЛ

6q2lЛ

7q2lЛ

8q2lЛ

9q2lЛ

0q2lЛ

Движение вправо на | до пер

вой пусто-ты

q2r

q3lЛ

|q2rП

1qerH

2qerH

3qerH

4qerH

5qerH

6qerH

7qerH

8qerH

9qerH

0qerH

Сти

раем палочку.

Дви

жемся до пер

вой

циф

ры и увели

чива

ем ее на единицу

q3l

qerH

qdЛ

1qerH

2qerH

3qerH

4qerH

5qerH

6qerH

7qerH

8qrH

9q3lЛ

0q2lЛ

qd

1qrH

|qdЛ

2qrH

3qrH

4qrH

5qrH

6qrH

7qrH

8qrH

9qrH

0qrЛ

1qrЛ

Рис.4. Машина Тьюринга для U((n)1)=(n)10

Оценим сложность этого алгоритма. В начале работы каретка пройдет (n-1) символ при движении влево и (n-1) символ при движении обратно, т.е. 2(n-1). На втором проходе - 2(n-2) и т.д. Отсюда число пройденных палочек, а следовательно и выполненных команд будет равно n(n-1). Машина n раз выполнит команду, увеличения текущей цифры на 1. Количество просмотров цифр будет равно ([log10n]+1)([log10n]).Таким образом, получаем

n(n-1)+n+[log10n] ([log10n]+1) n2+[log10n(log10n+1)]

Пример 4. Построить машину Тьюринга, для сравнения двух чисел a и b, заданных в унарной форме.

если

Пусть на ленте числа a и b заданы в унарной форме. Каретка располагается над лентой так, как показано на рисунке 5,

Рис.5.

т.е. над крайне правым символом | числа a . Cравнивать числа a и b будем, стирая попарно одну палочку в записи a и одну палочку в записи b. Если останутся палочки только в записи a, то значит a>b, если только в записи b, то a1.

|

x

1

0

qo

qerH

xqrH

xqerH

qr

qCHLЛ

xqlH

xqrП

ql

qCHRП

xqrH

xqlЛ

qCHL

qa=bП

|qa>bH

xqCHLЛ

qCHR

q’a=bЛ

|qaH

xqCHRП

qa=b

1!H

|qerH

qa=bП

q’a=b

1!H

|qerH

q’a=bЛ

qa>b

q’a>bЛ

|qa>bП

xqa>bП

q’a>b

1!H

|qa>bЛ

q’a>bЛ

qa

qerH

|qaЛ

0q’aЛ

q’a

q’aП

|qerH

xq’aЛ

1qerH

0!H

Рис.6.

Теперь уместно спросить, в чем же принципиальные отличия записи алгоритмов, в форме Машины Тьюринга от того, которое мы использовали в лекции 1?

Прежде всего в представленных данных. В алгоритме Евклида нахождения НОД мы говорили, что а и b представляют числа.

Что такое число? Какова форма его записи?

От ответов на эти вопросы будут зависеть правила действий над ними для вычисления разности, сравнения чисел и т.д. Поэтому сказать, что а и b - это числа не достаточно. Необходимы соответствующие уточнения, договоренности между исполнителями.

У Машины Тьюринга данные - это слова в некотором алфавите. Слово в алфавите - это конечная последовательность символов из определенного множества, называемого алфавит.

Второе принципиальное отличие - действия. При интуитивном рассмотрении понятия алгоритма мы использовали действия: положи, умножь, сложи, сравни и т. д., смысл которых мы считаем по умолчанию общеизвестным. Хотя, если предположить, что речь идет о числах в логарифмической системе счисления (см. Каут. “Искусство программирования”), то вряд ли можно считать, что смысл операции умножения является общеизвестным. В то же время, сравнить два символа: совпадают они или нет может каждый человек и заменить один символ на другой тоже.

Поэтому, запись алгоритма в терминах Машины Тьюринга более строгая, в том смысле, что она не имеет двусмысленностей, понимается однозначно. Отсюда и рассуждения о ее свойствах более четкие и строгие, чем в интуитивном смысле.

Однако, возникает другой вопрос. А любую вычислимую функцию можно описать в виде Машины Тьюринга? Ответ на этот вопрос Тьюринг сформулировал в виде тезиса, названного его именем.

Тезис Тьюринга: Для любой интуитивно вычислимой функции существует МТ, ее вычисляющая.

Это тезис, а не теорема. Его нельзя доказать, так как в нем используется понятие интуитивно вычислимой функции, смысл которого определен интуитивно, т.е. не строго.

Выводы :

А реализуют лишь подмножество (класс вычислимых функций) функции, рассматриваемых в курсе математического анализа;

Алгоритмизация решения задачи состоит в разбиении задачи на подзадачи, подзадач на подподзадачи и т.д., до тех пор, пока решение очередной подзадачи мы не сведем к действиям надлежащего исполнителя;

МТ можно строить из ранее построенных МТ.

Вопросы:

Квадратный корень из x - вычислимая функция?

Что такое вычислимая функция?

Как отличить вычислимую функцию от не вычислимой?

Множество вещественных чисел перечислимо?

Что такое перечислимое множество?

Мн-во четных целых чисел разрешимо относительно мн-ва целых чисел?

Сформулируйте условие разрешимости мн-ва В относительно мн-ва М.

Перечислить параметры для уточнения поняти А.

Как в МТ задаются исходные данные?

Как в МТ задаются возможные результаты?

Как в МТ задаются промежуточные результаты?

Как в МТ задается правило начала работы А?

Как в МТ задается правило окончания работы?

Как в МТ извлекается результат?

Можно ли МТ строить из других МТ?

Как можно объединять несколько МТ в одну МТ?

Список литературы

Для подготовки данной работы были использованы материалы с сайта http://www.ergeal.ru/

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее