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 de 30

Recomendados

03 por
0303
03JIuc
219 visualizações7 slides
A Method of Reducing Computational Complexity in Verification of Programming ... por
A Method of Reducing Computational Complexity in Verification of Programming ...A Method of Reducing Computational Complexity in Verification of Programming ...
A Method of Reducing Computational Complexity in Verification of Programming ...Iosif Itkin
647 visualizações50 slides
Основы программирования на ruby por
Основы программирования на rubyОсновы программирования на ruby
Основы программирования на rubyEvgeny Smirnov
5.5K visualizações14 slides
Алгоритмы на ruby: жадные алгоритмы por
Алгоритмы на ruby: жадные алгоритмыАлгоритмы на ruby: жадные алгоритмы
Алгоритмы на ruby: жадные алгоритмыEvgeny Smirnov
4.6K visualizações20 slides
Soboland Sat por
Soboland SatSoboland Sat
Soboland Satguest49e80c8
240 visualizações13 slides
Ruby строки por
Ruby строкиRuby строки
Ruby строкиEvgeny Smirnov
4.2K visualizações14 slides

Mais conteúdo relacionado

Mais procurados

Управляющие структуры в Ruby: условия por
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияEvgeny Smirnov
2.6K visualizações15 slides
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори... por
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Nikolay Grebenshikov
1.7K visualizações38 slides
Динамическое программирование на ruby por
Динамическое программирование на rubyДинамическое программирование на ruby
Динамическое программирование на rubyEvgeny Smirnov
1.6K visualizações16 slides
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео... por
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
2K visualizações37 slides
пугач му по матлогике 2015 por
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015LIPugach
143 visualizações16 slides
Советский суперкомпьютер К-340А и секретные вычисления por
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияPositive Hack Days
1.3K visualizações25 slides

Mais procurados(20)

Управляющие структуры в Ruby: условия por Evgeny Smirnov
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условия
Evgeny Smirnov2.6K visualizações
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори... por Nikolay Grebenshikov
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Nikolay Grebenshikov1.7K visualizações
Динамическое программирование на ruby por Evgeny Smirnov
Динамическое программирование на rubyДинамическое программирование на ruby
Динамическое программирование на ruby
Evgeny Smirnov1.6K visualizações
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео... por Nikolay Grebenshikov
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Nikolay Grebenshikov2K visualizações
пугач му по матлогике 2015 por LIPugach
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
LIPugach143 visualizações
Советский суперкомпьютер К-340А и секретные вычисления por Positive Hack Days
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
Positive Hack Days1.3K visualizações
асимметричные алгоритмы шифрования por hmyrhik nikita
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
hmyrhik nikita473 visualizações
20111202 machine learning_nikolenko_lecture04 por Computer Science Club
20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04
Computer Science Club280 visualizações
20111202 machine learning_nikolenko_lecture03 por Computer Science Club
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
Computer Science Club265 visualizações
20110925 circuit complexity_seminar_lecture01_kulikov por Computer Science Club
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
Computer Science Club768 visualizações
20110925 circuit complexity_seminar_lecture01_kulikov por Computer Science Club
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
Computer Science Club163 visualizações
Факторизационные модели в рекомендательных системах por romovpa
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
romovpa2.1K visualizações
Представление информации в компьютере por Andrey Dolinin
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
Andrey Dolinin1.2K visualizações
10474 por nreferat
1047410474
10474
nreferat149 visualizações
20110224 systems of_typed_lambda_calculi_moskvin_lecture01 por Computer Science Club
20110224 systems of_typed_lambda_calculi_moskvin_lecture0120110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
Computer Science Club2.1K visualizações
Лекция 10 NP-полнота por simple_people
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
simple_people217 visualizações
20091129 algorithmsfornphardproblems kulikov_lecture10 por Computer Science Club
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
Computer Science Club202 visualizações
10 a n_r por 4book
10 a n_r10 a n_r
10 a n_r
4book1.8K visualizações
20110224 systems of_typed_lambda_calculi_moskvin_lecture02 por Computer Science Club
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
Computer Science Club118 visualizações
20091115 algorithmsfornphardproblems kulikov_lecture09 por Computer Science Club
20091115 algorithmsfornphardproblems kulikov_lecture0920091115 algorithmsfornphardproblems kulikov_lecture09
20091115 algorithmsfornphardproblems kulikov_lecture09
Computer Science Club264 visualizações

Destaque

