Алгоритмы и программы

Автор работы: Пользователь скрыл имя, 18 Июня 2012 в 08:48, реферат

Описание работы

Теория алгоритмов, как наука, непосредственно связана с предметами математической логики и теории конечных автоматов. В Древней Греции Аристотель и его ученик Платон сформулировали основные правила логики, которые используются до нашего времени для доказательства правильности и решения логических задач.

Файлы: 1 файл

Глава 1.doc

— 429.00 Кб (Скачать файл)

    F(x, y)::=R[Y1,1(x), f*(x, y, z*), y, (z)], удовлетворяющую следующим условиям:

    

    3) Можно показать, что функция w=x*y является рекурсивной. Это же справедливо и для других арифметических операций. Таким образом, можно сделать вывод, что алгоритмы являются рекурсиями.

    Гипотеза Черча: понятием рекурсивной функции исчерпывается полностью понятие вычислимой функции.

    Какова  бы ни была вычислимая неотрицательная  целочисленная функция  от неотрицательных  целочисленных аргументов существует тождественно равная ей рекурсивная функция.

    Проводя аналогию этого тезиса с алгоритмами, состоящими из простых операций, можно сказать:

    Каков бы ни был алгоритм, перерабатывающий наборы целых неотрицательных чисел в целые неотрицательные числа, существует алгоритм, сопутствующий рекурсивной функции, который ему эквивалентен.

    На  основе этой гипотезы российские ученые А.Н.Колмогоров и В.А.Успенский сделали обобщение: если существует некоторая рекурсивная функция, то для нее всегда можно построить алгоритм. И наоборот, любой существующий алгоритм может быть выражен в понятиях рекурсивной функции.

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

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

    1.8.2 Нормальные алгорифмы Маркова. 

    А.А. Марков разработал строгую теорию определенного  класса алгоритмов, которые называются нормальными алгорифмами Маркова. Для них исходными данными и результатами являются высказывания, записанные в виде слов, принадлежащих некоторому алгоритму А.

    Если  алфавит А входит во множество  В, но А¹В, то говорят, что В – расширение алфавита А.

    Пусть RÎA и существует некоторое PÎR, в этом случае говорят, что Р – это вхождение подстроки в высказывание R.

    Марковская  подстановка – это замена первого вхождения подслова Р в слове R на слово Q:   (P, Q)=P®Q.

    Если  PÏR, то говорят, что Марковская подстановка не применима к слову R. Частными случаями Марковских подстановок являются пустые вхождения:

    ( ,Q),  (P, ), ( , ). Здесь пустые слова в скобках эквивалентны Æ.

Пример 1:

    Если  R=192375923ÎA, тогда

    (923, 0000)ÞR=1000075923

Пример 2:

    Пусть R=слово, тогда

    (ра, да)Þ (не применимо)

Пример 3:

    R=паровоз

    (овоз, _)ÞR=пар_

Пример 4:

    R=книга

    ( , ) ÞR=книга

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

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

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

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

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

    А – внешний алфавит машины Тьюринга.

    Некоторый алфавит Р=р1, р2, …рn, характеризующий состояние машины в конкретный момент времени, называют внутренним алфавитом.

    Состояние движения ленты описывается множеством возможных состояний 

     -¥, …, dj, …, d0, d1, …, +¥.

    Опишем  принцип работы машины Тьюринга.

    1) Чтение ai из ячейки d0, на которой позиционируется головка чтения/записи (R/W Head). Состояние машины в этот момент определяется pj.

    Начальный кортеж:  {ai, d0, p0}

    2) В зависимости от значений  ai и pj изменяется поведение машины:

    {ax, dy, pz}

    Данный  кортеж означает: записать вместо ai символ aх, переместить головку чтения/записи в позицию dy, блоку управления перейти в состояние pz.

    3) Если после второго шага состояние  машины Тьюринга описывается  исходным кортежем, то машина останавливается. Иначе – повтор пункта 2.

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

      p1 p2 pj pm
    a0            
    a1            
               
    ai       {ax dy pz}    
               
    an            

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

    Устройство  машины Тьюринга одинаково для решения  различных задач, а алфавиты А и Р – различны.

    Функция, для которой существует алгоритм вычисления, называется вычислимой функцией. Если для некоторой функции f(x) существует машина Тьюринга, то говорят, что f(x) вычислима по Тьюрингу.

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

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

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

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

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

Контрольные вопросы 

  1. Дайте определение  терминам «алгоритм» и «алгоритмический процесс».
  2. Сформулируйте основные задачи теории алгоритмов.
  3. В чём заключается теоретический аспект теории алгоритмов?
  4. В чём заключается практический аспект теории алгоритмов?
  5. Перечислите основные свойства алгоритмов и дайте их интерпретацию.
  6. Дайте характеристику понятия «корректность алгоритма».
  7. Какие существуют методы доказательства корректности алгоритмов?
  8. Какие известны классические теории алгоритмов?
  9. Что такое алгоритмически неразрешимые проблемы? Приведите примеры.
  10. Какие существуют методы описания алгоритмов?

Информация о работе Алгоритмы и программы