Представление логических функций через базовые функции

advertisement
Авторы
Машков Никита (10 класс)
Абросимова Анастасия (10 класс)
Руководитель Моисеева Надежда Николаевна,
учитель информатики
2
Оглавление
Введение ................................................................................................................... 3
Основоположники логики ...................................................................................... 5
Логические функции ............................................................................................... 7
Таблица истинности ................................................................................. 7
Логические функции одной переменной .................................................. 7
Логические функции двух переменных..................................................... 8
Представление логических функций через И, ИЛИ, НЕ .................................. 12
Минимизация представления функций .............................................................. 13
Карты Карно .......................................................................................... 13
Минимизация логических функций двух переменных ........................... 14
Представление логических функций через базовые функции ......................... 18
Представление логических функций через штрих Шеффера............. 18
Представление логических функций через стрелку Пирса ................. 19
Представление логических функций через импликацию ...................... 19
Выводы ................................................................................................................... 20
Список источников ............................................................................................... 21
3
Введение
Научиться правильно рассуждать, мыслить и познавать окружающий
мир помогает нам одна из величайших наук – логика. Наука о формах,
методах
и
законах
интеллектуальной
познавательной
деятельности,
формализуемых с помощью языка. Так как мышление оформляется на языке
в виде рассуждения, то можно сказать, что логика - это наука о способах
доказательств и опровержений.
Исторически логика изучалась как часть философии. Сейчас логика
изучается как часть математики и информатики.
Предметом
исследования
является
представление
логических
функций двух переменных через набор базовых логических функций,
практическая проверка тезиса о представимости любой логической функции
через базовые.
Актуальность исследования состоит в понимании механизмов
преобразования логических выражений, представления сложных логических
функций (штрих Шеффера, стрелка Пирса, импликации и т.п.) через базовые
логические функции И, ИЛИ, НЕ. Приобретённые навыки позволяют глубже
понять логические основы устройства компьютера.
Целью исследования является:
1. ознакомление с логическими функциями одной и двух переменных
2. освоение метода представления произвольных логических функций
через И, ИЛИ, НЕ с помощью карт Карно.
3. получение представления всех логических функций двух переменных
через И, ИЛИ, НЕ.
Объектом исследования являются логические функции одной и двух
переменных
Предмет исследования: представление произвольных логических
функций через набор базовых функций И, ИЛИ, НЕ.
4
Результат исследования: Проведена классификация всех логических
функций одной и двух переменных. Для каждой функции получено их
оптимальное представление через базовые функции И, ИЛИ, НЕ с помощью
карт Карно.
5
Основоположники логики
«Где начало того конца,
которым оканчивается начало»
Козьма Прутков
Древнегреческий философ и
учёный
Аристотель является и основоположником логики.
Познание у Аристотеля имеет своим предметом
бытие. Формами истинно научного знания являются
понятия, постигающие сущность вещи.
Детально
познания,
и
глубоко
Аристотель
разобрав
создал
труд
теорию
по логике,
который сохраняет своё непреходящее значение и
поныне. Здесь он разработал теорию мышления и
его формы, понятия, суждения и умозаключения.
Научное
знание
есть
знание
наиболее
достоверное, логически доказуемое и необходимое.
В учении о познании и его видах Аристотель
различал «диалектическое» и «аподиктическое»
познание.
Область
первого —
получаемое
«мнение»,
из
опыта,
второго —
достоверное
знание.
Немецкий
философ,
математик,
физик,
языковед – Г. Лейбниц. В 1666 в Лейпциге он пишет
габилитационную
работу
комбинаторном
искусстве»,
высказывается
идея
по
создания
философии
в
«О
которой
математической
6
логики, а в начале 1667 года становится доктором права, представив
диссертацию
«О
запутанных
судебных
случаях»
в
Альтдорфском
университете.
Английский математик и логик
после Джона
Буль
Валлиса математиком,
был,
вероятно,
обратившимся
к
первым
логической
проблематике. Идеи применения символического метода к логике впервые
высказаны им в статье «Математический анализ логики» (1847).
Буль высказывал пожелание, чтобы о его
взглядах
судили
по
обширному
трактату
«Исследование законов мышления, на которых
основываются математические теории логики и
вероятностей» (1854). Буль не считал логику
разделом математики, но находил глубокую
аналогию
алгебры
между
и
символическим
символическим
методом
методом
представления логических форм и силлогизмов.
Буль
показал,
высказываний,
терминов,
как
из
включающих
вывести
любое
любого
числа
любое
число
заключение,
следующее из этих высказываний, путём чисто
символических манипуляций.
Мы должны быть благодарны Аристотелю, Булю Джорджу и Лейбницу
за то, что они познакомили нас с наукой о формах, методах и
законах интеллектуальной познавательной деятельности - с логикой.
7
Логические функции
Логическая функция — это функция логических переменных, которая
может принимать только два значения: 0 или 1. В свою очередь, сама
логическая переменная (аргумент логической функции) тоже может
принимать только два значения: 0 или 1.
Логический элемент — это устройство, реализующее ту или иную
логическую функцию. Y=f(X1,X2,X3,...,Xn) — логическая функция, она
может быть задана таблицей, которая называется таблицей истинности.
Таблица истинности
Логические функции одной переменной
Таблица истинности функции одной переменной Y=f(X) содержит
всего 2 строки, а число функций одной переменной равно 4.
Функция константа 0, Y=0. Техническая реализация этой функции —
соединение вывода Y с общей шиной с нулевым потенциалом. Таблица
истинности функции константа 0 имеет вид:
Функция Y=f(X)=X — функция повторения. Техническая реализация
этой функции — соединение между собой выводов X и Y.
Таблица истинности функции повторения имеет вид:
8
Функция Y=f(X)=NOT(X) — отрицание НЕ или инверсия (NOT(X) —
это НЕ X). Техническая реализация этой функции - инвертор на любом
транзисторе или логическом элементе, или транзисторный ключ.
Таблица истинности функции отрицания имеет вид:
Функция константа 1, Y=1. Техническая реализация этой функции —
соединение вывода Y с источником питания.
Таблица истинности функции константа 1 имеет вид:
Важнейшей функцией одной переменной является отрицание НЕ,
остальные функции являются тривиальными.
Логические функции двух переменных
Таблица истинности функции двух переменных Y=f(X1,Х2) содержит 4
строки, а число функций двух переменных равно 16.
Рассмотрим только несколько основных функций двух переменных.
Логическое ИЛИ (логическое сложение, дизъюнкция):
Y= X1 + X2 = X1VX2
Техническая
соединенных ключа:
реализация
этой
функции
—
два
параллельно
9
Таблица истинности логического ИЛИ имеет вид:
Логический элемент ИЛИ обозначается на схемах следующим образом:
Логическое
И
(логическое
умножение,
конъюнкция,
схема
совпадений): Y = X1X2 = X1&X2
Техническая реализация этой функции — два последовательно
соединенных ключа:
Таблица истинности логического И имеет вид:
Логический элемент И обозначается на схемах следующим образом:
10
Функция стрелка Пирса (ИЛИ-НЕ): Y = NOT(X1+X2)
Таблица истинности функции ИЛИ-НЕ имеет вид:
Логический элемент ИЛИ-НЕ обозначается на схемах следующим
образом:
Функция штрих Шеффера (И-НЕ): Y = X1|X2 = NOT(X1X2)
Таблица истинности функции И-НЕ имеет вид:
Логический элемент И-НЕ обозначается на схемах следующим
образом:
11
Есть ещё три логические функции двух переменных, имеющие
специальные названия: импликация, эквивалентность, неравнозначность
(исключающее ИЛИ, сложение по модулю 2). Последние две функции
являются взаимно обратными, также как, например, функция И и функция
штрих Шеффера.
Число строк в таблице — это число возможных наборов значений
аргументов. Оно равно 2n, где n — число переменных. Число различных
функций n переменных равно 2^2n.
Таблица истинности функции двух переменных Y=F(X1,Х2) содержит
4 строки, а число функций двух переменных равно 16.
Все эти функции двух переменных представлены в таблице.
12
Представление логических функций через И, ИЛИ, НЕ
Теорема 1
Любая функция двух переменных может быть представлена в виде
комбинации функций И, ИЛИ, НЕ.
Доказательство
Таблица истинности любой функции имеет вид:
Где Y0, Y1, Y2, Y3 принимают значения 0 или 1. Составим
конъюнкцию (ИЛИ) из всех строк, где Yi равно 1. Каждый элемент
конъюнкции
это
дизъюнкция (И) переменных, если
Xi
= 1
в
соответствующей строке или их отрицание, если Xi = 0 в соответствующей
строке. Очевидно, что данный элемент конъюнкции равен 1 только для этой
строки и 0 для всех остальных.
Тогда, конъюнкция будет равна 1 только для Yi = 1 и 0 во всех
остальных случаях. То есть данная конъюнкция будет равна исходной
функции. Таким образом, исходная функция представляется через И, ИЛИ,
НЕ, что и требовалось доказать.
Пример
Представим через И, ИЛИ, НЕ функцию эквивалентности. Таблица
истинности функции имеет вид
Y = X1X2  X1X2
13
Минимизация представления функций
Карты Карно
Через функции И, ИЛИ, НЕ логические функции могут быть
представлены
несколькими
способами.
Поэтому
целесообразно
минимизировать представление функций с использованием наименьшего
количества базовых функций. Для этого служат карты Карно.
Карта Карно – это графический способ минимизации (упрощения)
логических функций и представляет собой операции попарного склеивание и
элементарного поглощения. Карта Карно рассматривается как перестроенная
соответствующим образом таблица истинности функции.
Карты Карно были изобретены в 1952 году Эдвардом В. Вейчем и
усовершенствованы в 1953 году физиком Морисом Карно.
Исходной информацией для работы с картой Карно является таблица
истинности минимизируемой функции. Таблица истинности содержит
полную информацию о логической функции, задавая её значения на всех
возможных 2N наборах входных переменных X1 ... XN. Карта Карно также
содержит 2N клеток, каждая из которых ассоциируется с уникальным
набором входных переменных X1 ... XN. Таким образом, между таблицей
истинности и картой Карно имеется взаимно однозначное соответствие, и
карту Карно можно считать соответствующим образом отформатированной
таблицей истинности.
Принципы склейки:
 Склейку клеток карты Карно можно осуществлять по единицам
 Склеивать можно только прямоугольные области с числом единиц
