SlideShare a Scribd company logo
Николай Вячеславович Шилов – CSEdays,
Екатеринбург 12 – 14 ноября 2010 г.
Что программистам надо знать о
программных логиках
О чём эти лекции?
Несмотря на рост популярности формальных
методов для разработки надежного программного
обеспечения за рубежом, эта область остаётся
мало знакома программистам-разработчикам в
России.
Многие считают формальные методы анализа
программ чрезмерно «математизированными» для
себя.
О чём эти лекции?
Давайте попытаемся в доступной
(но математически-корректной форме)
познакомиться с основными
одного из современных подходов к
формальной спецификации и верификации,
основанному на программых логиках.
История с одной головоломкой
Есть 15 монет, среди которых одна – фальшивая, а
остальные – настоящие; 13 настоящих монет и
фальшивая монета внешне одинаковы, а одна
настоящая монета помечена; все настоящие монеты
имеют равный вес, а фальшивая – вес, отличный от
веса настоящей монеты; можно ли найти фальшивую
монету за 3 взвешивания на чашечных весах?
Задача для программиста
Написать программу с тремя входными данными

U – количество монет, среди которых одна
фальшивая,

V – дополнительное количество настоящих монет,

M – разрешённое количество взвешиваний,
результатом которой является или impossible, или
программа ALPHA определения фальшивой монеты.
Задача для программиста
Программа ALPHA осуществляет стратегию поиска в
следующей постановке. Все (U + V) монет имеют
разные номера от 1 до (U + V), все дополнительные
настоящие монеты имеют номера от 1 до V. Диалог с
ALPHA начинается с выбора пользователем номера
фальшивой монеты (от (V + 1) до (V + U)) и её веса
относительно настоящих монет
Задача для программиста
Далее диалог состоит из последовательности
раундов, количество которых не превышает M. В
каждом раунде программа ALPHA выводит два
множества номеров монет для помещения их на
первую и вторую чаши весов и запрос к пользователю
о результате взвешивания, а пользователь отвечает,
какая чашка легче в соответствии с начальным
выбором.
Задача для программиста
Сессия заканчивается
выводом ALPHA номера фальшивой монеты.
Пример:
найти фальшивку среди 5 неопознанных монет за 2
взвешивания с использованием 1 эталонной монеты
Игры с монетками
Пример приводит к игровой интерпретации
головоломки и задачи для программистов:
Игра GAME(N,M) игроков user и prog состоит
из последовательности раундов. В каждый раун
начинает игрок prog, его ход – это пара
непересекающихся множеств (равной мощности)
чисел из [1..(M+N)] для левой и правой чашки весов.
Игры с монетками
Возможный ответный ход игрока user – «<», «=» или
«>», но его ход не должен противоречить
всем предыдущим раундам в следующем смысле:
существуют число [(M+1)..(M+N)] и относительный
вес фальшивой монеты, удовлетворяющие всем
ограничениям, введенным в предыдущих раундах.
Игры с монетками
Игрок prog выигрывает игру GAME(N,M) как только
единственное число из [(M+1)..(M+N)] удовлетворяют
всем ограничениям, полученным в результате
«взвешиваний» во время игры.
Игры с монетками
Теперь головоломку и задачу о метапрограмме
можно переформулировать в следующем виде:
•Найти выигрышную стратегию для prog не более чем
в 3 раунда в игре GAME(14,1);
•Написать метапрограмму, которая для всех N≥1, M≥0
и K≥0 порождает (если возможно) выигрышную
стратегию для prog из (не более чем) K раундов в
игре GAME(N,M).
Помеченные системы переходов
Конечную GAME(M,N) можно представлять в виде
«помеченной системы переходов» – графа,
• вершины которого соответствуют позициям игры,
• вершины, соответствующие выигрышу игрока prog,
помечены «OK»,
• дуги соответствуют возможным ходам игроков prog
и user и соответственно помечены помечены.
Помеченная систем переходов для GAME(M,N)
Позиции в этой игре – это пятерки (U, L, H, V, Q), где
• U – множество номеров из [(M+1)..(M+N)] монет,
про которые пока ничего невозможно сказать;
• L – множество номеров из [(M+1)..(M+N)] монет,
которые пока неопознаны, но участвовали во
взвешиваниях и были на легкой чаше весов;
• H – множество номеров из [(M+1)..(M+N)] монет,
которые пока неопознаны, но участвовали во
взвешиваниях и были на тяжелой чаше весов;
Помеченная система переходов для GAME(M,N)
• V – множество номеров из [1..(N+M)] монет, про
которые уже известно, что они настоящие;
• Q – (запрос на) взвешивание, т. е. пара
непересекающихся подмножеств S1, S2 ⊆[1..(N+M)]
равной мощности.
Помеченная система переходов для GAME(M,N)
Три естественных ограничения:
•U, L, H и V не пересекаются,
•U ∪ L ∪ H ∪ V = [1..(N+M)],
•U ∪ L ∪ H ∪ ∅.
Дополнительно можно заметить, что
•U ≠ ∅ тогда и только тогда, когда L ∪ H = ∅.
Помеченная система переходов для GAME(M,N)
Возможный ход
игрока prog – это запрос
на взвешивание двух
множеств монет,
т. е. пара позиций
следующего вида:
Помеченная система переходов для GAME(M,N)
Возможный ход
игрока user – это ответ
«<», «=» или «>» на
предыдущий запрос.
Этот ответ вызывает
изменение позиции:
Помеченная система переходов для GAME(M,N)
если
S1
= U1
∪ L1
∪ H1
∪ V1
и
S2
= U2
∪ L2
∪ H2
∪ V2
,
где
U1
,U2
⊆U, L1
,L2
⊆L,
H1
,H2
⊆H, V1
,V2
⊆V,
то
Помеченная система переходов для GAME(M,N)
В помеченной системе переходов
вершины (U, L, H, V, (∅,∅)), где |U| + |L| + |H| =1,
помечаем «OK».
Выигрышные стратегии по раундам
Пусть
•Wn
– множество позиций, где prog имеет
выигрышную стратегию (за неболее чем) n раундов,
•W – множество позиций, где есть выигрышная
стратегия для игрока prog.
Выигрышные стратегии по раундам
Тогда в помеченной системе переходов
•W0
= множество позиций, помеченных «OK»,
•Wn+1
= Wn
∪ «позиции,
в которых существует ход prog,
после которого любой ход user
приводит в позиции» OK ∪ Wn
,
•W = ∪n≥0
Wn
.
Динамическая логика с неподвижными точками
как язык описания множеств вершин помеченных
системах переходов
Пусть
•Φ0
– это формула «OK»,
•Φn+1
– это формула Φn
∨ 〈prog〉 [user](OK ∨ Φn
),
•Φ – это формула µP. (P ∨ 〈prog〉 [user](OK ∨ P))
со следующей семантикой в GAME(M,N):
[Φn
]GAME(M,N)
= Wn
, [ Φ ]GAME(M,N)
= W.
Программные логики
как языки запросов к помеченным системам
переходов
Задача верификации моделей (model checking):
•Вход: конечная помеченная система переходов LTS
и формула программной логики Φ.
•Выход: семантика формулы Φ в системе LTS –
множество [Φ ]LTS
.
Ещё раз о головоломке
Значит, головоломка о поиске фальшивой монеты
среди 14 за 3 взвешивания с использованием 1
эталонной решается в три этапа:
•сгенерировать помеченную систему переходов
GAME(14,1);
•для формулы Φ3
и GAME(14,1) выполнить алгоритм
верификации модели;
•проверить, ([2..15],∅,∅,{1},(∅,∅))∈[Φ3
]GAME(14,1)
.

