- •Лекция 1 основные понятия теории множеств Основные определения
- •X [XX → xY].
- •Алгебра множеств Операция объединения множеств.
- •Операция пересечения множеств.
- •Операция определения разности множеств
- •Операция определения дополнения множества.
- •Тождества алгебры множеств
- •Операция проецирования кортежа
- •X×y y×X.
- •Алгебра предикатов
- •Правила логического вывода
- •Минимизация логических функций
- •Комбинаторные схемы
- •Заключительная сортировка последних после прекращения итераций
- •Дг ж е б а в
- •Оптимизация на графах. Алгоритм краскала
- •Алгоритм Краскала
Минимизация логических функций
Алгоритм получения МДНФ логической функции:
Логическая функция представляется в СДНФ. Причем, если она задана таблицей истинности, то представляют путем записи “по единицам”; если она задана алгебраической произвольной дизъюнктивной форме - путем применения операций развертывания, формул Де Моргана и др.
В полученном СДНФ проводят все возможные операции неполного склеивания и затем поглощения. В результате получают сокращенную дизъюнктивную нормальную форму, т.е. дизъюнкцию самых коротких из всех возможных элементарных произведений (простые импликанты), входящие в данную логическую функцию.
Находят минимальные дизъюнктивные нормальные формы по импликантной матрице.
Импликантная матрица - это таблица, на вертикальные и горизонтальные входы которой записывают соответственно члены СДНФ и простые импликанты заданной логической функции.
Клетки импликантной матрицы, образованные пересечением строк с импликантами и столбцов с поглощательными ими членами СДНФ, отмечают крестиками [5].
МДНФ находят как дизъюнкцию минимального числа импликант, которые совместно накрывают крестиками все колонки импликантной матрицы.
Пример . Минимизировать логическую функцию:
![]()
Решение: 1. Функция задана в алгебраической форме, применяя операции развертывания
![]()
![]()
получают СДНФ, содержащую шесть членов:
![]()
2. Операции склеивания проводят в следующем порядке:
выполняются все возможные склеивания 1-ого члена с остальными;
выполняются все возможные склеивания 2-ого члена с остальными, кроме 1-ого;
выполняются все возможные склеивания 3-ого члена с остальными, кроме 1-ого и второго и т.д.
Склеиваться могут только те члены, у которых число переменных с отрицаниями отличается на единицу.
Результаты склеивания и поглощения:
![]()
![]()
![]()
![]()
![]()
Звездочками отмечают те члены СДНФ, которые поглощаются произведениями, образовавшимися после склеивания.
В рассматриваемом примере поглощаются все шесть исходных членов, поэтому СДНФ заданной функции имеет вид:
![]()
К этому выражению операции склеивания и поглощения применить нельзя, и, следовательно, оно является сокращенной дизъюнктивной нормальной формой логической функции, а его члены - простыми импликантами.
3. Строят для заданной функции импликантную матрицу (табл.1.)
Таблица 1.
Импликантная матрица
|
Простые |
Члены СДНФ | |||||
|
импликанты (минтермы) |
|
|
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 | |
|
|
X |
X |
|
|
|
|
|
|
|
X |
X |
|
|
|
|
|
|
|
X |
X |
|
|
|
|
|
|
|
X |
X |
|
|
|
|
|
|
|
X |
X |
Для получения МДНФ необходимо найти минимальное число импликант, которые совместно накрывают крестиками все столбцы импликантной матрицы:
![]()
Сложность логической функции определяется числом переменных входящих в ее выражение: в заданной функции 14, в минимальной - 9.
Первый алгоритм получения МКНФ логической функции:
Логическую функцию представляют в СКНФ. Причем, если она задана таблицей истинности, то ее записывают “ по нулям”; если она задана алгебраически в произвольной конъюктивной форме, то для записи в СКНФ выполняют все возможные операции развертывания.
В полученной СКНФ выполняют все возможные операции неполного склеивания и затем поглощения. В результате получают сокращенную конъюнктивную нормальную форму, члены которой являются простыми макстермами.
МКНФ находят по макстермной матрице.
Пример . Логическая функция задана табл.1
Таблица 1.
Таблица истинности
|
x1 |
x2 |
x3 |
f |
|
0 |
0 |
0 |
1 |
|
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
1 |
|
0 |
1 |
1 |
0 |
|
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
0 |
|
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
Найти МКНФ этой функции.
Решение: 1. Выписывают заданную функцию в СКНФ “по нулям” таблицы истинности:
![]()
2. Проводят операции склеивания и поглощения:
![]()
![]()
![]()
В данном примере поглощаются все четыре члена исходного выражения и, следовательно, СКНФ
![]()
3. Макстермная матрица задана табл.2.
Таблица 2
Макстермная матрица
|
Простые импликанты |
Члены СКНФ | |||
|
|
|
|
| |
|
(макстермы) |
1 |
2 |
3 |
4 |
|
|
X |
X |
|
|
|
|
X |
|
|
X |
|
|
|
|
X |
X |
4. МКНФ логической функции:
.
Второй алгоритм получения МКНФ логической функции:
Логическая функция представляется в СДНФ заданной функцией, взятой с отрицанием.
Если функция задана таблицей истинности, то выписывают ряд произведений всех аргументов и соединяют их знаками дизъюнкции; количество произведений должно равняться числу наборов, на которых заданная функция обращается в нуль; под каждым произведением записывают набор аргументов, на которых функция равна нулю, и над аргументами, равными нулю, ставят знаки отрицания.
Если функция заданна алгебраически в произвольной форме, то сначала находят ее СДНФ, а затем записывают дизъюнкцию всех произведений аргументов, которые не вошли в СДНФ.
Находят МДНФ по рассмотренному выше алгоритму.
От полученной МДНФ берут отрицание и, после преобразований по формулам Де Моргана, получают МКНФ.
Пример 1.12. Найти МКНФ, функции заданной табл.3
Таблица3
Таблица истинности
|
x1 |
x2 |
x3 |
f |
|
0 |
0 |
0 |
1 |
|
0 |
0 |
1 |
1 |
|
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
0 |
|
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
0 |
|
1 |
1 |
1 |
1 |
Решение: 1. СДНФ, взятая с отрицанием:
![]()
2. Результаты склеивания и поглощения:
![]()
![]()
![]()
3. МДНФ, взятая с отрицанием:
![]()
4. Взяв от обеих частей последнего равенства отрицание и применив формулу Де Моргана, получают МКНФ логической функции:
.
Лекция 2
КОМБИНАТОРИКА
Комбинаторикой называется область математики, в которой изучаются вопросы о том, сколько различных комбинаций, подчиненных тем или иным условиям, можно составить из разных объектов.
Рассмотрим примеры, связанные с выбором n шаров из урны содержащей M различных шаров.
Эксперимент – выбор с возвращением. При выборе с возвращением на каждом шаге извлеченный шар возвращается обратно. В этом случае каждая выборка из n шаров может быть записана в виде ( a1,…, an ), где ai – номер шара, извлеченного на i – м шаге. В случае выбора с возвращением каждое ai может принимать любое из M значений 1,…, М. Принято различать два случая. Если две выборки одинакового состава, такие, например как (4,1,2,1) и (1,4,2,1) считаем различными, то такие выборки называются упорядоченными. В противном случае выборки называются неупорядоченными. В первом случае выборки, состоящие из одних и тех же элементов, но отличающиеся порядком следования этих элементов, объявляются различными. Во втором случае порядок следования элементов не принимается во внимание и такие выборки объявляются одинаковыми.
Примером упорядоченной выборки является телефонный номер. Примером неупорядоченной выборки является код механического кодового кнопочного замка. В этом случае нажатие кнопок 1,2,3 и 3,2,1 приведет к одинаковому результату.
ТЕОРЕМА 1: Число N различных способов выбора с возвращением n шаров из урны, содержащей M шаров, равно:
1. В случае упорядоченных выборок N=Мn ;
2. В случае неупорядоченных выборок N=CnM+n-1, где
Сmk=k!/m!(k-m)!, k!=1∙2×…×(k-1)×k.
Неупорядоченные выборки без возвращения называют сочетаниями с повторениями.
Эксперимент - выбор без возвращения. Предположим, что n<=M и что извлеченные шары обратно не возвращаются. В этом случае также рассматриваются две возможности, связанные с различением упорядоченных и неупорядоченных выборок.
ТЕОРЕМА 2. Число N различных способов выбора без возвращения n шаров из урны, содержащей M шаров, равно:
1. В случае упорядоченных выборок
N=M(M-1)…(M-n+1)=M!/(M-n)!. Для этого числа используется
Обозначение AnM, называемое числом размещений из M по n без
повторений:
2. В случае неупорядоченных выборок N=CnM .
Рассмотрим пример.
Из урны, содержащей 6 белых и 4 черных шара, вынимают 4 шара. Найти число неупорядоченных наборов таких, что: 1- все четыре шара черные; 2 – два белых шара и два черных шара. Решить задачу для схемы выбора: а) с возвращением; б) без возвращения.
Решение задачи:
Случай с возвращением:
В урне 4 черных шара и в нашей выборке должно быть 4 черных шара.
По теореме 1 из комбинаторики, число выборок, где все 4 шара черные, равно 44.
В урне 6 белых шаров, из них два можем выбрать (по теореме 1) 62=36
способами. Два черных шара выбираем 42=16 способами. Для каждой фиксированной пары белых шаров можем брать любую пару черных, поэтому число выборок, содержащих два белых и два черных, равно 36∙16.
Случай без возвращения:
Из 4 черных шаров при выборе без возвращения можно единственным образом
выбрать 4 черных шара. То есть выборка, где все 4 шара черные, одна.
Из белых шаров два можно выбрать С26 способами (по теореме 2), аналогично два черных шара из четырех выбираем С24 способами. Число выборок, состоящих из двух черных и двух белых шаров, равно
6! 4! 6!


С26
С24
= = = 90.
2!(6-2)! 2!(4-2)! 8
