- •Лекция № 4
- •4. Есть специальные разделы теоретической информатики, занимающиеся случайными процессами (рандомизация).
- •5. Есть широкий круг вопросов, связанных с распределенными вычислениями.
- •Рассмотрим связь с другими науками
- •Выводы:
- •1.1.2 Функциональная вычислительная модель
- •Современные алгоритмы и теория связи
- •011 011 011 011 011 011 011 011 Имеет короткое представление (011)8, , содержит меньше информации, чем слово 0101101000101101001110110010
Рассмотрим связь с другими науками
Философия –
Каково происхождение знаний?
Как знания ведут к действиям?
Можно ли использовать формальные правила для вывода правильных заключений?
“В человеческом понимании нет ничего, что не появилось бы прежде всего в ощущениях/” (Френсис Бекон начало 17 века.)
Дэвид Юм( середина 18 века) предложил метод, известный теперь как принцип индукции .Суть в том, что общие правила вырабатываются путем изучения повторяющихся ассоциаций между элементами, которые рассматриваются в этих правилах.
Что из этого получилось у математиков и компьютерщиков?
С точки зрения математики (смотри теорему Геделя о неполноте)
Замечание Принцип индукции:
1 шаг. Идет доказательство для базиса P1-верно.
2 шаг. Теперь полагаем, что это верно для Pn-1.
3 шаг. Используем предположение 2 , чтобы завершить доказательство Pn.
Математическая индукция является удобным инструментом для решения рекуррентных соотношений. Рекуррентные соотношения – это использование метода сведения данной задачи к задаче с меньшим числом объектов.
В программировании мы часто используем рекурсию, то есть способ описания процессов через самих себя. И программа проверяет, является ли входной аргумент одним из базовых вариантов. Если нет, то переходим к решению более общего случая, разбивая его на части и вызывая для каждой ту же самую подпрограмму. То есть рекурсия – это та же математическая индукция. И там, и там имеются общие и граничные условия, причем общие условия разбивают задачу на все более и более мелкие подзадачи. Окончание рекурсии (выход из рекурсии) происходит при выполнении граничного условия. Решая такие задачи, надо попытаться рассмотреть сначала небольшие значения, может быть, составить таблицу значений для некоторого небольшого числа переменных. Затем попытаться представить итоговую аналитическую формулу.
Аристотель предположил, что цель заставляет нас перейти от знания к действиям. Когда нам что-либо надо, то мы ищем средства достижения цели. Если их несколько, то выбираем самое простое и наилучшее.
И этот алгоритм Аристотеля был реализован через 2300 лет Ньюэллом и Саймоном в программе GPS. (General Problem Solver) Теперь это называется регрессивной системой планирования. (не путать с навигатором).
Идея: программа раскладывала проблему на более простые составные части . Умеет вести доказательства теорем, играть в шахматы и ханойскую башню.
Планирование – это процесс выработки последовательности действий, позволяющих достичь цели.
По сути философы сформулировали наиболее важные идеи информатики и искусственного интеллекта, но чтобы эти идеи стали формальной наукой нужны были усилия математиков.
Математика-
Каковы формальные правила формирования правильных заключений?
Как определить пределы вычислимости?
Как проводить рассуждения с использованием недостоверной информации?
Это связано с развитием трех фундаментальных областей –
логика, теория вычислений, теория вероятности.
Логика – это исчисления высказываний – (Джорж Буль), исчисление предикатов 1 порядка (Готлиб Фреге), теория ссылок, которая помогает связать логические объекты с объектами реального мира (Альфред Тарский, который дал точное понятие интерпретации ).
Мы знаем, что первым нетривиальным алгоритмом считается алгоритм вычисления НОД, предложенный Евклидом. Потом предприняли попытки формализовать общие принципы проведения математических рассуждений как логического вывода. Гильберт поставил вопрос, есть ли фундаментальные пределы, ограничивающие мощь эффективных процедур доказательства. Гедель в 1930г показал, что существует эффективная процедура доказательства любого истинного высказывания в логике первого порядка, но при этом логика первого порядка не позволяет выразить принцип математической индукции, необходимый для представления натуральных чисел. (Теорема о полноте Геделя)
В 1931 г Гедель показал, что действительно существуют реальные пределы вычислимости. (теорема Геделя о неполноте). Этот фундаментальный результат можно рассматривать как демонстрацию того, что имеются некоторые функции от целых чисел, которые не могут быть представлены с помощью какого-либо алгоритма, то есть они не могут быть вычислены !
Это побудило Тьюринга попытаться точно охарактеризовать, какие функции способны быть вычисленными. Ответ на этот вопрос дает тезис Черча – Тьюринга, который говорит, что машина Тьюринга способна вычислить любую вычислимую функцию. Тьюринг также показал, что существуют некоторые функции, которые не могут быть вычислены машиной Тьюринга. Например, ни одна машина не способна определить, возвратит ли данная конкретная программа ответ на конкретные входные данные или будет работать бесконечно.
Еще одно важное понятие – это понятие неразрешимости. Задача называется неразрешимой, если время, требуемое для решения отдельных экземпляров этой задачи, растет экспоненциально с увеличением размеров этих экземпляров. Экспоненциальный рост сложности означает, что даже экземпляры задачи умеренной величины не могут быть решены за какое-либо приемлемое время. Поэтому приходится разбивать задачу на разрешимые подзадачи, а не пытаться решить неразрешимую задачу. Надо попытаться перейти к отдельным подзадачам, имеющим полиномиальный рост сложности.
Как можно распознать неразрешимую проблему?
Один из методов – это теория NP-полноты.
Существуют большие классы задач комбинаторного поиска, которые являются NP-полными. Существует вероятность того, что любой класс задач, к которому сводится этот класс NP - полных задач, являются неразрешимыми.( хотя окончательно это пока не доказано)
Лекция 11
И наконец, теория вероятностей. Она помогает нам использовать недостоверные результаты и неполные теории. Томас Байес предложил правило обновления вероятностей с учетом новых фактов. Возникшее на его основе научное направление назвали байесовым анализом.
Вычислительная техника решает вопрос:
каким образом можно создать эффективный компьютер?
Современным программистам предлагаются различные парадигмы программирования
Парадигмы - это модели вычислений, то есть способы структурирования информации, организации вычислений и данных.
Для описания процесса вычислений используются четыре основных типа таких моделей: процедурная, функциональная, логическая, объектно-ориентированная. Это говорит о том, что в основу вычислительного процесса могут быть положены разные математические формализмы (вычислительные модели).