More Related Content

What's hot

Системы счисления
Системы счисленияСистемы счисления
Системы счисления
Andrey Dolinin
 
Логические основы построения эвм
Логические основы построения эвмЛогические основы построения эвм
Логические основы построения эвм
aleksashka3
 
представление чисел в компьютере
представление чисел в компьютерепредставление чисел в компьютере
представление чисел в компьютереЕлена Ключева
 
представление чисел в памяти компьютера
представление чисел в памяти компьютерапредставление чисел в памяти компьютера
представление чисел в памяти компьютера
Andrey Dolinin
 
КР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пкКР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пк
aleksashka3
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
aleksashka3
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чисел
Andrey Dolinin
 
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 20122berkas
 
8 класс 2 урок система счисление
8 класс 2 урок система счисление8 класс 2 урок система счисление
8 класс 2 урок система счисление
Айбек Қуандықұлы
 
Present
PresentPresent
Present
Reved
 
Тема Системы счисления
Тема Системы счисленияТема Системы счисления
Тема Системы счисления
Ольга Матькина
 
система счисления
система счислениясистема счисления
система счисления
Helen_Hell
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
Andrey Dolinin
 
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...2berkas
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмов
Andrey Dolinin
 
системы счисления
системы счислениясистемы счисления
системы счисленияkozarezov
 
