
- •Тема 10. ЭЛЕМЕНТЫ ТЕОРИИ И НЕКОТОРЫЕ ПРОБЛЕМЫ
- •Алгоритм как результат решения задачи
- •Интуитивно алгоритм определяется – как последовательность действий,
- •Математическое определение А.(Колмогоров А.Н.)
- •Зачем нужны такие строгости в определении?
- •Определение алгоритма для компьютерных применений:
- •Требование упорядоченности
- •Требование выполнимости этапов
- •Недвусмысленность
- •Требование конечности процесса
- •Способы описания алгоритмов
- •Примитивы
- •Примитивы
- •способ описания синтаксиса языков программирования. Нормальная нотация Бекуса
- •Расширенные Бэкуса – Наура Формы (РБНФ)
- •Каждому определению РБНФ соответствует синтаксическая диаграмма
- •Здесь мы познакомились лишь с основными понятиями описания синтаксиса ЯП.
- •Представление алгоритма во время его разработки
- •В 1950-60гг. самым совершенным средством была блок схема
- •Псевдокоды
- •Создание алгоритмов или
- •Что значит создать алгоритм?
- •Расплывчато, фазы решения задач, предложенные в книге математика Д. Пойа «Как решать задачу»
- •Неупорядоченность процесса решения задач является основной причиной трудностей, связанных с разработкой систематического подхода
- •Математик А. Пуанкаре так же описал этот феномен. Он считал, что творческий процесс
- •Как же все таки надо действовать при решении задачи?
- •Вычислимые и невычислимые функции теорема Геделя
- •Результат Черча
- •В то время еще не было сколь нибудь значимых компьютеров, а усилия ученых
- •Алгоритмические проблемы
- •Проблема универсального языка программирования
- •Универсальный язык программирования
- •Описание универсального языка программирования
- •Даные
- •Операторы
- •Операторы
- •Как программировать на этом языке
- •Примеры программирования
- •Дальнейшее развитие
- •Проблема
- •Модели универсальных ВМ
- •Машины Тьюринга
- •Описание МТ
- •Команда МТ(qi aj qnamR)
- •Пример программы
- •Работа программы
- •Аналогично, можно запрограммировать любую
- •Новое поколение ВМ
- •Вычислительная мощность ВМ Функции и их вычисление
- •Виды функций
- •Значение МТ для современной теории вычислительных систем
- •Ограниченность ВМ и проблема Искусственного Интеллекта
- •Сложность задач и алгоритмов с точки зрения ВМ оценивается затратами на вычисление а
- •Оценки сложности
- •Сравнение полиномиальных и экспоненциальных
- •Классификация задач по сложности
Виды функций
Таблицы, связывающие вход с выходом – наиболее простой набор функций, но слишком ограниченный
Алгебраические функции +, -, Sin, …
Алгоритмы решения уравнений, суммирования рядов, итерационные процессы,….
По мере усложнения функций необходимо применять все более сложные алгоритмы и искать более мощные методы их описания
Набор всевозможных программ компьютера предоставляет своеобразный набор вычислимых функций, т.к каждая программа по значению на входе дает определенный результат на выходе
07/02/19 |
51 |
|
Вычислимость функций |
|
Поразительным результатом математических |
|
исследований (Гедель) является обнаружение |
|
существования такого класса функций, для которых |
|
не существует алгоритмического вычисления. Такие |
|
функции получили название невычислимых. |
Понимание границы между вычислимыми и не вычислимыми функциями равнозначно пониманию ограничений свойственным любым компьютерам в принципе.
Если функция вычислима то ее можно вычислить с помощью некоторой МТ и наоборот.
Если удается доказать, что с помощью МТ ее нельзя вычислить, то она невычислима в принципе.
07/02/19 |
52 |
Значение МТ для современной теории вычислительных систем
состоит в предположении, что все вычислимые функции
могут быть описаны в виде программы для некоторой МТ
Это является содержанием Тезиса Черча-Тьюринга.
Эта гипотеза пока не доказана в виде теоремы, однако имеется много фактов в подтверждении ее справедливости.
Следствие ТЧ-Т: вычислительная мощность МТ выше, чем у любой возможной ВМ.
То есть МТ представляет теоретический предел
возможностей ВМ существующих на практике.
07/02/19 |
53 |
Ограниченность ВМ и проблема Искусственного Интеллекта
Наличие невычислимых функций указывает на ограниченность ВМ при решении возникающих задач
ВМ могут решать только задачи, имеющие алгоритмическое решения.
Проблема создания искусственного интеллекта
известна как создание машин, способных общаться с окружающей средой посредством датчиков и инструментов без вмешательства человека , т. е. здраво мыслить и действовать
Т.о. проблема возможности создания искусственного интеллекта сводится к проблеме – воплощает ли естественный интеллект нечто большее, нежели просто выполнение только алгоритмических процессов.
07/02/19 |
54 |
Сложность задач и алгоритмов с точки зрения ВМ оценивается затратами на вычисление а не на разработку алгоритма
Всегда ли принципиально разрешимая задача имеет практическое решение?
Под размерностью задачи обработки данных понимают число исходных данных в ее формальном описании (далее n). Трудоемкость растет с увеличением количества данных.
Временной сложностью алгоритма называется время, затрачиваемое алгоритмом как функция размерности задачи, которую он решает Tn=f(n)
Емкостной сложностью алгоритма называется объем памяти, требуемый для его реализации как функция размерности
Бn=f(n)
07/02/19 |
55 |
Оценки сложности
Поведение временной (емкостной) сложности при увеличении размерности до бесконечности называется асимптотической
сложностью
Если для времени выполнения алгоритма решения задачи размерности n можно получить оценку
Tn C f(n) (C –константа)
то говорят, что временная асимптотическая сложность алгоритма и соответствующей задачи есть O(f(n))
Мы уже встречались с оценками
O(log2n) – логарифмическая
O(n/2), O(n2), O(np) – полиномиальная
Возможна O(en) - экспоненциальная |
56 |
07/02/19 |

Сравнение полиномиальных и экспоненциальных
сложность |
n=10 |
n=20 |
n=30 |
n |
0.00001c |
0.00002c |
0.00003c |
n2 |
0.0001c |
0.0002c |
0.0009c |
n3 |
0.001c |
0.008c |
0.027c |
n5 |
0.1c |
3.2c |
24.3c |
2n |
0.001c |
1c |
17.9мин |
3n |
0.059c |
58мин |
6.5лет!!! |
07/02/19 |
57 |
Классификация задач по сложности
Задача(алгоритм) считается тем более сложной, чем больше время тратит на ее расчет ВМ
Так задача линейного поиска считается более сложной O(n/2) чем поиск двоичный O(log2n)
Алгоритм сортировки пузырьком O(n2) более сложен, чем алгоритм слияния O(n log2n), хотя затраты на программирование наоборот
Алгоритм метода ветвей и границ для задачи о рюкзаке O(2n) еще боле
сложный чем сортировка. Т.е. эта задача практически неразрешима при n>40 (пока не найден более эффективный алгоритм, если он найден, то сложность задачи понижается)
Класс полиномиальных задач обозначается P
Класс недетерминированных полиномиальных НП для которых почти
доказана полиномиальность (комивояжера, задачи прямого перебора)
07/02/19 |
58 |