Теория алгоритмов. Основные результаты, Программы как данные - Рекурсивные функции

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

Программы как данные

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

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

Естественное и наиболее привычное для нас представление программ - Текст (последовательность символов некоторого алфавита), но в качественной теории алгоритмов выбор типа данных - явно, второстепенная задача. Для наших целей подойдет любой Универсальный тип данных U, т. е. тип данных такой, чтодля любого другого типа T найдется подходящее эффективное кодирование значений типа T значениями типа U. Действительно, в качестве универсального типа можно выбрать Текст, Т. к. значениям любого типа можно поставить в соответствие текст их записи в некоторой фиксированной системе обозначений. В последующих лекциях мы познакомимся с моделями вычислений, в которых именно текст является основным типом данных.

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

Похожие статьи




Теория алгоритмов. Основные результаты, Программы как данные - Рекурсивные функции

Предыдущая | Следующая