Презентация 17 (Лекции)

PDF-файл Презентация 17 (Лекции) Математическая логика и логическое программирование (40051): Лекции - 6 семестрПрезентация 17 (Лекции) - PDF (40051) - СтудИзба2019-05-12СтудИзба

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

Файл "Презентация 17" внутри архива находится в папке "Лекции". PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "математическая логика и логическое программирование" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

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

Текст из PDF

Математическая логикаи логическое программированиеЛектор:Подымов Владислав Васильевичe-mail:valdus@yandex.ru2016, весенний семестрКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Короткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу11То есть программами моделируются все вычислимые функцииКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу1Значит, анализ их поведения настолько же труден, насколько идля машин Тьюринга212То есть программами моделируются все вычислимые функцииТо есть многие нетривиальные свойства программ неразрешимыКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу1Значит, анализ их поведения настолько же труден, насколько идля машин Тьюринга2А что если сильно ограничить их возможности?12То есть программами моделируются все вычислимые функцииТо есть многие нетривиальные свойства программ неразрешимыКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу1Значит, анализ их поведения настолько же труден, насколько идля машин Тьюринга2А что если сильно ограничить их возможности?Например, свойства такой программыπ: x ⇐ x + 500можно легко проверить12То есть программами моделируются все вычислимые функцииТо есть многие нетривиальные свойства программ неразрешимыКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу1Значит, анализ их поведения настолько же труден, насколько идля машин Тьюринга2А что если сильно ограничить их возможности?Например, свойства такой программыπ: x ⇐ x + 500можно легко проверитьА что если несколько простых программ работают,взаимодействуя между собой и с внешней средой?12То есть программами моделируются все вычислимые функцииТо есть многие нетривиальные свойства программ неразрешимыКороткое вступлениеВ чём состоит основная сложность анализа императивныхпрограмм?Они полны по Тьюрингу1Значит, анализ их поведения настолько же труден, насколько идля машин Тьюринга2А что если сильно ограничить их возможности?Например, свойства такой программыπ: x ⇐ x + 500можно легко проверитьА что если несколько простых программ работают,взаимодействуя между собой и с внешней средой?(то есть образуют распределённую систему)12То есть программами моделируются все вычислимые функцииТо есть многие нетривиальные свойства программ неразрешимыВерификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Как изменится счёт после одной зарплаты и одной премии?Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Как изменится счёт после одной зарплаты и одной премии?{счёт = x}счёт ⇐ счёт + 1 000 000;счёт ⇐ счёт + 1 000{счёт = x + 1 001 000}Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Как изменится счёт после одной зарплаты и одной премии?{счёт = x}счёт ⇐ счёт + 1 000 000;счёт ⇐ счёт + 1 000{счёт = x + 1 001 000}{счёт = x}счёт ⇐ счёт + 1 000;счёт ⇐ счёт + 1 000 000{счёт = x + 1 001 000}Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Как изменится счёт после одной зарплаты и одной премии?{счёт = x}счёт ⇐ счёт + 1 000 000;счёт ⇐ счёт + 1 000{счёт = x + 1 001 000}{счёт = x}счёт ⇐ счёт + 1 000;счёт ⇐ счёт + 1 000 000{счёт = x + 1 001 000}Модель императивных программ утверждает, что всё работаеткорректноВерификация распределённых системПримерvoid премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Пусть все функции выплат параллельно изменяют переменную“счёт”Как изменится счёт после одной зарплаты и одной премии?{счёт = x}счёт ⇐ счёт + 1 000 000;счёт ⇐ счёт + 1 000{счёт = x + 1 001 000}{счёт = x}счёт ⇐ счёт + 1 000;счёт ⇐ счёт + 1 000 000{счёт = x + 1 001 000}Модель императивных программ утверждает, что всё работаеткорректноНо так ли это?Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106счёт = 0 + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000счёт = 0 + 106счёт = 0 + 1000Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000счёт = 0 + 106счёт = 0 + 1000счёт = 106106Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000счёт = 0 + 106счёт = 0 + 1000счёт = 1061061000счёт = 1000Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000счёт = 0 + 106счёт = 0 + 1000счёт = 1061061000счёт = 1000Где мой миллион?!Верификация распределённых системПримерvoid премия() {счёт += 1 000 000;}премиясчёт = счёт + 106void зарплата() {счёт += 1 000;}счёт0зарплатасчёт = счёт + 1000счёт = 0 + 106счёт = 0 + 1000счёт = 1061061000счёт = 1000Где мой миллион?!Такая ошибка возникает крайне редко, и потому считаетсятруднообнаружимой и невоспроизводимойВерификация распределённых системК чему приводят такие ошибки?11Карпов.

Model checking. 2010Верификация распределённых системК чему приводят такие ошибки?1I11996 взорвалась ракета “Ариан 5”; причина: ошибка в навигационнойпрограмме бортового компьютера; прямой ущерб: 7 млрд.$Карпов. Model checking. 2010Верификация распределённых системК чему приводят такие ошибки?1I1996 взорвалась ракета “Ариан 5”; причина: ошибка в навигационнойпрограмме бортового компьютера; прямой ущерб: 7 млрд.$I1994 массовая замена дефектных процессоров компанией Intel;причина: ошибка в программе деления; ущерб: сотни миллионов $I2009 банк UBS чудом избежал потери 31 млрд.$: из-за системнойошибки к заказу на 310 тыс.$ добавилось 5 нолей1Карпов. Model checking. 2010Верификация распределённых системК чему приводят такие ошибки?1I1996 взорвалась ракета “Ариан 5”; причина: ошибка в навигационнойпрограмме бортового компьютера; прямой ущерб: 7 млрд.$I1994 массовая замена дефектных процессоров компанией Intel;причина: ошибка в программе деления; ущерб: сотни миллионов $I2009 банк UBS чудом избежал потери 31 млрд.$: из-за системнойошибки к заказу на 310 тыс.$ добавилось 5 нолейI1982 при лечении аппаратом облучения раковой опухоли Therac-25погибло 2 человека, несколько остались инвалидами; причина:ошибка программы управления облучением, очень редкоинтенсивность облучения возрастала на 2 порядкаI1995 крушение самолёта “Боинг-757”, 159 погибших; причина: ошибкав одном символе программной системы управления полётом1Карпов.

