Метод минимизации фал по квайну 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Метод минимизации фал по квайну



Определение: Тупиковой ДНФ называется дизъюнкция простых импликант, ни одну из которых из выражения функции исключить нельзя.

Этот метод минимизации ФАЛ заключается в следующем:

  1. Находят Сок. ДНФ.
  2. Находят все возможные тупиковые ДНФ.
  3. Из найденных ТДНФ выбирают минимальную.

Иногда в Сок. ДНФ содержатся лишние импликанты. Как уже видели в сокращенной ДНФ:

f(Х1, Х2, Х3)= Х1Х3 Х2Х3 Х1Х2

импликанта Х2Х3 может быть исключена. Ни одной операции склеивания и поглощения к этой форме применить нельзя, т.к. это Сок. ДНФ, т.е. дизъюнкция простых импликант. Можно применить операцию развертывания по Х1:

f= Х1Х3 Х2Х31 Х1) Х1Х2 = Х1Х3 Х1Х2 Х3 Х1Х2 Х3 Х1Х2

Т.к. Х1Х3 покрывает Х1Х2Х3

и Х1Х2 покрывает Х1Х2Х3, то f= Х1Х3 Х1Х2

ТЕОРЕМА:

Всякая минимальная ДНФ является тупиковой. Обратное утверждение не справедливо. Доказательство очевидно.

Из этой теоремы вытекает важное следствие: Для того чтобы найти минимальную ДНФ, нужно найти все тупиковые формы и среди них взять минимальную.

Существует несколько различных способов отыскания тупиковых форм.

4. Лекция: Метод проб
Страницы: 1 | 2 | 3 | 4 | вопросы |» | учебники | для печати и PDA | ZIP
Если Вы заметили ошибку - сообщите нам, или выделите ее и нажмите Ctrl+Enter
В данной лекции представлены способы минимизации на основе метода проб, метода Квайна-Мак-Класки, на основе минимизирующих диаграмм для функции 2-х, 3-х, 4-х переменных (диаграммы Вейча).
Рассмотрим произвольную ДНФ. Если в ней выбросить любое произведение, то оставшееся выражение будет принимать нулевое значение на тех наборах, что и исходная форма, т.к. x1 1 x2 2... xi i = 0 только тогда все члены x1 1 x2 2... xi i = 0. Однако, если отброшенное произведение (импликанта) обращалось в единицу, и функция принимала единичное значение на этом единственном наборе, то оставшееся выражение может уже не принять единичное значение на данном наборе. Это означает, что импликанта не была лишней. Если же с помощью проверки установить, что оставшееся выражение обращается в единицу, импликанта – лишняя, и ее можно отбросить. Пример 1: Пусть дана f(x1x2x3) = x1x2 x1x3 x2x3
  1. Отбросим член x1x2:
fl = x1x3 x2x3 x1x2 = 1 => x1 = 0, x2 = 0 fl = 0*x3 1*x3 = x3 Т.к. x3 1 то x1x2 исключить нельзя
  1. Отбросим член x1x3:
fll = x1x2 x2x3 x1x3 = 1 => x1 = 1, x3 = 1 fll = 0*x2 x2 * 1 1 => x1x3 исключить нельзя.
  1. Отбросим член x2x3:
flll = x1x2 x1x3; x2x3 = 1 => x2 = 0, x3 = 1 flll = x1 x1 *1 = 1 => x2x3- член лишний. Если проверка показывает, что несколько импликант одновременно являются лишними, то исключить их одновременно из выражения ДНФ нельзя. Это можно выполнять лишь поочередно. Пример 2:

 

f(x1x2x3x4) = x1x3x4 x2x3x4 x1x2x4 x1x2x3 x2x3x4

  1. испытаем 1 член: x1x3x4 = 1; x1 = 0; x3 = 1; x4 = 1

f(x1x2x3x4) = x2 0 0 0=x2 Т.е. член x1x3x4 исключить нельзя.

  1. испытаем 2 член: x2x3x4 = 1; x2 = 0; x3 = x4 = 1

f(x1x2x3x4) = x1 x1 0 0 = 1 Т.е. член x2x3x4 лишний.

  1. испытаем 3 член: x1x2x4; x1 = 1; x2 = 0 x4 = 1

f(x1x2x3x4) = 0 x3 x3 0 = 1 Т.е. член x1x2x4 лишний.

  1. испытаем 4 член: x1x2x3; x1 = 1; x2 = x3 = 0

f(x1x2x3x4) = 0 0 x4 x4 = 1, Т.е. член x1x2x3 лишний.

  1. испытаем 5 член: x2x3x4; x2 = x3 = x4 = 0

f(x1x2x3x4) = 0 0 0 x1 = x1, Т.е. член x2x3x4 лишний.

Исключим одновременно члены 2, 3, 4

