Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
теория алгоритмов лекция 1.docx
Скачиваний:
35
Добавлен:
03.03.2016
Размер:
42.51 Кб
Скачать

1.3. Уточнение понятия алгоритма

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

Ярчайший пример таких поисков: 10-ая проблема Гилберта.

В 1900 году на втором международном математическом конгрессе в Париже немецкий математик Давид Гилберт огласил список в 23 трудных проблемы, на важность которых он обратил внимание. Среди них была и так называемая 10-ая проблема Гильберта: найти алгоритм позволяющий для любого диофантова уравнения выяснить имеет ли оно целочисленное решение. Вот это уравнение Р = 0, где Р – любой многочлен с целочисленными коэффициентами. Например:

х2+ у2- 2хz= 0

10х5+ 7х2+ 5 = 0

В общем случае рассматривают уравнения с любым числом неизвестных. Они могут иметь целочисленные решения, могут не иметь.

Для частного случая уравнения с одним неизвестным есть алгоритм нахождения целочисленных решений :

Рn(х) = а0хn+ а1хn-1+…+аn= 0 аi Z

  1. Выписать делители свободного члена аn :d1d2…dk.

  2. Вычислить значение Рn(di)

  3. Если существует iтакое, что Рn(di) = 0, тоdi– целочисленное решение. Если для любогоiРn(di) ≠ 0, то целочисленных решений нет.

Поиск решения 10-ой проблемы Гильберта длился около 70 лет. В 1968 г. молодой математик Ю. Матиясевич доказал, что нет алгоритма дающего решения поставленной проблемы.

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

Положение существенно меняется, когда возникает алгоритмическая проблема, решение которой не найдено, и требуется узнать, а есть ли это решение?

То есть надо либо доказать существование алгоритма, либо доказать его отсутствие.

В первом случае достаточно интуитивного определения алгоритма.

Во втором случае: доказать не существование алгоритма –нужно точно знать, что такое алгоритм.

До 30-х лет прошлого века такого точного определения не существовало. Поэтому выработка такого определения была важнейшей проблемой математики 20 века. Пришлось преодолеть много трудностей.

I. Определение должно правильно отражать сущность интуитивного определения алгоритма.

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

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

Это и есть современное понятие алгоритма.

Можно выделить три основных направления

Iнаправление: Уточнение понятия эффективно вычислимой функции. А Черч, К. Гедель, С. Клини смогли выделить так называемый класс частично рекурсивных функций имеющий строгое математическое понятие. Анализ этих идей привел к гипотезе: класс эффективно вычислимых функций совпадает с классом частично рекурсивных функций.

IIнаправление связано с машинной математикой. Здесь рассматриваются процессы осуществляемые в машинах. Впервые эта идея была предложена Тьюрингом. Он предложил самую простую концепцию вычислительной машины (1937 г.) При этом он всего лишь исходил из общей идеи работы машины, в соответствии с неким строгим предписанием.

IIIнаправление связано с понятием нормальных алгоритмов Маркова.