Имитационное моделирование в исследовании и разработке информационных систем Лекция 3 Понятие модели Основные виды моделей Имитационное моделирование
Понятие модели Модель – это объект, заменяющий исходный объект в ходе достижения заданных целей и при заданных предположениях. Важные примеры цели моделирования: понимание; исследование (проектирование); замещение исходного объекта в составе системы; 2
Понятие модели (2) Модель – это всегда упрощение исходного объекта (что-то отбрасываем и/или обобщаем); Модель должна быть адекватной объекту (для заданной цели применения); Использование модели должно быть проще использования исходного объекта См. также источник pdf и другие учебные пособия 3
Виды моделей (1) Физические Натурные: эксперименты с реальным объектом или его частью; полунатурные: часть объекта заменена моделью; масштабные: глобус, макеты зданий, макеты в аэро(гидро)динамической трубе аналоговые: использование иных физических явлений с теми же законами Аналоговые выч машины: 4
Виды моделей (2) Знаковые –лингвистические (правила, кодексы …) –графические (схемы, чертежи) –математические Математические - по свойствам объекта –структурные –функциональные 5 Доп. Ссылки: [Замятина 2005], [Советов, Яковлев 2001]
Виды моделей (3) Математические функциональные: аналитические: построены явные математические зависимости результатов от входных данных; имитационные: аналогия между состояниями и действиями в объекте с переменными и операторами компьютерной программы 6
Имитационное моделирование Алгоритмические ММ выражают связи выходных параметров с параметрами внутренними и внешними в форме алгоритма Имитационная ММ - это алгоритмическая модель, отражающая поведение исследуемого объекта во времени при задании внешних воздействий на объект. (методические рекомендации Минобрнауки РФ; [Замятина 2005 ]) 7
Имитационное моделирование (2) Имитационная модель воспроизводит процесс функционирования системы во времени, причём имитируются элементарные явления, составляющие процесс, с сохранением их логической структуры и последовательности протекания во времени [Советов, Яковлев, с.34] 8
Простейшая имитационная модель N шариков; k ящиков; кладём шарики по одному в ящики с номерами 1..k последовательно, затем возвращаемся к ящику 1 Сколько шариков будет в каждом ящике? 9
Простейшая имитационная модель (2) int box[k]; // вектор состояния; // начальное состояние for( int i=0; i= k )curr_box=0; // след. ящик time++; // след. момент времени } 10
11 ИМ по способам продвижения времени С постоянным шагом –Непрерывные модели –Потактовые модели От события к событию –Дискретно-событийные модели Гибридные модели –Совместная работа компонентов разного рода –Переключение режимов «непрерывного» компонента
Особенности ИМ По сравнению с аналитическими моделями: –универсальность применения (+); –результат для конкретного набора входных данных (-); По сравнению с «программами общего назначения»: «ТЗ формируется по ходу дела…» Поддержка понятий предметной области 12
Этапы создания ИМ (1) Анализ требований и проектирование –Постановка цели моделирования –Построение концептуальной модели –Проверка достоверности концептуальной модели Реализация модели –Выбор языка и средств моделирования –Программирование модели –Отладка модели 13
Этапы создания ИМ (2) Проведение экспериментов и анализ результатов Планирование экспериментов Прогон модели Анализ результатов и выводы 14
Концептуальная модель 15 Как правило, знаковая (лингв. или графич. модель) различной степени формализованности Построение – процесс неформальный, интуитивный Определяет структуру моделируемой системы, алгоритмы функционирования компонентов, их состояния, порядок взаимодействия, и т.д. Представляет собой решение по абстракции и упрощению иследуемой системы «техническое задание» на программирование имитационной модели
Пример моделируемой системы 16
Пример моделируемой системы (2) 17 Состав: –веб-клиенты на хосте h1 –веб-сервер на хосте h2 –Фрагмент сети Internet между h1 и h2 –Стек TCP/IP на h1 и h2 Цели: –исследовать зависимость очереди запросов к серверу от числа клиентов; –воспроизвести временную диаграмму работы системы на уровне состояния сервера и клиентов, очередей запросов
Параметры 18 Число клиентовN Длина i-го запроса j-го клиентаreql(i,j) Интервал между запросамиreqtime (i,j) Время прохождения стека на h1Stacktime1( l) Время прохождения стека на h2Stacktime2( l) Время прохождения сообщения в сетиNetwtime(l) Время подготовки ответаAnstime(I,j) Длина ответаAnsl(I,j)
Предположения Клиент генерирует следующий запрос через интервал времени после прихода ответа на предыдущий Первый запрос второго и последующих клиентов? Стек протоколов в каждый момент времени пропускает не более одного сообщения, прочие ставятся в очередь Сеть начинает передачу сообщения, получив его полностью. Аналогично, лишь полностью прошедшее через сеть сообщение передаётся стеку протоколов 19
Предположения (2) В сети возможна одновременная передача в обоих направлениях В каждом направлении может одновременно передаваться неограниченное число сообщений (вариант: ограниченное число – не более M) 20
Моделирование посредством планирования событий 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: …. } 21
22 Спасибо за внимание!