Инженерная логика против классической
Вид материала | Книга |
Содержание2.2. Алгоритм соседнего определения базы МОК. |
- Программа курса и темы практических занятий; Логика в таблицах и схемах. Логика как, 1722.34kb.
- Логика в образовании, 153.37kb.
- Математическая логика, 1012.22kb.
- Курс: 1 семестр 2 дисциплина: Инженерная графика задания для самостоятельной работы, 459.93kb.
- Логика богочеловечества, 213.06kb.
- Гуманитарное образование в технических вузах России в 19 20 веках, 261.32kb.
- Активизирующий опросник "За и против", 392.33kb.
- Отчет о выполнении 1 этапа проекта кафедры «Инженерная графика и дизайн», 95.62kb.
- «Инженерная экономика и маркетинг», 412.65kb.
- Н. В. Папуловская Математическая логика Методическое пособие, 786.38kb.
2.2. Алгоритм соседнего определения базы МОК.
Алгоритм 1 требует раздельного размещения РОК и ЗОК. Приведение таблицы истинности к такому виду усложняет метод ОК.
Процесс минимизации методом ОК может быть существенно упрощен, если определение БМОК производить с использованием приводимого ниже алгоритма.
Алгоритм 2.
1. Присвоить индексу МОК значение 1, т.е. i := 1 .
2. Присвоить индексу РОК значение 1 , т.е. j := 1.
3. Взять РОК из исходной таблицы истинности и, сравнивая его со всеми ЗОК , определить переменные , по которым РОК может быть склеен с ЗОК. Эта совокупность переменных и будет базой МОКi . Перейти к п.7.
4. Если РОКj не имеет соседних ЗОК, то j := j + 1 и перейти к п.3. Если в таблице истинности нет ни одного РОК, соседнего хотя бы с одним ЗОК , то перейти к п.5.
5. Подсчитать по таблице истинности F0 и F1 для всех разрядов.
6. В качестве базы МОКi (БМОКi ) или дополнения к БМОКi выбрать переменную с максимальной F0 или F1. Если F0 = max, то переменная входит в БМОКi нулём. Если F1 = max , то переменная входит в БМОКi единицей . Если несколько переменных имеют одинаковые оценочные (максимальные) функции , то выбрать в качестве БМОКi ту переменную , у которой соответствующая запрещённая оценочная функция ( F0з или F1з ) имеет минимальное значение, в противном случае в качестве БМОКi взять любую переменную с максимальной оценочной функцией F0 или F1 .
7. Выписать РОК и ЗОК , покрываемые базой МОКi . Если БМОКi не покрывает ни одного РОК или покрывает все ЗОК, то приравнять нулю оценочные функции F0 и F1 для данного разряда и перейти к п.6. Если покрываемых ЗОК нет , то перейти к п.9.
8. Подсчитать F0 и F1 для всех разрядов РОК и ЗОК , покрываемых данной базой, кроме разрядов (переменных) , образующих БМОКi. Присоединить к БМОКi переменную (дополнение к БМОКi ) с максимальной оценочной функцией в соответствии с требованиями п.6. Считать полученный ОК новой базой МОКi . Если новая БМОКi покрывает столько же ЗОК, сколько и на предыдущем шаге, то приравнять нулю оценочные функции или дополнения к БМОКi , отбросить присоединённую переменную и добавить к БМОКi переменную с максимальной оценочной функцией в соответствии с положениями п.6, считать полученный ОК новой БМОКi .Если БМОКi покрывает хотя бы один ЗОК, перейти к п.7.
9. Принять в качестве МОКi базу МОКi .
10. Если все РОК из исходной таблицы истинности покрыты минимальными обобщёнными кодами, перейти к п.12.
11. Выписать из исходной таблицы истинности все ЗОК и те РОК , которые не покрыты минимальными обобщёнными кодами . Считать вновь полученную таблицу исходной таблицей истинности. Увеличить индекс МОК на единицу , т.е. i := i+1. Перейти к п.2.
12. Конец.
Задача 9.
Произвести минимизацию булевой функции , заданной таблицей.
-
№п/п
x8 x7 x6 x5 x4 x3 x2 x1
y
1
2
3
4
5
6
7
8
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 0
0 0 0 0 1 1 0 0
0 0 0 0 1 0 0 1
0 0 0 0 1 0 0 0
0 1 1 0 0 0 0 0
0 1 1 0 0 0 0 1
1
1
1
1
1
1
1
1
1
2
3
4
0 0 0 1 0 0 0 1
0 1 0 1 0 0 0 1
1 1 0 1 1 0 0 0
0 0 0 0 0 1 1 0
0
0
0
0
Решение.
1. По алгоритму 2 пп. 1-3 для РОК2 находим соседний ЗОК, т.е. находим БМОК1 = ---0----.
2. По алгоритму 2 пп. 7-9 находим
МОК1 = ---0--0-
Так как МОК1 покрывает все РОК , то в соответствии с п.10 алгоритма 2 получаем
y = x5’x2’
Сущность алгоритма 2 заключается в том , что отыскиваются в первую очередь « необходимые « МОК, т.е. МОК для тех РОК , развязывание которых с ЗОК максимально затруднено , так как они развязываются только по тем переменным , по которым возможно склеивание данного РОК со всеми ЗОК. Под развязыванием понимается процесс выявления тех переменных в РОК, которые не встречаются в ЗОК.
Задача 10.
Произвести минимизацию булевой функции , заданной таблицей.
-
№
x6 x5 x4 x3 x2 x1
y
1
2
3
4
5
6
0 0 1 0 0 0
0 0 1 0 0 1
0 1 1 0 1 1
0 1 1 1 1 0
1 0 1 0 0 0
1 1 1 1 1 1
1
1
1
1
1
1
1
2
3
4
5
6
0 0 1 0 1 1
0 0 1 0 1 0
0 0 1 1 0 1
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 0 1
0
0
0
0
0
0
Решение .
1. По алгоритму 2 пп.1-3 для РОК1 находим
БМОК1 = ----0-
2. По алгоритму 2 пп.7, 8 строим таблицу.
-
1
2
5
0 0 1 0 0 0
0 0 1 0 0 1
1 0 1 0 0 0
1
1
1
0 0 1 1 0 1
1 1 1 1 0 1
0
0
3. По алгоритму 2 п.8 из таблицы находим БМОК1 = ---00-
4. По алгоритму 2 п.9
МОК1 = БМОК1 = ---00-
5. По алгоритму 2 для непокрытых РОК (для РОК3) находим
БМОК2 = -1----.
6. По алгоритму 2 пп.7, 8 , 11 строим таблицу.
-
3
4
6
0 1 1 0 1 1
0 1 1 1 1 0
1 1 1 1 1 1
1
1
1
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 0 1
0
0
0
5 - 2 3 2 2
1 - 4 3 4 4
F0
F1
7. По алгоритму 2 п.9 находим МОК2
МОК2 = 01----
8. По алгоритму 2 пп.7, 8, 11 строим следующую таблицу .
-
1 1 1 1 1 1
1
0 0 1 0 1 1
0 0 1 0 1 0
0 0 1 1 0 1
1 1 0 1 1 0
1 1 1 0 1 0
1 1 1 1 0 1
0
0
0
0
0
0
9. По алгоритму 2 п.3 находим БМОК3
БМОК3 = ----1-
10. По алгоритму 2 пп. 7, 8, 11 строим таблицу.
-
1 1 1 1 1 1
1
0 0 1 0 1 1
0 0 1 0 1 0
1 1 0 1 1 0
1 1 1 0 1 0
0
0
0
0
2 2 3 1 - 1
3 3 2 4 - 4
F0
F1
11. Из таблицы по алгоритму 2 п.8 находим
БМОК3 = ----11
12. По алгоритму 2 пп. 7, 8 строим следующую таблицу.
-
1 1 1 1 1 1
1
0 0 1 0 1 1
0
0 0 1 0 - -
1 1 1 1 - -
F0
F1
13. По таблице 17 определяем
МОК3 = -1--11
Таким образом ,
y = x3’x2’ + x5x2x1 + x6’x5
На рисунке представлено решение задачи 10 с помощью карты Карно . Функция y представлена в виде МДНФ.
Из рисунка видно , что результаты минимизации по карте Карно и по методу обобщённых кодов совпадают.