f = x1x3x4 x2x3x4

Проверим значения f одновременно на тех наборах, на которых обращаются в единицу все отброшенные члены.

x2x3x4; x1x2x4; x1x2x3; => x1x3x4 x2x3x4 x1x2x3

  • x2 = 0; x3 = x4 = 1 => f1 = x1 0
  • x1 = 1; x2 = 0; x4 = 1 => f2 = 0 0
  • x1 = 1; x2 = x3 = 0 => f3 = 0 x4

т.е. видно, что во всей совокупности этого сделать нельзя

Исключим член x2x3x4, получим:

f(x1x2x3x4) = x1x3x4 x1x2x4 x1x2x3 x2x3x4

Проверим, не являются ли в этом выражении лишними те члены, которые оказались лишними в исходном выражении, т.е.: x1x2x4 и x1x2x3.

  1. проверим x1x2x4:

x1 = 1; x2 = 0; x4 = 1

f(x1x2x3x4) = 0 x3 0 = x3 т.е. член x1x2x4 не лишний

  1. проверим x1x2x3:

x1 = 1; x2 = x3 = 0

f (x1x2x3x4) = 0 x4 x4 = 1, т.е. член x1x2x3 лишний,

Поэтому f(x1x2x3x4) = x1x3x4 x1x2x4 x2x3x4 - тупиковая форма.

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

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

Метод Квайна – Мак – Класки

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

С целью упрощения этой процедуры Мак – Класки предложил алгоритм, существо которого сводится к следующему:

  1. вводится понятие цифрового эквивалента для каждого произведения по следующему правилу: некоторому произведению ставится в соответствие цифровой эквивалент с использованием цифр 0 и 1 и – (прочерк). Переменной, входящей в произведение в прямом виде ставится в соответсвие единица (1), в инверсном – нуль (0), отсутствие переменной обозначается прочерком;
  2. в любом произведении переменные располагаются только в одном порядке, а именно – по возрастанию индексов;
  3. склейке подлежат только те произведения, в которых прочерки расположены соответственно, количество нулей (или единиц) отличается на единицу и они расположены так же соответственно.

Пример:

Произведению x1x2x4 для функции, зависящей от пяти переменных нужно поставить в соответствие следующий цифровой набор: x1x2x4: 11-0-

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

f(x1x2x3x4) = x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4

запишем выражение функции в виде дизъюнкции цифровых эквивалентов:

f(x1x2x3x4) = 1101 1010 0101 1000

При графическом способе отыскания простых импликант вначале все цифровые наборы разбивают на группы и располагают эти группы в следующем порядке: вначале идет группа цифровых эквивалентов, содержащих только нули (такой набор может быть один), затем следует группа с наборами, содержащими по одной единице, затем по две и т.д. Сравнением наборов соседних групп устанавливается возможность склейки, делается необходимая пометка и пишется результат склейки. Процесс продолжается до тех пор, пока возможны склейки. Все несклеенные наборы, а также конечные результаты склейки дают простые импликанты. Расшифровка полученных цифровых эквивалентов - очевидна.

Для нашего примера это выглядит так:

Цифровые эквиваленты конституенты единицы Отметки о склейке Результат склейки Отметки о склейке
  * 10-0 -
  *
  * -101 -
  *

Итак, простые импликанты:

10-0 и -101, т.е. f(x1x2x3x4) = x1x2x4 x2x3x4

Метод импликантных матриц

Для поиска минимальной формы функции пользуются методом импликантных матриц. Существо метода заключается в следующем: составляется импликантная матрица, колонки которой именуются конституентами единицы, а строки – простыми импликантами. Затем находится минимальное покрытие всех конституент единицы простейшими импликантами. При этом ищется такая минимальная совокупность простых импликант, которые совместно покрывают все конституенты единицы исходной функции. Факт покрытия отмечается в клетке матрицы символом * (звездочка) в случае, когда импликанта покрывает соответствующую конституенту (является ее собственной частью). Из всех простых импликант выбираются вначале только такие, которые только одни покрывают конституенты единицы (в колонке матрицы только один символ покрытия), затем производится перебор.

Пример:

Простые импликанты Конституенты единицы
A B C D E F
r *     * *  
p * *     *  
q     *   *  
m     *      
n *         *

Из матрицы видно, что в минимальную форму функции обязательно войдут импликанты n (покрывает конституенту F), импликанта r (покрывает конституенту D). То же справедливо отностительно импликанты p. Что касается остальных, то нужно выбрать минимальную совокупность.

Итак:

f1min = n r p q

f2min = n r p m

Т.е. данная функция имеет две одинаково минимальные формы.

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

