Главная » Просмотр файлов » 1610906280-c80d8404f2eaa01776b47d41b0f18e85

1610906280-c80d8404f2eaa01776b47d41b0f18e85 (824375), страница 3

Файл №824375 1610906280-c80d8404f2eaa01776b47d41b0f18e85 (Когабаев Лекции) 3 страница1610906280-c80d8404f2eaa01776b47d41b0f18e85 (824375) страница 32021-01-17СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 3)

Таким образом, у нас задан лабиринт, вход которогонаходится в правой нижней клетке, а выход — в левой верхней (выход помечен символом F, см. рисунок). В начальный момент времени на входной клетке находитсяробот Бендер, который умеет отличать стены от коридоров, умеет делать ходы наодну соседнюю незаштрихованную клетку сверху, справа, снизу или слева, умеетпринимать простейшие логические решения, и способен распознать символ F. Заранее известно, что в таком лабиринте существует как минимум один путь, ведущий10Глава I.

Предварительные сведенияпо коридорам из входа в выход. Необходимо запрограммировать Бендера так, чтобыон, руководствуясь данной программой несложных операций, смог найти выход излабиринта.Для этого мы зарезервируем достаточно большое количество меток, занумерованных натуральными числами. Этими метками Бендер будет помечать свои ходы.Искомая программа состоит из следующих шести пунктов:0) Помечаем правую нижнюю клетку меткой 0. Переходим к пункту (1).1) Проверяем, верно ли, что клетка, на которой стоит Бендер, является выходом.Если это верно, то переходим к пункту (5).

Если нет, переходим к пункту (2).2) Проверяем, существует ли хотя бы одна непомеченная соседняя (сверху, справа,снизу или слева) клетка. Если существует, то переходим к пункту (3). Если нет,то переходим к пункту (4).3) Выбираем каким-нибудь эффективным способом одну соседнюю непомеченнуюклетку. Например, можно выбирать первую непомеченную клетку при обходевсех четырех соседних клеток по часовой стрелке, начиная с верхней. Помечаемвыбранную клетку наименьшей неиспользованной меткой. Затем передвигаемБендера на эту клетку и переходим к пункту (1).4) Возвращаемся на один ход назад, т. е.

передвигаем Бендера обратно на ту клетку, с которой он в последний раз перешел на текущую клетку. Переходим кпункту (2).5) Работа алгоритма останавливается. Выход из лабиринта найден. Таким образом, задача решена.Данный алгоритм всегда приводит к нахождению выхода из лабиринта. Действительно, если бы алгоритм не приводил к успеху, то это означало бы, что Бендер,проделав определенное число ходов и расставив метки от 0 до некоторого n, вернулся бы на исходную позицию, т. е. в правый нижний угол. Но тогда искомый путь,который тоже начинается в правом нижнем углу, полностью содержался бы в множестве помеченных клеток. В частности, левая верхняя клетка тоже была бы помеченаБендером, а значит, он побывал бы на ней в процессе своего блуждания по лабиринту,но вернулся назад. Последнее невозможно в силу пункта (5) из описания алгоритма.Анализируя свойства алгоритма из данного примера, выделим теперь следующиеОсновные черты алгоритмичеких процессов:а) Конечность описания — любой алгоритм задается как набор инструкций конечных размеров, т.

е. программа имеет конечную длину. В нашем примереописание алгоритма состоит из 6 пунктов, каждый из которых записан с помощью конечного числа слов.б) Дискретность — алгоритм исполняется по шагам, происходящим в дискретномвремени. Шаги четко отделены друг от друга. В алгоритмах нельзя использовать аналоговые устройства и непрерывные методы. В нашем примере одиншаг работы алгоритма — это выполнение одного из пунктов (0)–(5), эти шаги можно занумеровать натуральными числами.

В итоге Бендер проделывает§ 3. Интуитивные свойства алгоритмов11всегда лишь конечное число шагов для того, чтобы найти выход (хотя в общемслучае допускается бесконечное количество шагов, т. е. алгоритмы могут неостанавливаться).в) Направленность — у алгоритма есть входные и выходные данные. В алгоритмечетко указывается, когда он останавливается, и что выдается на выходе послеостановки.

В нашем примере входные данные — это схема лабиринта, выходныеданные — путь по коридорам, ведущий к выходу.г) Массовость — алгоритм применим к некоторому достаточно большому классуоднотипных задач, т. е. входные данные выбираются из некоторого, как правило, бесконечного множества. В нашем примере один и тот же алгоритм годитсядля поиска выхода из любого лабиринта прямоугольной формы, а не толькодля того лабиринта 8 × 8, который изображен на рисунке.д) Детерминированность (или конечная недетерминированность) — вычисленияпродвигаются вперед детерминированно, т. е.

вычислитель однозначно представляет, какие инструкции необходимо выполнить в текущий момент. Нельзяиспользовать случайные числа или методы. Конечная недетерминированностьозначает, что иногда в процессе работы алгоритма возникает несколько вариантов для дальнейшего хода вычислений, но таких вариантов лишь конечноечисло. В нашем примере действия Бендера детерминированны, но этот алгоритм можно переделать и в недетерминированный, если предоставить Бендерусвободу самостоятельного выбора клетки в пункте (3).

