
- •127994, Москва, ул. Образцова, 15
- •Введение
- •1. Булевы функции (бф).
- •1.1. Аналитическое представление бф.
- •1.1.1. Дизъюнктивная совершенная нормальная форма.
- •1.1.2. Конъюнктивная совершенная нормальная форма.
- •1.2. Минимизация бф.
- •1.2.1. Дизъюнктивная нормальная форма (днф).
- •1.2.2. Пути решения задачи упрощения днф бф.
- •1.2.3. Построение сднф по дснф.
- •1.2.4. Построение сднф по произвольной днф.
- •1.2.5. Получение тднф с помощью таблиц покрытий.
- •1.2.6. Недоопределенные бф и способы их задания. Простые импликанты недоопределенных бф.
- •1.2.7. Построение простых импликант недоопределенных бф методом проб.
- •1.2.8. Построение тднф недоопределенных бф.
- •1.2.9. Карты Карно.
- •2. Логические схемы (лс).
- •2.1.Основные понятия.
- •2.2. Использование скобочных преобразований днф при синтезе кс из элементов типа и, или, не.
- •2.3. Синтез кс из элементов
- •2.3.1. Кс часто используемых бф.
- •2.3.2. Кс для произвольных бф.
- •2.4.2. Алгоритм разделения тднф на к частей с минимизацией максимального веса.
- •2.4.3. Синтез кс из элементов и-не.
- •2.4.4. Синтез кс из элементов или-не.
- •2.4.5. Синтез кс из элементов и-или-не.
- •2.4.6. Синтез кс из набора элементов.
2.4.2. Алгоритм разделения тднф на к частей с минимизацией максимального веса.
Алгоритм эвристический. Базируется на разделении ТДНФ на 2 части на каждом этапе.
Имеем ТДНФ Т с весом W(T).
Отделяем
от Т часть Т1
с
T
Т1 Т\T1
Затем
от (Т\T1)
отделяем T2 с
Т
T1 Т\ T1
T2 Т\(T1T2)
Процедура продолжается до отделения Тк-1. При этом остаток оказывается Тк .
Т
Т1
Т2
Т3
Тк-1 Тк
Разделение ТДНФ на 2 части с отделением ТДНФ Т1 от Т при заданном весе W(T1) ведется так, чтобы вес остающейся части Т\T1 был минимален.
С этой целью к T1, первоначально пустой и имеющей вес W(T1)=0, поочередно добавляются конъюнкции из Т так, чтобы минимально увеличивался вес T1 и максимально сокращался вес Т до получения нужного W(T1).
Получив Т1 ,Т2 ,Т3 , … Тк , выделяем часть с наибольшим весом и пытаемся уменьшить maxW, перенося конъюнкции из самой сложной части в другие более простые части так, чтобы maxW уменьшился.
Рассмотрим пример.
К=3;
Т=ab acd bcd acm bcm adm bdm.
W
= 35,
W(T1)
12.
T1 =
ab
acd; W = 17.
Т\T1 = bcd acm bcm adm bdm; W = 30
W(T2) 15.
T2 = bcd bcm; W(T2) = 18
Остаток T3 = acm adm bdm; W = 24.
maxW = 24
Перенеся из T3 в T2 конъюнкцию bdm, получим:
T2 = bcd bcm bdm; W(T2) = 21.
T3 = acm adm; W = 18.
Теперь maxW = 21.
Перенос из T2 в T1 конъюнкции bсd позволяет еще раз сократить maxW.
В итоге окончательно получаем:
T1
=
ab
acd
bcd; W =
20.
T2 bcm bdm; W = 18.
Т3 = acm adm; W = 18.
maxW = 20
Замечание о разделении недоопределенных БФ.
Пусть нужно разделить F~ , заданную М1 и М0 (либо D1 и D0). Тогда ТДНФ F~ задает Т = D1 , но при этом мы еще знаем и D0 (М0 - частный случай D0). Следовательно, мы отделяем недоопределенную БФ.
Разделив D1 , например, на 2 части D11 и D12, мы получим F~1 и F~2, представляемые парами (D11 ;D0)
и (D12 ;D0).
Эти функции будут подвергаться дальнейшей обработке: инверсии и разделению.
-
F~
=
F~1
F~2
1
1
~
~
1
~
~
0
0
0
М1 = М11 М12
М0 = М01 = М02
Любая БФ может трактоваться как недоопределенная БФ и соответственно также обрабатываться, если размерности М1 и М0 (D1 и D0) невелики.