- •Содержание
- •Введение
- •1.1.1 Базис булевых функций, теорема Поста
- •1.1.2 Таблица истинности заданной функции:
- •1.2.3. Проверка тупиковой днф матрицей импликантных испытаний
- •1.2.6 Проверка полученной тупиковой днф методом Петрика
- •1.3 Схемная реализация минимизированной функции
- •2. Постановка задачи на программирование
- •2.2.2. Организация объекта
- •2.3. Интерфейс программы
- •Список использованных источников
1.1.1 Базис булевых функций, теорема Поста
Проверка, составляют ли данные функции базис:
Свойства |
Сохранение 0 |
Сохранение 1 |
Самодвойственность |
Монотонность |
Линейность |
a1 a2 |
+ |
|
|
|
+ |
a |
|
|
+ |
|
+ |
a1 a2 |
+ |
+ |
|
+ |
|
В таблице знаком «+» отмечена принадлежность функции к соответствующему классу.
По теореме Поста, поскольку в наборе имеет хоть одна функция, не принадлежащая к классу сохраняющих 0; хоть одна, не принадлежащая к классу сохраняющих 1; хоть одна, не принадлежащая к классу самодвойственных; хоть одна, не принадлежащая к классу монотонных; хоть одна, не принадлежащая к классу линейных, - следовательно, эти функции достаточны для составления базиса. Впрочем, для базиса по теореме Поста достаточно и двух функций – a1 a2 и a.
1.1.2 Таблица истинности заданной функции:
х1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
x2 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
x3 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
x4 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
x1 x2 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
x1 x2 x3 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
x3x4 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
F |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1.1.3 Карты Карно
Карты Карно представляют собой специально организованные таблицы соответствия, в которых наборы значений расположены в таком порядке, что каждый следующий набор отличается от предыдущего значением только одной переменной. Для заданной мне функции карта Карно имеет вид, представленный на рис.1.1.
Рис.1.1 – Представление функции картой Карно
1.2 Минимизация булевой функции
1.2.1 Минимизация по карте Карно
Результат:
1.2.2. Минимизация по методу Квайна-МакКласки.
Выписываем все
термы, в которых функция равна 1 (нумерация
слева - направо, т.е.
будет записано как 1101):
0000, 1000, 0100, 1100, 1010, 0110, 0001, 1001, 0101, 1101, 0011, 1011, 0111, 1111.
Разбиваем эти термы на группы с одинаковым числом единиц (группировка по числу прямых и инверсных переменных):
0) 00001
1) 10002, 01003, 00014
2) 11005, 10106, 01107, 10018, 01019, 001110
3) 110111, 101112, 011113
4) 111114
Проводим попарные склейки:
0) -000(1-2), 0-00(1-3), 000-(1-4)
1) 1-00(2-5), 10-0(2-6), 100-(2-8), -100(3-5), 01-0(3-7), 010-(3-9), -001(4-8), 0-01(4-9), 00-1(4-10)
2) 110-(5-11), 1-01(8-11), -101(9-11), 101-(6-12), 011-(7-13), 10-1(8-11), 01-1(9-13), -011(10-12),
0-11(10-13)
3) 11-1(11-14), 1-11(12-14), -111(13-14)
Отмечаем крестиком все термы, участвовавшие в попарных склейках, чтобы выявить те минитермы, которые следует включить в результат:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Участвовали все минитермы, пока в результат ничего не выносится.
Следующий этап попарных склеек, переразбиваем минитермы на группы по числу единиц и заново перенумеровываем их:
0) -0001, 0-002, 000-3
1) 1-004, 10-05, 100-6, -1007, 01-08, 010-9, -00110, 0-0111, 00-112
2) 110-13, 1-0114, -10115, 101-16, 011-17, 10-118, 01-119, -01120, 0-1121
3) 11-122, 1-1123, -11124
Проводим склеивание:
0) - -00(1-7), -00-(1-10), - -00(2-4), 0-0-(2-11), -00-(3-6), 0-0-(3-9)
(повторяющиеся, а значит – ненужные, термы выделены цветом)
1) 1-0-(4-14), 1-0-(6-13), 10- -(6-16), 10- -(5-19), -10-(7-15), -10-(9-13), 01- -(8-18), 01- -(9-17), - -01(10-15), - -01(11-14), 0- -1(11-19), 0- -1(12-19) , -0-1(10-20), -0-1(12-18)
2) 1- -1(14-21), 1- -1(18-20), - -11(19-22), - -11(21-23), -1-1(19-22), -1-1(15-24)
Отмечаем крестиком все термы, участвовавшие в попарных склейках, чтобы выявить те минитермы, которые следует включить в результат:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
+ |
Все минитермы участвовали в склейках, так что ни один из них в результат пока в результат не переносится.
Следующий этап попарных склеек, переразбиваем минитермы на группы по числу единиц и заново перенумеровываем их:
0) - -001, -00-2, 0-0-3
1) 1-0-4, 10- -5, -10-6, 01- -7, - -018, 0- -19, -0-110
2) 1- -111, -1-112, - -1113
Проводим склеивание:
0) - -0-(1-8), - -0-(2-6), - -0-(3-4)
(повторяющиеся, а значит – ненужные, термы выделены цветом)
1) - - -1(9-10), - - -1(10-12), - - -1(13-18)
Отмечаем крестиком все термы, участвовавшие в попарных склейках, чтобы выявить те минитермы, которые следует включить в результат:
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
+ |
+ |
+ |
+ |
|
+ |
|
+ |
+ |
+ |
+ |
+ |
Дальнейшие склейки невозможны, таким образом, тупиковая ДНФ имеет вид (минитермы за №№ 5 и 7 не участвовали в склейках и сразу включаются в решение):
f = (10- -) (01- -) (- - -0) (- - - 1)
