lect11 (К. Савенков - Верификация программ на моделях (2010))

PDF-файл lect11 (К. Савенков - Верификация программ на моделях (2010)) Надёжность программного обеспечения (53052): Лекции - 7 семестрlect11 (К. Савенков - Верификация программ на моделях (2010)) - PDF (53052) - СтудИзба2019-09-18СтудИзба

Описание файла

Файл "lect11" внутри архива находится в папке "К. Савенков - Верификация программ на моделях (2010)". PDF-файл из архива "К. Савенков - Верификация программ на моделях (2010)", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Верификация программ намоделяхЛекция № 11Символьные алгоритмы,хранение множеств состоянийИгорь КонновПлан лекцииПростой алгоритм поиска достижимыхсостояний (идея символьных алгоритмов).●●Символьный алгоритм верификации модели.●Двоичные разрешающие диаграммы (BDD).Хранение множеств состояний в Spin:●●BDD,●MDFA.Символьные алгоритмыПоиск достижимых состоянийМожно осуществлять снова поиском вглубину.●●А можно операциями над множествами!●M = (S, Act, →a, s0, AP, L).●Для X ⊆ S обозначим Succ(X) = { t | найдутсятакие s ∈ S и a ∈ Act , что (s, a, t) ∈ → }.Символьный алгоритм поискадостижимых состоянийReach := {s0}; T := ∅;while Reach != T {T := Reach;Reach := Reach ∪ Succ(Reach);}Символьные алгоритмыВместо перебора состояний по отдельностииспользуются операции над множествами.●На этой идее основан целый класссимвольных алгоритмов верификациимоделей (для CTL, LTL и других логик).●Почему (интуитивно понятная) идея поискадостижимых состояний работает?●Как эффективно реализовать операции надмножествами?●Почему это работает?●TS = (S, Act, →a, s0, AP, L).●Множество S конечно.●На множестве 2S задано отношениепорядка ⊆ (т.е.

(2S, ⊆) – решётка):●наименьший элемент – ∅,●наибольший элемент – S.Оператор T: 2S → 2S называетсяпреобразователем предикатов.●Свойства преобразователя●●●●Оператор T – монотонный, если из P ⊆ Qследует T(P) ⊆ T(Q).Оператор T – ∪-непрерывный, если изцепочки P1⊆P2⊆ ...

следует T(∪i Pi) = ∪i T(Pi).Оператор T – ∩-непрерывный, если изцепочки P1 ⊇ P2 ⊇ ... следует T(∩i Pi) = ∩i T(Pi).Пусть задано множество Z ⊆ 2S:–T0(Z) = Z,–Ti+1(Z) = T(Ti(Z)).Следствия теоремы Тарского●●●●Множество X∈ 2S – неподвижная точка,если T(X) = X.У монотонного преобразователя T на 2Sесть наибольшая неподвижная точка¹Z.T(Z)=∩{Z | T(Z)⊆Z} и наименьшаянеподвижная точка ºZ.T(Z)=∪{Z | T(Z)⊇Z}.Для ∩-непрерывного преобразователяверно ¹Z.T(Z)=∪i Ti(∅).Для ∪-непрерывного преобразователяверно ºZ.T(Z)=∩i Ti(S).Леммы для систем переходовЛемма 1. Если S – конечное множество, а T –монотонный преобразователь на конечнойсистеме переходов, то T также ∩непрерывен и ∪-непрерывен.Лемма 2.

