Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по дискретке по Орехову.doc
Скачиваний:
10
Добавлен:
25.05.2014
Размер:
1 Мб
Скачать

Раздел3

Введение в теорию алгоритмов

Основные требования к алгоритму.

  1. Данные – алгоритм работает с применением исходных данных – выдает результаты т.е. перерабатывает входные, выходные и промежуточные данные. Данные есть слова конечной длинны данного алгоритма.

  2. Память - может быть бесконечной, единица измерения данных и памяти должны быть согласованы. Память используется для хранения данных.

  3. шаги Алгоритм состоит из элементарных шагов.

  4. Детерминирование – после каждого шага должно быть известно куда идти дальше или остановка.

  5. результативность – после конечного числа шагов получение информации (или остановка после конечного числа шагов)

Тезис черта.

Несмотря на нестрогость интуитивное представление об алгоритме является настолько отчетливым, что практически не возникает разногласий около того является ли алгоритмич тот или иной процесс, ситуация оказывается принципиальной когда имеют дело с задачами решение которых неизвестно относительно которых является ???????????????????????? они по сути не могут быть алгоритмически разрешены.

доказать алгоритмич неразрешаемость задач а на основе только интуитивного представления невозможно.

Тезис черта: класс задач решаемых в любой из формальных алг моделей и есть класс всех задач которые могут быть решены интуитивно алг методами.

три основных типа универсальных алгоритмических моделей.

  1. Связывает понятие с вычислениями и числовыми функциями

Пример: рекурсивные функции – хорошо развитая и изученная модель данного типа.

  1. Связывает понятие алг с некоторыми детерминированными устройствами выполняющими в каждый отдельный момент некоторые примитивные операции. Такое представление не оставляет сомнений в однозначности алгоритма и элементарности его шагов. Пример: машина тюьринга

Маштна Тьюринга.

-УУ

-галовка(пишушая и считывающая)

УУ

может находится к важдый момент времени

- начальное состояние

- заключ состояние

Q-назыв Внутринний алфавит

Если УУ в состояние то машина прекращает работу.

Лента – рабита на ячейки в каждой ячейки записан один из символов алфавита

лента бесконечна в обе стороны одна в начальный момент времени и последущие только конечные число ячеек заполнено не пустыми символами.

- пустой символ

Если ячейка пуста считается что в ней записан пустой символ.

Головка перемещается вдоль ленты и в каждый момент времени обозревает содержимое одной ячейки считывает ячейку вписывает в ячейку какой-либо символ из алфавита А вместо обозреваемого а затем сдвигается вправо, влево или останавливается.

сдвиг зависит от УУ в процессе работы УУ в зависимости:

  1. от состояния в котором находится УУ.

  2. символ обозреваемый головкой выполняет сл действия

-головка записывает в обозреваемую ячейку и происходит сдвиг на ячейку вправо или влевл или ост на месте на

Функции характеризующие работу УУ.

- функция переходов.

функция выходов.

- функция движения головки.

Таким образом работу УУ можно описать системой команд или пятеркой сл вида

Обозначения

R - сдвиг на одну ячейку вправо

L – сдвиг на одну ячейку влево

E – оставаться на месте.

список пятерок вида (*) опрделяющих работу машины Тьюринга называют прог. Маш Тьюринга

Способ задания программ

  1. список команд вида (*)

  2. таблица

  3. граф

пример

ai qj

q1

q2

0

q11L

q10R

λ

q0 λ L

q11E

на пересечение строки ai и столбец qj находится информация

  1. Граф(диаграмма перехода)

Это ор-мулти-псевдо граф в котором дуги имеют пометки вершинам соответствует состояние.

Основные требования к алгоритмам.

  1. Данные М.Т.-слова на ленте причем на ленте записываются и исходные данные и результаты.

  2. память – внешняя (лента) и внутренняя (конечное множество Q внутри состоит)

  3. Элементарные шаги М.Т.: считывание символа запись символасдвиг головки на ячецку влево или вправо переход головки в сл состояние.

  4. Дитерминированность - в зависимости от пары полностью определяются следующ действ Иями М.Т. для каждого состояния и каждого символа на ленте однозначн заданы, что следущее состояние в которое перейдет УУ символа записываемый в ячейку ai сдвиг dk влево или вправо.

Конфигурации

Полное состояние М.Т. по каторым определяется ее дальнейщие поведение задается ее внутреннем состоянием, сост ленты (т.е. словом записанным на ленте) положением головки

Полное Состояние М.Т. назовем конфигурацией или машинное слово обозначается сл тройкой

где - слово слева от головки qj – текущее состояние слово образованное словами обозреваемого головкой и символом справа от него.

Пусть К – некоторая промежуточная конфигурация в результате применения к ней команды вида (*) помечается К тогда говорят К непосредственно выводимая из К

Пусть то говорят выводит из К Если то последовательность вида (**) назыв Тьюринговым вычислением Причем Тьюрингово вычисление может иметь вид - бесконечная .

