- •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. Асимптотические представления и анализ алгоритмов.
8. Сущность метода математической индукции (ми).
Впервые был применен для строгих доказательств в 1575 году итальянским ученым Франческа Мауролико. В начале XVII столетия Пьер де Ферма усовершенствовал этот метод и назвал его методом бесконечного спуска. Понятие «математическая индукция» была введена де Морганом в начале XIX века.
Математическая индукция как метод проверки правильности программирования для компьютеров был применен американским ученым Робертом Флайдом в 1967г. Фактически же идея индуктивных утверждений в начальном виде появилась еще в 1946г., когда Х.Гольстайн и Джон фон Нейман определили понятие блок-схемы программы.
Рассмотрим ММИ на примере анализа утверждения о целом числе n. Пусть P(n)-некоторое утверждение о числе n.
P1(n)=”n(n+3)-четное число”
P2(n)=”если n≥10, то 2n≥n3”
Предположим что мы хотим доказать что P(n)справедливо для всех положительных чисел n.
Суть доказательства по ММИ состоит в следующем:
Доказать что P(1)-справедливо
Дать доказательство того, что если P(1),P(2),…P(n)-справедливо, то справедливо P(n+1).
В качестве примера приведем соотношение известное с древних времен
1=12, 1+3=22, 1+3+5=32, 1+3+5+7=42, 1+3+5+7+9=52, …(*)
В общем виде это отношение можно записать 1+3+…(2n-1)=n2 (**)
Докажем это равенство с помощью ММИ, т.е. докажем что P(n) справедливо для всех положительных n. В соответствии с ММИ имеем:
P(1)=1-верно 1=12
Если все утверждения P(1),P(2),…,P(n)-верны то выполняется соотношение(**). Добавим к обоим частям равенства (**) следующие слагаемые, которые необходимо проверить, получим 1+3+…+2n-1+2n+1=n2+2n+1=(n+1)2
Что показывает что P(n+1) также верно.
9. Построение доказательства по методу ми.
I1: [Доказать Р(1)] Положить k=1 и согласно п а) выдать доказательство утверждения Р(1).
I2: [k=n?] Если k=n то алгоритм заканчивает работу и требуемое доказательство выдано, если k≠n то:
I3: [доказать Р(k+1)] Согласно пункту б) выдать доказательство того, что если P(1), P(2), …P(k) верны, то что P(k+1) также верно и сделать соответствующий вывод.
I4: [увеличить k] k k+1 и перейти на шаг I2
Формула оценки времени выполнения алгоритма Евклида: Tn=(12*Ln(2)/п2)*Ln(n)
Блок схема алгоритма I(k=n)
(доказательство по методу математической индукции, которая заканчивается на шаге k=n)
Очевидно, что этот алгоритм дает док-во утверждения P(n) для любого заданного n и тем самым мы получаем обоснование техники док-ва по методу МИ.
10. Примеры доказательств с использованием метода ми.
Пусть задана последовательность чисел Фибоначчи
0,1,1,2,3,5,8,13,21,34,55,89…F(n)(каждое следующее число равно сумме двух предыдущих)
Обозначим - золотое сечение.
Доказать что Fn≤Фn-1 (*)
Доказательство: если n=1, то Fn=1
F1=Фn-1=Ф0=1 соотношение (*) выполняется для n=1.Тем самым выполнен пункт а) в построении доказательства по методу МИ.
Если n=2 F2=1<1,6(округленное)<Ф1=Ф2-1
Для n=2 соотношение (*) выполняется
Если P(1),P(2),…P(n) справедливы и n>1, то справедливы в частности P(n-1) и P(n). Получим P(n+1):
Fn-1 ≤Фn-2 , Fn ≤Фn-1
Fn+1 = Fn-1 +Fn≤Фn-2+Фn-1= Фn-2(1+Ф1) (**)
1+Ф=?.Докажем что 1+Ф=Ф2 (***)
Используя (***) и (**) получим F(n+1)≤Фn-2*Ф2=Фn, т.е. Fn+1≤Фn.Тем самым мы выполнили пункт б) .В данном доказательстве мы выполнили пункт б) двумя разными способами:
1.Непосредственно доказали P(n+1) при n=1,т.е. доказали P(2)
2.Использовали предположение индукции при n>1 здесь мы были вынуждены так поступить, т.к. при n=1 ссылка на P(0)=P(n-1) была бы не законной, т.к. мы начинали доказательство с n=1, а не с n=0.