Model checking. 2010Верификация распределённых системКак обнаруживать такие ошибки?Верификация распределённых системКак обнаруживать такие ошибки?Например, если все компоненты распределённой системыпростые, то что мешает явно перебрать все сценарии работы идля каждого из них убедиться в отсутствии ошибок?Верификация распределённых системКак обнаруживать такие ошибки?Например, если все компоненты распределённой системыпростые, то что мешает явно перебрать все сценарии работы идля каждого из них убедиться в отсутствии ошибок?Пусть в системе параллельно работают 70 программ, каждая изкоторых совершает одно действие и завершаетсяТогда всевозможных сценариев работы будет 70!Гугол(и даже немного больше)Верификация распределённых системКак обнаруживать такие ошибки?Например, если все компоненты распределённой системыпростые, то что мешает явно перебрать все сценарии работы идля каждого из них убедиться в отсутствии ошибок?Пусть в системе параллельно работают 70 программ, каждая изкоторых совершает одно действие и завершаетсяТогда всевозможных сценариев работы будет 70!Гугол(и даже немного больше)При этом разные последовательности действий могут приводитьк совершенно разным и неожиданным результатамВерификация распределённых системКак обнаруживать такие ошибки?Например, если все компоненты распределённой системыпростые, то что мешает явно перебрать все сценарии работы идля каждого из них убедиться в отсутствии ошибок?Пусть в системе параллельно работают 70 программ, каждая изкоторых совершает одно действие и завершаетсяТогда всевозможных сценариев работы будет 70!Гугол(и даже немного больше)При этом разные последовательности действий могут приводитьк совершенно разным и неожиданным результатам(где мой миллион?!)Верификация распределённых системКак обнаруживать такие ошибки?IтестированиеIверификацияВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатовверификацияВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходитверификацияВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходит (почему?)верификацияВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходит (почему?)верификация:Iпостроить адекватную модель программыВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходит (почему?)верификация:IIпостроить адекватную модель программызаписать требования к программе на формальном языкеВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходит (почему?)верификация:IIIпостроить адекватную модель программызаписать требования к программе на формальном языкестрого доказать соблюдение требований для всехвычислений моделиВерификация распределённых системКак обнаруживать такие ошибки?IIтестирование: исполнять программу на заданных наборахвходных данных и искать отклонения от ожидаемыхрезультатов— не подходит (почему?)верификация:IIIпостроить адекватную модель программызаписать требования к программе на формальном языкестрого доказать соблюдение требований для всехвычислений моделиСамый известный метод верификации распределённых систем —метод проверки моделей (model checking)Верификация распределённых системКакие свойства распределённых систем проверяются методомmodel checking?Верификация распределённых системКакие свойства распределённых систем проверяются методомmodel checking?В требованиях, предъявляемых к работе распределённойсистеме, часто так или иначе присутствует времяВерификация распределённых системКакие свойства распределённых систем проверяются методомmodel checking?В требованиях, предъявляемых к работе распределённойсистеме, часто так или иначе присутствует времяНапример:void премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Верификация распределённых системКакие свойства распределённых систем проверяются методомmodel checking?В требованиях, предъявляемых к работе распределённойсистеме, часто так или иначе присутствует времяНапример:void премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Требование: если мне положены одна зарплата и одна премия,то на счету появятся миллион и тысячаВерификация распределённых системКакие свойства распределённых систем проверяются методомmodel checking?В требованиях, предъявляемых к работе распределённойсистеме, часто так или иначе присутствует времяНапример:void премия() {счёт += 1 000 000;}void зарплата() {счёт += 1 000;}Требование: если мне положены одна зарплата и одна премия,то на счету появятся миллион и тысячаИными словами: при любом развитии событий (во времени)после завершения работы функций “премия” и “зарплата” ксчёту добавится 1 001 000Верификация распределённых системЕщё один пример:Имеется несколько компьютеров, не взаимодействующих междусобой, но имеющих доступ к сетевому принтеруВерификация распределённых системЕщё один пример:Имеется несколько компьютеров, не взаимодействующих междусобой, но имеющих доступ к сетевому принтеруКак корректно организовать взаимодействие компьютеров спринтером?Верификация распределённых системЕщё один пример:Имеется несколько компьютеров, не взаимодействующих междусобой, но имеющих доступ к сетевому принтеруКак корректно организовать взаимодействие компьютеров спринтером?Считаем, что принтер работает последовательно и может бытьзанят (какой-либо компьютер передаёт на него данные) илисвободен (никакие данные не передаются)Верификация распределённых системКорректное взаимодействие компьютеров с принтеромудовлетворяет следующим требованиям:Верификация распределённых системКорректное взаимодействие компьютеров с принтеромудовлетворяет следующим требованиям:1.

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