русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Логические функции и их преобразования. Законы логики


Дата добавления: 2013-12-23; просмотров: 5447; Нарушение авторских прав


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

Логическая функция ― это функция, в которой переменные принимают только два значения: логическая единица или логический ноль. Истинность или ложность сложных суждений представляет собой функцию истинности или ложности простых. Эту функцию называют булевой функцией суждений f (a, b).

Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записывается набор аргументов, а в правой части ― соответствующие значения логической функции.

При построении таблицы истинности необходимо учитывать порядок выполнения логических операций. Операции в логическом выражении выполняются слева направо с учетом скобок в следующем порядке:

1. инверсия;

2. конъюнкция;

3. дизъюнкция;

4. импликация и эквивалентность.

Для изменения указанного порядка выполнения логических операций используются круглые скобки.

Предлагается следующий алгоритм построения таблицы истинности.
1. Определить количество наборов входных переменных ― всевозможных сочетаний значений переменных, входящих в выражения, по формуле: Q=2n , где n ― количество входных переменных. Оно определяет количество строк таблицы.
2. Внести в таблицу все наборы входных переменных.
3. Определить количество логических операций и последовательность их выполнения.
4. Заполнить столбцы результатами выполнения логических операций в обозначенной последовательности.

Чтобы не повторить или не пропустить ни одного возможного сочетания значений входных переменных, следует пользоваться одним из предлагаемых ниже способов заполнения таблицы.

Способ 1. Каждый набор значений исходных переменных есть код числа в двоичной системе счисления, причем количество разрядов числа равно количеству входных переменных. Первый набор ― число 0. Прибавляя к текущему числу каждый раз по 1, получаем очередной набор. Последний набор ― максимальное значение двоичного числа для данной длины кода.



Например, для функции от трех переменных последовательность наборов состоит из чисел:

Способ 2. Для функции от трех переменных последовательность данных можно получить следующим путем:
а) разделить колонку значений первой переменной пополам и заполнить верхнюю половину нулями, нижнюю половину единицами;
б) в следующей колонке для второй переменной половинку снова разделить пополам и заполнить группами нулей и единиц; аналогично заполнить вторую половинку;
в) так делать до тех пор, пока группы нулей и единиц не будут состоять из одного символа.

Способ 3. Воспользоваться известной таблицей истинности для двух аргументов. Добавляя третий аргумент, сначала записать первые 4 строки таблицы, сочетая их со значением третьего аргумента, равным 0, а затем еще раз записать эти же 4 строки, но теперь уже со значением третьего аргумента, равным 1. В результате в таблице для трех аргументов окажется 8 строк:

Например, построим таблицу истинности для логической функции:

Количество входных переменных в заданном выражении равно трем (A,B,C). Значит, количество входных наборов Q=23=8.

Столбцы таблицы истинности соответствуют значениям исходных выражений A,B,C, промежуточных результатов и (B V C), а также искомого окончательного значения сложного арифметического выражения :

A B C B V C

Для операций конъюнкции, дизъюнкции и инверсии определены законы булевой алгебры, позволяющие производить тождественные (равносильные) преобразования логических выражений.

Законы логики
1. ¬¬ А <=> A закон двойного отрицания;
2. A&B <=> B&A коммутативность конъюнкции;
3. AVB <=> BVA коммутативность дизъюнкции;
4. A&(B&C) <=> (A&B)&C ассоциативность конъюнкции;
5. AV(BVC) <=> (AVB)VC ассоциативность дизъюнкции;
6. A&(BVC) <=> (A&B)V(A&C) дистрибутивность конъюнкции относительно дизъюнкции;
7. AV(B&C) <=> (AVB)&(AVC) дистрибутивность дизъюнкции относительно конъюнкции;
8. A&A <=> A
9. AVA <=> A
10. AV¬A <=> И закон исключенного третьего;
11. A&¬A <=> Л закон непротиворечия;
12. A&И <=> A
13. AVИ <=> И
14. A&Л <=> Л
15. AVЛ <=> A
16. ¬(A&B) <=> ¬ A V ¬ B законы де Моргана;
17. ¬(AVB) <=> ¬ A & ¬ B
18. A => B <=> ¬ A V B замена импликации.

Основываясь на законах, можно выполнять упрощение сложных логических выражений. Такой процесс замены сложной логической функции более простой, но равносильной ей, называется минимизацией функции.
Пример 1. Упростить выражения так, чтобы в полученных формулах не содержалось отрицания сложных высказываний.
Решение

Пример 2. Минимизировать функцию

Решение

При упрощении выражения использовались формулы поглощения и склеивания.
Пример 3. Найти отрицание следующего высказывания: "Если урок будет интересным, то никто из учеников (Миша, Вика, Света) не будет смотреть в окно".
Решение
Обозначим высказывания:
Y ― "Урок интересный";
M ― "Миша смотрит в окно";
B ― "Вика смотрит в окно";
C ― "Света смотрит в окно".

При упрощении выражения использовались формула замены операций и закон де Моргана.
Пример 4. Определить участника преступления, исходя из двух посылок:
1) "Если Иванов не участвовал или Петров участвовал, то Сидоров участвовал";
2) "Если Иванов не участвовал, то Сидоров не участвовал".
Решение
Составим выражения:
I ― "Иванов участвовал в преступлении";
P ― "Петров участвовал в преступлении";
S ― "Сидоров участвовал в преступлении".
Запишем посылки в виде формул:

Тогда

Проверим результат, используя таблицу истинности:

Ответ: Иванов участвовал в преступлении.

Построение логической функции по ее таблице истинности
Мы научились составлять таблицу истинности для логической функции. Попробуем решить обратную задачу. Пусть дана таблица истинности для некоторой логической функции Z(X,Y):

X Y Z
0 0 1 1 0 1 0 1 1 0 1 0

Рассмотрим строки, где значение истинности функции Z истинно (Z=1). Функцию для этой таблицы истинности можно составить следующим образом: Z(X,Y) = (¬ X& ¬Y)V(X& ¬Y).
Каждой строке, где функция истинна (равна 1), соответствует скобка, представляющая собой конъюнкцию аргументов, причем если значение аргумента О, то мы берем его с отрицанием. Все скобки соединены между собой операцией дизъюнкции. Полученную формулу можно упростить, применив законы логики:
Z(X,Y) <=> ((¬X& ¬Y) VX)&(( ¬X&Y)V ¬Y) <=> (XV( ¬X& ¬Y)) &( ¬YV(¬X&¬Y)) <=> ((XV¬X)&(XV ¬Y))&(( Y¬V ¬X)&( ¬YV ¬Y)) <=> (1&(XV ¬Y))&(( ¬YV ¬X)& ¬Y)<=> (XV ¬Y)&(( ¬YV ¬X)& ¬Y).
Проверьте полученную формулу: составьте таблицу истинности для функции Z(X,Y).
Запишите правила конструирования логической функции по ее таблице истинности:
1. Выделить в таблице истинности те строки, в которых значение функции равно 1.
2. Выписать искомую формулу в виде дизъюнкции нескольких логических элементов. Число этих элементов равно числу выделенных строк.
3. Каждый логический элемент в этой дизъюнкции записать в виде конъюнкции аргументов функции.
4. Если значение какого―либо аргумента функции в соответствующей строке таблице равно 0, то этот аргумент мы берем с отрицанием.



<== предыдущая лекция | следующая лекция ==>
Логическое отрицание (инверсия). | Построение логических схем


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.243 сек.