При этом, посколькуэтот выбор конечен (соседних клеток всего четыре), можно представить дальнейшие действия Бендера в виде распределенных (параллельных) вычислений:в момент выбора Бендер создает несколько своих клонов, и каждый клон идетпо своему пути, руководствуясь теми же пунктами (0)–(5). Если хотя бы одиниз клонов находит выход, то задача считается решенной.Глава IIКонечные автоматы и формальныеграмматики§ 4.Детерминированные конечные автоматыКонечные автоматы относятся к классу словарных алгоритмов. С помощью конечных автоматов можно решать задачи из достаточно широкого семейства алгоритмических проблем.

Например, технология проектирования микросхем основана нарезультатах теории автоматов. Другой пример — это компиляторы, перерабатывающие текст программы, написанной на языке программирования высокого уровня,в программу на машинном языке. Работа любого такого компилятора состоит издвух стадий. Первая стадия — лексический анализ текста, который реализуется спомощью определенного конечного автомата.

Вторая стадия — синтаксический анализ, который осуществляется с помощью автомата с магазинной памятью. Однако,как будет видно позднее, не любая алгоритмическая задача поддается решению спомощью конечного автомата.Дадим сначала неформальное определение конечных автоматов и описание ихработы.Процессор: δСостояние:r2шаг работыавтоматаHH©©Процессор: δСостояние:HH©©r3 = δ(r2 , s3 )A ¢¢следующийшагAA¢¢s1 s2 s3 s4 .

. . sks1 s2 s3 s4 . . . skвходная лентавходная лентаВходными данными любого конечного автомата являются слова в некотором заранее фиксированном алфавите, выходными данными являются две логические константы true и false. В каждый момент времени автомат находится в определенномвнутреннем состоянии. Число состояний автомата конечно.

В начальный моментвремени автомат находится в начальном состоянии. Кроме этого, некоторые состояния автомата считаются выделенными. Входное слово записывается на входной ленте, разбитой на ячейки: в каждой ячейке содержится одна буква слова. Автоматсвязан с лентой посредством специальной управляющей головки, которая последовательно считывает символы из ячеек, двигаясь слева направо. Очередной считанный§ 4. Детерминированные конечные автоматы13символ отправляется в процессор, который по текущему состоянию и по данномусчитанному символу определяет новое состояние, в которое переводится автомат.Функция, вычисляющая это новое состояние называется функцией перехода. Функция перехода расположена внутри процессора и не изменяется в ходе вычислений.Считав все символы слова, автомат останавливается в определенном состоянии: если это состояние оказывается выделенным, то на выход подается константа true —автомат распознал слово, в противном случае подается константа false — автоматне распознал слово.Уже из неформального определения видно, что конечные автоматы обладаюттакими интуитивными свойствами, как конечность описания, дискретность, направленность и массовость.

Детерминированность также присутствует в данном описании: по текущему состоянию и считанному символу функция перехода однозначноопределяет новое состояние. Отличительной чертой конечных автоматов являетсяотсутствие памяти вне процессора, т. е. вся память автомата занята программой. Этаособенность позволяет пролить свет на причины неспособности конечных автоматоврешить любую алгоритмически разрешимую задачу (для алгоритмов определенноговида необходима дополнительная память).Теперь перейдем к формальным определениям в терминах теории множеств.Определение. Детерминированным конечным автоматом (сокращенно д.к.а.) называется упорядоченная пятерка A = hQ, A, δ, q0 , F i, состоящая из следующих объектов:а) Q = {q0 , .

. . , qm } — конечный алфавит внутренних состояний автомата;б) A = {a0 , . . . , an } — конечный входной алфавит автомата;в) δ : Q × A → Q — функция перехода;г) q0 ∈ Q — начальное состояние;д) F ⊆ Q — множество выделенных (конечных) состояний.Графическое изображение детерминированных автоматовАвтоматы удобно изображать графически, используя следующие геометрическиефигуры:id — выделенное состояние;H© i— начальное состояние;d — одновременно начальное и выделенноеi— промежуточное состояние; H© iсостояние;i a - i— такая дуга присутствует в автомате, если значение функцииперехода δ(q, a) = q 0 ;q0¥i¾ ¦a — такая петля присутствует в автомате, если значение функцииqперехода δ(q, a) = q.qПример.

Например, автомат A = hQ, A, δ, q0 , F i, где A = {0, 1}, Q = {q0 , q1 , q2 },F = {q2 }, а функция перехода задается соотношениямиδ(q0 , 0) = q0 ,δ(q0 , 1) = q1 ,δ(q1 , 0) = q0 ,δ(q1 , 1) = q2 ,δ(q2 , 0) = q2 ,δ(q2 , 1) = q2 ,14Глава II. Конечные автоматы и формальные грамматикиимеет следующее графическое изображение:0¨¥1?si 1 - iHid¾ ¥¦0, 1© kq0q1q20Определение. Путем в детерминированном конечном автомате A = hQ, A, δ, q0 , F iназовем любую конечную последовательность hr0 , s1 , r1 , .

Характеристики

Тип файла
PDF-файл
Размер
1,12 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

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