- •1. Определение алгоритма и способы их записей.
- •2. Принятые обозначения при описании алгоритмов.
- •3. Пошаговое описание алгоритмов.
- •4. Описание алгоритмов в виде блок-схем.
- •5. Свойства алгоритмов.
- •6. Критерии эффективности и сложность алгоритмов.
- •7. Классификация задач по степени сложности.
- •8. Сущность метода математической индукции (ми).
- •9. Построение доказательства по методу ми.
- •10. Примеры доказательств с использованием метода ми.
- •11. Использование метода ми для исследования алгоритмов (на примере обобщенного алгоритма Евклида).
- •12. Недетерминированные и детерминированные алгоритмы.
- •13. Разделы математической логики, представление операций булевой логики через множества и их отображение с помощью диаграмм Эйлера-Венна.
- •14. Объединение множеств и переход от предметной переменной х к логическим переменным х1 и х2 .
- •15. Пересечение множеств, тавтология, противоречие, дополнение и области взаимодействия двух множеств на диаграмме Эйлера-Венна.
- •16. Таблицы истинности для дизъюнкции и конъюнкции.
- •17. Операции стрелка Пирса и штрих Шеффера.
- •18. Операции разности и импликации.
- •19. Операции симметрической разности и эквивалентности.
- •20. Формы представления булевых функций (сднф, скнф, спнф).
- •21. Двойственность в булевой логике.
- •22. Различия отображения логических функций в сднф. Скнф и спнф. Переход из сднф в спнф.
- •23. Минимальные нормальные формы логических функций.
- •24. Принцип суперпозиции в булевой логике и приоритеты логических операций.
- •25. Классы элементарных логических функций.
- •26. Законы логики Буля.
- •27. Применение закона поглощения для нескольких переменных.
- •28. Аксиоматический подход к доказательству логических выражений в булевой
- •29. Доказательство логических выражений с помощью диаграмм Эйлера-Венна.
- •30. Доказательство логических выражений с использованием таблиц истинности.
- •31. Способы доказательства логических выражений с использованием специальных приемов.
- •32. Логика высказываний и операции логики высказываний.
- •33. Таблицы истинности операций логики высказываний.
- •34. Различия логики Буля и логики высказываний.
- •35. Метаязык логики высказываний и переход от импликативной формы к высказываниям на метаязыке.
- •36. Аксиомы, противоречия и тавтологии в логике высказываний.
- •37. Конструктивный подход к доказательству логических выражений в логике высказываний.
- •38. Минимальная нормальная форма, минимальное и трансверсальные покрытия в логике высказываний.
- •39. Доказательство логических высказываний с помощью метода резолюций.
- •40. Логика предикатов.
- •41. Минимизация логических выражений методом Куайна (Квайна).
- •42. Минимизация логических выражений в логике Буля путем склеивания в сднф и скнф. Показать, в чем различие склеивания в этих двух формах.
- •43. Асимптотические представления и анализ алгоритмов.
1. Определение алгоритма и способы их записей.
2. Принятые обозначения при описании алгоритмов.
3. Пошаговое описание алгоритмов.
4. Описание алгоритмов в виде блок-схем.
5. Свойства алгоритмов.
6. Критерии эффективности и сложность алгоритмов.
7. Классификация задач по степени сложности.
8. Сущность метода математической индукции (МИ).
9. Построение доказательства по методу МИ.
10. Примеры доказательств с использованием метода МИ.
11. Использование метода МИ для исследования алгоритмов.
12. Недетерминированные и детерминированные алгоритмы.
13. Разделы математической логики, представление операций булевой логики через множества и их отображение с помощью диаграмм Эйлера-Венна.
14. Объединение множеств и переход от предметной переем. х к логич.перем. Х1 и Х2 .
15. Пересечение множеств, … и обл. взаимод. двух мн. на диаг. Эйлера-Венна.
16. Таблицы истинности для дизъюнкции и конъюнкции.
17. Операции стрелка Пирса и штрих Шеффера.
18. Операции разности и импликации.
19. Операции симметрической разности и эквивалентности.
20. Формы представления булевых функций (СДНФ, СКНФ, СПНФ).
21. Двойственность в булевой логике.
22. Различия отображения логических функций в СДНФ. СКНФ и СПНФ.
23. Минимальные нормальные формы логических функций.
24. Принцип суперпозиции в булевой логике и приоритеты логических операций.
25. Классы элементарных логических функций.
26. Законы логики Буля.
27. Применение закона поглощения для нескольких переменных.
28. Аксиоматический подход к доказательству логических выражений в булевой
29. Доказательство логических выражений с помощью диаграмм Эйлера-Венна.
30. Доказательство логических выражений с использованием таблиц истинности.
31. Способы доказ.логических выражений с использованием спец. приемов.
32. Логика высказываний и операции логики высказываний.
33. Таблицы истинности операций логики высказываний.
34. Различия логики Буля и логики высказываний.
35. Метаязык логики высказываний ….
36. Аксиомы, противоречия и тавтологии в логике высказываний.
37. Конструктивный подход к доказательству логических выражений в логике высказываний.
38. Минимальная нормальная форма, мин. и трансв. покр. в логике высказываний.
39. Доказательство логических высказываний с помощью метода резолюций.
40. Логика предикатов.
41. Минимизация логических выражений методом Куайна (Квайна).
42. Минимизация логических выражений в логике Буля путем склеивания в СДНФ и СКНФ. Показать, в чем различие склеивания в этих двух формах.
43. Асимптотические представления и анализ алгоритмов.
1. Определение алгоритма и способы их записей.
Алгоритм - точное и понятное предписание исполнителю совершить последовательность действий, направленных на решение поставленной задачи.
Название «алгоритм» произошло от латинской формы имени среднеазиатского математика Аль - Хорезми - Algorithmi. В средние века алгоритм трансформировался в алгоритм и стал обозначать 4 арифметические действия «+», «-», умножить, разделить. Алгоритмизация задач является одним из самых важных этапов ее решения на ЭВМ.
С возникновением науки кибернетики в 40-х годах 20в. под алгоритмом стали понимать точное описание последовательности деятельности исполнителя любого компьютера направленных на решение поставленной задачи.
Алгоритм - одно из основных понятий информатики и математики.
Исполнитель алгоритма - это некоторая абстрактная или реальная (техническая, биологическая или биотехническая) система, способная выполнить действия, предписываемые алгоритмом.
Форма записи алгоритма:
На практике наиболее распространены следующие формы представления алгоритмов:
1. Словесный. Словами могут быть представлены достаточно просто только самые простые алгоритмы (Примеры приготовления лекарств, блюд, пдд и др.)
2. Пошаговый. С его помощью в результате выделения последовательности действий можно описать алгоритмы арабских инфор. структур, алгоритмы решения задания, упражнений контроля, задач проектирования и моделирования, вычислительных и оптимизационных задач.
3. Математический. В виде последовательности формул, которые необходимо вычислить в процессе решения задачи. Последовательности формул иногда объединяются в блоки так же иногда используются пошаговые описания последовательности выполнения блоков, которая в общем случае может быть не просто линейной, но и иметь также разветвления в зависимости от проверок некоторых условий, а так же может иметь циклы.
4.Описания алгоритма в виде блок схем. Применяется для повышенной наглядности и лучшей обозримости алгоритмов записанных пошаговым или математическим способом. Этот способ помогает легче составить и отладить программу с помощью которой алгоритм будет реализован на ЭВМ.
2. Принятые обозначения при описании алгоритмов.
- операция замещения (подстановка, присваивание);
m n – значит m замещено текущим значением n ;
n n+1 – увеличение n на 1(n заменить на n+1);
n m r – значениям n и m присвоить r;
n m – обмен значениями переменных, фактически выполняются через некоторую промежуточную переменную (t n, n m, m t)
n = m? – операция сравнения (вместо равенства может быть любой другой знак операции отношения , >, <, , )
V[j] – j - элемент из множества V , V , V ,…, V ,…, V (от одномерного массива)
a [i,j] – Элемент на пересечении i-ой строки и j-ой столбца матрицы А (двумерного массива)
3. Пошаговое описание алгоритмов.
Каждый шаг алгоритма записывается в виде некоторого идентификатора, первая позиция которого может быть произвольной. Буква латинского: E, K, L, M, N и т.д. или буквы русского алфавита, чаще всего: Ш(шаг). 2-ой и следующие позиции отражают номера шагов в алгоритме. Ш , Ш , Ш … Е , Е , Е …
Иногда применяют цифровое обозначение: 1, 2, … и т.д. Описание каждого шага начинается с резюмирующей фразы, которая кротко обозначает суть каждого шага. Резюмирующую фразу (Р.Ф.) заключают в квадратные скобки [Резюмирующую фразу].
После Р.Ф. следует описание словами тех действий, которые должны быть выполнены на данном шаге или тех решений, которые должны быть выполнены. Здесь допустимы комментарии, которые заключают в (…). Комментарии позволяют понять цель и суть данного шага, указывают на некоторую особенность перемещений, изменяющихся на данном шаге и т.д.
Рассмотрим пример:
Задача:
Даны 2 целых положительных m и n. Найти их НОД. Рассмотрим алгоритм Евклида записанный в виде шагов:
Ш1. {Нахождение остатка} Разделим m на n и пусть остаток = r.
(у нас получится 0 ≤ r ≤ n)
Ш2.{Остаток 0?} Если r = 0,то алгоритм закончен и n - искомое число.
Ш3.{Замещение} Положим m←n; n←r и вернемся к Ш1.
Для того, чтобы проверить можно ли использовать алгоритм в работе необходимо испытать его в ручную или с помощью программы на ЭВМ. Это наиболее простой и рациональный способ, чтобы понять алгоритм.