Если T – монотонныйпреобразователь, то для любогонатурального числа i имеют местовключения: Ti(∅) ⊆ Ti+1(∅) и Ti(S) ⊇ Ti+1(S).Леммы для систем переходовЛемма 3. Если T – монотонныйпреобразователь, а S – конечное множество,то существуют такие натуральные числа m иn, что для любых i ≥ m и j ≥ n верно: Ti(∅) =Tm(∅) и Tj(S)=Tn(S).Лемма 4. Если T – монотонныйпреобразователь, а S – конечное множество,то существуют такие натуральные числа m иn, что ¹Z.T(Z)=Tm(∅) и ºZ.T(Z)=Tn(S).Вычисление неподвижной точкиQ := ∅; Q' := T(Q);while Q != Q' {Q := Q';Q' := T(Q');}//post: Q – неподвижная точкаДвоичные разрешающиедиаграммы (BDD)Двоичные разрешающиедиаграммы (BDD)С помощью BDD задают булевы функции отn переменных f(x1, ..., xn).●●Ориентированный ациклический граф:–выделены две завершающие вершины: 0 и 1.–Из каждой вершины u (кроме 0 и 1) выходят дведуги low(u) и high(u).–Каждая вершина u помечена переменной var(u).Пример BDDhttp://en.wikipedia.org/wiki/Binary_decision_diagramROBDDНа каждом пути порядок следованияпеременных фиксирован: x1 ≺ x2 ≺ ...

≺ xn●Если var(u) = var(v), low(u) = low(v), high(u) =high(v), то u =v.●Для каждой вершины u верно low(u) !=high(u).●●Каноническое представление, т.е.–Если f(x1, ..., xn) ≡ g(x1, ..., xn), то BDD для fи g совпадают.Иллюстрации правил редукции⇒⇒Правило 1Правило 2ПримерБулева функция для(x1 ↔ y1) ∧ (x2 ↔ y2)Порядок: x1 ≺ x2 ≺ y1 ≺ y2Henrik Reif Andersen.

An Introduction to BinaryDecision DiagramsЕщё примерHenrik Reif Andersen. An Introduction to BinaryDecision DiagramsОперация ограничения●●Пусть задана функция f(x1, ..., xn) и еёROBDD B1.Как построить ROBDD f[xj ← b], т.е. f(x1, ...,xj{1, b, xj+1, ..., xn)?⇒+ редукция!b=0b=1Реализация булевых функций●Разложение Шеннона:–f = (: x ∧ f[x ← 0]) ∨ (x ∧ f[x ← 1]).●Пусть ¤ обозначает ∨, ∧ или :.●Посмотрим, как построить f1 ¤ f2.●●Пусть v и v' – корневые вершины ROBDDдля f1 и f2.x = var(v) и x' = var(v').Варианты 1, 21. Если v и v' – терминальные вершины(0 или 1), то f1 ¤ f2 = value(v) ¤ value(v'),2.

Если x = x', тоf1 ¤ f2=(: x ∧ (f1[x ← 0]¤f2[x ← 0]))∨(x ∧ (f1[x ← 1]¤f2[x ← 1])).Поэтому построим ROBDD u1→(f1[x ← 0]¤f2[x ← 0])и u2→(f1[x ← 1]¤f2[x ← 1]) и создадим вершинуw: var(w) = x, low(w) = u1, high(w) = u2.Варианты 3, 43. Если x < x', то f2[x ← 0] = f2[x ← 1] = f2 иf1 ¤ f2=(: x ∧ (f1[x ← 0]¤f2))∨(x ∧ (f1[x ← 1]¤f2)).Далее, аналогично варианту 2.4. Если x' < x, то аналогично варианту 3.Операция apply●Мы описали операцию apply:–●●На каждом шаге рекурсивно строится BDD дляфункций в разложении ШеннонаДля предотвращения экспоненциальногороста используется кэш (g1 , g2 , ¤) дляфункций, вычисляемых в процессепостроения.Для удаления неиспользуемых вершиниспользуется сборщик мусора.Что же хорошего в BDD?●На BDD определяются операции ∧, ∨ и ¬.Их сложность равна O(m*n), где m и n –число вершин в BDD.●Есть операторы проекции и кванторсуществования:●f(x, 0, 1, z){сложность O(m)}– ∃ y (f(x, y, z)) {сложность O(m*m)}–Как представить нашимножества в виде BDD?●Множество S, |S| = n.

Выберем k: n ≤ 2k–Состояние s ∈ S кодируется с помощьюпеременных x1, ..., xk.–Множество кодируется с помощью булевой функцииf(x1, ..., xk).Отношение переходов кодируется с помощьюбулевой функции T(x1, ..., xk, x'1, ..., x'k).●Применение символьныхалгоритмов и BDD●Для логики ветвящегося времени CTLсимвольные алгоритмы (с BDD) применяютсядля проверки формулы табличным методом:–●Для LTL также применимы символьныеалгоритмы с BDD:–●Верификатор моделей SMV (МакМиллан).Задачу верификации LTL можно свести к задачепроверки CTL с ограничениями справедливости.Э. Кларк мл., О. Грамберг, Д.

Пелед. Верификация моделей программ: Model Checking.Издательство Московского центра непрерывного математического образования. -- М. 2002Символьное представлениемножеств состояний в SpinSpin и BDDBDD можно применять для хранения visited,nvisited и stack.●В Spin используется другое представление:k-уровневый минимизированный конечныйавтомат.●●Состояние кодируется с помощью k словнад алфавитом § = {0, 1, ..., 255}.Автомат, соответствующий множеству,попадает в допускающее состояние на слове⇔ слово соответствует элементу,принадлежащему множеству.●Минимизированый ДКА●Автомат A = ({Qi}ki=0, ±, §).●В автомате k + 1 слой.●Q0 = {q0}, Qk = {0, 1},●±: Qi £ § → Qi+1, 0 ≤ i ≤ k - 1 .●Qi ∩ Qj = ∅ для i ≠ j.●Автомат – минимизированный, т.е.:–L(qi) = L(qj) ⟺ qi = qj.ПримерG.

Holzmann, A. Puri. A Minimized AutomatonRepresentation of Reachable States. InternationalJournal on Software Tools for TechnologyTransfer (STTT), 1999, vol. 2(3), P. 270-278.Операции●●●Проверка вхождения слова в языкавтомата (состояния в множествосостояний): O(k).Добавление слова в автомат сминимизацией: O(k ⋅ |§|).Можно использовать вместо меток нарёбрах метки с диапазонами [i, j] –существенно сокращает размер автоматана практике.Реализация в Spin●Режим использования минимизированногоДКА включается опцией -DMA=n, где:–n – максимальное число байтов (слоёв) вавтомате.Спасибо за внимание!.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
441
Средний доход
с одного платного файла
Обучение Подробнее