35
Метод решения систем однородных логических уравнений (22.11.2016) Максименкова Ольга Вениаминовна, старший преподаватель департамента программной инженерии факультета компьютерных наук НИУ ВШЭ © Максименкова О.В., ДПИ ФКН НИУ ВШЭ 1

Решение систем логических уравнений, ЕГЭ 23 информатика

Embed Size (px)

Citation preview

Page 1: Решение систем логических уравнений, ЕГЭ 23 информатика

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

(22.11.2016)

Максименкова Ольга Вениаминовна, старший преподаватель департамента программной инженерии факультета компьютерных наук НИУ ВШЭ

© Максименкова О.В., ДПИ ФКН НИУ ВШЭ 1

Page 2: Решение систем логических уравнений, ЕГЭ 23 информатика

Напоминание: задача поиска количества путей в многодольном графе

• K – количество одинаковых двудольных графов, составляющих многодольный граф;

• Q – количество вершин в каждой доле;

• F0 – единичная вектор-строка размерности Q;

• FK – вектор-строка размерности Q, элементами которой являются количества путей из первой доли в каждую вершину K-ой доли.

• I – единичный вектор-столбец размерности Q;

• R – общее количество путей из всех вершин первой доли многодольного графа во все вершины K-й доли.

• Тогда можно записать: 𝑅=𝐹0×𝑀𝐾×𝐼• Или в виде рекуррентной формулы 𝐹𝑖=𝐹𝑖−1×𝑀, 𝑖=1,2,…,𝐾𝑅=𝐹𝐾×𝐼

2© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 3: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (1)

3© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 4: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (2)

• Перепишем в принятых нами обозначениях:𝑥1 + 𝑥2 ∙ 𝑥3 = 1𝑥2 + 𝑥3 ∙ 𝑥4 = 1…𝑥7 + 𝑥8 ∙ 𝑥9 = 1𝑥8 + 𝑥9 ∙ 𝑥10 = 1

• Заметим, что все уравнения в системе имеют одинаковую структуру:

𝑥𝑖 + 𝑥𝑖+1 ∙ 𝑥𝑖+2 = 1

4© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Эта пара входит в (i+1)-е уравнение

Page 5: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (3)

• Последовательно решаем уравнения, то есть узнаем число решений первого уравнения, затем второго и так далее…

• Построим таблицу истинности для первого уравнения:

5© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x1 x2 x3 x2x3 x1+x2x3

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 1 1

1 0 0 0 1

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

Сколько решений у первого уравнения?

Напишите в чате

Page 6: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (4)

• Теперь посмотрим одновременно на первое и второе уравнения:

𝑥1 + 𝑥2 ∙ 𝑥3 = 1

𝑥2 + 𝑥3 ∙ 𝑥4 = 1

6© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x1 x2 x3 x2x3 x1+x2x3

0 0 0 0 0

0 0 1 0 0

0 1 0 0 0

0 1 1 1 1

1 0 0 0 1

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

x1, x2

x2, x3

00 01 10 11

00 01 10 11

Ищем связь между парами x1,x2 и x2,x3

Page 7: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (5)

• Чему соответствует число рёбер этого двудольного графа?

7© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x1, x2

x2, x3

00 01 10 11

00 01 10 11

Напишите в чате

Page 8: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (6)

• Добавим связи между парами x2,x3 и x3,x4

8© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x1, x2

x2, x3

00 01 10 11

00 01 10 11

x3, x4 00 01 10 11

Это соответствует добавлению ещё одного уравнения в систему.

Page 9: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (7)

• Получили многодольный граф, в котором связи между долями имеют одинаковую структуру

9© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x1, x2

x2, x3

00 01 10 11

00 01 10 11

𝑀 =

0 0 0 00 0 0 11 1 0 00 0 1 1

Мы помним, что общее количество путей в K-ую долю определяется 𝑅=𝐹0×𝑀𝐾×𝐼

Page 10: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (8)

𝑅𝐾 = 1 1 1 1 ×

0 0 0 00 0 0 11 1 0 00 0 1 1

𝐾

×

1111

• В виде рекуррентной формулы это можно записать 𝐹𝑖=𝐹𝑖−1×𝑀, 𝑖=1,2,…,𝐾