удивительный квадрат por
удивительный  квадратудивительный  квадрат
удивительный квадратelenaarabok
962 visualizações16 slides
на открытый урок por
на открытый урокна открытый урок
на открытый урокDrofaUral
404 visualizações7 slides
Презентация награждение 29.10.2016 por
Презентация награждение 29.10.2016Презентация награждение 29.10.2016
Презентация награждение 29.10.2016dety-vyatki
200 visualizações46 slides
Головоломки por
ГоловоломкиГоловоломки
ГоловоломкиЛидия Рудакова
326 visualizações6 slides
B6 егэ математика 2014 por
B6 егэ математика 2014B6 егэ математика 2014
B6 егэ математика 2014Svetlana Kurochkina
4.5K visualizações33 slides
задачи со спичками por
задачи со спичкамизадачи со спичками
задачи со спичкамиSvetlana Kurochkina
4.4K visualizações13 slides

Destaque(6)

удивительный квадрат por elenaarabok
удивительный  квадратудивительный  квадрат
удивительный квадрат
elenaarabok962 visualizações
на открытый урок por DrofaUral
на открытый урокна открытый урок
на открытый урок
DrofaUral404 visualizações
Презентация награждение 29.10.2016 por dety-vyatki
Презентация награждение 29.10.2016Презентация награждение 29.10.2016
Презентация награждение 29.10.2016
dety-vyatki200 visualizações
B6 егэ математика 2014 por Svetlana Kurochkina
B6 егэ математика 2014B6 егэ математика 2014
B6 егэ математика 2014
Svetlana Kurochkina4.5K visualizações
задачи со спичками por Svetlana Kurochkina
задачи со спичкамизадачи со спичками
задачи со спичками
Svetlana Kurochkina4.4K visualizações

Similar a Nikolay Shilov. CSEDays 2

Алгоритмы и структуры данных осень 2013 лекция 8 por
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
3.1K visualizações32 slides
л 2 14 por
л 2 14л 2 14
л 2 14Kirill Bystrov
379 visualizações42 slides
Запись алгоритмов на языках программирования por
Запись алгоритмов на языках программированияЗапись алгоритмов на языках программирования
Запись алгоритмов на языках программированияssusere39acb
76 visualizações17 slides
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт... por
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
2.6K visualizações53 slides
Михаил Александров, Индуктивное моделирование por
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
634 visualizações62 slides
Nikolay Shilov. CSEDays 1 por
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1LiloSEA
263 visualizações26 slides

Similar a Nikolay Shilov. CSEDays 2(20)

Алгоритмы и структуры данных осень 2013 лекция 8 por Technopark
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
Technopark3.1K visualizações
л 2 14 por Kirill Bystrov
л 2 14л 2 14
л 2 14
Kirill Bystrov379 visualizações
Запись алгоритмов на языках программирования por ssusere39acb
Запись алгоритмов на языках программированияЗапись алгоритмов на языках программирования
Запись алгоритмов на языках программирования
ssusere39acb76 visualizações
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт... por Positive Hack Days
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Positive Hack Days2.6K visualizações
Михаил Александров, Индуктивное моделирование por Lidia Pivovarova
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
Lidia Pivovarova634 visualizações
Nikolay Shilov. CSEDays 1 por LiloSEA
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1
LiloSEA263 visualizações
Алгоритмы и структуры данных осень 2013 лекция 1 por Technopark
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
Technopark1.5K visualizações
Прогнозирование - Лекция 3. Множественная регрессия por Gleb Zakhodiakin
Прогнозирование - Лекция 3. Множественная регрессияПрогнозирование - Лекция 3. Множественная регрессия
Прогнозирование - Лекция 3. Множественная регрессия
Gleb Zakhodiakin5.4K visualizações
Понятие предиката. Логические операции над предикатами por aleksashka3
Понятие предиката. Логические операции над предикатамиПонятие предиката. Логические операции над предикатами
Понятие предиката. Логические операции над предикатами
aleksashka32.2K visualizações
Структурные формулы и функциональные схемы por aleksashka3
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
aleksashka31.1K visualizações
777 por ssusera868ff
777777
777
ssusera868ff31 visualizações
20120309 formal semantics shilov_lecture06 por Computer Science Club
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06
Computer Science Club448 visualizações
лекция 2.docx por ssuser090a572
лекция 2.docxлекция 2.docx
лекция 2.docx
ssuser090a57211 visualizações
чернякова г.в. por sharikdp
чернякова г.в.чернякова г.в.
чернякова г.в.
sharikdp396 visualizações
Lecture 06. Рекуррентные соотношения и числа Фибоначчи. por Vladimir Tcherniak
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Vladimir Tcherniak982 visualizações
01 вводная por serega.ovukhov
01 вводная01 вводная
01 вводная
serega.ovukhov291 visualizações
Циклические коды. Граница БЧХ por Alex Dainiak
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
Alex Dainiak932 visualizações
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D. por SmartTools
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
SmartTools112 visualizações

