Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 - Булева алгебра / Лекция 12 ФПС.doc
Скачиваний:
150
Добавлен:
09.04.2015
Размер:
382.46 Кб
Скачать

13.2.3 Определение минимального базиса

Рассмотрим на примере системы И, ИЛИ, НЕ удаление «лишних» функций из заданной системы логических функций, т.е. получение минимального базиса.

Обозначим:

– функцию НЕ символом a,

– функцию И символом b,

– функцию ИЛИ символом c.

Отсутствие свойств, заданных табл. 13.1, обозначим в табл. 13.2 символом 1.

Анализируя табл. 13.2, отмечаем:

Обеспечить свойство «не сохранять 0» может только функцияa. На это указывает символ 1 в графе «Не сохраняющая 0» строкиaи отсутствие 1 в этой графе в строкахbиc.

Обеспечить свойство «не сохранять 1» может только функцияa. На это указывает 1 в графе «Не сохраняющая 1» строкиaи отсутствие 1 в этой графе в строкахbиc .

Таблица 13.2

Свойства функций, входящих в систему

Функция

Не сохраняющая «0»

Не сохраняющая «1»

Не само–двойственная

Не монотонная

Не линейная

а(НЕ)

1

1

1

b (И)

1

1

c (ИЛИ)

1

1

Обеспечить свойство «не быть самодвойственной» может функцияbилифункцияc. Помечено символами 1 в строкахbиc.

Обеспечить свойство «не быть монотонной» может только функцияa. Помечено символом 1 в строкеa.

Обеспечить свойство «не быть линейной» может функцияbилифункцияc. Помечено символами 1.

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

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

1. «не сохранять 0»,и

2. «не сохранять 1»,и

3. «не быть самодвойственной»,и

4. «не быть монотонной»,и

5. «не быть линейной».

Используя номера свойств как логические переменные и заменив союз И символом конъюнкции, условие полноты системы функций можно записать так

= «1».

Если в таблице, аналогичной табл. 17, со свойствами функций, входящих в систему, в каком либо столбце нет 1, то это означает, что заданная система логических функций не является полной.

Для выявления «лишних» функций, заменив в рассуждениях союз ИЛИсимволом логической операции, а логические функции их обозначениями, запишем условие полноты рассматриваемой системы логических функций в виде формулы

= = «1»

и проведем ее преобразование

= «1».

Здесь «1» означает «истину».

В результате преобразований получено тождество, левая часть которого содержит исходную формулу, а правая часть представляет собой дизъюнкцию двух конъюнкций, содержащих по две переменных. Правая часть будет равна 1 при равенстве 1 хотя бы одной любой конъюнкции, что происходит только тогда, когда в строках таблицы, соответствующих парам функций () и () имеются 1 во всех пяти столбцах. Следовательно, в качестве функционально полной системы можно рассматривать функции НЕ и И () или НЕ и ИЛИ (). Каждая пара этих функций покрывает единицами все столбцы табл. 13.2, т.е. обладает всеми необходимыми свойствами.

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

Имеется таблица нулей и единиц, содержащая m строк и n столбцов.

Строки имеют имена ai, i = 1m, столбцы имеют имена bj, j = 1n.

Требуется определить минимальное число строк (и какие строки), единицы в которых покрывают все столбцы (содержатся во всех столбцах).

Решение этой задачи ищется следующим образом.

Составляется логическая формула в виде конъюнкции nдизъюнкций.

Если дизъюнкций меньше n, то покрытия (решения) не существует.

Каждая дизъюнкция соответствует отдельному столбцу таблицы и состоит из имен строк, имеющих единицы в данном столбце, соединенных символом дизъюнкции.

После раскрытия скобок и минимизации получается дизъюнктивная нормальная форма в виде дизъюнкции конъюнкций. Каждый терм этой формулы представляет решение задачи.

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

Сокращение таких таблиц (их называют таблицами покрытий) производится из следующих соображений:

  1. Исключаются столбцы, содержащие единицы во всех строках, – эти столбцы будут покрыты в любом случае.

  2. Исключаются строки, не содержащие единиц, – эти строки не покрывают никаких столбцов.

  3. Строка с единицами во всех столбцах – это решение задачи покрытия, поэтому все остальные строки можно исключить.

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

  5. Из групп одинаковых строк оставить только по одному представителю.

  6. Строка, в которой в каком–либо столбце имеется единица, единственная в этом столбце, должна войти в решение, так как только она покрывает этот столбец; после ее включения в решение, исключаем другие столбцы, имеющие единицы в этой строке.

  7. Перенося идею предыдущего пункта на множество единиц в столбцах, приходим к возможности исключения столбца j, множество единиц которого покрывает множество единиц столбцаi. (Какая либо из строк с единицей в столбцеiвойдет в решение, но в этой же строке имеется единица и в столбцеj.)

  8. Количество единиц в строке может служить мерой ее эффективности. Если единицы какой–либо строки jпокрываются единицами строкиi, то строкуjможно исключить, так как строкаiболее эффективна.

Если таблицу 13.1 преобразовать к виду таблицы 13.2, то окажется, что

– в строках функций f1иf7единицы во всех столбцах, следовательно, каждая из них является решением – полной системой функций;

– в строках функций f10, f12нет ни одной единицы и их можно исключить;

– из пар функций f2 f4, f3f5,f11f13иf8f14следует оставить по одной функции, так как у функций каждой пары строки одинаковы.

В результате в таблице останется только 8 функций: f0, f4, f5,f6,f9,f13, f14, f15, (см. табл. 13.3) из которых можно получить 8 полных систем из двух функций. Вот они:f0 f13, f4f5,f4f9,f4f13, f4 f15, f5f13,f5f14иf6f13.

Таблица 13.3

Свойства функций двух переменных, разбивающие их на классы

Функция

Не сохраняет «0»

Не сохраняет «1»

Не само–двойственная

Не монотонная

Не линейная

+

1

1

+

+

+

1

1

1

1

1

1

+

1

+

+

1

1

1

+

1

+

1

1

+

1

+

1

1

1

+

+

1

+

1

1

+

1

+

+

(С учетом «двойников» можно получить 24 полных системы из двух функций двух переменных.)