METOD_12
.pdf3
Дискретная математика или, как часто говорят, компьютерная математика в XXI веке стала универсальным языком описания и исследований в менеджменте, превратилась в базовый инструмент анализа и моделирования. Именно на этом языке сегодня осмысливают свои проблемы и поддерживают профессиональное общение системные аналитики, управленческие консультанты, специалисты по организационному проектированию.
Настоящее пособие рекомендовано студентам первого курса факультета прикладной математики, информатики и механики ВГУ всех форм обучения. Оно содержит не только необходимый перечень упражнений для изучения основных понятий дискретной математики, но и изложенные в компактной форме теоретические сведения и задания для приобретения и закрепления навыков решения прикладных задач.
§1. Булевы наборы. Единичный n-мерный куб
Обозначим через E множество {0; 1}, тогда En представляет собой множество упорядоченных наборов вида (α1, α2, . . . , αn) , где αi E, i = 1, . . . , n . Такие наборы называются булевыми. Для краткости будем обозначать α = (α1, α2, . . . , αn) . Число n называется длиной набора, множество En - единичным n-мерным кубом, сами наборы - вершинами куба. Весом или нормой набора α длины n называется число его координат, равных единице:
∑n
α = αi.
i=1
Каждому булеву набору α длины n можно поставить в соответ-
ствие число
∑n
ν(α) = αi2n−i,
i=1
называемое номером набора α . Набор α является, очевидно, двоичным разложением числа ν(α) . Расстоянием (Хемминга) между вершинами α и β куба En называется число
|
|
n |
|
|
∑i |
|
ρ(α, β) = |
|αi − βi|, |
|
|
=1 |
равное |
числу координат, в которых они различаются. Наборы α и |
|
β En |
называются соседними, если ρ(α, β) = 1 и противоположными, |
если ρ(α, β) = n . Неупорядоченная пара соседних наборов (вершин) называется ребром куба. Говорят, что набор α En предшествует набору
4
β En (обозначается α ≤ β ), если αi ≤ βi для всех i = 1, . . . , n . Если при этом α ≠ β , то говорят, что α строго предшествует β . Если имеет хотя бы одно из соотношений α ≤ β или β ≤ α , то наборы α и β называются сравнимыми. В противном случае наборы α и β называются несравнимыми. Набор α En непосредственно предшествует набору β En , если α < β и ρ(α, β) = 1 .
Отношение предшествования между наборами является отношением частичного порядка на En . Через α β обозначим набор (α1 β1, α2 β2, . . . , αn βn) , полученный сложением по mod 2 векторов α и β .
На нижеприведенном рисунке изображены диаграммы часто употребляемых множеств E3 и E4 .
Рис. 1
Упражнения
1.1.Найти число наборов из En веса k . Чему равно всех вершин куба
En ?
1.2.Найти номера наборов (0111), (10101), (110010) . Найти векторы длины 6, являющиеся двоичным разложением чисел 11, 17, 20.
1.3.Найти число неупорядоченных пар соседних вершин En .
1.4.Показать, что для любых α, β, γ En справедливы соотношения
а) ρ(α, γ) ≤ ρ(α, β) + ρ(β, γ) ;
б) ρ(α, γ) = ρ(α β, γ β) ;
в) ρ(α, β) = α + β − 2 α ∩ β ;
г) ρ(α, β) = α + β .
Здесь через α ∩ β обозначается вектор, i -я координата которого равна 1 тогда и только тогда, когда αi = βi = 1 .
5
§2. Способы задания булевых функций. Элементарные функции. Формулы
Функция f(x1, x2, . . . , xn) , определенная на множестве En и принимающая значения на множестве E = {0; 1}, называется булевой функцией. Множество всех булевых функций обозначим Б .
Булеву функцию f(x1, x2, . . . , xn) можно задать таблицей:
x1 |
x2 . . . |
xn−1 xn |
f(x1, x2, . . . , xn−1, xn) |
|
0 |
0 . . . |
0 |
0 |
f(0, 0, . . . , 0, 0) |
0 |
0 . . . |
0 |
1 |
f(0, 0, . . . , 0, 1) |
0 |
0 . . . |
1 |
0 |
f(0, 0, . . . , 1, 0) |
. . . . . . . . . . . . . . . |
. . . |
|||
. . . . . . . . . . . . . . . |
. . . |
|||
1 |
1 . . . |
1 |
1 |
f(1, 1, . . . , 1, 1) |
Здесь наборы α En расположены в порядке возрастания из номеров. В дальнейшем предполагая такое стандартное расположение наборов,
будем задавать функцию f(x1, x2, . . . , xn) |
набором (γ0, γ1, . . . , γ2n−1) , |
||
в котором координата γi |
представляет |
собой |
значение функции |
f(x1, x2, . . . , xn) на наборе α |
с номером i(i = 0, 1, . . . , 2n − 1) . |
Символом Nf будем обозначать множество
{α : α En, f(α1, α2, . . . , αn) = 1}.
Множество Nf называется множеством истинности функции f . Между множеством булевых функций f от n переменных и множеством подмножеств Nf En существует взаимнооднозначное соответствие. Это соответствие обладает следующими свойствами.
Пусть f1(x1, . . . , xn) , f2(x1, . . . , xn) – произвольные булевы функции. Тогда
а) Nf = En\Nf ;
б) Nf1 f2 = Nf1 ∩ Nf2 ; в) Nf1 f2 = Nf1 Nf2 ;
г) f1 ≤ f2 Nf1 Nf2 .
Булевы функции, заданные следующими таблицами, будем называть элементарными.
x |
0 |
1 |
f1 |
f2 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
6
x1 |
x2 |
f3 |
f4 |
f5 |
f6 |
f7 |
f8 |
f9 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
Приведем обозначения и названия этих функций
1.Функции 0 и 1 называются тождественными нулем и единицей.
2.Функция f1 называется тождественной функцией и обозначается через x .
3.Функция f2 называется отрицанием x и обозначается через x или ¬ x и читается "не x ".
4.Функция f3 называется конъюнкцией x1 и x2 , обозначается x1&x2
или x1 · x2 или x1 x2 и читается " x1 и x2 ".
5. Функция f4 называется дизъюнкцией x1 и x2 , обозначается x1 x2
и читается " x1 или x2 ".
6.Функция f5 называется суммой по модулю 2 x1 и x2 , обозначается x1 x2 и читается " x1 плюс x2 ".
7.Функция f6 называется эквивалентностью x1 и x2 , обозначается x1 ↔ x2 или x1 x2 и читается " x1 эквивалентно x2 ".
8. Функция f7 называется |
импликацией x1 и x2 , обозначается |
x1 → x2 и читается "из x1 |
следует x2 ". |
9.Функция f8 называется штрихом Шеффера x1 и x2 , обозначается x1|x2 и читается "не ( x1 и x2 )".
10.Функция f10 называется стрелкой Пирса x1 и x2 , обозначается x1 ↓ x2 и читается "не ( x1 или x2 )".
Символы ¬, (&), , , ↔, →, |, ↓ называются логическими связками. Булева функция может быть задана при помощи формулы. Для
определения формулы введем следующие группы символов:
1) малыми латинские буквы с индексами или без них : x, y, z, x1, x2, . . . , xn, . . . ; обозначим множество этих символов через X ;
2)булевы функции: 0 и 1;
3)логические связки: ¬, (&), , , ↔, →, |, ↓; обозначим множество логических связок через σ ;
7
4)скобки (,).
Определение. Формулой над множеством связок σ назовем:
а) символы первой и второй группы;
б) если U и B – формулы, то формулами назовем ( ¬ U ), ( U B ), ( U B ), ( U → B ), ( U ↔ B ), ( U B ), ( U|B ), ( U ↓ B );
в) никаких других формул, кроме введенных в пунктах а) и б), в алгебре высказываний нет.
Для сокращения записи формул принимаются следующие соглаше-
ния:
а) внешние скобки у формул опускаются;
б) формула ( ¬ U ) записывается в виде |
|
; |
U |
в) формула ( U B ) записывается в виде ( UB );
г) считается, что связка ¬ сильнее любой другой связки из σ ;
д) связка сильнее, чем любая из связок , , ↔, →, |, ↓.
Эти соглашения позволяют, например, формулу ((x y) → (¬ z)) переписать в виде xy → x .
Говорят, что формула алгебры высказывания реализует булеву функцию f , если множества истинности Nf , N функций f и , рассматриваемых как функции от одних и тех же переменных, совпадают:
NF = N .
Пусть {x1, x2, . . . , xn} – множество тех переменных, которые встречаются хотя бы в одной из формул U или B . Формулы U и B называются эквивалентными (обозначается U = B или U ≡ B ), если на всяком наборе (α1, α2, . . . , αn) значений переменных x1, x2, . . . , xn значения функций, реализуемых формулами U и B , совпадают.
Формула называется тождественно истинной (тождественно ложной), если реализуемая ею функция равна 1 (соответственно 0) на всяком наборе переменных.
Формула называется выполнимой(опровержимой), если существует набор значений переменных, на котором реализуемая формулой функция принимает значение 1 (0).
Упражнения
2.1. Найти число булевых функций от n переменных, принимающих на противоположных наборах одинаковые значения.
8
2.2.Найти число булевых функций от n переменных, которые на любой паре соседних наборов принимают противоположные значения.
2.3.Функция f(x1, x2, x3) определяется следующим образом: она равна 1 либо при x1 = 1 , либо если переменные x2, x3 принимают разные значения, а значение переменной x1 меньше значения переменной x3 ; в противном случае функция обращается в нуль. Построить таблицу функции f(x1, x2, x3) и выписать наборы множества Nf .
2.4.Функция f(x1, x2, x3, x4) задается так: она равна нулю только на таких наборах (σ1, σ2, σ3, σ4) , для которых справедливо неравенство σ1+σ2 > σ3+2σ4 . Построить таблицу и выписать наборы множества Nf этой функции.
2.5.Выяснить, какие из нижеперечисленных выражений являются формулами:
1) |
x ↔ yz; |
5) |
(x → (y (¬ x))); |
2) |
(x )¬ y; |
6) |
(x y)¬ z; |
3) |
xy ← z; |
7) |
(¬ x → z)y; |
4) |
(y → (xz)); |
8) |
((x y) → z) x. |
2.6.Выяснить, какими способами можно расставить скобки в выражении A , чтобы всякий раз получалась формула, если:
1)A = ¬ x → y x ;
2)A = x y ¬¬ z x ;
3)A = x → ¬ y → z ¬ x .
2.7.Выяснить, какие из нижепривиденных формул являются тождественно истинными, тождественно ложными, выполнимыми или опровержимыми:
1)((x y)z → ((x ↔ z) y))xyz ;
2)((x y) ↔ z)(x → yz) ;
3)(x → y) → ((x z) → (y z)) ;
4)((x y) ↓ (x y)) ¬ ((x → y) → (x y)) ;
5)((z ↔ y) → xy) ↔ z ;
6)(yz → x) (y ↔ (x z)) ;
7)yz → (xz ↔ (x y)) ;
8)(yx → z) ↔ (yx z) ;
9)((zy → x) ↔ yx) z ;
9
10)(yz → x) (z ↔ (x z)) .
2.8.Эквивалентны ли формулы U и B :
1) |
U = ¬ ((x → y) (x → z)y), B = xy (y → xz) ; |
2) |
U = ((x y) → (x y))((x → y) → (x y)), B = x| y ; |
3) |
U = ((x y) → (x y)), B = (x ↔ y) (¬ (xy)) ; |
4) |
U = (x → y) → z, B = x → (y → z) ; |
5) |
U = x ↔ z, B = ((x y) z) → ((x y)(x z)) ; |
6) |
U = (x → y) → (xy (x ↔ y)), B = xy yx ; |
7) |
U = (x| y → z) (x → z), B = (x → y) z ; |
8) |
U = ((z y) ↓ x) ↔ xz, B = xyz yz 1 ; |
9) |
U = ((z ↔ y) → xy) ↔ z, B = z → xy ; |
10) U = (xyz → y) ↔ (xy z), B = y → (x → z) .
§3. Основные эквивалентности алгебры высказываний. Эквивалентное преобразование формул
При оперировании с функциями алгебры логики (булевыми функциями) часто бывают полезными следующие эквивалентности, которые
вдальнейшем будем называть основными эквивалентностями:
x ◦ y = y ◦ x (коммутативность связки ◦, где символ ◦ является общим обозначением для связок , , , ↔, →, |, ↓);
(x ◦ y) ◦ z = x ◦ (y ◦ z) (ассоциативность связки ◦, где ◦ является общим обозначением для связок , , , ↔);
|
x y |
= x y, |
|
x y |
= x y (правила де Моргана); |
|
|
x xy = x, |
x(x y) = x (правила поглощения); |
||||
|
x(y z) = xy xz |
(дистрибутивность конъюнкции относительно |
||||
дизъюнкции); |
|
|
|
|
||
|
x yz = (x y)(x z) (дистрибутивность дизъюнкции относительно |
|||||
конъюнкции); |
|
|
(дистрибутивность конъюнкции относительно |
|||
|
x(y z) = xy xz |
|||||
сложения по модулю 2); |
|
|
x x = x 0 = x x = 0;
x x = x 1 = x ↔ x = 1;
x = x 1, x ↔ y = x y 1;
x y = xy xy, x → y = xy x 1.
10
Рассмотрим пример эквивалентного преобразования формулы с применением приведенных в этом параграфе основных эквивалентностей:
(xy ↔ z) → z = xy ↔ z z = (xy z) z = xyz xyz z = xyz z =
= (xy z)(z z) = xy z.
Упражнения
3.1.Проверить справедливы ли следующие соотношения, построив таблицы истинности:
1)x (y ↔ z) = (x y) ↔ (x z) ;
2)x (y z) = (x y) (x z) ;
3)x → (y z) = (x → y) (x → z) ;
4)x → (y z) = (x → y) (x → z) ;
5)x → (y ↔ z) = (x → y) ↔ (x → z) ;
6)x (y ↔ z) = xy ↔ xz ;
7)x(y z) = xy xz ;
8)x (y → z) = (x y) → (x z) ;
9)x → (y → z) = (x → y) → (x → z) ;
10)(x y)(x y) = 0 .
3.2.Используя основные равносильности, доказать эквивалентность формул U и B , когда:
1)U = y → (x → z), B = x → (xy ((x → y) → y)z) ;
2)U = (x y)(x y), B = (x → y) → (xy (x ↔ y)) ;
3) U = (xy → z) ↔ z, B = x z y z ;
4)U = xz xy xz, B = x yz ¬ (x → z) ;
5)U = (x ↔ y) ↔ z, B = x(y ↔ z) x (y z) .
§4. Дизъюнктивная и конъюктивная нормальные формы
Впредыдущих параграфах были введены понятия булевой функции
иформулы, при этом открытым остался вопрос о представлении произвольной булевой функции в виде формулы. Приводимые ниже факты направлены на решение этого вопроса.
11
Пусть x – булева переменная. Введем обозначение:
x = xσ x σ,
где σ – параметр, равный 0 либо 1. Очевидно, что
x, |
если σ = 0, |
x = {x, |
если σ = 1. |
Легко видеть, что x = 1 тогда и только тогда, когда x = σ , т.е. значение "основания"равно значению "показателя"степени.
Любая формула вида x ( x или x ), где x – произвольная булева переменная, называется литералом.
Элементарной конъюнкцией, составленной из переменных x1, x2, . . . , xn , называется логическое произведение (конъюнкция) различных булевых переменных в некоторых степенях
1 |
2 |
r |
, {i1 |
, i2, . . . , ik} {1, . . . , n}. |
(4.1) |
|
K = xi1 |
xi2 |
. . . xir |
||||
Элементарной дизъюнкцией, |
составленной |
из |
переменных |
x1, x2, . . . , xn , называется логическая сумма (дизъюнкция) различных булевых переменных в некоторых степенях
1 |
2 |
|
r |
, {i1 |
, i2, . . . , ik} {1, . . . , n}. |
(4.2) |
D = xi1 |
xi2 |
. . . xir |
||||
Число r в |
формулах |
(4.1) и |
(4.2) называется соответственно |
рангом конъюнкции и дизъюнкции. В случае, когда r = 0 , полагается
K = 1 и D = 0 .
Дизъюнктивной нормальной формой (днф) называется произволь-
ная дизъюнкция элементарных конъюнкций |
|
D = K1 K2 . . . Km, |
(4.3) |
в которой все конъюнкции Kj различны. Число m называется длиной днф. В случае m = 0 днф называется пустой и полагается равной нулю.
Конъюнктивной нормальной формой (кнф) называется конъюнкция элементарных дизъюнкций
K = D1 D2 . . . Dm, |
(4.4) |
в которых все дизъюнкции Dj различны. Имеют место следующие утверждения:
1.Для каждой булевой функции f(x1, x2, . . . , xn) существует реализующая её дизъюнктивная нормальная форма
D = f(x1, x2, . . . , xn);
12
2.Для каждой булевой функции f(x1, x2, . . . , xn) существует реализующая её конъюнктивная нормальная форма
K = f(x1, x2, . . . , xn).
Если функция f(x1, x2, . . . , xn) реализована в виде формулы, построения днф и кнф можно осуществить с помощью следующего алгоритма.
Во-первых, исключим знаки →, ↔, , |, ↓; при этом используем следующие эквивалентности:
u → v = u v, |
(4.5) |
u ↔ v = uv u v = (u v)(u v), |
(4.6) |
u v = ¬ (u → v) = uv uv = (u v)(u v), |
(4.7) |
u|v = u v, u ↓ v = u v. |
(4.8) |
Во-вторых, преобразуем полученное после первого шага выражение так, чтобы знак отрицания стоял только над булевыми переменными. При этом используем формулы инверсии:
u v |
= u v, |
|
= u v. |
(4.9) |
uv |
В-третьих, при построении днф формула, полученная после второго шага, преобразовывается с использованием первого дистрибутивного закона:
u(v w) = uv uw, |
(4.10) |
при построении кнф используется второй дистрибутивный закон:
u vw = (u v)(u w). |
(4.11) |
Изложенный метод построения днф и кнф назовем методом эквивалентных преобразований. Этот метод может быть применен в том случае, когда исходная булева функция задана формулой.
При реализации этого метода кроме перечисленных выше эквивалентностей (4.5)-(4.11) часто используется закон двойного отрицания
u = u, |
(4.12) |
а также следующие очевидные свойства операций дизъюнкции и конъюнкции:
u 1 = u, u 0 = 0, |
u u = 0, |
|
u 1 = 1, u u = 1, |
u 0 = u. |
(4.13) |