Минимизирующие диаграммы Этот метод графической минимизации был изложен Карно, который ввел в употребление специальные карты. Эти карты позволяют для функции, зависящей от небольшого числа аргументов (до пяти - шести) находить результаты всех возможных склеек. Карты впоследствии были усовершенствованы Вейчем, а сам метод иногда именуется как метод минимизации с помощью диаграмм Вейча. Рассмотрим существо способа для функций, зависящих от 2, 3 и 4-х переменных. Функции 2-х переменных Диаграмма – матрица, столбцам и строкам которой приписывается смысл переменных, входящих в функцию в прямом или инверсном виде. В клетках матрицы ставится произведение, образованное из букв, которыми названы строки и столбцы матрицы. Обратим внимание на то, что данная матрица сразу указывает на возможную склейку произведений, входящих в выражение функции. Так склейке подлежат все произведения, расположенные в соседних по вертикали и горизонтали клетках.
  • xy склеивается с xy и с xy;
  • xy склеивается с xy и с xy;
  • xy склеивается с xy и с xy;
  • xyсклеивается с xy и с xy;
Более того, эта же диаграмма дает и результат склейки: это название или строки, или столбца. При минимизации по данному методу заполняется диаграмма функции 2-х переменных по следующему правилу: если то или иное произведение входит в СДНФ функции, то в соответствующую ему клетку диаграммы ставится единица, и нуль – в противном случае. Если в диаграмме находится хотя бы две соседние единицы, то это означает, что два произведения склеиваются, а результатом склейки является произведение (в данном случае из одной буквы), именем которого названа данная строка или столбец. Пример: f(x,y) = xy xy xy Выделим в диаграмме соседние единицы, и результат склейки дает минимальную форму функции: fmin(x,y) = x y Заметим, что результатом склейки является результат покрытия конституент единицы исходной функции простыми импликантами. В данном случае переменными, которыми названы строки и столбцы диаграммы. Функции 3-х переменных Для минимизации функций, зависящих от трех переменных, применяется следующая диаграмма: Из диаграммы видно, что склейке подлежат все произведения, расположенные в соседних клетках, а также в клетках, расположенных на краях диаграммы. Результат склейки – есть произведения, содержащее на одну букву меньше. Видно также, что возможна и дальнейшая склейка, однако уже между произведениями, расположенными во взаимно перпендикулярном направлении. Рассмотрим, например, левую половину диаграммы:
x1x2x3 x1x2x3
x1x2x3 x1x2x3

Склеим попарно произведения, стоящие в строках:

x1x2 x1x2
x1x2 x1x2

Теперь видим, что можно произвести дальшейшую склейку, но произведений, стоящих в столбцах матрицы:

x2 x2
x2 x2

Как видно, результат склейки – произведение x2. Именно эта переменная покрывает все четыре конституенты единицы СДНФ функции.

Подобное же утверждение справедливо и для конституент, расположенных в строках и столбцах диаграммы по краям таблицы.

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

Пример:

f(x1x2x3) = x1x2x3 x1x2x3 x1x2x3 x1x2x3 x1x2x3

fmin(x1x2x3) = x3 x1x2

Видим, что две единицы, соответствующие конституентам x1x2x3 и x1x2x3, покрываются произведением x1x2.

 

Функции 4-х переменных

Для функций 4-х переменных применяются диаграммы следующего вида:

Все, что было сказано относительно функций 2-х, 3-х переменных справедливо и в данном случае. Но данная диаграмма обладает дополнительной особенностью: при поиске минимальной формы функции необходимо считать склееными правый край с левым и верхний с нижним.

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

Пример:

f(x1,x2,x3,x4) = x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4

Составим диаграмму:

fmin(x1,x2,x3,x4) = x1x4 x3x4

Заметим, что на основании свойства диаграммы четыре единицы, стоящие в угловых клетках диаграммы соответствуют конституентам, которые склеиваются между собой.

Итак, дадим формализированное описание метода.

Опредение. Правильной конфигурацией ранга К называется совокупность единиц (нулей), образующая прямоугольник площадью 2к.

Для минимизации функции, зависящей от n аргументов, отыскиваются правильные конфигурации вначале n-1 ранга, затем n-2 ранга и т.д.

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


Рис. 4.1. Определение правильных конфигураций

C– правильная конфигурация

A,B,D– проекции конфигурации

А*В– результат склеек

Свойства диаграмм Вейча

С помощью диаграмм Вейча можно находить:

  1. минимальную форму по СКНФ
  2. минимальную форму по ДНФ и КНФ функции
  3. все одинаково минимальные формы
  4. минимальную форму неполностью определенных функций.

Пусть f(x1x2x3) задана не в виде СДНФ, а в ДНФ:

f(x1x2x3) = x1x2 x1x2x3 x1x2

Заполним соответствующую диаграмму:

Так как x1x2 = x1x2 (x3 x3) = x1x2x3 x1x2x3, то в соответствующие клетки диаграммы поставлены единицы.

Поэтому: fmin(x1,x2,x3) = x2x3 x1x2 x1x2

