Задача №23. Решение систем логических уравнений.
Автор материалов - Лада Борисовна Есакова.
Решение систем логических уравнений методом замены переменных
Метод замены переменных применяется, если некоторые переменные входят в состав уравнений только в виде конкретного выражения, и никак иначе. Тогда это выражение можно обозначить новой переменной.
Пример 1.
Сколько существует различных наборов значений логических переменных x1, х2, х3, х4, х5, х6, х7, х8, которые удовлетворяют всем перечисленным ниже условиям?
(x1 → х2) → (х3→ х4) = 1
(х3 → х4) → (х5 → х6) = 1
(х5 → х6) → (х7 → х8) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, х2, х3, х4, х5, х6, х7, х8, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Сделаем замену переменных:
(x1 → х2) = y1; (х3 → х4) = y2; (х5 → х6) = y3; (х7 → х8) = y4.
Тогда можно записать систему в виде одного уравнения:
(y1 → y2) ∧ (y2 → y3) ∧ (y3 → y4) = 1. Конъюнкция равна 1 (истинна), когда каждый операнд принимает значение 1. Т.е. каждая из импликаций должна быть истинна, а это выполняется при всех значениях, кроме (1 → 0). Т.е. в таблице значений переменных y1, y2, y3, y4 единица не должна стоять левее нуля:
y1
|
y2
|
y3
|
y4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
Т.е. условия выполняются для 5 наборов y1-y4.
Т.к. y1 = x1 → x2, то значение y1 = 0 достигается на единственном наборе x1, x2: (1, 0), а значение y1 = 1 – на трех наборах x1, x2: (0,0) , (0,1), (1,1). Аналогично для y2, y3, y4.
Поскольку каждый набор (x1,x2) для переменной y1 сочетается с каждым набором (x3,x4) для переменной y2 и т.д., то количества наборов переменных x перемножаются:
y1
|
y2
|
y3
|
y4
|
Кол-во наборов на x1…x8
|
0
|
0
|
0
|
0
|
1*1*1*1 = 1
|
0
|
0
|
0
|
1
|
1*1*1*3 = 3
|
0
|
0
|
1
|
1
|
1*1*3*3 = 9
|
0
|
1
|
1
|
1
|
1*3*3*3 = 27
|
1
|
1
|
1
|
1
|
3*3*3*3 = 81
|
Сложим количество наборов: 1 + 3 + 9 + 27 + 81 = 121.
Ответ: 121
Пример 2.
Сколько существует различных наборов значений логических переменных x1, x2, ... x9, y1, y2, ... y9, которые удовлетворяют всем перечисленным ниже условиям?
(¬ (x1 ≡ y1)) ≡ (x2 ≡ y2)
(¬ (x2 ≡ y2)) ≡ (x3 ≡ y3)
…
(¬ (x8 ≡ y8)) ≡ (x9 ≡ y9)
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ... x9, y1, y2, ... y9, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Сделаем замену переменных:
(x1 ≡ y1) = z1, (x2 ≡ y2) = z2,…. ,(x9 ≡ y9) = z9
Систему можно записать в виде одного уравнения:
(¬ z1 ≡ z2) ∧ (¬ z2 ≡ z3) ∧ …..∧ (¬ z8 ≡ z9)
Эквивалентность истинна, только если оба операнда равны. Решениями этого уравнения будут два набора:
z1 |
z2 |
z3 |
z4 |
z5 |
z6 |
z7 |
z8 |
z9 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
Т.к. zi = (xi ≡ yi), то значению zi = 0 соответствуют два набора (xi,yi): (0,1) и (1,0), а значению zi = 1 - два набора (xi,yi): (0,0) и (1,1).
Тогда первому набору z1, z2,…, z9 соответствует 29 наборов (x1,y1), (x2,y2),…, (x9,y9).
Столько же соответствует второму набору z1, z2,…, z9. Тогда всего 29 +29 = 1024 наборов.
Ответ:1024
Решение систем логических уравнений методом визуального определения рекурсии.
Этот метод применяется, если система уравнений достаточно проста и порядок увеличения количества наборов при добавлении переменных очевиден.
Пример 3.
Сколько различных решений имеет система уравнений
¬x1 ∨ x2 = 1
¬x2 ∨ x3 = 1
…
¬x9 ∨ x10 = 1,
где x1, x2, … x10 — логические переменные?
В ответе не нужно перечислять все различные наборы значений x1, x2, … x10, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Решим первое уравнение. Дизъюнкция равна 1, если хотя бы один из ее операндов равен 1. Т.е. решениями являются наборы:

Для x1=0 существуют два значения x2 ( 0 и 1), а для x1=1 только одно значение x2 (1), такие, что набор (x1,x2) является решением уравнения. Всего 3 набора.
Добавим переменную x3 и рассмотрим второе уравнение. Оно аналогично первому, значит для x2=0 существуют два значения x3 ( 0 и 1), а для x2=1 только одно значение x3 (1), такие, что набор (x2,x3) является решением уравнения. Всего 4 набора.

