SlideShare a Scribd company logo
1 of 30
Download to read offline
Николай Вячеславович Шилов – 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 лёгких фальшивых монет?
Принимаются любые решения
(необязательно в терминах программных логик).

More Related Content

What's hot

Управляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияEvgeny Smirnov
 
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Nikolay Grebenshikov
 
Динамическое программирование на ruby
Динамическое программирование на rubyДинамическое программирование на ruby
Динамическое программирование на rubyEvgeny Smirnov
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Nikolay Grebenshikov
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015LIPugach
 
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияPositive Hack Days
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияhmyrhik nikita
 
20111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04Computer Science Club
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03Computer Science Club
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikovComputer Science Club
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikovComputer Science Club
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахromovpa
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютереAndrey Dolinin
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture0120110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture01Computer Science Club
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнотаsimple_people
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10Computer Science Club
 
10 a n_r
10 a n_r10 a n_r
10 a n_r4book
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02Computer Science Club
 
20091115 algorithmsfornphardproblems kulikov_lecture09
20091115 algorithmsfornphardproblems kulikov_lecture0920091115 algorithmsfornphardproblems kulikov_lecture09
20091115 algorithmsfornphardproblems kulikov_lecture09Computer Science Club
 

What's hot (20)

Управляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условияУправляющие структуры в Ruby: условия
Управляющие структуры в Ruby: условия
 
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
Лекция №3. Свойства и моделирование стандартных схем программ. Предмет "Теори...
 
Динамическое программирование на ruby
Динамическое программирование на rubyДинамическое программирование на ruby
Динамическое программирование на ruby
 
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
Лекция №2. Алгоритмические проблемы. Стандартные схемы программ. Предмет "Тео...
 
пугач му по матлогике 2015
пугач му по матлогике 2015пугач му по матлогике 2015
пугач му по матлогике 2015
 
Советский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисленияСоветский суперкомпьютер К-340А и секретные вычисления
Советский суперкомпьютер К-340А и секретные вычисления
 
асимметричные алгоритмы шифрования
асимметричные алгоритмы шифрованияасимметричные алгоритмы шифрования
асимметричные алгоритмы шифрования
 
20111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture0420111202 machine learning_nikolenko_lecture04
20111202 machine learning_nikolenko_lecture04
 
20111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture0320111202 machine learning_nikolenko_lecture03
20111202 machine learning_nikolenko_lecture03
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 
20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov20110925 circuit complexity_seminar_lecture01_kulikov
20110925 circuit complexity_seminar_lecture01_kulikov
 
Факторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системахФакторизационные модели в рекомендательных системах
Факторизационные модели в рекомендательных системах
 
Представление информации в компьютере
Представление информации в компьютереПредставление информации в компьютере
Представление информации в компьютере
 
10474
1047410474
10474
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture0120110224 systems of_typed_lambda_calculi_moskvin_lecture01
20110224 systems of_typed_lambda_calculi_moskvin_lecture01
 
Лекция 10 NP-полнота
Лекция 10 NP-полнотаЛекция 10 NP-полнота
Лекция 10 NP-полнота
 
20091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture1020091129 algorithmsfornphardproblems kulikov_lecture10
20091129 algorithmsfornphardproblems kulikov_lecture10
 
10 a n_r
10 a n_r10 a n_r
10 a n_r
 
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture0220110224 systems of_typed_lambda_calculi_moskvin_lecture02
20110224 systems of_typed_lambda_calculi_moskvin_lecture02
 
20091115 algorithmsfornphardproblems kulikov_lecture09
20091115 algorithmsfornphardproblems kulikov_lecture0920091115 algorithmsfornphardproblems kulikov_lecture09
20091115 algorithmsfornphardproblems kulikov_lecture09
 

Viewers also liked

удивительный квадрат
удивительный  квадратудивительный  квадрат
удивительный квадратelenaarabok
 
на открытый урок
на открытый урокна открытый урок
на открытый урокDrofaUral
 
Презентация награждение 29.10.2016
Презентация награждение 29.10.2016Презентация награждение 29.10.2016
Презентация награждение 29.10.2016dety-vyatki
 
B6 егэ математика 2014
B6 егэ математика 2014B6 егэ математика 2014
B6 егэ математика 2014Svetlana Kurochkina
 
задачи со спичками
задачи со спичкамизадачи со спичками
задачи со спичкамиSvetlana Kurochkina
 

Viewers also liked (6)

удивительный квадрат
удивительный  квадратудивительный  квадрат
удивительный квадрат
 
на открытый урок
на открытый урокна открытый урок
на открытый урок
 
Презентация награждение 29.10.2016
Презентация награждение 29.10.2016Презентация награждение 29.10.2016
Презентация награждение 29.10.2016
 
Головоломки
ГоловоломкиГоловоломки
Головоломки
 
B6 егэ математика 2014
B6 егэ математика 2014B6 егэ математика 2014
B6 егэ математика 2014
 