Карта Карно к задаче 10.
Задача 10а.
Произвести минимизацию логической функции, заданной таблицей истинности.
N% | x8x7x6x5x4x3x2x1 | y |
1 2 3 4 5 6 7 | 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 | 1 1 1 1 1 1 1 |
1 2 3 4 5 | 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 | 0 0 0 0 0 |
| 9 8 3 7 7 8 5 5 3 4 9 5 5 4 7 7 | F0 F1 |
Т.к. РОК3 и ЗОК1 являются соседними по x7,то в качестве БМОК1 выбираем х7’,не обращая внимание на абсолютный максимум F0 для х8.БМОК1 покрывает РОК1 - РОК5 и ЗОК3,ЗОК5.Подсчитаем оценочные функции для выбора дополнения к БМОК1 и получения МОК1.
N% | x8x7x6x5x4x3x2x1 | y |
1 2 3 4 5 | 0 0 1 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 | 1 1 1 1 1 |
3 5 | 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 0 | 0 0 |
| 5 x 1 3 6 5 2 1 2 x 6 4 1 2 5 6 | F0 F1 |
Дополнение х4’ могло бы привести нас к МДНФ,поэтому мы выберем эквивалентное по оценочной функции дополнение х1,чтобы убедиться в некоторых недостатках метода. В результате получим МОК1 = x7’x1. Поскольку МОК1 покрывает РОК с номерами 1,3 - 5,то стартовая таблица для синтеза БМОК2 выглядит так:
N% | x8x7x6x5x4x3x2x1 | y |
2 6 7 | 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 | 1 1 1 |
1 2 3 4 5 | 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 | 0 0 0 0 0 |
| 6 4 3 6 4 6 5 5 2 4 5 2 4 2 3 3 | F0 F1 |
Исходя из этой таблицы получаем БМОК2 = x8’. Для нахождения МОК2 строим следующую таблицу.
N% | x8x7x6x5x4x3x2x1 | y |
2 6 7 | 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 0 | 1 1 1 |
1 3 | 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 | 0 0 |
| х 2 1 4 2 3 3 3 х 3 4 1 3 2 2 2 | F0 F1 |
Отсюда получаем МОК2 = х8’x5’, который дополнительно покрывает РОК2 и РОК6. Найдём БМОК3.
N% | x8x7x6x5x4x3x2x1 | y |
7 | 0 1 1 1 1 1 1 0 | 1 |
1 2 3 4 5 | 0 1 1 1 0 1 1 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 1 0 1 1 1 1 1 1 0 1 1 0 1 0 1 1 1 0 | 0 0 0 0 0 |
| 4 3 3 4 3 5 4 4 2 3 3 2 3 1 2 2 | F0 F1 |
F0 для х3 имеет максимальное значение,но использовать x3’ в качестве БМОК3 нельзя,поскольку единственный РОК не имеет нуля в данном разряде. Принимаем БМОК3 = x8’. Строим очередную таблицу для синтеза последнего МОК.
N% | x8x7x6x5x4x3x2x1 | y |
7 | 0 1 1 1 1 1 1 0 | 1 |
1 3 | 0 1 1 1 0 1 1 1 0 0 0 1 1 1 1 0 | 0 0 |
| х 1 1 2 1 2 2 2 х 2 2 1 2 1 1 1 | F0 F1 |