(нулей) 2n, где n — целое число.
 Область, которая подвергается склейке должна содержать только
единицы (нули).
14
 Крайние клетки каждой горизонтали и каждой вертикали также
граничат между собой и могут объединяться в прямоугольники. Все
единицы (нули) должны попасть в какую-либо область.
 С точки зрения минимальности число областей должно быть как
можно меньше.
 Одна ячейка карты Карно может входить сразу в несколько
областей. Это следует из очевидного свойства булевых функций:
повторение уже существующего слагаемого (сомножителя) не
влияет на функцию:
Минимизация логических функций двух переменных
1. Конъюнкция
X1 X2
2. Запрет по Х1
X1 X2
15
3. Повторение X1
X1
4. Запрет по Х2
X1 X2
5. Повторение X2
X2
6. Сложение по модулю 2
X1X2 или X2 X1
7. Дизъюнкция
X1 или X2
16
8. Стрелка Пирса
X1X2
9. Эквивалентность
X1X2 или X1X2
10. Отрицание Х2
X2
11. Импликация x2-> x1
X1 или X2
12. Отрицание Х1
X1
17
13. Импликация x1-> x2
X2 или X1
14. Штрих Шеффера
X1 или X2
18
Представление логических функций через базовые
функции
Функции И, ИЛИ, НЕ не являются единственным набором базовых
функции.
Существую
ещё
несколько
наборов
базовых
функций,
представляющих все другие функции.
Проверить является ли набор функций базовым можно на основе
следующей теоремы.
Теорема 2
Для того, чтобы набор функций был базовым, то есть представлял все
другие функции, достаточно чтобы через этот набор можно было
представить функции И, ИЛИ, НЕ.
Доказательство
Любая функция представима через
И, ИЛИ, НЕ. Заменим в этом
представлении данные функции их эквивалентом через другой
базовый
набор. Тогда исходная функция представляется через данный базовый набор,
что и требовалось доказать.
Представление логических функций через штрих
Шеффера
Теорема 3
Через функцию
штрих Шеффера Y = X1|X2 =  (X1X2) можно
представить любую другую логическую функцию.
Доказательство
Согласно теореме 2 для того, чтобы функция штрих Шеффера была
базовой достаточно представить через неё функции И, ИЛИ, НЕ.
Отрицание Х1 =(Х11) = Х1|1
Конъюнкция Х1 Х2 = ((Х1 Х2)) = (X1|X2) = (X1|X2) |1
Дизъюнкция Х1Х2 = (Х1Х2) = Х1|Х2 = (Х1|1)|(Х2|1)
Теорема доказана.
19
Представление логических функций через стрелку Пирса
Теорема 4
Через функцию
стрелка Пирса Y = X1X2 =  (X1X2) можно
представить любую другую логическую функцию.
Доказательство
Согласно теореме 2 для того, чтобы функция стрелка Пирса была
базовой достаточно представить через неё функции И, ИЛИ, НЕ.
Отрицание Х1 =(Х10) = Х10
Конъюнкция Х1 Х2 = (Х1 Х2) = (X1X2)=(X10)(X20)
Дизъюнкция Х1Х2 = ((Х1Х2)) = (Х1Х2) = (Х1Х2)0
Теорема доказана.
Представление логических функций через импликацию
Теорема 5
Через функцию
импликация Y = X1X2 =  X1X2 можно
представить любую другую логическую функцию.
Доказательство
Согласно теореме 2 для того, чтобы функция импликации была базовой
достаточно представить через неё функции И, ИЛИ, НЕ.
Отрицание Х1 =Х11 = Х11
Конъюнкция Х1 Х2 = (Х1 Х2) =  (X1X2)=(X1X2) 1
=( X1(X21) 1
Дизъюнкция Х1Х2 = (Х1)Х2 = (Х1) Х2 = (Х11)Х2
Теорема доказана.
20
Выводы
1. Теория логических функций прошла долгую историю от Аристотеля до
наших дней. В современном виде её сформулировал Джорж Буль.
2. Логические функции являются математической основой современных
вычислительных устройств. Для реализации логических функций в
вычислительных устройствах важно унифицировать и минимизировать
их представление.
3. Любая логическая функция может быть представлена как комбинация
базовых логических функций И, ИЛИ, НЕ.
4. Для минимизации представления произвольных логических функций
двух переменных можно использовать карты Карно. Приведены
минимальные
представления
всех
логических
функций
двух
переменных через базовые функции И, ИЛИ, НЕ.
5. Приведено доказательство, что любые логические функции можно
представить через функцию штрих Шеффера.
6. Приведено доказательство, что любые логические функции можно
представить через функцию стрелка Пирса.
7. Приведено доказательство, что любые логические функции можно
представить через функцию импликация.
8. Работа может применяться как учебное пособие при изучении темы
«Основы математической логики», так
материал на элективных курсах и кружках.
и как самостоятельный
21
Список источников
1. А.А. Ивин Логика, учебное пособие издание 2
Москва, Знание 1998
2. Д.А. Владимиров Булевы алгебры Москва, Наука
1969
3. Википедия свободная энциклопедия, Логика
http://ru.wikipedia.org/
4. Н.Н.
Моисеева
Методические
разработки,
учебный
сайт
http://www.schools.keldysh.ru/sch1019/
5. А. Белоусов Алгебра логики и цифровые компьютеры, ALGLIB
http://alglib.sources.ru/articles/logic.php
Download