Методы решения систем логическикх уравнений

Методы решения систем логических уравнений
Решить систему логических уравнений можно, например, с помощью таблицы истинности (если количество переменных не слишком велико) или с помощью дерева решений, предварительно упростив каждое уравнение.

1. Метод замены переменных.
Ввод новых переменных позволяет упростить систему уравнений, сократив количество неизвестных. Новые переменные должны быть независимыми друг от друга. После решения упрощенной системы надо снова вернуться к первоначальным переменным.
Рассмотрим применение этого метода на конкретном примере.
Пример. Сколько различных решений имеет система уравнений
((X1
· X2)
· (X3
· X4))
· (¬(X1
· X2)
· ¬(X3
· X4)) = 0
((X3
· X4)
· (X5
· X6))
· (¬(X3
· X4)
· ¬(X5
· X6)) = 0
((X5
· X6)
· (X7
· X8))
· (¬(X5
· X6)
· ¬(X7
· X8)) = 0
((X7
· X8)
· (X9
· X10))
· (¬(X7
· X8)
· ¬(X9
· X10)) = 0
где x1, x2, , x10 – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов.
Решение:
Введем новые переменные: А=(X1
· X2); В=(X3
· X4); С=(X5
· X6); D=(X7
· X8); E=(X9
· X10).
(Внимание! Каждая их переменных x1, x2, , x10 должна входить только в одну из новых переменных А,В,С,D,Е, т.е. новые переменные независимы друг от друга).
Тогда система уравнений будет выглядеть так:
( А
· В)
· (¬А
· ¬В)=0
( В
· C)
· (¬B
· ¬C)=0
( С
· D)
· (¬C
· ¬D)=0
( D
· E)
· (¬D
· ¬E)=0
Построим дерево решений полученной системы:

Рассмотрим уравнение А=0, т.е. (X1
· X2)=0. Оно имеет 2 корня:
X1
X2
X1
· X2

0
0
1

0
1
0

1
0
0

1
1
1

Из этой же таблицы видно, что уравнение А=1 тоже имеет 2 корня. Расставим кол-во корней на дереве решений:

Чтобы найти количество решений одной ветви, надо перемножить количества решений на каждом ее уровне. Левая ветвь имеет 2(2(2(2(2=32 решения; правая ветвь имеет тоже 32 решения. Т.е. вся система имеет 32+32=64 решения.
Ответ: 64.
2. Метод рассуждений.
Сложность решения систем логических уравнений состоит в громоздкости полного дерева решений. Метод рассуждений позволяет не строить все дерево полностью, но понять при этом, сколько оно будет иметь ветвей. Рассмотрим этот метод на конкретных примерах.
Пример 1. Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, y1, y2, y3, y4, y5, которые удовлетворяют всем перечисленным ниже условиям? 
(x1x2) /\ (x2x3) /\ (x3x4) /\ (x4x5 ) = 1 
(y1y2) /\ (y2y3) /\ (y3y4) /\ (y4y5 ) = 1 
x1\/y1 =1 
В ответе не нужно перечислять все различные наборы значений переменных x1, x2, x3, x4, x5, y1, y2, y3, y4, y5, при которых выполнена данная система равенств. В качестве ответа Вам нужно указать количество таких наборов.
Решение:
Первое и второе уравнения содержат независимые переменные, которые связаны третьим условием. Построим дерево решений первого и второго уравнений.


Чтобы представить дерево решений системы из первого и второго уравнений, надо каждую ветвь первого дерева продолжить деревом для переменных у. Построенное таким образом дерево будет содержать 36 ветвей. Некоторые из этих ветвей не удовлетворяют третьему уравнению системы. Отметим на первом дереве количество ветвей дерева «у», которые удовлетворяют третьему уравнению:

Поясним: для выполнения третьего условия при х1=0 должно быть у1=1, т.е все ветви дерева «х», где х1=0 можно продолжить только одной ветвью из дерева «у». И только для одной ветви дерева «х» (правой) подходят все ветви дерева «у». Таким образом, полное дерево всей системы содержит 11 ветвей. Каждая ветвь представляет собой одно решение исходной системы уравнений. Значит, вся система имеет 11 решений.
Ответ: 11.
Пример 2. Сколько различных решений имеет система уравнений
(X1
· X2)
· (X1
· X10)
· (¬X1
·¬ X10)= 1

· (X2
· X3)
· (X2
· X10)
· (¬X2
·¬ X10)= 1.

(X9
· X10)
· (X9
· X10)
· (¬X9
·¬ X10)= 1
(X1
· X10) = 0
где x1, x2, , x10 – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов.
Решение: Упростим систему. Построим таблицу истинности части первого уравнения:
X1
X10
X1
· X10
¬X1
·¬ X10
(X1
· X10)
· (¬X1
·¬ X10)

0
0
0
1
1

0
1
0
0
0

1
0
0
0
0

1
1
1
0
1


Обратите внимание на последний столбец, он совпадает с результатом действия X1
· X10.
X1
· X10

1

0

0

1

После упрощения получим:
(X1
· X2)
· (X1
· X10)=1
(X2
· X3)
· (X2
· X10)=1
(X3
· X4)
· (X3
· X10)=1

(X9
· X10)
· (X9
· X10)=1
(X1
· X10) = 0
Рассмотрим последнее уравнение: (X1
· X10) = 0, т.е. х1 не должно совпадать с х10. Чтобы первое уравнение было равно 1, должно выполняться равенство (X1
· X2)=1, т.е. х1 должно совпадать с х2.
Построим дерево решений первого уравнения:

Рассмотрим второе уравнение: при х10=1 и при х2=0 скобка (X2
· X10)=0, значит, скобка (X2
· X3)должна быть равна 1 (т.е. х2 совпадает с х3); при х10=0 и при х2=1 скобка (X2
· X10)=0, значит, скобка (X2
· X3)должна быть равна 1 (т.е. х2 совпадает с х3):


Рассуждая таким образом, построим дерево решений для всех уравнений:

Таким образом, система уравнений имеет всего 2 решения.
Ответ: 2.




Пример 3.
Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4, которые удовлетворяют всем перечисленным ниже условиям?
(x1x2) /\ (x2x3) /\ (x3x4) = 1
(¬x1 /\ y1 /\ z1) \/ (x1 /\ ¬y1 /\ z1) \/ (x1 /\ y1 /\ ¬z1) = 1
(¬x2 /\ y2 /\ z2) \/ (x2 /\ ¬y2 /\ z2) \/ (x2 /\ y2 /\ ¬z2) = 1
(¬x3 /\ y3 /\ z3) \/ (x3 /\ ¬y3 /\ z3) \/ (x3 /\ y3 /\ ¬z3) = 1
(¬x4 /\ y4 /\ z4) \/ (x4 /\ ¬y4 /\ z4) \/ (x4 /\ y4 /\ ¬z4) = 1
Решение:
Построим дерево решений 1-го уравнения:


Рассмотрим второе уравнение:
При х1=0 : вторая и третья скобки будут равны 0; чтобы первая скобка была равна 1, должны у1=1 , z1=1 (т.е. в этом случае - 1 решение)
При х1=1 : первая скобка будет равна 0; вторая или третья скобка должна быть равна 1; вторая скобка будет равна 1 при у1=0 и z1=1; третья скобка будет равна 1 при у1=1 и z1=0 (т.е. в этом случае - 2 решения).
Аналогично для остальных уравнений. Отметим полученное кол-во решений у каждого узла дерева:

Чтобы узнать кол-во решений для каждой ветви, перемножим полученные числа по отдельности для каждой ветви (слева напрво).
1 ветвь: 1(1(1(1 = 1 решение
2 ветвь: 1(1(1(2 =2 решения
3 ветвь: 1(1(2(2 =4 решения
4 ветвь: 1(2(2(2 =8 решения
5 ветвь: 2(2(2(2=16 решения
Сложим полученные числа: всего 31 решение.
Ответ: 31.
3. Закономерное увеличение количества корней
В некоторых системах количество корней очередного уравнения зависит от количества корней предыдущего уравнения.
Пример 1. Сколько существует различных наборов значений логических переменных x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, которые удовлетворяют всем перечисленным ниже условиям?
¬(x1
· x2) ( ( (x1 ( ¬x3) ( (¬x1 ( x3) ) = 0
¬(x2
· x3) ( ( (x2 ( ¬x4) ( (¬x2 ( x4) ) = 0

¬(x8
· x9) ( ( (x8 ( ¬x10) ( (¬x8 ( x10) ) = 0

Упростим первое уравнение: (x1 ( ¬x3) ( (¬x1 ( x3)=x1(x3=¬(x1
· x3). Тогда система примет вид:
¬(x1
· x2) ( ¬(x1
· x3) = 0
¬(x2
· x3) ( ¬(x2
· x4)= 0

¬(x8
· x9) ( ¬(x8
· x10) = 0













И т.д.

Каждое следующее уравнение имеет на 2 корня больше, чем предыдущее.
4 уравнение имеет 12 корней;
5 уравнение имеет 14 корней

8 уравнение имеет 20 корней.
Ответ: 20 корней.
Иногда количество корней растет по закону чисел Фибоначчи.
Решение системы логических уравнений требует творческого подхода.
х1=0

х1=1

х2=0

х2=1

х2=0

х2=1

х3=0

х3=1

х3=0

х3=0

х3=1

х3=1

х4=1

х4=0

х4=1

х4=0

х4=1

х4=0

х4=1

х4=0

х5=1

х5=0

х5=1

х5=0

х5=0

х5=0

х5=1

х5=0

х5=1

х5=1

1 уравнение (6 корней)

2 уравнение (8 корней)

3 уравнение (10 корней)



Рисунок 1

Приложенные файлы


Добавить комментарий