Пусть имеется последовательность (**) эта послед.

  1. Однозначно определяется К

  2. полностью описывает работу М.Т. начиная С К

  3. конечная если содержит конфигурацию в этом случае говорят что М.Т. применима к исходному слову иначе машина работает бесконечна и она не применима к исходному слову.

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

Вычисление функций на машине Тьюринга.

Записанные на ленте слова в алфавите Аисх которые являются подмножеством А или совподает с А. могут представлять из себя правильный словарный вектор имеющий вид ; - слова в Аисх а символ * не пренадлежит Аисх – это разделитель

Имея исходную информацию в виде вектора Vисход М.Т. либо перерабатываемый вектор Vисход в словарный вектор вида 1 в алфавите Арез либо работает бесконечно.

Т-М.Т.f- функция отображающая мн-во векторов Аисх в мн-во векторов над Алфавитом Арез(W такой вектор)

f – правельно вычисл в М.Т. Т если любые v u w таких что: f(v)=w

где и соответственно и любая v:f(v) не определена

М.Т. начав работу в q работает бесконечно

если для f существует М.Т. которая ее правельно вычисляется по Тьюнингу А машина правильно вычисляемой машиной.

Две М.Т. с одинаковым алфавитом Аисх назыв эквивалентными если они вычисляют одну и ту же функцию.

частный случай.

Числовые функции.

вычисл числ ф на М.Т.

в общем случае f заданы на словарных векторах и перерабатывают как числовые так и не числовые обьекты рассмотрим числовые функции отоброжающие N в V будем использовать еденичный или унарный последующим Аисх={1} или Аисх={1*}

числовая функция f (х1….xn} – правильно вычисляема по Тьюрингу если f – машина Т – такая что : формула

если -неопределенна то работает бесконечно

Задача сложения двух чисел

  1. Стираем крайнюю левую единицу первого числа

  2. доходим до символа * заменяем на символ 1

  3. возвращаемся на к левому краю числа чтобы получить заключительную конфигурацию которая является стандартной

A={1,*,λ}

q1*q0λR

q11q2λR

q3λq0λR

q21q21R

q2*q31L

q31q31L

В программе отсутствуют некоторые сочетания qi aj которые не встречаются при заданной стандартной начальной конфигурации.

Задача копирования

Тcopy q11a=>q01a*1a

Порядок работы программы

Работа происходит циклами, кол-во циклов совпадает с кол-вом 1 в числе Во время одного цикла выполняется следующее:

- очередная 1 исход числа заменяется 0, затем проходим до конца числа если это + произошло в первый раз то поле числа ставим * затем в копии слова ставим 1 вместо первого по порядку пустого символа когда число закончится (т.е. встретим в очередном цикле не 1, а *) выполняем обратный ход справа на лево заменяя все 0 на 1 и останавливаемся в стандартной заключительной конфигурации.

Машина Тьюринга с движущейся на каждом шаге головкой.

qjaiqj aiE (1)

Покажем что для такой машины Тьюринга(М.Т.) можно построить эквивалентную не содержащую в своей программе символа Е

Случай 1: qj – не является заключит состоянием тогда в программе нейдется строка имеющая следующий вид:

Тогда вместо команд (1) и (2) можно использовать строку

Случай 2: А={a01,a02,…ak-2}

qj – является заключительной

Тогда команда (1) заменяется сл последовательностью: ??????????????????????????????

qr – заключ

(новое)

q0aiqjaiR

qja0qra0L

qj’a1qra1L

--------------

qj’ak-1qrak-1L

Таким образом можно рассматривать машины на каждом шаге которых головки двигаются т.е. в дальнейшем можно не использовать символ Е.

Т/ Для любой М.Т. существует эквивалентная ей машина Тr с правой полулентой.

Идея док-ва:

  1. Всякий раз когда головка исходной М. надо зайти за левый край ленты новая машина Тr предварительно сдвинет все написанное с головкой на ячецку вправо.

  2. лента перегибается пополам притом ячейки правой половины ленты в нечетных ячейках полуленты а левые помещаются в четных.

Операции над М Т.

  1. Композиция

  2. Итерация

  3. Разветвление

  1. Композиция

Пусть имеются машины Т1 и Т2 У этих машин имеются алфавиты А1 и А2 Множество внутренних состояний Q1 и Q2

Программы машин П1 и П2

Начальное состояние: q1 и q1

Заключит остояние : q0 и q0

Тогда композиция выполняется следующим образом: В программе П1 маш Т1 заменим заключительное состояние q0 на соответствующее q1

Объединим программы и алфавит

Получим полупозицию Т1 и Т2 по паре состояний (q0, q1)

Т1 ●Т2

Вычисляется функция

  1. Итерация

Т –маш П-прог q0- зак сост q – состо не являющееся заключительным.

Итерацию получают заменив q0 на q получаем итерацию М.Т. по паре состояний (q0,q)

  1. Развитвление.

Машины Т1 Т2 Т3

Пронгаммы П1 П2 П3

