Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Интуитивное понятие алгоритмаСодержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Слово алгоритм связывают с именем среднеазиатского математика IX века аль-Хорезми в его латинском написании – algorithmi (иногда употребляется равнозначное слово алгорифм). Для многих задач решение дается в виде формулы, которая определяет последовательность математических операций для получения искомого результата. Например, формула корней квадратного уравнения позволяет найти их по значениям коэффициентов этого уравнения, формула Герона выражает площадь треугольника через длины его сторон и т.д. Однако нам известны многочисленные задачи, для которых ответ может быть легко найден, хотя он и не записывается в виде формулы. Таковыми являются арифметические правила сложения, вычитания, умножения и деления чисел, позволяющие получить сумму, разность, произведение и частное двух (или большего количества) чисел, правило извлечения квадратного корня, правило отыскания наибольшего общего делителя, правила перевода чисел из одной системы счисления в другую и т.д. При решении подобных задач мы уже не пользуемся какой-то одной формулой, а используем некоторую совокупность действий (правило) в строго определенной последовательности с целью получения искомого результата. Такую систему правил называют алгоритмом. Надо сказать, что слово алгоритм стало настолько модным, что им стали называть не только сугубо математические правила, но и рецепты приготовления блюд, технологические процессы варки в мартеновских печах стали и т.п. В каждом из рассмотренных примеров задач исходные данные могут изменяться в широких пределах, но система правил при этом не меняется. Поэтому принято говорить о классе однотипных задач или о массовой проблеме. Следует отметить, что алгоритмы решения многих математических задач, для которых не удается получить ответ в виде формулы, основаны на следующей процедуре: строится бесконечный процесс, сходящийся к искомому решению. Но так как вычисления нельзя продолжать бесконечно долго, то этот процесс обрывается на некотором шаге, а полученная на последнем шаге величина принимается за приближенное решение рассматриваемой задачи. При этом необходимо, чтобы процесс решения был сходящимся. Тогда это будет гарантией того, что для любой заданной точности Исходя из всего сказанного, интуитивное определение понятию алгоритма можно дать следующее. Алгоритмом называется общий, единообразный, точно установленный способ решения любой задачи из данной массовой проблемы. Такое определение алгоритма нельзя считать строгим, так как. в нем используются слова, точный смысл которых не установлен. Это касается слова способ. В связи с этим такое нестрогое определение алгоритма называют интуитивным. Несмотря на это, можно отметить некоторые характерные черты алгоритма. 1. Дискретность алгоритма. Каждая последующая совокупность величин получается из совокупности предыдущих величин в дискретные моменты времени, иначе говоря, алгоритм расчленяется на отдельные элементарные и легко осуществимые акты. 2. Детерминированность алгоритма. Совокупность величин, получаемых в какой-то неначальный момент времени, определяется совокупностью величин, полученных в предшествующие моменты времени. 3. Элементарность шагов алгоритма. Закон получения последующей совокупности величин из предыдущей должен быть простым. 4. Массовость алгоритма. Начальная совокупность величин может варьироваться в бесконечных пределах. 5. Результативность алгоритма. Последовательный процессполучения совокупности величин должен быть конечным и должен давать ожидаемый результат. Интуитивное понятие алгоритма с его характерными чертами в течение долгого времени удовлетворяло математиков. Такое определение алгоритма было допустимо, пока оно применялось к уже найденному алгоритму решения некоторой задачи. Положение существенно меняется, когда возникает алгоритмическая проблема, решение которой неизвестно. В этом случае надо либо доказать существование алгоритма, либо доказать его отсутствие. Если алгоритм решения задачи существует в принципе, то проще доказать его существование, чем его отсутствие. В первом случае достаточно и интуитивного, нестрогого определения алгоритма. Во втором случае необходимо иметь точное формальное определение алгоритма. В связи с существованием алгоритмически не решенных проблем усилия некоторых математиков-профессионалов были направлены на уточнение понятия алгоритма. Уточнение понятия алгоритма В истории математики известны случаи длительных и безуспешных попыток поиска алгоритмов решения тех или иных задач. Одним из таких примеров является Великая теорема Ферма (сформулированная французским математиком П. Ферма примерно в 1630 г.): для любого натурального числа
не имеет решений в целых положительных числах До настоящего времени не известен алгоритм, позволяющий для произвольного В алгоритмических проблемах речь обычно идет о существовании алгоритма для вычисления целочисленных значений функции, зависящей от целочисленного значения аргументов. Такие функции называют числовыми. Именно такой является функция, рассмотренная выше в теореме Ферма. Рассмотрение в алгоритмических проблемах именно числовых функций может быть легко обосновано. Действительно, в математике большинство рассматриваемых функций определены на континуальных (от лат. continuum – непрерывное) множествах, например на множестве точек некоторого отрезка. В то же время на практике любая величина может быть измерена с ограниченной точностью, причем это ограничение точности является принципиальным. И определяется оно конечной разрешающей способностью измерительных приборов, вследствие чего множество значений любой физической величины является счетным (конечным). Все эти значения измеряемой физической величины мы можем перенумеровать целыми числами и свести, таким образом, алгоритм вычисления любой имеющей практическое значение функции к алгоритму вычисления числовой функции. Числовые функции, значения которых можно вычислить посредством применения некоторого алгоритма, называются эффективно вычислимыми (или просто вычислимыми) функциями. Поскольку понятие алгоритма в этом определении остается интуитивным, то и понятие вычислимой функции оказывается интуитивным. Функции, определенные не для всех значений аргументов, называются частичными (не всюду определенными) функциями. Функция называется всюду определенной, если область ее определения, т.е. множество С.К. Клини (американский логик и математик) высказал гипотезу о том, что класс алгоритмически вычислимых частичных функций совпадает с классом всех частично рекурсивных функций. Ранее аналогичную гипотезу относительно всюду определенных вычислимых функций выдвинул А Чёрч (американский логик и математик). Гипотезы Чёрча и Клини обычно объединяют в виде тезиса Чёрча. Австрийский логик и математик К. Гёдель впервые описал класс всех рекурсивных функций как класс всех числовых функций, определяемых в некоторой формальной системе. На основании тезиса Чёрча вопрос о вычислимости функции, имеющей нестрогое интуитивное понятие, тем не менее равносилен вопросу о ее рекурсивности. Но понятие рекурсивности – строгое, поэтому в определенных случаях можно доказать, что если решающая задачу функция не является рекурсивной, то и алгоритм ее вычисления не может быть построен. Точное описание класса частично-рекурсивных функций совместно с тезисом Чёрча дает одно из возможных решений задачи об уточнении понятия алгоритма. Другое решение было найдено Постом (американский логик и математик) и Тьюрингом (английский математик) независимо друг от друга. Основная мысль их заключается в том, что процессы, описываемые алгоритмами, может выполнять соответствующая машина. Тьюрингом и Постом были описаны в точных математических терминах классы машин, на которых можно осуществить или имитировать практически все алгоритмические процессы, которые когда-либо описывались математиками. Такие машины сейчас называют машинами Тьюринга. Исследования показали, что класс функций, вычислимых на машинах Тьюринга, в точности совпадает с классом всех частично- рекурсивных функций. Тем самым было получено еще одно подтверждение тезиса Чёрча. Еще одним уточнением понятия алгоритма является понятие нормального алгоритма Маркова. В алгоритме Маркова исходные данные для вычислительного процесса записываются в виде слова – последовательности букв – символов. Вычислительный процесс сводится к преобразованию слов в соответствии с заданной программой. Оказалось, что класс функций, вычислимых с помощью нормальных алгоритмов, совпадает с классом частично-рекурсивных функций. Таким образом, все известные уточнения понятия алгоритма приводят к одному и тому же классу функций – частично-рекурсивным функциям. Это доказывает эквивалентность перечисленных уточнений.
4. 3. Частично - рекурсивные и общерекурсивные функции Простейшими эффективно вычислимыми функциями принято считать следующие три числовые функции: 1) 2) 3) Иногда данные функции называют соответственно: оператор сдвига, оператор аннулирования и оператор проектирования. Все эти три функции всюду определены и интуитивно вычислимы. Для построения частично-рекурсивных функций вводится три основных операции над простейшими функциями. Рассмотрим каждую из них. 1. Операция суперпозиции функций (составление из двух и более функций одной сложной функции, или, то же самое, что подстановка функции в функцию). Пусть даны функции
Говорят, что функция Очевидно, что если все функции Приведем примеры построения постоянных функций, принимающих значения 1 и 2, путем применения операции суперпозиции к простейшим числовым функциям
Так как простейшие функции являются всюду определенными и интуитивно вычислимыми, то, очевидно, функции 2. Операция (схема) примитивной рекурсии. Центральное место в построении частично-рекурсивных функций занимает операция, или так называемая схема примитивной рекурсии (СПР). Она задается следующим образом. Пусть имеются две функции
Нетрудно заметить, что функция Очевидно, что если функции
и т.д. Тем самым рекурсивно получаем значения функции В частности, если функция
Если же функция
где a – любое постоянное число. Ранее мы уже определили частично-рекурсивную функцию как функцию, которая получается за конечное число шагов из простейших функций Если функция частично-рекурсивна и всюду определена, то она называется общерекурсивной. Рассмотрим примеры приведения некоторых функций к примитивно рекурсивной форме с последующим вычислением значений этих функций. Пример. 1. Пусть функция
Очевидно, что в этой системе равенств По определению примитивной рекурсии Таким образом, исходную функцию
Вычислим Из первого равенства системы (5), изменяя x от 0 до 2, получим Из второго равенства системы (5) и из того, что
Представляет интерес вопрос определения аналитического вида функции
Проделав эту операцию 3. Операция минимизации (μ-оператор). Пусть дана некоторая функция Для функции
Получать функцию 1. Вычислим 2. Вычислим Этот процесс будет продолжаться до тех пор, пока не найдется значение Пример 2. Функцию
Таким образом,
Упражнения 1) Пусть функция
Привести эту функцию к СПР; используя полученную СПР, вычислить 2) Доказать общерекурсивность функции 3) Функцию 4) Представить функцию 5) Определить аналитический вид функции, если в соответствующей СПР
4. 4. Машины Тьюринга В понятии “машина Тьюринга” не следует искать некоторый материальный объект − вычислительное устройство в общепринятом смысле. Это абстрактная вычислительная машина, концепция которой возникла в середине 30-х годов XX века у английского математика А. Тьюринга в результате произведенного им анализа действий человека, осуществляющего в соответствии с заранее разработанным планом поиск численного решения той или иной задачи. Этот анализ стимулировался желанием разрешения назревшей к тому времени проблемы поиска точной математической формулировки понятия алгоритма, в качестве которого до работ Тьюринга использовалось интуитивное понятие. Тьюрингом был сформулирован тезис: всякая интуитивно вычислимая функция может быть реализована на соответствующей машине Тьюринга (МТ). В ходе развития теории алгоритмов появился целый ряд модификаций МТ, одна из наиболее распространенных версий которой была предложена Постом. Эту версию МТ обычно представляют в виде автоматически функционирующего устройства, включающего в себя следующие основные части: 1) внешний алфавит, т.е. конечное множество символов 2) внутренний алфавит машины 3) бесконечную в обе стороны ленту, представляющую собой внешнюю память машины. Эта лента разбита на клетки. В каждую клетку может быть записана только одна буква алфавита. Пустую клетку обозначают символом
Перед началом работы машины на ленту записывается исходная информация, а управляющая головка устанавливается, как правило, у крайнего левого символа входного слова с указанием начального состояния
1. После конечного числа тактов машина останавливается, переходя в стоп-состояние 2. Машина никогда не останавливается, т.е. не переходит в стоп-состояние В каждом такте МТ работает по функциональной схеме, которую условно можно представить так:
где В зависимости от того, какая буква на ленте обозревается (считывается) управляющей головкой (в приведенном выше случае буква 1) буквы внешнего алфавита 2) адреса внешней памяти п, л, н; 3) нового состояния машины Совокупность всех команд, которые могут формироваться в каждом такте, образует программу МТ. Эта программа представляется двумерной таблицей и называется Тьюринговой функциональной схемой (табл. 10).
Таблица 10
Для простоты изображения различных конфигураций, получаемых в результате работы МТ, будем в дальнейшем записывать информацию в виде слова, не изображая самой ленты и ее разбивки на клетки. Не будем также изображать управляющую головку, а будем записывать лишь состояние машины. Рассмотрим пример работы МТ, функциональная схема которой задана табл.10, а начальная конфигурация имеет вид a 0 a 2 a 2 a 0. q 1 Так как управляющей головкой обозревается буква a 2 и машина находится в состоянии q 1 то ею будет выработана команда a 2л q 1 которая находится в табл.10 на пересечении строки q 1 и столбца a 2 В соответствии с этой командой обозреваемая буква внешнего алфавита a 2 заменяется на ту же самую букву a 2 т.е. не изменяется, а состояние машины q 1 заменяется на q 1 т.е. тоже не изменяется, но происходит сдвиг управляющей головки влево вдоль ленты на одну клетку. В результате получим новую конфигурацию a 0 a 2 a 2 a 0. q 1 В этой конфигурации обозреваемая буква a 2 и состояние машины q 1 не изменились. Поэтому этой конфигурации соответствует та же команда, и мы сдвигаемся на одну клетку влево и получаем конфигурацию a 0 a 2 a 2 a 0. q 1 Пустой клетке a 0 и состоянию q 1 соответствует команда a 2л q 3 из табл.10. В соответствии с этой командой обозреваемая буква a 0 (пустая клетка) должна замениться на букву a 2, а состояние машины q 1 – на состояние q 3. С учетом этого и с учетом необходимости сдвига головки влево на одну клетку, получим конфигурацию a 0 a 2 a 2 a 2 a 0. q 3 Этой конфигурации соответствует команда a 0п q 0, выполняя которую, получим следующую конфигурацию: a 0 a 2 a 2 a 2 a 0. q 0 Так как в случае последней конфигурации машина попала в состояние q 0 (стоп-состояние), то процесс останавливается и слово a 2 a 2 a 2, заключенное между двумя пустыми клетками (слева a 0 и справа a 0), является результатом работы машины. Поскольку исходным словом было a 2 a 2, то произошло преобразование его машиной Тьюринга в слово a 2 a 2 a 2. Рассмотрим случай, когда процесс будет повторяться бесконечно долго. Пусть функциональная схема задается той же табл.10, а исходная конфигурация имеет вид a 0 a 1 a 2 a 2 a 0. q 1 Так как управляющей головкой обозревается буква a 2 а машина находится в состоянии q 1, то в соответствии с табл.10 машиной будет выработана команда a 2л q 1. Поэтому управляющая головка сдвинется влево на одну клетку, буква a 2 заменится на a 2 (т.е. останется без изменения), состояние q 1 также не изменится и следующая (вторая) конфигурация будет иметь вид a |
||||||||||||||||||||||||||||
|
Последнее изменение этой страницы: 2016-04-19; просмотров: 1378; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.10 (0.016 с.) |