Nikolay Shilov. CSEDays 2

L
Николай Вячеславович Шилов – CSEdays,
Екатеринбург 12 – 14 ноября 2010 г.
Что программистам надо знать о
программных логиках - II.
Что было в первой лекции

Понятие о синтаксисе и семантике динамической
логики с неподвижными точками на примере
головоломки.

Понятие верификации моделей на примере
решения головоломки и её обобщения.
Что было упомянуто вскользь
К сожалению, все алгоритмы верификации моделей
для динамической логики с неподвижными точками
имеют верхнюю оценку сложности (O(|LTS|)O(|Φ|)
, а
хорошей реалистической нижней оценки неизвестно.
Что делать?

Чтобы сделать верификацию моделей практичным
методом верификации можно уменьшать размеры
помеченных систем переходов и упрощать логику.

Но при этом надо побеспокоиться, что бы средств
упрощённой логики хватило для спецификации
интересных свойств, а уменьшение модели не
привело к изменению специфицированных свойств.
Как уменьшить размер модели: симметрия

Симметрия модели – это любой автоморфизм
помеченной системы переходов, который сохраняет
все специфицированные свойства.

Симметрии модели образуют группу, а каждый
элемент модели (вершина графа помеченной
системы переходов) определяет орбиту – множество
симметричных ему элементов.
Как уменьшить размер модели: симметрия
Очевидно, что из каждой орбиты достаточно оставить
только по одному элементу-представителю, и
соединить представителей орбит помеченной дугой,
если в этих орбитах были вершины, связанные такой
же дугой.
Симметрия в GAME(M,N)
Например, для игры простая перенумерация монет
очевидным образом является симметрией по
отношению к свойствам, представленным формулами
Φ0
, Φ1
, ... Φ, специфицирующих существование
выигрышной стратегии за 0, 1, ... и сколько угодно
раундов.
Симметрия в GAME(M,N)
Поэтому вместо всех возможных позиций
(U, L, H, V, Q),
где U, L, H и V попарно непересекающиеся
множества номеров монет,
а Q = (S1
, S2
) – запрос на взвешивание,
Симметрия в GAME(M,N)
можно ограничиться позициями, в которых
U, L, H и V – непересекающиеся интервалы,
а S1
= U1
∪ L1
∪ H1
∪ V1
и S2
= U2
∪ L2
∪ H2
∪ V2
, где
U1
∪ U2
– начальный интервал U,
L1
∪ L2
– начальный интервал L,
H1
∪ H2
– начальный интервал H,
U1
∪ U2
– начальный интервал V.
Как уменьшить размер модели: абстракция
Однако для нашей головоломки размер модели
можно уменьшить еще больше, если вместо
симметрии использовать числовую абстракцию.
Как уменьшить размер модели: абстракция
Пусть у нас есть множество формул Ψ0
, Ψ1
, ...,
две помеченных системы переходов LTS1
и LTS2
,
а также отображение F:LTS1
--> LTS2
такое, что
[Ψ0
]LTS1
= прообраз [Ψ0
]LTS1
при отображении F,
[Ψ1
]LTS1
= прообраз [Ψ1
]LTS1
при отображении F,
..............................................................................
Тогда отображение говорят, что отображение F
является абстракцией, помеченные системы
переходов LTS1
и LTS2
– конкретной и абстрактной
моделями для верификации формул Ψ0
, Ψ1
, ...
Числовая абстракция для GAME(M,N)
Естественная идея: когда человек решает
головоломки о монетах, он обычно думает не в
терминах номеров монет, а в терминах количеств
монет разных видов – «непроверенных», «легких»,
«тяжелых» и «настоящих».
Абстрактная модель game(M,N)
Позициями служат пятерки (u, l, h, v, q), где

u – количество монет про которые пока ничего
невозможно сказать,

l – количество монет, которые пока неопознаны, но
были на более легкой чаше весов,

h – количество монет, которые пока неопознаны, но
были на более тяжелой чаше весов,

v – количество монет, про которые известно, что они
настоящие,
q – (запрос на) взвешивание, т. е. пара четверок ((u1
,
l1
, h1
, v1
) , (u2
, l2
, h2
, v2
)).
Абстрактная модель game(M,N)
На эти позиции налагаются ограничения,
связанные со «смыслом» чисел:

u + l + h ≤N, u + l + h + v = N + M, u + l + h ≥1,

u≠0 тогда и только тогда, когда l + h =0,
u1
+ u2
≤u, l1
+ l2
≤l, h1
+ h2
≤h, v1
+ v2
≤v,
u1
+ l1
+ h1
+ v1
= u2
+ l2
+ h2
+ v2
.
Абстрактная модель game(M,N)
Возможный ход
игрока prog – это запрос
на взвешивание двух
«порций» монет,
т. е. пара позиций
следующего вида:
Абстрактная модель game(M,N)
Возможный ход
игрока user – это ответ
«<», «=» или «>» на
предыдущий запрос.
Этот ответ вызывает
изменение позиции:
Абстрактная модель game(M,N)
Абстрактная модель game(M,N)
Позиции (u, u, h, v, ((0,0,0,0), (0,0,0,0))),
в которых u + l + h =1, помечены «OK».
-------------------------------------------------------
Получилась очень небольшая модель
по сравнению с GAME(M,N)!
В частности, в game(14,1) всего-то
порядка миллиона позиций.
Абстрактная модель game(M,N)
Отображение
count: GAME(M,N) --> game(M,N)
заданное правилом
count (U, L, H, V, (S1
,S2
)) = (|U|, |L|, |H|, |V|, q),
где q есть
( (|S1
∩U|, |S1
∩L|, |S1
∩H|, |S1
∩V|) ,
(|S2
∩U|, |S2
∩L|, |S2
∩H|, |S2
∩V|) ),
является абстракцией
для верификации формул Φ0
, Φ1
, ... Φ.
И ещё один раз о головоломке
Теперь головоломку о поиске фальшивой монеты
среди 14 за 3 взвешивания с использованием 1
эталонной решается с использованием абстракции и
верификации модели:

сгенерировать помеченную систему переходов
game(14,1);
для формулы Φ3
и game(14,1) выполнить алгоритм
верификации модели;
Проверить (14,0,0,1,((0,0,0,0) , (0,0,0,0)))∈[Φ3
]game(14,1)
.
На пути к другим программным логикам
Мы определили динамическую логику с
неподвижными точками не вполне строго, в
частности, не было сказано явно, что конструктор
наименьшей неподвижной точки «µP» можно
применять только к формулам Ψ без негативных
вхождений пропозициональной переменной P.
Но далее мы будем подразумевать, что это
синтаксическое ограничение выполнено для всех
формул, к которым мы применяем этот конструктор.
На пути к другим программным логикам
В конечной модели (т. е. помеченной системе
переходов) LTS семантика формулы [µP.Ψ]LTS
определялась следующим образом:
 строили ряд формул Ψ0
≡ false, Ψ1
≡ Ψ(false/P), ...
Ψn+1
≡ Ψ(Ψn
/P), ...,
 вычисляли их семантику S0
= [Ψ0
]LTS
, S1
= [Ψ1
]LTS
, ...
Sn
= [Ψn
]LTS
, ...,
 объявляли ∪n≥0
Sn
семантикой [µP.Ψ]LTS
.
На пути к другим программным логикам
Тогда естественно ввести конструктор наибольшей
неподвижной точки «ν» и определить его семантику в
конечных моделях «дуальным» образом:
 построим ряд формул Ψ0
≡ true, Ψ1
≡ Ψ(true/P), ...
Ψn+1
≡ Ψ(Ψn
/P), ...,
 вычислим их семантику S0
= [Ψ0
]LTS
, S1
= [Ψ1
]LTS
, ... Sn
= [Ψn
]LTS
, ...,
 объявим ∩n≥0
Sn
семантикой [νP.Ψ]LTS
.
Пропозициональная Динамическая Логика (ПДЛ)
ПДЛ – это «фрагмент» динамической логики с
неподвижными точками, в котором «µ» и «ν» могут
встречаться только в следующих двух макросах:

[α*]Ψ ≡ νP.(Ψ & [α]P),

〈α*〉Ψ ≡ µP.(Ψ ∨ 〈α〉P).
Можно показать, что
в помеченной системе переходов

[α*]Ψ означает «после любого количества итераций
α имеет место Ψ»,

〈α*〉Ψ означает «после некоторого количества
итераций α имеет место Ψ».
ПДЛ: «за» и «против»
«ЗА»:

Верификация моделей для ПДЛ имеет хорошую
верхнюю оценку сложности O(|LTS|×|Φ|).

В ПДЛ представимы формулы, выражающие
существование выигрышной стратегии за (неболее
чем) 0, 1, 2, ... раундов.
«ПРОТИВ»:

В ПДЛ многие свойства невыразимы. Например, в
ПДЛ нельзя выразить существование выигрышной
стратегии в произвольной конечной игре.
Логика Дерева Вычислений (CTL)
●
CTL – это тоже «фрагмент» динамической логики с
неподвижными точками, в котором «µ» и «ν» могут
встречаться только в специальных макросах. Доводы
«за» и «против» CTL те же, что и ПДЛ, хотя CTL
более выразительная логика, чем ПДЛ.

В ПДЛ и CTL невыразимы свойства справедливости.
Например: если начиная с какого-то момента какой-
либо из процессов постоянно готов к исполнению, то
рано или поздно после этого он получит исполняется
(центральный процессор в свое полное
распоряжение и т. п.).
Аалгоритмы + Структуры Данных = Программы
Программы верификации моделей можно
классифицировать по представлению данных.
• Прямое представление («explicit»): семантика
формулы в модели – это множество, заданное
своей характеристической функцией,
представленной битовым вектором.
• Символьное представление: семантика формулы в
модели – это множество, заданное своей
характеристическая функция которого задана или
булевской формулой, или арифметическим
выражением, и т. д.
«Symbolic» и «Unbounded» верификация моделей
В частности,
• «Symbolic» = «символическая» верификация
моделей: используются ориентированные
двоичные диаграммы решений (OBDD) для
представления булевских формул.
• «Unbounded» = «ограниченная» верификация
моделей: используются конъюнктивные
нормальные формы (к.н.ф.) для представления
булевских формул.
• Аффинная верификация моделей: используются
аффинные арифметические выражения для
представления характеристических функций
интервалов целых числах.
Но есть еще одна интересная головоломка...
Есть 40 монет,
среди которых 3 лёгких – фальшивые,
а остальные – настоящие, все настоящие монеты
имеют равный вес.
Спрашивается, можно ли найти 18 настоящих монет
за 3 взвешивания на чашечных весах?
... и её обобщение для программистов
Как программно проверить,
что среди N монет можно найти V настоящих за K
взвешиваний, если известно, что среди этих монет
есть ровно L лёгких фальшивых монет?
Принимаются любые решения
(необязательно в терминах программных логик).
1 sur 30

Contenu connexe

Tendances(20)

20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04
Computer Science Club280 vues
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
Computer Science Club265 vues
1047410474
10474
nreferat149 vues
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
simple_people217 vues
10 a n_r10 a n_r
10 a n_r
4book1.8K vues

En vedette(6)

на открытый урокна открытый урок
на открытый урок
DrofaUral404 vues
ГоловоломкиГоловоломки
Головоломки
Лидия Рудакова326 vues
B6 егэ математика 2014B6 егэ математика 2014
B6 егэ математика 2014
Svetlana Kurochkina4.5K vues
задачи со спичкамизадачи со спичками
задачи со спичками
Svetlana Kurochkina4.4K vues

Similaire à Nikolay Shilov. CSEDays 2(20)

л 2 14л 2 14
л 2 14
Kirill Bystrov379 vues
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1
LiloSEA263 vues
1010
10
Валифер Эгрард91 vues
777777
777
ssusera868ff31 vues
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
Theoretical mechanics department2K vues
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06
Computer Science Club448 vues
лекция 2.docxлекция 2.docx
лекция 2.docx
ssuser090a57211 vues
чернякова г.в.чернякова г.в.
чернякова г.в.
sharikdp396 vues
01 вводная01 вводная
01 вводная
serega.ovukhov291 vues

Plus de LiloSEA

CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег УшмаевLiloSEA
1.3K vues71 diapositives
Степан ПетуховСтепан Петухов
Степан ПетуховLiloSEA
527 vues10 diapositives

Nikolay Shilov. CSEDays 2

  • 1. Николай Вячеславович Шилов – CSEdays, Екатеринбург 12 – 14 ноября 2010 г. Что программистам надо знать о программных логиках - II.
  • 2. Что было в первой лекции  Понятие о синтаксисе и семантике динамической логики с неподвижными точками на примере головоломки.  Понятие верификации моделей на примере решения головоломки и её обобщения.
  • 3. Что было упомянуто вскользь К сожалению, все алгоритмы верификации моделей для динамической логики с неподвижными точками имеют верхнюю оценку сложности (O(|LTS|)O(|Φ|) , а хорошей реалистической нижней оценки неизвестно.
  • 4. Что делать?  Чтобы сделать верификацию моделей практичным методом верификации можно уменьшать размеры помеченных систем переходов и упрощать логику.  Но при этом надо побеспокоиться, что бы средств упрощённой логики хватило для спецификации интересных свойств, а уменьшение модели не привело к изменению специфицированных свойств.
  • 5. Как уменьшить размер модели: симметрия  Симметрия модели – это любой автоморфизм помеченной системы переходов, который сохраняет все специфицированные свойства.  Симметрии модели образуют группу, а каждый элемент модели (вершина графа помеченной системы переходов) определяет орбиту – множество симметричных ему элементов.
  • 6. Как уменьшить размер модели: симметрия Очевидно, что из каждой орбиты достаточно оставить только по одному элементу-представителю, и соединить представителей орбит помеченной дугой, если в этих орбитах были вершины, связанные такой же дугой.
  • 7. Симметрия в GAME(M,N) Например, для игры простая перенумерация монет очевидным образом является симметрией по отношению к свойствам, представленным формулами Φ0 , Φ1 , ... Φ, специфицирующих существование выигрышной стратегии за 0, 1, ... и сколько угодно раундов.
  • 8. Симметрия в GAME(M,N) Поэтому вместо всех возможных позиций (U, L, H, V, Q), где U, L, H и V попарно непересекающиеся множества номеров монет, а Q = (S1 , S2 ) – запрос на взвешивание,
  • 9. Симметрия в GAME(M,N) можно ограничиться позициями, в которых U, L, H и V – непересекающиеся интервалы, а S1 = U1 ∪ L1 ∪ H1 ∪ V1 и S2 = U2 ∪ L2 ∪ H2 ∪ V2 , где U1 ∪ U2 – начальный интервал U, L1 ∪ L2 – начальный интервал L, H1 ∪ H2 – начальный интервал H, U1 ∪ U2 – начальный интервал V.
  • 10. Как уменьшить размер модели: абстракция Однако для нашей головоломки размер модели можно уменьшить еще больше, если вместо симметрии использовать числовую абстракцию.
  • 11. Как уменьшить размер модели: абстракция Пусть у нас есть множество формул Ψ0 , Ψ1 , ..., две помеченных системы переходов LTS1 и LTS2 , а также отображение F:LTS1 --> LTS2 такое, что [Ψ0 ]LTS1 = прообраз [Ψ0 ]LTS1 при отображении F, [Ψ1 ]LTS1 = прообраз [Ψ1 ]LTS1 при отображении F, .............................................................................. Тогда отображение говорят, что отображение F является абстракцией, помеченные системы переходов LTS1 и LTS2 – конкретной и абстрактной моделями для верификации формул Ψ0 , Ψ1 , ...
  • 12. Числовая абстракция для GAME(M,N) Естественная идея: когда человек решает головоломки о монетах, он обычно думает не в терминах номеров монет, а в терминах количеств монет разных видов – «непроверенных», «легких», «тяжелых» и «настоящих».
  • 13. Абстрактная модель game(M,N) Позициями служат пятерки (u, l, h, v, q), где  u – количество монет про которые пока ничего невозможно сказать,  l – количество монет, которые пока неопознаны, но были на более легкой чаше весов,  h – количество монет, которые пока неопознаны, но были на более тяжелой чаше весов,  v – количество монет, про которые известно, что они настоящие, q – (запрос на) взвешивание, т. е. пара четверок ((u1 , l1 , h1 , v1 ) , (u2 , l2 , h2 , v2 )).
  • 14. Абстрактная модель game(M,N) На эти позиции налагаются ограничения, связанные со «смыслом» чисел:  u + l + h ≤N, u + l + h + v = N + M, u + l + h ≥1,  u≠0 тогда и только тогда, когда l + h =0, u1 + u2 ≤u, l1 + l2 ≤l, h1 + h2 ≤h, v1 + v2 ≤v, u1 + l1 + h1 + v1 = u2 + l2 + h2 + v2 .
  • 15. Абстрактная модель game(M,N) Возможный ход игрока prog – это запрос на взвешивание двух «порций» монет, т. е. пара позиций следующего вида:
  • 16. Абстрактная модель game(M,N) Возможный ход игрока user – это ответ «<», «=» или «>» на предыдущий запрос. Этот ответ вызывает изменение позиции:
  • 18. Абстрактная модель game(M,N) Позиции (u, u, h, v, ((0,0,0,0), (0,0,0,0))), в которых u + l + h =1, помечены «OK». ------------------------------------------------------- Получилась очень небольшая модель по сравнению с GAME(M,N)! В частности, в game(14,1) всего-то порядка миллиона позиций.
  • 19. Абстрактная модель game(M,N) Отображение count: GAME(M,N) --> game(M,N) заданное правилом count (U, L, H, V, (S1 ,S2 )) = (|U|, |L|, |H|, |V|, q), где q есть ( (|S1 ∩U|, |S1 ∩L|, |S1 ∩H|, |S1 ∩V|) , (|S2 ∩U|, |S2 ∩L|, |S2 ∩H|, |S2 ∩V|) ), является абстракцией для верификации формул Φ0 , Φ1 , ... Φ.
  • 20. И ещё один раз о головоломке Теперь головоломку о поиске фальшивой монеты среди 14 за 3 взвешивания с использованием 1 эталонной решается с использованием абстракции и верификации модели:  сгенерировать помеченную систему переходов game(14,1); для формулы Φ3 и game(14,1) выполнить алгоритм верификации модели; Проверить (14,0,0,1,((0,0,0,0) , (0,0,0,0)))∈[Φ3 ]game(14,1) .
  • 21. На пути к другим программным логикам Мы определили динамическую логику с неподвижными точками не вполне строго, в частности, не было сказано явно, что конструктор наименьшей неподвижной точки «µP» можно применять только к формулам Ψ без негативных вхождений пропозициональной переменной P. Но далее мы будем подразумевать, что это синтаксическое ограничение выполнено для всех формул, к которым мы применяем этот конструктор.
  • 22. На пути к другим программным логикам В конечной модели (т. е. помеченной системе переходов) LTS семантика формулы [µP.Ψ]LTS определялась следующим образом:  строили ряд формул Ψ0 ≡ false, Ψ1 ≡ Ψ(false/P), ... Ψn+1 ≡ Ψ(Ψn /P), ...,  вычисляли их семантику S0 = [Ψ0 ]LTS , S1 = [Ψ1 ]LTS , ... Sn = [Ψn ]LTS , ...,  объявляли ∪n≥0 Sn семантикой [µP.Ψ]LTS .
  • 23. На пути к другим программным логикам Тогда естественно ввести конструктор наибольшей неподвижной точки «ν» и определить его семантику в конечных моделях «дуальным» образом:  построим ряд формул Ψ0 ≡ true, Ψ1 ≡ Ψ(true/P), ... Ψn+1 ≡ Ψ(Ψn /P), ...,  вычислим их семантику S0 = [Ψ0 ]LTS , S1 = [Ψ1 ]LTS , ... Sn = [Ψn ]LTS , ...,  объявим ∩n≥0 Sn семантикой [νP.Ψ]LTS .
  • 24. Пропозициональная Динамическая Логика (ПДЛ) ПДЛ – это «фрагмент» динамической логики с неподвижными точками, в котором «µ» и «ν» могут встречаться только в следующих двух макросах:  [α*]Ψ ≡ νP.(Ψ & [α]P),  〈α*〉Ψ ≡ µP.(Ψ ∨ 〈α〉P). Можно показать, что в помеченной системе переходов  [α*]Ψ означает «после любого количества итераций α имеет место Ψ»,  〈α*〉Ψ означает «после некоторого количества итераций α имеет место Ψ».
  • 25. ПДЛ: «за» и «против» «ЗА»:  Верификация моделей для ПДЛ имеет хорошую верхнюю оценку сложности O(|LTS|×|Φ|).  В ПДЛ представимы формулы, выражающие существование выигрышной стратегии за (неболее чем) 0, 1, 2, ... раундов. «ПРОТИВ»:  В ПДЛ многие свойства невыразимы. Например, в ПДЛ нельзя выразить существование выигрышной стратегии в произвольной конечной игре.
  • 26. Логика Дерева Вычислений (CTL) ● CTL – это тоже «фрагмент» динамической логики с неподвижными точками, в котором «µ» и «ν» могут встречаться только в специальных макросах. Доводы «за» и «против» CTL те же, что и ПДЛ, хотя CTL более выразительная логика, чем ПДЛ.  В ПДЛ и CTL невыразимы свойства справедливости. Например: если начиная с какого-то момента какой- либо из процессов постоянно готов к исполнению, то рано или поздно после этого он получит исполняется (центральный процессор в свое полное распоряжение и т. п.).
  • 27. Аалгоритмы + Структуры Данных = Программы Программы верификации моделей можно классифицировать по представлению данных. • Прямое представление («explicit»): семантика формулы в модели – это множество, заданное своей характеристической функцией, представленной битовым вектором. • Символьное представление: семантика формулы в модели – это множество, заданное своей характеристическая функция которого задана или булевской формулой, или арифметическим выражением, и т. д.
  • 28. «Symbolic» и «Unbounded» верификация моделей В частности, • «Symbolic» = «символическая» верификация моделей: используются ориентированные двоичные диаграммы решений (OBDD) для представления булевских формул. • «Unbounded» = «ограниченная» верификация моделей: используются конъюнктивные нормальные формы (к.н.ф.) для представления булевских формул. • Аффинная верификация моделей: используются аффинные арифметические выражения для представления характеристических функций интервалов целых числах.
  • 29. Но есть еще одна интересная головоломка... Есть 40 монет, среди которых 3 лёгких – фальшивые, а остальные – настоящие, все настоящие монеты имеют равный вес. Спрашивается, можно ли найти 18 настоящих монет за 3 взвешивания на чашечных весах?
  • 30. ... и её обобщение для программистов Как программно проверить, что среди N монет можно найти V настоящих за K взвешиваний, если известно, что среди этих монет есть ровно L лёгких фальшивых монет? Принимаются любые решения (необязательно в терминах программных логик).