Главная » Просмотр файлов » В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций)

В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций) (1159492), страница 3

Файл №1159492 В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций) (В.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций)) 3 страницаВ.А. Носов - Основы теории алгоритмов и анализа их сложности (курс лекций) (1159492) страница 32019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Следовательно и в любойдругой момент времени лента будет иметь лишь конечное число ячеек,содержащих непустые символы.Активной зоной конфигурации назовем минимальную связную частьленты, содержащую обозреваемую ячейку, а также все ячейки, в которыхзаписаны непустые символы.Конфигурацию можно представить в виде машинного слова в алфавитеA Q видаUгдеqiα 1qi α 2(2)- внутреннее состояние ,α 1 - слово из символов алфавита А ,находящеесяв левой части активной зоны от считывающей головки,Конфигурация Кназывается заключительной , есликонфигурация имеет видq1αq i = q1 .Условимся.

что стандартная начальная, а стандартная заключительная имеет видq0α .Конфигурацию в момент времени t обозначим Kt .Машина реализуетпроцесс изменения конфигураций в следующем смысле. ЕслиK0 = q i αиα = аi α′ , ai ∈ A ,то в программе машины имеется точно одна команда видаq1ai → q k al d .Тогда следующая конфигурацияK 1 определяется так :K1 = q k al α ′ ,если d=EK1 = al qkα ′,если d=RK1 = q k a0 al α ′,если d=LЭто обстоятельство записываем в виде: K0→ K1 Если теперь конфигурацияK1 , не является заключителькой, то в соответствии с системой команд,аналогично предыдущему, определима однозначно следующая конфигурацияK2 т.е.