системы счисления
системы счислениясистемы счисления
системы счисленияkozarezov_vi
 

What's hot (19)

Системы счисления
Системы счисленияСистемы счисления
Системы счисления
 
Логические основы построения эвм
Логические основы построения эвмЛогические основы построения эвм
Логические основы построения эвм
 
представление чисел в компьютере
представление чисел в компьютерепредставление чисел в компьютере
представление чисел в компьютере
 
представление чисел в памяти компьютера
представление чисел в памяти компьютерапредставление чисел в памяти компьютера
представление чисел в памяти компьютера
 
КР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пкКР Решение логических задач. логические основы построения пк
КР Решение логических задач. логические основы построения пк
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
 
презентация
презентацияпрезентация
презентация
 
Одномерные массивы целых чисел
Одномерные массивы целых чиселОдномерные массивы целых чисел
Одномерные массивы целых чисел
 
лекция 14
лекция 14лекция 14
лекция 14
 
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
Презентация на тему: Информатика и ИКТ. ЕГЭ 2012
 
8 класс 2 урок система счисление
8 класс 2 урок система счисление8 класс 2 урок система счисление
8 класс 2 урок система счисление
 
Present
PresentPresent
Present
 
Тема Системы счисления
Тема Системы счисленияТема Системы счисления
Тема Системы счисления
 
система счисления
система счислениясистема счисления
система счисления
 
Программирование линейных алгоритмов
Программирование линейных алгоритмовПрограммирование линейных алгоритмов
Программирование линейных алгоритмов
 
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
Презентация на тему: Методика подготовки учащихся к итоговой аттестации по ин...
 
Программирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмовПрограммирование разветвляющихся алгоритмов
Программирование разветвляющихся алгоритмов
 
системы счисления
системы счислениясистемы счисления
системы счисления
 
системы счисления
системы счислениясистемы счисления
системы счисления
 

Viewers also liked

Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3LiloSEA
 
Vladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDaysVladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDaysLiloSEA
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1LiloSEA
 
Michael Dyakin. CSEDays
Michael Dyakin. CSEDaysMichael Dyakin. CSEDays
Michael Dyakin. CSEDaysLiloSEA
 
Yandex Academic programs 2010
Yandex Academic programs 2010Yandex Academic programs 2010
Yandex Academic programs 2010LiloSEA
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2LiloSEA
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
Степан Петухов
Степан ПетуховСтепан Петухов
Степан ПетуховLiloSEA
 

Viewers also liked (8)

Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
 
Vladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDaysVladimir Itsykson. CSEDays
Vladimir Itsykson. CSEDays
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1
 
Michael Dyakin. CSEDays
Michael Dyakin. CSEDaysMichael Dyakin. CSEDays
Michael Dyakin. CSEDays
 
Yandex Academic programs 2010
Yandex Academic programs 2010Yandex Academic programs 2010
Yandex Academic programs 2010
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
 
Степан Петухов
Степан ПетуховСтепан Петухов
Степан Петухов
 

More from LiloSEA

CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег УшмаевLiloSEA
 
CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей КадиевLiloSEA
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровLiloSEA
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр СеменовLiloSEA
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра ТоргашоваLiloSEA
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхLiloSEA
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиLiloSEA
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаLiloSEA
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиLiloSEA
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титовLiloSEA
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секретаLiloSEA
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секретаLiloSEA
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаLiloSEA
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDaysLiloSEA
 
Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3
LiloSEA
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2LiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 
MSR in Russia. CSEDays
MSR in Russia. CSEDaysMSR in Russia. CSEDays
MSR in Russia. CSEDaysLiloSEA
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDaysLiloSEA
 

More from LiloSEA (20)

CSEDays. Олег Ушмаев
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег Ушмаев
 