• 𝐹𝑖 – вектор-строка размера 4, состоящая из количеств путей в соответствующую вершину i-ой доли многодольного графа из всех вершин первой доли: 𝐹𝑖 = 𝑓00

𝑖 𝑓01𝑖 𝑓10

𝑖 𝑓11𝑖

• Как вычислить общее количество путей из первой доли в i-ю? 𝑅i=𝐹i×𝐼𝑅𝑖 = 𝑓00

𝑖 +𝑓01𝑖 +𝑓10

𝑖 +𝑓11𝑖

10© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 11: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (9)

• Посмотрим на матричные вычисления для системы из трёх уравнений:

𝐹1 = 𝐹0 ×𝑀 = 1 1 1 1 ×

0 0 0 00 0 0 11 1 0 00 0 1 1

= 1 1 1 2

𝐹2 = 𝐹1 ×𝑀 = 1 1 1 2 ×

0 0 0 00 0 0 11 1 0 00 0 1 1

= 1 1 2 3

𝐹3 = 𝐹2 ×𝑀 = 1 1 2 3 ×

0 0 0 00 0 0 11 1 0 00 0 1 1

= 2 2 3 4

Чему равно количество решений?

11© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Напишите в чате

Page 12: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (10)

• Вернёмся к нашему графу и запишем количество путей через рекуррентные формулы:

• Как вычислить общее количество решений для системы из iуравнений?

12© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi-1, xi

xi, xi+1

00 01 10 11

00 01 10 11

𝑓00𝑖 = 𝑓10

𝑖−1

𝑓01𝑖 = 𝑓10

𝑖−1

𝑓10𝑖 = 𝑓11

𝑖−1

𝑓11𝑖 = 𝑓01

𝑖−1 + 𝑓11𝑖−1

Напишите в чате

Page 13: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример 1 (11)

• Для наглядности построим таблицу вычислений

13© Максименкова О.В ДПИ ФКН НИУ ВШЭ

𝑓00𝑖 = 𝑓10

𝑖−1

𝑓01𝑖 = 𝑓10

𝑖−1

𝑓10𝑖 = 𝑓11

𝑖−1

𝑓11𝑖 = 𝑓01

𝑖−1 + 𝑓11𝑖−1

Кол-во ур-ий

пары 𝒇𝟎𝟎𝒊 𝒇𝟎𝟏

𝒊 𝒇𝟏𝟎𝒊 𝒇𝟏𝟏

𝒊 𝑹𝒊

0 x1, x2 0 1 1 1

1 x2, x3 1 1 1 2 5

2 x3, x4 1 1 2 3 7

3 x4, x5 2 2 3 4 11

4 x5, x6 3 3 4 6 16

5 x6, x7 4 4 6 9 23

6 x7, x8 6 6 9 13 34

7 x8, x9 9 9 13 19 50

8 x9, x10 13 13 19 28 73

Ответ

Page 14: Решение систем логических уравнений, ЕГЭ 23 информатика

Алгоритм решения системы однородных логических уравнений (1)1. Замена переменных (если возможна).

2. Переписать уравнение однородной системы в общем виде.

3. Преобразовать выражение в левой части уравнения (при необходимости).

4. Привести уравнение к логическому выражению равному единице (при необходимости)

5. Записать два соседних уравнения в общем виде• выделить множество общих переменных для двух соседних уравнений

6. В общем виде построить таблицу истинности логического выражения из левой части уравнения.

7. По таблице истинности определить связь между всеми возможными комбинациями элементов множеств, полученных в п.5

© Максименкова О.В., ДПИ ФКН НИУ ВШЭ 14

Page 15: Решение систем логических уравнений, ЕГЭ 23 информатика

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

8. Представить таблицу истинности в виде двудольного графа так, чтобы одному решению соответствовало ровно одно ребро.

• Множества вершин первой и второй долей графа должны совпадать.• Вершины представляют собой все наборы значений, которые могут

принимать выделенные общие переменные

9. Определить зависимость количества решений для системы iуравнений от количества решений системы (i-1) уравнений.

10. Найти количество решений системы уравнений одним из способов:

• Построением таблицы последовательного решения систем i-уравнений, i = 1,2,…,K.

• Умножением векторов и матриц для определения количества путей в многодольном графе, составленном из однородных двудольных.

11. Перейти к исходным переменным, если была замена переменных, и найти количество решений для исходной системы уравнений.

15© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 16: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (1)

16© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 17: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (2)

• Переписать уравнение однородной системы в общем виде.𝑥2𝑖−1 ≡ 𝑥2𝑖 + 𝑥2𝑖−1 ≡ 𝑥2𝑖+1 ∙ 𝑥2𝑖 ≡ 𝑥2𝑖+1 = 1

• Записать два соседних уравнения в общем виде• выделить множество общих переменных для двух соседних уравнений

𝑥2𝑖−1 ≡ 𝑥2𝑖 + 𝑥2𝑖−1 ≡ 𝑥2𝑖+1 ∙ 𝑥2𝑖 ≡ 𝑥2𝑖+1 = 1

𝑥2𝑖+1 ≡ 𝑥2𝑖+2 + 𝑥2𝑖+1 ≡ 𝑥2𝑖+3 ∙ 𝑥2𝑖+2 ≡ 𝑥2𝑖+3 = 1

• В (i+1)-м уравнении записана переменная x2i+1 на месте переменной x2i-1 i-го уравнения, следовательно надо найти связь между этими двумя переменными

Сколько общих переменных в соседних уравнениях?

17© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Напишите в чате

Page 18: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (3)

• В общем виде построить таблицу истинности логического выражения из левой части уравнения

18© Максименкова О.В ДПИ ФКН НИУ ВШЭ

𝒙𝟐𝒊−𝟏 𝒙𝟐𝒊 𝒙𝟐𝒊+𝟏 𝒙𝟐𝒊−𝟏⨁𝒙𝟐𝒊 𝒙𝟐𝒊−𝟏⨁𝒙𝟐𝒊+𝟏 𝒙𝟐𝒊 ≡ 𝒙𝟐𝒊+𝟏 𝒙𝟐𝒊−𝟏⨁𝒙𝟐𝒊+𝟏 𝒙𝟐𝒊 ≡ 𝒙𝟐𝒊+𝟏

0 0 0 0 0 1 0 0

0 0 1 0 1 0 0 0

0 1 0 1 0 0 0 1

0 1 1 1 1 1 1 1

1 0 0 1 1 1 1 1

1 0 1 1 0 0 0 1

1 1 0 0 1 0 0 0

1 1 1 0 0 1 0 0

Page 19: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (4)

• По таблице истинности определить связь между всеми возможными комбинациями элементов

• Определяем связь между возможными комбинациями x2i-1 и x2i+1, учитывая переменную x2i

19© Максименкова О.В ДПИ ФКН НИУ ВШЭ

x2i-1

x2i

0 1

0 1

x2i+1 0 1

𝒙𝟐𝒊−𝟏 𝒙𝟐𝒊 𝒙𝟐𝒊+𝟏

0 1 0 1 0 0 0 1

0 1 1 1 1 1 1 1

1 0 0 1 1 1 1 1

1 0 1 1 0 0 0 1

Напишите в чатеСколько долей в этом графе?

Page 20: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (5)

• Определить матрицу графа (перемножим матрицы, образующих его двудольных графов)

0 11 0

×1 11 1

=1 11 1

• Определить зависимость количества решений для системы iуравнений от количества решений системы (i-1) уравнений.

𝑓0𝑖 = 𝑓0

𝑖−1 + 𝑓1𝑖−1

𝑓1𝑖 = 𝑓0

𝑖−1 + 𝑓1𝑖−1

20© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 21: Решение систем логических уравнений, ЕГЭ 23 информатика

Пример использования алгоритма (6)

• Найти количество решений системы уравнений:• Умножением векторов и матриц для определения количества путей в

многодольном графе, составленном из однородных двудольных.

𝑅𝐾 = 1 1 ×1 11 1

𝐾

×11

• Построением таблицы последовательного решения систем i-уравнений, i= 1,2,…,K

𝑅𝑖 = 2𝑓0𝑖−1 + 2𝑓1

𝑖−1

21© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Кол-во ур-ий

Количествопеременных

пары 𝒇𝟎𝒊 𝒇𝟏

𝒊 𝑹𝒊

0 x1 1 1

1 3 x3 2 2 4

2 5 x5 4 4 8

3 7 x7 8 8 16

4 9 x9 16 16 32

Ответ

Page 22: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (1)

22© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 23: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (2)

Перепишем в выбранных нами обозначениях𝑥1 → 𝑥2 ∙ 𝑦1 ∙ 𝑦1 → 𝑦2 = 1𝑥2 → 𝑥3 ∙ 𝑦2 ∙ 𝑦2 → 𝑦1 = 1…𝑥5 → 𝑥6 ∙ 𝑦5 ∙ 𝑦5 → 𝑦6 = 1𝑥6 → 𝑦6 = 1

23© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 24: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (3)

Перепишем систему в общем виде:𝑥𝑖 → 𝑥𝑖+1 ∙ 𝑦𝑖 ∙ 𝑦𝑖 → 𝑦𝑖+1 = 1, 𝑖 = 1, . . , 5𝑥6 → 𝑦6 = 1

Пока исключим из рассмотрения шестое уравнение и запишем два соседних уравнения из первых пяти:

𝑥𝑖−1 → 𝑥𝑖 ∙ 𝑦𝑖−1 ∙ 𝑦𝑖−1 → 𝑦𝑖 = 1

𝑥𝑖 → 𝑥𝑖+1 ∙ 𝑦𝑖 ∙ 𝑦𝑖 → 𝑦𝑖+1 = 1

Соседние уравнения имеют две общие переменные xi и yi.

24© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 25: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (4)

• Найдём связь между парами (xi−1, yi−1) и (xi, yi)

• Для этого построим таблицу истинности (i − 1)-го уравнения

• Будем учитывать свойства импликации и конъюнкции

25© Максименкова О.В ДПИ ФКН НИУ ВШЭ

A B A→B

0 0 1

0 1 1

1 0 0

1 1 1

A B A∙B

0 0 0

0 1 0

1 0 0

1 1 1

Page 26: Решение систем логических уравнений, ЕГЭ 23 информатика

26© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi-1 yi-1 xi yi xiyi-1 xi-1→xiyi-1 yi-1→yi (xi-1→xiyi-1)(yi-1→yi)

0 0 0 0 0

0 0 0 1 0

0 0 1 0 0

0 0 1 1 0

0 1 0 0 0

0 1 0 1 0

0 1 1 0 1

0 1 1 1 1

1 0 0 0 0

1 0 0 1 0

1 0 1 0 0

1 0 1 1 0

1 1 0 0 0

1 1 0 1 0

1 1 1 0 1

1 1 1 1 1

Page 27: Решение систем логических уравнений, ЕГЭ 23 информатика

27© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi-1 yi-1 xi yi xiyi-1 xi-1→xiyi-1 yi-1→yi (xi-1→xiyi-1)(yi-1→yi)

0 0 0 0 0 1

0 0 0 1 0 1

0 0 1 0 0 1

0 0 1 1 0 1

0 1 0 0 0 1

0 1 0 1 0 1

0 1 1 0 1 1

0 1 1 1 1 1

1 0 0 0 0 x

1 0 0 1 0 x

1 0 1 0 0 x

1 0 1 1 0 x

1 1 0 0 0 x

1 1 0 1 0 x

1 1 1 0 1 1

1 1 1 1 1 1

Page 28: Решение систем логических уравнений, ЕГЭ 23 информатика

28© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi-1 yi-1 xi yi xiyi-1 xi-1→xiyi-1 yi-1→yi (xi-1→xiyi-1)(yi-1→yi)

0 0 0 0 0 1 1

0 0 0 1 0 1 1

0 0 1 0 0 1 1

0 0 1 1 0 1 1

0 1 0 0 0 1 x

0 1 0 1 0 1 1

0 1 1 0 1 1 x

0 1 1 1 1 1 1

1 0 0 0 0 x

1 0 0 1 0 x

1 0 1 0 0 x

1 0 1 1 0 x

1 1 0 0 0 x x

1 1 0 1 0 x

1 1 1 0 1 1 x

1 1 1 1 1 1 1

Page 29: Решение систем логических уравнений, ЕГЭ 23 информатика

29© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi-1 yi-1 xi yi xiyi-1 xi-1→xiyi-1 yi-1→yi (xi-1→xiyi-1)(yi-1→yi)

0 0 0 0 0 1 1 1

0 0 0 1 0 1 1 1

0 0 1 0 0 1 1 1

0 0 1 1 0 1 1 1

