Задача минимизации ДНФ
Класс линейных функций
Класс монотонных функций
Класс самодвойственных функций
Класс функций, сохраняющих единицу
Класс функций, сохраняющих ноль
Функция f(х1,..., хn) называется сохраняющей ноль,если она на нулевом наборе принимает значение 0, то есть f(0,..., 0) = 0.
Пример. f(х) = 0, f(х) = х, f(х1, х2) = х1 • х2, f(х1, х2) =
х1 Ú х2 сохраняют ноль; f(х) = 1, f(х) =`х, f(х1, х2) = х1 ® х2 не сохраняют ноль.
Лемма 1. Из функций, сохраняющих ноль, суперпозицией можно получить только функции, сохраняющие ноль.
Доказательство. Функции, равные переменным, сохраняют ноль. Поэтому достаточно показать, что функция
Ф(х1,..., хn) = f(f1(х1,..., хn),..., fm(х1,..., хn))
сохраняет ноль, если функции f, fl, …, fm сохраняют ноль. Последнее следует из
f(f1(0,..., 0),... fm(0,..., 0)) = f(0,..., 0) = 0.
Следствие. Полная система функций должна содержать хотя бы одну функцию, не сохраняющую ноль.
Функция f(х1,..., хn) называется сохраняющей единицу, если она на единичном наборе принимает значение 1, то есть f (1,..., 1) = 1.
|
|
Пример. Функции f(х) = 1, f(х) = х – сохраняют единицу; функции f(х) = 0, f(х) =`х, f(х1, х2) = х1 Å х2 – не сохраняют единицу.
Лемма 2. Из функций, сохраняющих единицу, суперпозицией можно получить только функции, сохраняющие единицу. Доказательствоочевидно.
Следствие. Полная система функций должна содержать хотя бы одну функцию, не сохраняющую единицу.
Функция f (х1,..., хn) называется самодвойственной,если f(х1,..., хn) = `f(`х1,...,`хn).
Пример. f(х) = х, f(х) =`х – самодвойственные функции; f(х1, х2) = х1 • х2, f(х1, х2) = х1 Ú х2 – несамодвойственные.
Лемма 3. Из самодвойственных функций суперпозицией можно получить только самодвойственные функции.
Следствие. Полная система функций должна содержать хотя бы одну несамодвойственную функцию.
Набор a = (a1,..., an) предшествуетнабору b = (b1,..., bn), если ai £ bi (i = l, 2,..., n). Это обозначаем как a £ b. Наборы, которые находятся в отношении £называются сравнимыми.
Функция f(х1,..., хn) называется монотонной,если для любой пары наборов a и b таких, что при a £ b: f(a) £ f(b).
Пример. f(х) = х, f(х1, х2) = х1 • х2, f(х1, х2) = х1 Ú х2 – монотонные функции, а f(х) =`х – немонотонная функция.
Лемма 5. Из монотонных функций суперпозицией можно получить только монотонные функции.
Следствие. Полная система функций должна содержать хотя бы одну немонотонную функцию.
Функция f(х1,..., хn) называется линейной,если полином Жегалкина этой функции имеет линейный вид:
f(х1,..., хn) = а0 Å а1 x1 Å … Å аn xn,
где аi Î {0,1} (i = 0, l,..., n).
Пример. f(х) = х, f(х) =`х = х Å 1 – линейные функции; f(х1, х2) = х1 Ú х2 = х1 Å х2 Å х1•х2 – нелинейная функция.
|
|
Лемма 7. Из линейных функций суперпозицией можно получить только линейные функции.
Следствие. Полная система функций должна содержать хотя бы одну нелинейную функцию.
Таблица 2.6. Свойства функций двух переменных
Обозначение функции | Свойства функции | ||||
Сохраняющая 0 | Сохраняющая 1 | Самодвойственность | Монотонность | Линейность | |
f1 = 0 | + | – | + | + | + |
f2 = х1 Ù х2 | + | + | – | + | – |
f3 = х1 ¬ х2 | + | – | – | – | – |
f4 = x1 | + | + | + | + | + |
f5 = х2 ¬ х1 | + | – | – | – | – |
f6 = x2 | + | + | + | + | + |
f7 = x1 Å x2 | + | – | – | – | + |
f8 = х 1Ú х2 | + | + | – | + | – |
f9 = х 1¯ х2 | – | – | – | – | – |
f10 = x1 ~ x2 | – | + | – | – | + |
f11 = `x2 | – | – | + | – | + |
f12 = x2 ® x1 | – | + | – | – | – |
f13 =`x1 | – | – | + | – | + |
f14 = x1 ® x2 | – | + | – | – | – |
f15 = x1 ½ x2 | – | – | – | – | – |
f16 = 1 | – | + | + | + | + |
В таблице 2.6 дается полезная информация о свойствах всех функций двух переменных. Пользуясь этой таблицей можно проверить полноту заданной системы функций, а также построить другие базисы.
Теорема о полноте даёт ответ на вопрос, из какой системы функций можно получить в виде суперпозиции любую функцию. Но в практических задачах нужна не столько возможность, сколько правила, пользуясь которыми можно получить представление, оптимальное в некотором смысле. Каждое представление функции в виде суперпозиции можно охарактеризовать некоторым числом, которое называется сложностью данного представления (например, число применений операции суперпозиции) и зависит от конкретной задачи. Тогда можно поставить задачу об отыскании представления логической функции наименьшей сложности. В принципе, такую задачу всегда можно решить последовательным перебором различных суперпозиций функций системы.
Рассмотрим теперь суперпозиции над булевой системой функций, содержащей лишь конъюнкцию, дизъюнкцию и отрицание. Именно для этих суперпозиций методы минимизации разработаны достаточно хорошо. Чтобы дать точную формулировку задачи, приведем некоторые определения.
Минимальной ДНФ функции f(x1,..., xn) называется ДНФ N = U1 Ú U2 Ú... Ú Uk, представляющая функцию f(x1,..., xn) и содержащая наименьшее количество букв по сравнению с другими ДНФ, то есть число букв в N равно , где ri – ранг конъюнкции Ui, а минимизация проводится по всем ДНФ функции f(x1,..., xn).
Тогда задача об отыскании представления функции наименьшей сложности формулируется так: для всякой функции найти представление в виде минимальной ДНФ.
Прежде чем описать метод решения задачи дадим ещё несколько определений.
Импликантом функции f(x1,..., xn) называется элементарная конъюнкция если выполнено соотношение Ui ® f(x1,..., xn) º 1. Это означает, что если на некотором наборе импликант Ui обращается в единицу, то функция f(x1,..., xn) на этом наборе тоже обращается в единицу. Любая элементарная конъюнкция произвольной СДНФ является импликантом данной функции.
Простым импликантом функции f(x1,..., xn) называется импликант функции f(x1,..., xn), если элементарная конъюнкция, получающаяся из него удалением любой буквы, не является импликантом функции.
Сокращенной ДНФ функции f(x1,..., xn) называется дизъюнкция всех простых импликантов функции f(x1,..., xn).
Теорема 5 (без доказательства). Сокращённая ДНФ представляет функцию f(x1,..., xn).
Теорема 6 (без доказательства). Минимальная ДНФ функции f(x1,..., xn) получается из ее сокращённой ДНФ удалением некоторых элементарных конъюнкций.