Имитационное моделирование в исследовании и разработке информационных систем Лекция 3 •Понятие модели

advertisement
Имитационное моделирование в исследовании
и разработке информационных систем
Лекция 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
Download