Преимущество метода: простота и наглядность для небольшого числа аргументов.

Недостатки: неприменяемость метода для большого числа аргументов (> 6) вследствие сложности диаграмм и потери наглядности.

5. Лекция: Минимизация неполностью определенных функций
Страницы: 1 | 2 | 3 | вопросы |» | учебники | для печати и PDA | ZIP
Если Вы заметили ошибку - сообщите нам, или выделите ее и нажмите Ctrl+Enter
В лекции представлена минимизация неполностью определенных функций, дан синтез функций в базисах штрих Шеффера и стрелка Пирса, даны подходы к минимизации конъюнктивных форм.
Очень часто, если не в большинстве случаев, работа конкретного устройства описывается с помощью неполностью определенной функции, так как некоторые комбинации входных сигналов не подаются или являются запрещенными. Определение. Неполностью определенной функцией является такая переключательная функция, значения которой на некоторых наборах аргументов могут быть произвольными (т.е. равными "0" или "1"). Определение. Пусть функция f(x1,x2,...xn) не определена на "р" наборах аргументов. Тогда полностью определенную функцию (x1,x2,...xn) будем считать эквивалентной к f(x1,x2,...xn), если ее значения на тех наборах, на которых f(x1,x2,...xn) определена, совпадают. Очевидно, существует 2р различных функций, эквивалентных f(x1,x2,...xn). Задача минимизации f(x1,x2,...xn) состоит в выборе такой эквивалентной (x1,x2,...xn), которая имеет простейшую форму. Введем две вспомогательные эквивалентные функции 0(x1,x2,...xn), 1(x1,x2,...xn), которые принимают на запрещенных наборах аргументов значения 0 и 1 соответственно. ТЕОРЕМА. МДНФ неполностью определенной f(x1,x2,...xn) совпадает с дизъюнкцией самых коротких импликант 1(x1,x2,...xn), которые совместно накрывают все конституенты единицы 0(x1,x2,...xn), и ни одна из которых не является лишней. Пример: Пусть задана f(x1,x2,...xn) в виде следующей таблицы:
f(x1,x2,...xn)   - - -             -     - -  
Числовые эквиваленты наборов                                

Тогда

0(x1x2x3x4) = 0 5 8 12 15 = x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4 x1x2x3x4 = 0000 0101 1000 1100 1111,

а

1(x1x2x3x4) = 0 1 2 3 5 8 10 12 13 14 15 = 0000 0001 0010 0011 0101 1000 1010 1100 1101 1110 1111

Найдем простые импликанты 1(x1x2x3x4)

Конституенты единицы 1 Отметки о склейке Импликанты Отметки о склейке Импликанты
  *   000- 00-0 -000 * 00- - 00- - -0-0
  * *
* *
*   00-1 0-01 001- -010 1-00 *
  * -
* * 1- -0
* *
* *
      *   -101 1-10 110- 11-0 -
*
  * - 11- -
-
  * 111- *

Простые импликанты 1(x1x2x3x4)

1(x1x2x3x4) = 0-01 -101 110- 11-0 00- - -0-0 1- -0 11- -

Построим импликантную матрицу.

Конституенты единицы 0          
Простые импликанты 1
0-01   +      
-101   +      
110-       +  
11-0       +  
00-- +        
-0-0 +   +    
1--0     + +  
11--       + +

Выполним оптимальное покрытие конституент единицы 0 простыми импликантами 1 и получаем минимальную форму функции f(x1x2 x3 x4)

f1min(x1x2 x3 x4) = 11- - -0-0 -101 = x1x2 x2x4 x2x3x4

f2min(x1x2 x3 x4) = 11- - -0-0 0-01 = x1x2 x2x4 x1x3x4

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

Пример:

Рассмотрим функцию f(x1x2 x3 x4) и найдем ее минимальную форму. Заполнить диаграмму Вейча по следующим правилам: в клетки диаграммы поставим единицы, которые соответствуют конституентам единицы, нули – для отсутствующих конституент и символ неопределенности – "*" (звездочка) – в остальные.

Видно, что в клетки для конституент: x1x2x3x4, x1x2x3x4, x1x2x3x4 целесообразно "поставить" единицы вместо символов неопределенности, так как в этом случае образуется правильная конфигурация 2-го ранга, которая покрывается произведением x2x3.

Аналогично и в клетку x1x2x3x4 нужно "поставить" единицу.

Итак, fmin(x1x2 x3 x4) = x2x3 x1x4 x3x4 x1x2.

Замечание. Все, что было сказано относительно минимизации функции, представленной в СДНФ или ДНФ справедливо для функции, заданной в СКНФ или КНФ.

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

 



Поделиться:


Последнее изменение этой страницы: 2016-08-15; просмотров: 403; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.102.112 (0.079 с.)