Mais de LiloSEA

CSEDays. Олег Ушмаев por
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег УшмаевLiloSEA
1.3K visualizações71 slides
CSEDays. Алексей Кадиев por
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей КадиевLiloSEA
707 visualizações90 slides
CSEDays. Юрий Айдаров por
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий АйдаровLiloSEA
472 visualizações5 slides
CSEDays. Александр Семенов por
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр СеменовLiloSEA
649 visualizações161 slides
Александра Торгашова por
Александра ТоргашоваАлександра Торгашова
Александра ТоргашоваLiloSEA
472 visualizações10 slides
Степан Петухов por
Степан ПетуховСтепан Петухов
Степан ПетуховLiloSEA
527 visualizações10 slides

Mais de LiloSEA(20)

CSEDays. Олег Ушмаев por LiloSEA
CSEDays. Олег УшмаевCSEDays. Олег Ушмаев
CSEDays. Олег Ушмаев
LiloSEA1.3K visualizações
CSEDays. Алексей Кадиев por LiloSEA
CSEDays. Алексей КадиевCSEDays. Алексей Кадиев
CSEDays. Алексей Кадиев
LiloSEA707 visualizações
CSEDays. Юрий Айдаров por LiloSEA
CSEDays. Юрий АйдаровCSEDays. Юрий Айдаров
CSEDays. Юрий Айдаров
LiloSEA472 visualizações
CSEDays. Александр Семенов por LiloSEA
CSEDays. Александр СеменовCSEDays. Александр Семенов
CSEDays. Александр Семенов
LiloSEA649 visualizações
Александра Торгашова por LiloSEA
Александра ТоргашоваАлександра Торгашова
Александра Торгашова
LiloSEA472 visualizações
Степан Петухов por LiloSEA
Степан ПетуховСтепан Петухов
Степан Петухов
LiloSEA527 visualizações
Лукина Ольга. Безопасность в соц. сетях por LiloSEA
Лукина Ольга. Безопасность в соц. сетяхЛукина Ольга. Безопасность в соц. сетях
Лукина Ольга. Безопасность в соц. сетях
LiloSEA651 visualizações
Андрей Лабунец. Механизмы трассировки por LiloSEA
Андрей Лабунец. Механизмы трассировкиАндрей Лабунец. Механизмы трассировки
Андрей Лабунец. Механизмы трассировки
LiloSEA854 visualizações
Андрей Гаража. Биоинформатика por LiloSEA
Андрей Гаража. БиоинформатикаАндрей Гаража. Биоинформатика
Андрей Гаража. Биоинформатика
LiloSEA719 visualizações
Александр Тиморин. Мошеннические атаки por LiloSEA
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атаки
LiloSEA1.2K visualizações
Михаил Рыбалкин. Перестановочные многочлены. por LiloSEA
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.
LiloSEA589 visualizações
Cse коновалова титов por LiloSEA
Cse коновалова титовCse коновалова титов
Cse коновалова титов
LiloSEA410 visualizações
схемы разделения секрета por LiloSEA
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
LiloSEA1.7K visualizações
почти пороговая схема разделения секрета por LiloSEA
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
LiloSEA405 visualizações
Алексей Голдбергс. Криптография для бизнеса por LiloSEA
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
LiloSEA1.3K visualizações
Hash cse lecture3 por LiloSEA
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
LiloSEA377 visualizações
Hash cse lecture1 por LiloSEA
Hash cse lecture1Hash cse lecture1
Hash cse lecture1
LiloSEA364 visualizações
Hash cse lecture2 por LiloSEA
Hash cse lecture2Hash cse lecture2
Hash cse lecture2
LiloSEA431 visualizações
Simonova sql server-enginetesting por LiloSEA
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
LiloSEA254 visualizações
Simonova CSEDays por LiloSEA
Simonova CSEDaysSimonova CSEDays
Simonova CSEDays
LiloSEA216 visualizações

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 лёгких фальшивых монет? Принимаются любые решения (необязательно в терминах программных логик).