K1 → K2 .Таким образом начальная конфигурация K0 порождаетпоследовательность конфигурацийK0 → K1 → K2 →...→ Kt → Kt +1 →...(3)Если последовательность (3) конечна , т.е. обрывается в заключительнойконфигурации ,то говорят , что машина применима к конфигурации K0 , впротивном случае неприменима кK0 .9К0 = q1α и Kt = α ′q0α ′′ заключительной конфигурация ,то слово β = α ′α ′′ об`является результатомработы машины на слове α . Т.о.

машине Тьюринга соответствует частичнаяЕсли машина применима к конфигурациисловарная функция с областью определения и областью значения , являющейсяконечными словами в алфавите А , которая каждому такому слову ставит всоответствие результат применения машины к данному слову.Потребуем , чтобы заключительные конфигурации машины находились встандартной форме. Этого всегда можно добиться , добавляя к машине Т двановых состояния q ′ , q ′′ и командыq0ai → q ′ai L i=0...mq ′a0 → q ′′a0 RПри этом состояние q ′′ объявим заключительным. Полученная машинаT ′ эквивалентна машине T в следующем смысле:а) Обе машины применимы к одним и тем же начальным конфигурациям.б) Результаты применения обеих машин совпадают.в) Заключительные конфигурации у машины T ′ находятся в стандартной форме.Определим теперь вычисление функций на машине Тьюринга.

Будем**рассматривать словарные частичные функции f типа f: A → A где А* множество всех слов конечной длины в алфавите АГоворят, что машина Тьюринга Т правильно вычисляет частичнуюфункцию f , если для любого p ∈А* выполнено:1) Еслиf ( P)определено иf ( P) =Q, то машина Т применима кначальной конфигурации q1 P и заключительной конфигурацией являетсяKt = q 0 Q.f ( P)конфигурации q1 P .2) Еслине определено, то машина Т неприменима к начальнойФункция f называется правильно вычислимой по Тьюрингу, еслисуществует машина Тьюринга Т , которая ее правильно вычисляет.Аналогичные определения могут быть сделаны и для функций несколькихпеременных.

Для этого достаточно множество слов, являющихся аргументами,записать в виде одного слова, введя знак-разделитель. Ограничимсясоответствующим определением для числовых функций. Рассмотрим частичнуюфункцию f ( x1 ,..., xn ) от n переменных, аргументы которой и ее значенияпринадлежат множеству N0={0,1,2,...}. Будем считать, что алфавит А машины Тсодержит элемент 1 . Условимся произвольное число x ∈ N0 представлять в... 1...1, чтобы запись нуля была непустой.

Будем говорить, чтовиде слов x +1 ={x +1машина Тьюринга Т правильно вычисляет функциюf ( x1 ,..., xn ) , если10конфигурацию  q1{... ∗{... ∗ ... ∗{... она переводит в конфигурациюx1 +1 x 2 +1q0{...,если значениеf ( x1 ,...x n )+1x n +1f ( x1 ,..., xn ) определено , и Т неприменима, еслизначение f ( x1 ,..., xn ) неопределено. Здесь * - символ-разделитель из А.

Классфункций, вычислимых по Тьюрингу обозначим через Т.20 )Рассмотрим несколько примеров на построение машин Тьюринга.1) Пусть А= {a0 = λ , a1 = 1} и Q={q0,q1,q2}2) Программа машины T1 : q1λ → q 2 1Eq1 1 → q1 1R(4)q 2 1 → q 2 1Lq 2 λ → q 0λRПусть K0конфигураций := q11x+ 1 .Тогда T1 порождает следующую последовательностьq11x+ 1 → 1q11x →...→ 1x+ 1 q1λ → 1x+ 1 q2 1 →...→ q2 1x+ 2 → q2 λ1x+ 2 → qТаким образом , машина Тьюринга (4) правильно вычисляет функциюf ( x) = x + 1 , x ∈ N0 .2) Пусть A={ λ ,1}, Q={q0,q1,q2}Программа машины T2 :q1λ → q1λRq1 1→ q 2 λRq 2 1 → q 2 λR(5)q2 λ → q 0 1EK0 = q11x+ 1 .

Тогда T2 порождает следующую последовательностьПустьконфигураций:q11x+ 1 → q 2 1x →...→ q 2 λ → q 0 1Значит, машина Тьюринга (5) правильно вычисляет функциюf ( x) = 0, x ∈ N03) Пусть А={ λ ,1,*}, Q={q0,q1,q2,q3}Программа машины Т3 :q11 → q 2 λR11q2 1 → q2 1Rq2 * → q2 1Rq2 λ → q 3λLq3 1→ q 4 λLq 4 λ → q 0λRq 4 1 → q 4 1L(остальные команды не важны для вычисления).x+ 1y+1*1 . Тогда машина Т3 порождает следующуюПусть K0 = q11последовательность конфигураций:q11x+ 1 * 1y + 1 → q2 1x * 1y + 1 →...→ 1x q2 * 1y + 1 → 1x+ 1 q2 1y + 1 → 1x+ y + 2 q2→ 1x+ y + 1 q 31 → 1x+ y q 4 1 →...→ q 4 λ1x+ y + 1 → q 0 1x+ y + 1Т.е.

машина T3 правильно вычисляет функцию f ( x) = x + y x, y ∈ N030 ) Прямое построение машин Тьюринга для решения даже простых задачможет оказаться затруднительным. Однако существуют приемы, которыеоблегчают данный процесс, если использовать способы сочетания программнескольких машин в результирующие программы. Дадим некотороепредставление об этих приемах, что позволит говорить о существовании тех илииных машин, на деталях же построения конкретных программ останавливатьсяне будем.1) Суперпозиция машин.

Пусть даны две машины Тьюринга T1 и Т2 , которыевычисляют соответственно словарные функции f1 ( P) и f 2 ( P) в одном и томже алфавите. Тогда существует машина Тьюринга Т , которая вычисляетфункцию f ( P) = f 2 ( f1 ( P)) .При этом для любого слова Р функция f ( P)определена в том и только в том случае, когда f1 ( P) определена иf 2 ( f1 ( P)) определена.

Программа машины Т строится так: Состояниямашины T2 переобозначаем так, чтобы они отличались от состояний машины T1.1Начальное состояние q1 Машины Т1 объявляем начальным q1 для машины Т,заключительное состояние q 0 2 машины T2 объявляем заключительным q 0 длямашины Т. Заключительное состояние q 0 1 машины T1 отождествляем сначальным состоянием q 12 машины Т2. Полученные команды для обеих машинобъединяем в одну программу. Рассмотрим начальную конфигурацию1q1 PПоскольку q1 = q1 - начальное состояние машины T1 , то вначале Т работает какмашина T1 и если T1 применима12q11 P , то на некотором шаге будет получена конфигурация q 10 f1 ( P) ,ноq 10 = q12 - начальное состояние для Т2 и теперь Т действует как машина Т2. Если1Т2 применима к q 0 f1 ( P) , то на некотором шаге будет получена конфигурациякq 02 f 2 ( f1 ( P)) , которая является заключительной для Т , т.к q02 = q2 .

Если Т11неприменима к q1 P или Т2 неприменима кq 10 f1 ( P) , то Т неприменима кq1 P . Машина Т называется суперпозицией машин Т1 и Т2 и обозначается T1T2.Схематически суперпозиция изображается так:P → f1 ( P) → f1 ( f 2 ( P))TT12Соединение машин. Пусть даны машины Тьюринга Т1 и Т2 , вычисляющиесловарные фунции f1 ( P) и f 2 ( P) соответственно. Тогда существует машинаТ , которая начальную конфигурацию q1 P переводит в заключительнуюq 0 f1 ( P) * f 2 ( P) ,если f1 ( P) и f 2 ( P) определены , и неприменима впротивном случае.Здесь * - новый символ, не входящий в алфавиты машин Т1 и Т2 . Машина Тназывается соединением машин и обозначается Т1*Т2.

Существование машины Твытекает из следующих неформально описываемых конструкций. Лента машиныT- является двухэтажной. В качестве внешнего алфавита Т берутся двухэтажные bбуквы   , где а и b - буквы алфавита Т1,Т2 .Каждой букве a ставится в a λсоответствие двухэтажная буква   . Слову P = a i ...ai ставится вk1 a λ ........λ  .

Машина Т будет работать таксоответствие двухэтажное слово  a ...a  i1 ik (существование машин Тьюринга для реализации каждого шага ясно) λ ........λ   ai1 ...aik   ai1 ...aik   f1 ( P)   λ ...λ ...λ  → → → → a ...a   a ...a   f ( P)   f ( P)  f ( P)* f ( P)i1ik1212 i1 ik З) Ветвление машин. Пусть даны машины Тьюринга Т1 и Т2 вычисляющиесловарные функции f1 ( P) и f 2 ( P) соответственно, заданные в одномалфавите.

Тогда существует машина Тьюринга Т , которая начальную13конфигурациюеслиq1ε * P ,где ε ∈{0,1} , переводит в заключительную q0 f1 ( P) ,ε = 0 и в q0 f 2 ( P) , если ε = 1.Машина T называется разветвлением машин Т1 и Т2 и обозначается Т1vТ2.Схематически разветвление представляется так:ε=0ε∗ PT1 ∨ T2f1( P)ε =1f2 ( P)Существование машины Т вытекает из следующих конструкций.

Пусть q11и q12 - начальные состояния машин Т1 и Т2 соответственно. Считаем, чтомножества внутренних состояний машин не пересекаются. Объединимпрограммы машин Т1 , Т2 , добавим новое начальное состояние q1 и добавимкомандыq1 0 → q11λ Rq11∗→ q11λ Rq11 → q12 λ Rq12 ∗→ q12 λ RТеперь заключительные состояния q01 и q02 машин Т1 и Т2 объединим, аполученное состояние q0 считаем заключительным для Т.

Если q1ε∗ P начальная конфигурация, то Т через 2 шага перейдет в конфигурацию q11 P , еслиε = 0 и в конфигурацию q12 P , если ε = 1 а затем будет работать как Т1 или T2соответственно.4) Реализация цикла. Важным приемом в программировании является разбиениерешаемой задачи на циклы. После выполнения каждого цикла проверяетсявыполнимость некоторого условия. Если условие выполнено, то выдаетсярезультат, если нет, то цикл повторяется. Точнее, процедура задается так.

Пустьимеем словарные функции f1 и f 2 и некоторый предикат Ф на словах (егозначения обозначим 0,1). Для произвольного слова Р проверяемся - верно лиФ(Р)=1 , если да, то выдается ответ f1 ( P ) . Если Ф(Р)=0 , то вычисляетсяP ′ = f 2 ( P ) . Затем проверяется-верно ли Ф( P ′ )=1, если да, то ведается ответf1 ( P ′ ) , если Ф( P ′ )=0 , то вычисляется P ′′ = f 2 ( P ′ ) и т.д, Существует машинаТьюринга Т , реализующая данную процедуру. Пусть существуют машиныТьюринга для вычисления функций f1 , f 2 и предиката Ф. Обозначим их Т1 ,14T2,Тф соответственно.

Пусть Т0-машина, которая оставляет всякое слово Р безизменения.Машина Т строится в соответствии со схемой:f1 ( P )ε =1Pε∗ PТф*Т0 T 1 ∨ T 2ε =0f2 (P )Пояснение: Заключительные состояния q01 и q02 машин Т1 и T2 не объединяются,а считаются различными. Состояние q01 объявляется заключительным для Т1 , аq02 отождествляется с начальным состоянием q1 для T. Заключительноесостояние для машины Тф*Т0 объявляется начальным для T 1 ∨ T 2 .Изизложенного следует, что если T 1 ∨ T 2 работает как T1, то полученное еюзначение является выходом Т , если же T 1 ∨ T 2 работает как T2 , то полученноеею значение снова подается на вход машины Т.Используя данный прием, можно построить машину Тьюринга дляперевода произвольного числа n>0 , заданного в унарной записи, т.е.

в виде 1n+1(n+1 палочка) в его двоичную запись, начинающуюся с 1.Входной алфавит машины есть { ∧,1,1,о) . Вначале стирается одна палочка, затемработа осуществляется t циклами ( 1<=t<=n). К концу каждого цикла t машинанаходится в конфигурацииq1α 2 ...α t 11...1,где 1α 1...α t двоичная запись числа t, 111...11 n-t палочек.В течение цикла t стирается одна палочка и к числу t-1 в двоичной записиприбавляется 1 .Формальное описание машины Тьюринга, однако, требуетбольшого числа технических деталей и поэтому мы их опускаем.Таким образом, язык Тьюрингова программирования содержит основныеоператоры программирования на алгоритмических языках и позволяетустраивать последовательное выполнение программ, параллельное ихсоединение, использовать условные переходы ("если Ф , выполнить f1 , иначеf 2 ”), реализовывать цикл (“ пока Ф , выполнить f1 , иначе f 2 ").

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

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

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