Имитационное моделирование в исследовании и разработке информационных систем Лекция 3 •Понятие модели •Основные виды моделей •Примеры аналитических моделей производительности •Имитационное моделирование Понятие модели Модель – это объект, заменяющий исходный объект в ходе достижения заданных целей и при заданных предположениях. Важные примеры цели моделирования: • понимание; обучение; • исследование (проектирование); • замещение исходного объекта в составе некоторой системы; 2 Понятие модели (2) • Модель – это всегда упрощение исходного объекта (имеются упрощающие предположения) (что-то отбрасываем и/или обобщаем); • Модель должна быть адекватной объекту (для заданной цели применения); • Использование модели должно быть проще использования исходного объекта См. также источник http://simulation.su/uploads/files/default/2007-uchposob-zamyatina-1.pdf и другие учебные пособия 3 Виды моделей (1) Физические модели • Натурные: эксперименты с реальным объектом или его частью; • полунатурные: часть объекта заменена моделью; • масштабные: глобус, макеты зданий, макеты в аэро(гидро)динамической трубе • аналоговые: использование иных физических явлений с теми же законами Аналоговые выч машины: http://habrahabr.ru/company/intel/blog/85645/ 4 Натурные модели: примеры • Эксперимент над реальным объектом или его частью (в условиях, отличных от штатных условий эксплуатации) • Бортовая цифровая вычислительная машина в «коммерческом» исполнении вместо «промышленного» Полунатурные модели Стенд ПНМ Функциональное ПО Модели бортовых приборов ОС РВ Среда выполнения моделей БЦВМ Натурный объект Linux с расширениями РВ x86 сервер Бортовой канал Масштабные модели Масштабные модели Масштабные модели Масштабные модели Продувка моделей летательных аппаратов в аэродинамических трубах http://www.tsagi.ru/experimental_base 1) Принцип обращения движения; 2) Должны выполняться условия аэродинамического подобия, в том числе: • Геометрическое подобие; • Совпадение чисел Маха для модели и натурного объекта; • Совпадение чисел Рейнольдса M = V / a; Re = V * l / ν V – скорость потока; a – скорость звука при конкретных условиях; l – размах крыльев; ν – коэффициент кинематической вязкости воздуха Подробности вне рамок курса, см., например, здесь http://akpla.ucoz.com/GGD/Zanyatie_7.1.pdf http://storage.mstuca.ru/bitstream/123456789/1613/1/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B%20%D0%B0%D1 %8D%D1%80%D0%BE%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D0%BA%D0%B8%20%D0%B8%20%D0 %BB%D0%B5%D1%82%D0%BD%D0%BE%D1%82%D0%B5%D1%85%D0%BD%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5%20%D1%85%D0% B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8%20%D 0%B2%D0%BE%D0%B7%D0%B4%D1%83%D1%88%D0%BD%D1%8B%D1%85%20%D1%81%D1%83%20%D0%B4%D0%BE%D0%B2,%20%D1%87%D0%B0%D1%81%D1%82%D1%8C%201.pdf Модель и макет • Макет – модель, предварительный образец (© Ожегов) • Как правило, уменьшенное в масштабе представление объекта • Как правило, при создании макета от внутреннего содержания абстрагируются • Цель создания макета – как правило, оценка взаимодействия макетируемого объекта с окружением, а не «проникания внутрь» Виды моделей (2) • Знаковые – лингвистические (правила, кодексы …) – графические (схемы, чертежи) – математические • Математические - по свойствам моделируемого объекта – структурные – функциональные Доп. ссылки: [Замятина 2007], [Советов, Яковлев 2001] 12 Структурные модели • Определяют: – Разбиение системы на компоненты – Связи между компонентами • Используемые математические понятия – Иерархические древовидные модели – Графовые модели – Сетевые модели Структурные модели (2) • Важные примеры – Диаграммы классов UML – Диаграммы развёртывания UML 14 Важные примеры средств описания функциональных моделей • Диаграммы потоков данных (DFD) Гейна-Сарсона {для бизнеспроцессов} • Блок-схемы, диаграммы последовательности UML; • Диаграммы состояний (state transition diagrams) • Диаграммы message sequence chart UML 15 • Системы массового обслуживания Пример диаграммы состояний 16 Виды моделей (3) • Математические функциональные: • аналитические: построены явные математические зависимости результатов от входных данных; • алгоритмические: построен алгоритм вычисления результатов по входным данным; • имитационные: построен алгоритм, описывающий поведение объекта во времени с учётом входных 17 воздействий во времени Аналитические модели (примеры) • Результат аналитического решения ДУ: s(t) = v0t + at2/2 • Результаты обработки ранее сделанных измерений (209 систем – объём кэша, тактовая частота, количество каналов ввода-вывода, объём памяти) – 1987 г. • Worst Case Execution Time (WCET) • Модели производительности для параллельных программ Аналитические модели (2) V – количество операций в программе; p – число процессоров (ядер); S(p) = t(1) / t(p) - ускорение • Полное распараллеливание: S(p) = p • Пусть α – доля последовательных вычислений • Закон Амдаля (Amdahl) S(p) ≤ 1 / (α + (1-α)/p) 19 Более общая модель параллельных вычислений •Вершина – задача •Вес вершины – время выполнения •Ребро (стрелка) – зависимость по данным •В одном ярусе – параллельно выполняемые задачи Критический путь длиной Vкр 20 Более общая модель (2) t(p) ≥ V / p + Vкр * (p-1)/p s(p) ≤ 1 / (1/p + Vкр/V * (p-1)/p) Конвейерные вычисления p – длина конвейера; V – длина вектора; T(p) = p + V – 1; t(1) = pV; a = p / (1 + (p-1)/V) 21 Имитационное моделирование • Алгоритмические ММ выражают связи выходных параметров с параметрами внутренними и внешними в форме алгоритма • Имитационная ММ - это алгоритмическая модель, отражающая поведение исследуемого объекта во времени при задании внешних воздействий на объект. (методические рекомендации Минобрнауки РФ; [Замятина 2007]) 22 Имитационное моделирование (2) Имитационная модель воспроизводит процесс функционирования системы во времени, причём имитируются элементарные явления, составляющие процесс, с сохранением их логической структуры и последовательности протекания во времени [Советов, Яковлев, с.34] 23 Простейшая имитационная модель • Дано: часы со стрелками • Определить: сколько раз минутная стрелка покрывает часовую за время с 12.00 полудня до 11.59 полуночи? 24 Простейшая имитационная модель (2) Предположения: • стрелки имеют нулевую ширину • Минутная стрелка поворачивается каждую секунду • Часовая стрелка поворачивается на 1/12 поворота минутной каждую секунду Простейшая имитационная модель (3) int count = 1; // число перекрытий; int time = 0; // время в секундах double phi_min = 0; // угол минутной стрелки в градусах; double phi_hr = 0; // угол часовой стрелки в градусах; // цикл моделирования while( time < 60*(59*12-1) ) { time++; // след. момент времени phi_min = phi_min + 0.1; // поворот минут. стрелки if( phi_min == 360 ) phi_min = 0; phi_hr = phi_hr + 0.1/12; // поворот часовой стрелки // проверка перекрытия // printf ( "hr = %F min = %F\n", phi_hr, phi_min ); if( fabs( phi_min - phi_hr) < 0.05 ){ count ++; printf( "hr = %F min = %F\n", phi_hr, phi_min ); } } Всё ли правильно? printf ( "count = %d\n", count ); 26 Простейшая имитационная модель (4) int count = 1; // число перекрытий; int time = 0; // время в секундах double phi_min = 0; // угол минутной стрелки в градусах; double phi_hr = 0; // угол часовой стрелки в градусах; // цикл моделирования while( time < 60*(59*12-1) ) { time++; // след. момент времени phi_min = phi_min + 0.1; // поворот минут. стрелки if( fabs(phi_min - 360) < 0.01 ) phi_min = 0; phi_hr = phi_hr + 0.1/12; // поворот часовой стрелки // проверка перекрытия // printf ( "hr = %F min = %F\n", phi_hr, phi_min ); if( fabs( phi_min - phi_hr) < 0.05 ){ count ++; printf( "hr = %F min = %F\n", phi_hr, phi_min ); } } printf ( "count = %d\n", count ); 27 Простейшая имитационная модель (5) • Предположение о нулевой толщине стрелок потребует нулевого шага по времени • Сравнивать числа float (double) на точное равенство – опасно! • Имитационная модель, в отличие от аналитической, может быть легко детализирована для стрелок произвольной ширины Особенности ИМ • По сравнению с аналитическими моделями: – универсальность применения (+); – результат для конкретного набора входных данных (-); • По сравнению с «программами общего назначения»: • «ТЗ формируется по ходу дела…» • Необходимость поддержки понятий предметной области 29 ИМ по способам продвижения времени • С постоянным шагом – Непрерывные модели – Потактовые модели • От события к событию – Дискретно-событийные модели • Гибридные модели – Совместная работа компонентов разного рода – Переключение режимов «непрерывного» компонента 30 Этапы создания ИМ (1) • Анализ требований и проектирование – Постановка цели моделирования – Построение концептуальной модели – Проверка достоверности концептуальной модели • Реализация модели – Выбор языка и средств моделирования – Программирование модели – Отладка модели 31 Этапы создания ИМ (2) • Проведение экспериментов и анализ результатов – Планирование экспериментов – Прогон модели – Анализ результатов и выводы 32 Концептуальная модель • Как правило, знаковая (лингв. или графич. модель) различной степени формализованности • Построение – процесс неформальный, интуитивный • Определяет структуру моделируемой системы, алгоритмы функционирования компонентов, их состояния, порядок взаимодействия, и т.д. • Представляет собой решение по абстракции и упрощению иследуемой системы • «техническое задание» на программирование имитационной модели 33 Пример моделируемой системы 34 Пример моделируемой системы (2) • Состав: – – – – веб-клиенты на хосте h1 веб-сервер на хосте h2 Фрагмент сети Internet между h1 и h2 Стек TCP/IP на h1 и h2 • Цели: – исследовать зависимость очереди запросов к серверу от числа клиентов; – воспроизвести временную диаграмму работы системы на уровне состояния сервера и клиентов, очередей запросов 35 Параметры Число клиентов N Длина i-го запроса j-го клиента reql(i,j) Интервал между запросами reqtime (i,j) Время прохождения стека на h1 Stacktime1( l) Время прохождения стека на h2 Stacktime2( l) Время прохождения сообщения в сети Netwtime(l) Время подготовки ответа Anstime(I,j) Длина ответа Ansl(I,j) 36 Предположения • Клиент генерирует следующий запрос через интервал времени после прихода ответа на предыдущий • Первый запрос второго и последующих клиентов? • Стек протоколов в каждый момент времени пропускает не более одного сообщения, прочие ставятся в очередь • Сеть начинает передачу сообщения, получив его полностью. Аналогично, лишь полностью прошедшее через сеть сообщение передаётся стеку протоколов 37 Предположения (2) • В сети возможна одновременная передача в обоих направлениях • В каждом направлении может одновременно передаваться неограниченное число сообщений (вариант: ограниченное число – не более M) 38 Моделирование посредством планирования событий mod_time=0; calendar.add( first_event, 0 ); //начальное событие(я) while(!finish()) // пока не достигнуто условие окончания { event=calendar.get_first_event(); // событие с мин. Временем mod_time=event.time; switch(event.type) { case type1: /* обработка */ calendar.add(события, mod_time+интервал ); case type2: …. } } 39 Спасибо за внимание! 40