0 1 0 0 0 1 x

0 1 0 1 0 1 1 1

0 1 1 0 1 1 x

0 1 1 1 1 1 1 1

1 0 0 0 0 x

1 0 0 1 0 x

1 0 1 0 0 x

1 0 1 1 0 x

1 1 0 0 0 x x

1 1 0 1 0 x

1 1 1 0 1 1 x

1 1 1 1 1 1 1 1

Page 30: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (9)

• Определяем связь множества пар (xi−1, yi−1) и (xi, yi) для строк таблицы, в которых выражение истинно.

30© Максименкова О.В ДПИ ФКН НИУ ВШЭ

xi−1, yi−1

xi, yi

00 01 10 11

00 01 10 11

xi-1 yi-1 xi yi xiyi-1 xi-1→xiyi-1 yi-1→yi (xi-1→xiyi-1)(yi-1→yi)

0 0 0 0 0 1 1 1

0 0 0 1 0 1 1 1

0 0 1 0 0 1 1 1

0 0 1 1 0 1 1 1

0 1 0 1 0 1 1 1

0 1 1 1 1 1 1 1

1 1 1 1 1 1 1 1

Page 31: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (10)

• Запишем зависимость количества решений в системе с iуравнениями, от количества решений в системе с (i-1)уравнениями.

𝑓00𝑖 = 𝑓00

𝑖−1

𝑓01𝑖 = 𝑓00

𝑖−1 + 𝑓01𝑖−1

𝑓10𝑖 = 𝑓00

𝑖−1

𝑓11𝑖 = 𝑓00

𝑖−1 + 𝑓01𝑖−1 + 𝑓11

𝑖−1

Поскольку у нас ещё есть шестое уравнение, то все наборы, заканчивающиеся на 10 мы исключим из решения, то естьколичество решений системы из i уравнений будет равно:

𝑅𝑖 = 4𝑓00𝑖 + 2𝑓01

𝑖 + 𝑓11𝑖

31© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 32: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ 2017 (11)

• Строим таблицу для вычислений:

32© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Количество уравнений

𝒇𝟎𝟎𝒊 𝒇𝟎𝟏

𝒊 𝒇𝟏𝟎𝒊 𝒇𝟏𝟏

𝒊 𝑹𝒊

0 1 1 0 1

1 1 2 1 3

2 1 3 1 6

3 1 4 1 10

4 1 5 1 15

5 1 6 1 21 28

×+ + +Ответ

xi−1, yi−1

xi, yi

00 01 10 11

00 01 10 11

Page 33: Решение систем логических уравнений, ЕГЭ 23 информатика

Демо-вариант ЕГЭ-2017 (12)

• Проверим результаты, подсчётом числа решений в Wolfram Alpha

• Count[BooleanTable[{(X1\[Implies]X2&&Y1)&&(Y1\[Implies]Y2)&&(X2\[Implies]X3&&Y2)&&(Y2\[Implies]Y3)&&(X3\[Implies]X4&&Y3)&&(Y3\[Implies]Y4)&&(X4\[Implies]X5&&Y4)&&(Y4\[Implies]Y5)&&(X5\[Implies]X6&&Y5)&&(Y5\[Implies]Y6)&&(X6\[Implies]Y6)},{X1,X2,X3,X4,X5,X6,Y1,Y2,Y3,Y4,Y5,Y6}], {True}]

• Ответ 28

33© Максименкова О.В ДПИ ФКН НИУ ВШЭ

Page 34: Решение систем логических уравнений, ЕГЭ 23 информатика

Время вопросов

© Максименкова О.В., ДПИ ФКН НИУ ВШЭ 34

Page 35: Решение систем логических уравнений, ЕГЭ 23 информатика

Использованная литература

1. Авдошин С. М., Ахметсафина Р. З., Максименкова О. В. Информатика: Логика и алгоритмы. Эффективные методы решения задач: Пособие для самостоятельной подготовки.--М., СПб.: Просвещение, 2013.

2. Авдошин С.М., Ахметсафина Р.З., и др. Информатика и ИКТ: ЕГЭ: Учебно-справочные материалы (Серия «Итоговый контроль: ЕГЭ»).– М.; СПб.: Просвещение, 2012. – 295 с.

35© Максименкова О.В ДПИ ФКН НИУ ВШЭ