задачи со спичками
задачи со спичкамизадачи со спичками
задачи со спичками
 

Similar to Nikolay Shilov. CSEDays 2

Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Technopark
 
Запись алгоритмов на языках программирования
Запись алгоритмов на языках программированияЗапись алгоритмов на языках программирования
Запись алгоритмов на языках программированияssusere39acb
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Positive Hack Days
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеLidia Pivovarova
 
Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1LiloSEA
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Technopark
 
Прогнозирование - Лекция 3. Множественная регрессия
Прогнозирование - Лекция 3. Множественная регрессияПрогнозирование - Лекция 3. Множественная регрессия
Прогнозирование - Лекция 3. Множественная регрессияGleb Zakhodiakin
 
Понятие предиката. Логические операции над предикатами
Понятие предиката. Логические операции над предикатамиПонятие предиката. Логические операции над предикатами
Понятие предиката. Логические операции над предикатамиaleksashka3
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемыaleksashka3
 
20120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06Computer Science Club
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.sharikdp
 
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.Vladimir Tcherniak
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХAlex Dainiak
 
Стажировка 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.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.SmartTools
 

Similar to Nikolay Shilov. CSEDays 2 (20)

Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8Алгоритмы и структуры данных осень 2013 лекция 8
Алгоритмы и структуры данных осень 2013 лекция 8
 
л 2 14
л 2 14л 2 14
л 2 14
 
Запись алгоритмов на языках программирования
Запись алгоритмов на языках программированияЗапись алгоритмов на языках программирования
Запись алгоритмов на языках программирования
 
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
Алгоритмы решения задачи о булевой выполнимости (SAT) и их применение в крипт...
 
Михаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделированиеМихаил Александров, Индуктивное моделирование
Михаил Александров, Индуктивное моделирование
 
Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1
 
10
1010
10
 
Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1Алгоритмы и структуры данных осень 2013 лекция 1
Алгоритмы и структуры данных осень 2013 лекция 1
 
Прогнозирование - Лекция 3. Множественная регрессия
Прогнозирование - Лекция 3. Множественная регрессияПрогнозирование - Лекция 3. Множественная регрессия
Прогнозирование - Лекция 3. Множественная регрессия
 
Понятие предиката. Логические операции над предикатами
Понятие предиката. Логические операции над предикатамиПонятие предиката. Логические операции над предикатами
Понятие предиката. Логические операции над предикатами
 
Структурные формулы и функциональные схемы
Структурные формулы и функциональные схемыСтруктурные формулы и функциональные схемы
Структурные формулы и функциональные схемы
 
777
777777
777
 
Основы MATLAB. Численные методы
Основы MATLAB. Численные методыОсновы MATLAB. Численные методы
Основы MATLAB. Численные методы
 
20120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture0620120309 formal semantics shilov_lecture06
20120309 formal semantics shilov_lecture06
 
лекция 2.docx
лекция 2.docxлекция 2.docx
лекция 2.docx
 
чернякова г.в.
чернякова г.в.чернякова г.в.
чернякова г.в.
 
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
Lecture 06. Рекуррентные соотношения и числа Фибоначчи.
 
01 вводная
01 вводная01 вводная
01 вводная
 
Циклические коды. Граница БЧХ
Циклические коды. Граница БЧХЦиклические коды. Граница БЧХ
Циклические коды. Граница БЧХ
 
Стажировка 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.
Стажировка 2016-07-08 01 Евгений Тюменцев. S.O.L.I.D.
 

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
 
Александр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиАлександр Тиморин. Мошеннические атаки
Александр Тиморин. Мошеннические атакиLiloSEA
 
Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.Михаил Рыбалкин. Перестановочные многочлены.
Михаил Рыбалкин. Перестановочные многочлены.LiloSEA
 
Cse коновалова титов
Cse коновалова титовCse коновалова титов
Cse коновалова титовLiloSEA
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секретаLiloSEA
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секретаLiloSEA
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаLiloSEA
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3LiloSEA
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1LiloSEA
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2LiloSEA
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetestingLiloSEA
 
Simonova CSEDays
Simonova CSEDaysSimonova CSEDays
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 коновалова титов
 
схемы разделения секрета
схемы разделения секретасхемы разделения секрета
схемы разделения секрета
 
почти пороговая схема разделения секрета
почти пороговая схема разделения секретапочти пороговая схема разделения секрета
почти пороговая схема разделения секрета
 
Алексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнесаАлексей Голдбергс. Криптография для бизнеса
Алексей Голдбергс. Криптография для бизнеса
 
Hash cse lecture3
Hash cse lecture3Hash cse lecture3
Hash cse lecture3
 
Hash cse lecture1
Hash cse lecture1Hash cse lecture1
Hash cse lecture1
 
Hash cse lecture2
Hash cse lecture2Hash cse lecture2
Hash cse lecture2
 
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 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 лёгких фальшивых монет? Принимаются любые решения (необязательно в терминах программных логик).