
- •1.Эффективность вычислений. Основные понятия и определения.
- •2. Алгоритм. Основные понятия и определения.
- •3. Семантическая теория программ.
- •4. Схемы программ.
- •5. Способы задания алгоритмов.
- •6. Универсальные модели алгоритмов.
- •7. Понятийные средства спецификации программ.
- •8. Основные требования к спецификации программ.
- •9. Спецификации в жизненном цикле программ.
- •10. Методы спецификации программ.
- •1. Табличные средства.
- •2. Равенства и подстановки.
- •3. Логические средства и аксиоматические описания.
- •4. Графовые средства: графы, сети, диаграммы.
- •5. Конечно-автоматные диаграммы.
- •6 Синтаксические диаграммы.
- •7. Сети Петри.
- •11. Графические методы спецификации.
- •12.Автоматное преобразование информации
- •13. Основные понятия и определения теории конечных автоматов
- •14.Способы задания конечных автоматов.
- •15. Конечный автомат как модель «реагирующей системы».
- •16. Конечный автомат как модель протокола передачи сообщений в сетях.
- •17. Конечный автомат как модель взаимодействия процессов.
- •18. Автоматы Мура и Милли.
- •19. Примеры конечных автоматов.
- •20. Программная и аппаратная реализация конечных автоматов.
- •21. Сети Петри: принципы построения.
- •22. Теория комплектов.
- •Структура сети Петри.
- •24. Графы сети Петри.
- •25.Аналитическое и графическое представление сети Петри.
- •26. Маркировка сети Петри.
- •27.Выполнение сети Петри.
- •28. Пространство состояний сети Петри.
- •31. Сети Петри как аппарат для моделирования систем
- •32. Одновременность и конфликт сети Петри.
- •33. Моделирование аппаратного обеспечения сетями Петри
- •34.Моделирование программного обеспечения сетями Петри
- •35.Параллелизм в сетях Петри.
- •36,48 Моделирование дискретных процессов сетями Петри.
- •37. Безопасность сетей Петри
- •38.Ограниченность сети Петри
- •39.Тупики в сетях Петри.
- •40. Достижимость в сети Петри. См. Билет 29
- •41. Дерево достижимости в сетях
- •42. Анализ сетей Петри
- •47. Матричное представление сетей Петри.
- •50. Недостатки классических сетей Петри.
- •1.Эффективность вычислений. Основные понятия и определения. 1
1.Эффективность вычислений. Основные понятия и определения.
Эффективная вычислимость
Функция называется эффективно вычислимой, если существует алгоритм, который позволяет вычислять эту функцию.
Определение Черча:
Функция вычислима, если существует такой алгоритм, который по входному набору переменных вычисляет значение функции, если этот набор переменных принадлежит области определения функции или выдает сообщение, что входной набор не принадлежит к области определения функции.
Функция называется полувычислимой, если при задании входного набора, который принадлежит области определения функции, алгоритм выдает результат, а при задании входного набора непринадлежащего области определения функции, алгоритм не заканчивает свою работу, программа зацикливается.
Теорию вычислимости разработал Алонзо Черч. Его идея заключалась в том. Что необходимо в начале выделить элементарные вычислимые функции, которые являются «интуитивно вычислимыми», и на их основе создать базис; далее предложить средства получения из этих элементарных интуитивно вычислимых функций более сложных функций, которые тоже являются вычислимыми за конечное число шагов.
По мысли Черча такими элементарными вычислимыми функциями могут быть примитивно-рекурсивные функции, а именно функция сдвига S(x) = x + 1, функция обнуления 0(x) = 0 и функция проектирования Imn(x) = xm. I(x1, x2,…,xm,…,xn) = xm
Для получения из одних вычислимых функций других вычислимых функции были предложены операторы суперпозиции, т.е. подстановка в функцию функции вместо переменных.
Вторым оператором, который позволяет вычислять вычислимые функции является оператор примитивной рекурсии.
Рассмотрим пример задания числового ряда Фибаначи с использованием оператора примитивной рекурсии:
Ряд Фибаначи:
F(0) = 1; F(1) = 1;
F(n) = F(n-1) + F(n-2).
F(n+1) = F(n) + F(n-1)
F(n+2) = F(n) + F(n + 1)
Т.к. оператор суперпозиции и оператор примитивной рекурсии определены всей числовой оси, то получаемые с их помощью функции являются примитивно рекурсивными и полностью определенными.
Для получений рекурсивных функций из других функций применяется так же оператор минимизации.
Оператор минимизации использует перебор и поэтому при использовании оператора минимизации получаются не полностью определенные функции, поэтому такие функции называются частично рекурсивными.
Функция f(x1, x2,…,xn) называется общерекурсивной, если она частично рекурсивна и всюду определена.
2. Алгоритм. Основные понятия и определения.
Существует интуитивное понятие алгоритма, которое заключается в том, что алгоритм это формальное предписание, которое определяет совокупность операций и порядок их выполнения для решения всех задач какого-либо типа.
Алгоритм обладает следующими свойствами:
1. Массовость
Алгоритм предназначен для решения массовых задач с различными исходными данными. Поэтому таблица умножения не является алгоритмом, а умножение многозначных чисел в десятичной системе является алгоритмом.
2. Элементарность шагов алгоритма для исполнителя
Это означает, что если алгоритм является программой для ЭВМ, то она должна использовать только те команды, которые имеются в списке машинных команд, если алгоритм предназначен для человека, то каждый шаг алгоритма должен быть элементарным для этого человека.
3. Дискретность алгоритма
Алгоритм представляет из себя последовательность дискретных шагов, предназначенных для решения конкретной задачи.
4. Детерминированность
Детерминированность алгоритма означает, что при конкретном наборе исходных данных всегда должны получаться одни и те же результаты.
5. Результативность
Алгоритм должен приводить к решению за определенное число шагов.
Данные свойства алгоритма дают возможность интуитивного определения алгоритма.
Интуитивное определение алгоритма эффективно работает, когда речь идет об уже найденном алгоритме решения задачи.
Положение существенно меняется, если возникает проблема решения, которое не найдено и требуется установить, существует ли алгоритм для решения данной задачи.
В этом случае надо доказать либо существование искомого алгоритма либо его отсутствие.
Существование алгоритма решения массовой задачи можно установить путем фактического описания процесса, решающего данную задачу. В этом случае достаточно интуитивного понятия алгоритма, чтобы удостовериться, что описанный процесс – есть алгоритм.
Для этого достаточно определить выполняются ли все перечисленные свойства, которыми должен обладать алгоритм.
Доказать отсутствие решения алгоритмическим путем данной задачи невозможно. Для этого необходимо точное формальное определение алгоритма.
Первую универсальную модель алгоритма удалось получить Алонзо Черчу.
Тезис Черча гласит, что функция вычислима, если ее можно представить в виде рекурсивной функции.
Черчем было доказано, что все вычислимые функции представляют из себя общерекурсивные функции.
Тезис Черча нельзя ни доказать, ни опровергнуть, т.к. понятие вычислимой функции точно не определено.
В силу тезиса Черча вопрос о вычислимости функции равносилен вопросу о ее рекурсивности.
Понятие рекурсивной функции – это строгое математическое понятие. В силу этого можно строго доказать, что решающая конкретную задачу, функция не может быть рекурсивной.
Отсюда следует вывод, что не существует и алгоритма решения этой задачи.
Именно этим путем Черч доказал неразрешимость некоторых алгоритмических проблем логики предикатов.
Другим направлением развития универсальной модели алгоритмов следует считать машину Тьюринга.
Алан Тьюринг разработал модель универсальной вычислительной машины в 1936 году, когда никаких ЭВМ еще не было создано.
Машина Тьюринга не является конструктивным воплощением некоторой вычислительной машины, а является математической моделью универсального вычислителя.
С помощью машины Тьюринга можно моделировать любой вычислительный процесс. Существует тезис Тьюринга, который утверждает, что любой алгоритмический процесс может быть реализован на машине Тьюринга.
Тезис Тьюринга так же как и тезис Черча, нельзя ни доказать, ни опровергнуть, т.к. понятие вычислимой функции не имеет строгого определении.
Впоследствии оказалось, что класс задач, который решают рекурсивные функции и класс задач, который можно решить на машине Тьюринга – совпадают.
Третьим направлением разработки универсальных моделей алгоритмов является нормальные алгоритмы А.А. Маркова.
Академик Марков предложил универсальную модель алгоритмов, которая состоит в использовании обработки цепочки символов при помощи некоторых подстановок.
Т.к. любое вычисление можно свести к преобразованию символов, то универсальная модель Маркова представляет из себя математическую модель любого вычислительного процесса.
В последствии оказалось, что все 3 универсальные модели алгоритмов сводимы друг к другу и равноценны, поэтому можно считать, что они решают одни и те же задачи.