CSEDays. Алексей Кадиев
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей Кадиев
 
CSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий Айдаров
 
CSEDays. Александр Семенов
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
 
Александра Торгашова
Александра ТоргашоваАлександра Торгашова
Александра Торгашова
 
Лукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетях
 
Андрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
 
Андрей Гаража. Биоинформатика
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. Биоинформатика
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атаки
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титов
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
 
Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3Nikolay Shilov. CSEDays 3
Nikolay Shilov. CSEDays 3
 
Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2Nikolay Shilov. CSEDays 2
Nikolay Shilov. CSEDays 2
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 
MSR in Russia. CSEDays
MSR in Russia. CSEDaysMSR in Russia. CSEDays
MSR in Russia. CSEDays
 
Katerina Simonova CSEDays
Katerina Simonova CSEDaysKaterina Simonova CSEDays
Katerina Simonova CSEDays
 

Nikolay Shilov. CSEDays 1

  • 1. Николай Вячеславович Шилов – CSEdays, Екатеринбург 12 – 14 ноября 2010 г. Что программистам надо знать о программных логиках
  • 2. О чём эти лекции? Несмотря на рост популярности формальных методов для разработки надежного программного обеспечения за рубежом, эта область остаётся мало знакома программистам-разработчикам в России. Многие считают формальные методы анализа программ чрезмерно «математизированными» для себя.
  • 3. О чём эти лекции? Давайте попытаемся в доступной (но математически-корректной форме) познакомиться с основными одного из современных подходов к формальной спецификации и верификации, основанному на программых логиках.
  • 4. История с одной головоломкой Есть 15 монет, среди которых одна – фальшивая, а остальные – настоящие; 13 настоящих монет и фальшивая монета внешне одинаковы, а одна настоящая монета помечена; все настоящие монеты имеют равный вес, а фальшивая – вес, отличный от веса настоящей монеты; можно ли найти фальшивую монету за 3 взвешивания на чашечных весах?
  • 5. Задача для программиста Написать программу с тремя входными данными  U – количество монет, среди которых одна фальшивая,  V – дополнительное количество настоящих монет,  M – разрешённое количество взвешиваний, результатом которой является или impossible, или программа ALPHA определения фальшивой монеты.
  • 6. Задача для программиста Программа ALPHA осуществляет стратегию поиска в следующей постановке. Все (U + V) монет имеют разные номера от 1 до (U + V), все дополнительные настоящие монеты имеют номера от 1 до V. Диалог с ALPHA начинается с выбора пользователем номера фальшивой монеты (от (V + 1) до (V + U)) и её веса относительно настоящих монет
  • 7. Задача для программиста Далее диалог состоит из последовательности раундов, количество которых не превышает M. В каждом раунде программа ALPHA выводит два множества номеров монет для помещения их на первую и вторую чаши весов и запрос к пользователю о результате взвешивания, а пользователь отвечает, какая чашка легче в соответствии с начальным выбором.
  • 8. Задача для программиста Сессия заканчивается выводом ALPHA номера фальшивой монеты.
  • 9. Пример: найти фальшивку среди 5 неопознанных монет за 2 взвешивания с использованием 1 эталонной монеты
  • 10. Игры с монетками Пример приводит к игровой интерпретации головоломки и задачи для программистов: Игра GAME(N,M) игроков user и prog состоит из последовательности раундов. В каждый раун начинает игрок prog, его ход – это пара непересекающихся множеств (равной мощности) чисел из [1..(M+N)] для левой и правой чашки весов.
  • 11. Игры с монетками Возможный ответный ход игрока user – «<», «=» или «>», но его ход не должен противоречить всем предыдущим раундам в следующем смысле: существуют число [(M+1)..(M+N)] и относительный вес фальшивой монеты, удовлетворяющие всем ограничениям, введенным в предыдущих раундах.
  • 12. Игры с монетками Игрок prog выигрывает игру GAME(N,M) как только единственное число из [(M+1)..(M+N)] удовлетворяют всем ограничениям, полученным в результате «взвешиваний» во время игры.
  • 13. Игры с монетками Теперь головоломку и задачу о метапрограмме можно переформулировать в следующем виде: •Найти выигрышную стратегию для prog не более чем в 3 раунда в игре GAME(14,1); •Написать метапрограмму, которая для всех N≥1, M≥0 и K≥0 порождает (если возможно) выигрышную стратегию для prog из (не более чем) K раундов в игре GAME(N,M).
  • 14. Помеченные системы переходов Конечную GAME(M,N) можно представлять в виде «помеченной системы переходов» – графа, • вершины которого соответствуют позициям игры, • вершины, соответствующие выигрышу игрока prog, помечены «OK», • дуги соответствуют возможным ходам игроков prog и user и соответственно помечены помечены.
  • 15. Помеченная систем переходов для GAME(M,N) Позиции в этой игре – это пятерки (U, L, H, V, Q), где • U – множество номеров из [(M+1)..(M+N)] монет, про которые пока ничего невозможно сказать; • L – множество номеров из [(M+1)..(M+N)] монет, которые пока неопознаны, но участвовали во взвешиваниях и были на легкой чаше весов; • H – множество номеров из [(M+1)..(M+N)] монет, которые пока неопознаны, но участвовали во взвешиваниях и были на тяжелой чаше весов;
  • 16. Помеченная система переходов для GAME(M,N) • V – множество номеров из [1..(N+M)] монет, про которые уже известно, что они настоящие; • Q – (запрос на) взвешивание, т. е. пара непересекающихся подмножеств S1, S2 ⊆[1..(N+M)] равной мощности.
  • 17. Помеченная система переходов для GAME(M,N) Три естественных ограничения: •U, L, H и V не пересекаются, •U ∪ L ∪ H ∪ V = [1..(N+M)], •U ∪ L ∪ H ∪ ∅. Дополнительно можно заметить, что •U ≠ ∅ тогда и только тогда, когда L ∪ H = ∅.
  • 18. Помеченная система переходов для GAME(M,N) Возможный ход игрока prog – это запрос на взвешивание двух множеств монет, т. е. пара позиций следующего вида:
  • 19. Помеченная система переходов для GAME(M,N) Возможный ход игрока user – это ответ «<», «=» или «>» на предыдущий запрос. Этот ответ вызывает изменение позиции:
  • 20. Помеченная система переходов для GAME(M,N) если S1 = U1 ∪ L1 ∪ H1 ∪ V1 и S2 = U2 ∪ L2 ∪ H2 ∪ V2 , где U1 ,U2 ⊆U, L1 ,L2 ⊆L, H1 ,H2 ⊆H, V1 ,V2 ⊆V, то
  • 21. Помеченная система переходов для GAME(M,N) В помеченной системе переходов вершины (U, L, H, V, (∅,∅)), где |U| + |L| + |H| =1, помечаем «OK».
  • 22. Выигрышные стратегии по раундам Пусть •Wn – множество позиций, где prog имеет выигрышную стратегию (за неболее чем) n раундов, •W – множество позиций, где есть выигрышная стратегия для игрока prog.
  • 23. Выигрышные стратегии по раундам Тогда в помеченной системе переходов •W0 = множество позиций, помеченных «OK», •Wn+1 = Wn ∪ «позиции, в которых существует ход prog, после которого любой ход user приводит в позиции» OK ∪ Wn , •W = ∪n≥0 Wn .
  • 24. Динамическая логика с неподвижными точками как язык описания множеств вершин помеченных системах переходов Пусть •Φ0 – это формула «OK», •Φn+1 – это формула Φn ∨ 〈prog〉 [user](OK ∨ Φn ), •Φ – это формула µP. (P ∨ 〈prog〉 [user](OK ∨ P)) со следующей семантикой в GAME(M,N): [Φn ]GAME(M,N) = Wn , [ Φ ]GAME(M,N) = W.
  • 25. Программные логики как языки запросов к помеченным системам переходов Задача верификации моделей (model checking): •Вход: конечная помеченная система переходов LTS и формула программной логики Φ. •Выход: семантика формулы Φ в системе LTS – множество [Φ ]LTS .
  • 26. Ещё раз о головоломке Значит, головоломка о поиске фальшивой монеты среди 14 за 3 взвешивания с использованием 1 эталонной решается в три этапа: •сгенерировать помеченную систему переходов GAME(14,1); •для формулы Φ3 и GAME(14,1) выполнить алгоритм верификации модели; •проверить, ([2..15],∅,∅,{1},(∅,∅))∈[Φ3 ]GAME(14,1) .