Несложно заметить, что при добавлении очередной переменной добавляется один набор. Т.е. рекурсивная формула количества наборов на (i+1) переменных:
Ni+1 = Ni + 1. Тогда для десяти переменных получим 11 наборов.
Ответ: 11
Решение систем логических уравнений различного типа
Пример 4.
Сколько существует различных наборов значений логических переменных x1, ..., x4, y1,..., y4, z1,..., z4, которые удовлетворяют всем перечисленным ниже условиям?
(x1 → x2) ∧ (x2 → x3) ∧ (x3 → x4) = 1
(y1 → y2) ∧ (y2 → y3) ∧ (y3 → y4) = 1
(z1 → z2) ∧ (z2→ z3) ∧ (z3 → z4) = 1
x4 ∧ y4 ∧ z4 = 0
В ответе не нужно перечислять все различные наборы значений переменных x1, ..., x4, y1, ..., y4, z1, ..., z4, при которых выполнена данная система равенств.
В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Заметим, что три уравнения системы одинаковы на различных независимых наборах переменных.
Рассмотрим первое уравнение. Конъюнкция истинна (равна 1) только тогда, когда все ее операнды истинны (равны 1). Импликация равна 1 на всех наборах, кроме (1,0). Значит, решением первого уравнения будут такие наборы x1, x2, x3, x4, в которых 1 не стоит левее 0 (5 наборов):
x1
|
x2
|
x3
|
x4
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
0
|
0
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
Аналогично, решениями второго и третьего уравнений будут абсолютно такие же наборы y1,…,y4 и z1,…, z4.
Теперь проанализируем четвертое уравнение системы: x4 ∧ y4 ∧ z4 = 0. Решением будут все наборы x4, y4, z4, в которых хотя бы одна из переменных равна 0.
Т.е. для x4 = 0 подойдут все возможные наборы (y4, z4), а для x4 = 1 подойдут наборы (y4, z4), в которых присутствует хотя бы один ноль : (0, 0), (0,1) , (1,0).
x1
|
x2
|
x3
|
x4
|
Кол-во наборов
(y4, z4)
|
0
|
0
|
0
|
0
|
5*5 = 25
|
0
|
0
|
0
|
1
|
1 + 4 + 4 = 9
|
0
|
0
|
1
|
1
|
1 + 4 + 4 = 9
|
0
|
1
|
1
|
1
|
1 + 4 + 4 = 9
|
1
|
1
|
1
|
1
|
1 + 4 + 4 = 9
|
Общее количество наборов 25 + 4*9 = 25 + 36 = 61.
Ответ: 61
Решение систем логических уравнений методом построения рекуррентных формул
Метод построения рекуррентных формул применяется при решении сложных систем, в которых порядок увеличения количества наборов неочевиден, а построение дерева невозможно из-за объемов.
Пример 5.
Сколько существует различных наборов значений логических переменных x1, x2, … x7, y1, y2, … y7, которые удовлетворяют всем перечисленным ниже условиям?
(x1 ∨ y1) ∧ ((x2 ∧ y2) → (x1 ∧ y1)) = 1
(x2 ∨ y2) ∧ ((x3 ∧ y3) → (x2 ∧ y2)) = 1
…
(x6 ∨ y6) ∧ ((x7 ∧ y7) → (x6 ∧ y6)) = 1
(x7 ∨ y7) = 1
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, ..., x7, y1, y2, ..., y7, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Заметим, что первые шесть уравнений системы одинаковы и отличаются только набором переменных. Рассмотрим первое уравнение. Его решением будут следующие наборы переменных:

Обозначим:
число наборов (0,0) на переменных (x1,y1) через A1,
число наборов (0,1) на переменных (x1,y1) через B1,
число наборов (1,0) на переменных (x1,y1) через C1,
число наборов (1,1) на переменных (x1,y1) через D1.
число наборов (0,0) на переменных (x2,y2) через A2,
число наборов (0,1) на переменных (x2,y2) через B2,
число наборов (1,0) на переменных (x2,y2) через C2,
число наборов (1,1) на переменных (x2,y2) через D2.
Из дерева решений видим, что
A1=0, B1=1, C1=1, D1=1.
Заметим, что набор (0,0) на переменных (x2,y2) получается из наборов (0,1), (1,0) и (1,1) на переменных (x1,y1). Т.е. A2=B1+C1+D1.
Набор (0,1) на переменных (x2,y2) получается из наборов (0,1), (1,0) и (1,1) на переменных (x1,y1). Т.е. B2=B1+C1+D1.
Аналогично рассуждая, заметим, что С2=B1+C1+D1. D2= D1.
Таким образом, получаем рекуррентные формулы:
Ai+1 = Bi + Ci + Di
Bi+1 = Bi + Ci + Di
Ci+1 = Bi + Ci + Di
Di+1 = Ai +Bi + Ci + Di
Составим таблицу
Наборы |
Обозн. |
Формула |
Количество наборов
|
i=1 |
i=2 |
i=3 |
i=4 |
i=5 |
i=6 |
i=7 |
(0,0) |
Ai |
Ai+1=Bi+Ci+Di |
0 |
3 |
7 |
15 |
31 |
63 |
127 |
(0,1) |
Bi |
Bi+1=Bi+Ci+Di |
1 |
3 |
7 |
15 |
31 |
63 |
127 |
(1,0) |
Ci |
Ci+1=Bi+Ci+Di |
1 |
3 |
7 |
15 |
31 |
63 |
127 |
(1,1) |
Di |
Di+1=Di |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Последнему уравнению (x7 ∨ y7) = 1 удовлетворяют все наборы, кроме тех, в которых x7=0 и y7=0. В нашей таблице число таких наборов A7.
Тогда общее количество наборов равно B7 + C7 + D7 = 127+127+1 = 255
Ответ: 255
Ты нашел то, что искал? Поделись с друзьями!