Слайд 1Лекция 3
Формализация понятия алгоритма.
Булевские функции
Слайд 2нестрогое определение
алгоритм – точно определенная последовательность действий, обеспечивающая решение задач
определенного класса для указанного класса исходных данных.
Слайд 3Формализация понятия алгоритм
Существует большое количество задач, вызывающих трудности создания алгоритма
их решения или требующих значительного упрощения процедур их решения или
расширения области применения известных алгоритмов и др. Существование таких задач требует формализовать понятие алгоритма. При этом выделяют 2 проблемы:
возможно более строгое определение алгоритма, его свойства;
изучение теоретических моделей алгоритмов и исследование проблемы алгоритмической разрешимости.
Слайд 4Главной целью
формализации понятия алгоритма является решение проблемы алгоритмической разрешимости различных
математических задач, т.е. получение ответа на вопрос, существует ли алгоритм
решения указанного класса задач.
Слайд 5Второй целью
– является определение элементарного шага алгоритма
Слайд 6Третьей целью
строгого определения понятия «алгоритм» является выбор наиболее эффективного алгоритма
из нескольких возможных с теоретической и практической точек зрения
Слайд 7два класса задач
1. вычисление значений функций
2. распознавание принадлежности объекта заданному
множеству
Слайд 8определение
Функция называется вычислимой, если существует алгоритм, вычисляющий ее значение.
Слайд 9определение
Множество называется разрешимым, если имеется алгоритм, позволяющий для любого объекта
определить, принадлежит он данному множеству или нет.
Слайд 10Второй подход (А.Черч, Д.Гильберт, П.С.Новиков)
Эти ученые определили алгоритм
через класс вычислимых (общерекурсивных) функций. Они все проблемы разделили на
алгоритмически разрешимые и неразрешимые.
Слайд 11Третий подход представляют А. Тьюринг и Э.Л. Пост
Ими были
описаны машины, с помощью которых можно было реализовать любой алгоритм.
Слайд 12Тезис Черча-Тьюринга
Любое разумное определение алгоритма, которое может быть предложено в
будущем, окажется эквивалентным уже известным определениям.
Слайд 13Контрольные вопросы
1. Зачем нужны булевы функции?
2. Почему можно автоматизировать процесс обработки
информации?
3. Какова причина в необходимости формализации понятия «алгоритм»?
4. Каковы возможные
подходы к определению понятия алгоритм?
Слайд 14Проблема
А – множество элементов информации
В – другое множество
Ф – функция
преобразования
Слайд 16Ф = D1*F*D2
Нужно строить три функциональных преобразователя
Пример
(a1, а2,
а3, а4, а5 )
(в1, в2, в3)
001, 010, 011, 100, 101 -> 01, 11, 00
Слайд 17Определение
Обозн.:
(0,1)n = (x1,x2,…,xn) – вектор из двоичных цифр
Функция f
: (0,1)n -> (0,1), сопоставляющая двоичным векторам двоичное число, называется
двоичной (или булевой) функцией.
Основная задача – построение сложной булевой функции на основе простейших.
Слайд 18Функции от одной переменной
F: X ->Y, X = (0,1),
Y = (0,1)
f1(x) = 0
f2(x) = 1
f3(x) = x
f4(x)
= ¬x
(две константы, тождественная и функция отрицания)
Слайд 19Функции от двух переменных (16 шт)
F: X*Y -> Z , X,Y,Z
= (0,1)
f(x,y)= x^y; xvy; x =>y; xy; x+y; x↓y; x|y
конъюнкция, дизъюнкция, импликация (следование), эквивалентности, сложение по модулю 2 (ХОR), стрелка Пирса (НЕ-ИЛИ), штрих Шеффера (НЕ-И).
Слайд 20Теорема 1
Любая двоичная функция может быть представлена как суперпозиция трех
функций И, ИЛИ, НЕ.
(наз. Сложная функция или логическая формула)
Слайд 21Определение
Функционально полным набором (базисом) будем называть такое множество функций, суперпозицией
которых могут быть представлены любые булевы функции.
И, ИЛИ, НЕ –
являются базисом.
Слайд 22Определение
Представление булевой функции в форме дизъюнкции: F(x1,x2,…,xn) = K1 v
K2v ..v Kn , где каждый терм Кi представляет конъюнкцию
двоичных переменных, с отрицанием или без них, наз. дизъюнктивной нормальной функцией
Если каждый конъюнкт содержит по одной из всех переменных (с отрицанием или без), то форма представления функции называется совершенной.
F(p,q,r) = ¬p¬q¬r v ¬pq¬r v p¬q¬r v pqr
Слайд 23Конъюктивная нормальная функция. Совершенная форма КНФ
Определяются аналогично ДНФ и СДНФ
(симметрично).
Слайд 24Теорема 2
Представление булевых функций в СДНФ, СКНФ
единственно.
Следствие
Всякая аналитическая запись функции может быть преобразована в
СДНФ или СКНФ.
Алгоритм
Устраняем все операции, кроме И, ИЛИ, НЕ (свойства функций)
Преобразуем к одиночным отрицаниям (свойства функций).
Преобразуем к нормальной форме (свойства функции)
Слайд 25Формы представления булевских функций
Табличная (таблица истинности)
аналитическая запись
семантическое дерево
бинарная диаграмма решения
Слайд 26Реализация
Физические устройства дискретного отображения 0 и 1 -- это ключ-реле
(переключатели)
Слайд 27Пример
Схема изображения цифр на табло
F=(f1(x1,x2,x3,x4), f2,
…, f7)
f1
f2
f3
f4
f5
f6
f7
f1
f7
x1
x4
Слайд 28Минимизация
Метод Квайна
Функция представляется в СДНФ и к ней применяются все
возможные операции склеивания, а затем поглощения многократно.
Карта Карно
Двумерная табличная форма
с определенными манипуляциями.
Слайд 29Пороговая логика
Пример формального нейрона
Y=1, если ∑ xi*wi ≥ P, где
P – пороговое значение,
иначе У=0
x1
x2
w1
w2
y
Слайд 30Вывод
Обработку дискретной информации можно свести к построению булевой функции.
Вычисление любой
булевой функции можно автоматизировать.
Обработку дискретной информации можно автоматизировать на основе
алгоритма.