Заданы внутренний и внешний алфавит.

Заключит состояние

Начальное состояние q1 q1’”

Тогда чтобы получить разветвление заменим в П1 маш Т1: q11 на q1 а q02 на q1’”и обледеним прог. Получим разветвление М Т2 и Т3 управляемые машиной Т1 т.е.

Данные операции позволяют сделать достаточно богатым язык Тьюрингово вычисления.

Задача сложения n чисел

Алгоритм воспроизведения.

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

а.в. Работы м.т. по системе команд сводится к следующему для текущей конфигурации найти в система команд команду имеющею в левой части qj ai

Случай 1:

Случай 2:

Следующая конфигурация:

Универсальные машины Тьюринга.

U – универсальная машина Тьюринга

Требуется построить м.т. U реализующую описанный алгоритм воспроизведения вычисляющую функцию от двух переменных сист команд где α – исходное слово не ленте если м.т. останавливается при исход данных U

не останавливается если м.т. при исход данных не останавливается.

Всякая машина обладающими этими свойствами назыв универ м.т.

Существование у.м.т. означает что систему команд можно понимать двояко: конкретного устройства , либо как программу у.м.т.

Интуитивное определение алгоритма.

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

Элементарности(отсутствие необходимости уточнения правил) Результативности(получение после конечного числа шагов информвци являющейся результатом)

Тезис Тьюринга

Для любого алгоритма понимаемо в интуитивном смысле можно построить м.т. функционирование которой эквивалентно этому алгоритму.

2 –я формулировка.

Всякий алгоритм может быть реализован м.т.

Подтверждением м.т.: математическая практика, описанная в алгоритме, в любой другой агоритмичесской модели может быть сведено к описанию работы м.т.

Проблема остановки

В числе требований к алгоритмам имеется требование результативности Алгоритм AL и данные α

Приведет ли к результату работа алгоритма AL по данным α

Иначе можно ли построить м.т. Т0 такую что для любой м.т. и любоых исходных данных α (истина) если м.т. от α останавливается и (ложь) если Т(α) не останавливает эта проблема остановки.

Т/ Не сущ м.т. Т0 раскрывающей проблему остановки для произвольной м.т. Т

Рекурсивные Функции

Уточнение понятия алгоритма «алгоритма»

Понятие использование основных требований к алгоритмам нуждаются в уточнениях тогда появляется др понятия которые также будут нуждатся в уточнение и т д Поэтому в теории алгоритмов принят другой подход выбирается конечное число исходных объектов которые объявляются элементарными и все множество объектов строится на основе этих исходных объектов этот подход используется и при уточнение понятия алгоритмов:

  1. данные(в качестве данных принимается множество слов конечного алфавита)

  2. память (решается вопрос оргонизации памяти)

  3. детерминированность (используется блок схемы или словестные описания или др описания механизма реализации алгоритмов)

  4. элементарные шаги: фиксируется набор элементарных шагов.

После того как указанные и пункта выполнены получается конкретная алгоритмическая модель, каждая из которых претендует на право считаться формализации понятия алгоритма т.е. модель должна быть универсальной т.е. допускать описание любых алгоритмов Вопрос не приведет ли выбор конкретных средств для получения модели потери общности формализации ? Ответ не приведет т к

  1. доказана сходимость одних моделей к другим

  2. благодаря взаимной сводимости моделей в теория алгоритмов удалось выработать инвариантную к выбору моделей систему понятий позволяющую говорить о свойствах алгоритмов не зависемо от того какая формализация алгоритма выбрана

Эта система понятий основана на понятии вычисления функций т.е функций

для вычисления которой существует алгоритм

Очевидно что с каждым алгоритмом связана функция которую он вычисляет. Верно ли обратное, существует ли для каждой функции существует алг ?

исследование проблемы остановления для м.т. показывает что нет. для каких функций существует алгоритм как описать такие алгоритмические эффективно вычисляемые функции исследование в этом направлении начались в 30-е годы тогда и была придумана м.т. и заложена теория рекурсивности функций. в этой теории как и вообще в теории алгоритмов фиктивный и конструктивный подход, основной которой является что все множество исследованных обьектов(функций) строится из конечного числа исходных объектов (некоторого базиса) с помощью простых операций эффективна выполнимость которых вполне достаточна операции над функциями будем называть операторами.

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

n-местной функцией будем понимать функцию функцию определенную на множестве М которое является подмножеством N к

Если то функция является полностью определенной

Пусть есть

Функции f,g равны если любом наборе значений аргументов имеет место следующее; если значение f и g определены и совпадают или значение обеих функций не определены.

Простейшие функции

Следующие всюдуопределенные функции которые будем использовать в качестве исходных назовем простейшими:

  1. функция ноль 0(Х)=0

  2. функция следование S(X)=X+1

  3. функция выбора аргумента:

функция выбора аргумента позволяет в частности выполнять формальное введение формальных аргументов

Операторы

  1. Операция суперпозиции

  2. примитивной рекурсии

  3. оператор минимизации