Модели и моделирование © К.Ю. Поляков, 2007-2011 Тема 1. Модели и их типы
* Модели в нашей жизни
* Что такое модель? Модель – это объект, который обладает некоторыми свойствами другого объекта (оригинала) и используется вместо него. Оригиналы и модели Первый линейный русский корабль «Гото Предестинация»
* Что можно моделировать? Модели объектов: уменьшенные копии зданий, кораблей, самолетов, … модели ядра атома, кристаллических решеток чертежи … Модели процессов: изменение экологической обстановки экономические модели исторические модели … Модели явлений: землетрясение солнечное затмение цунами …
* Моделирование Моделирование – это создание и использование моделей для изучения оригиналов. Когда используют моделирование: оригинал не существует древний Египет последствия ядерной войны (Н.Н. Моисеев, 1966) исследование оригинала опасно для жизни или дорого: управление ядерным реактором (Чернобыль, 1986) испытание нового скафандра для космонавтов разработка нового самолета или корабля оригинал сложно исследовать непосредственно: Солнечная система, галактика (большие размеры) атом, нейтрон (маленькие размеры) процессы в двигателе внутреннего сгорания (очень быстрые) геологические явления (очень медленные) интересуют только некоторые свойства оригинала проверка краски для фюзеляжа самолета
* Цели моделирования исследование оригинала изучение сущности объекта или явления «Наука есть удовлетворение собственного любопытства за казенный счет» (Л.А. Арцимович) анализ («что будет, если …») научиться прогнозировать последствия различных воздействиях на оригинал синтез («как сделать, чтобы …») научиться управлять оригиналом, оказывая на него воздействия оптимизация («как сделать лучше») выбор наилучшего решения в заданных условиях
* Один оригинал – одна модель? материальная точка
* Зачем нужно много моделей? изучение строения тела примерка одежды изучение наследственности тренировка спасателей учет граждан страны
* Природа моделей материальные (физические, предметные) модели: информационные модели представляют собой информацию о свойствах и состоянии объекта, процесса, явления, и его взаимосвязи с внешним миром: вербальные – словесные или мысленные знаковые – выраженные с помощью формального языка графические (рисунки, схемы, карты, …) табличные математические (формулы) логические (различные варианты выбора действий на основе анализа условий) специальные (ноты, химические формулы)
* Модели по области применения учебные (в т.ч. тренажеры) опытные – при создании новых технических средств научно-технические аэродинамическая труба испытания в опытовом бассейне имитатор солнечного излучения вакуумная камера в Институте космических исследований вибростенд НПО «Энергия»
* Модели по фактору времени статические – описывают оригинал в заданный момент времени силы, действующие на тело в состоянии покоя результаты осмотра врача фотография динамические модель движения тела явления природы (молния, землетрясение, цунами) история болезни видеозапись события
* Модели по характеру связей детерминированные связи между входными и выходными величинами жестко заданы при одинаковых входных данных каждый раз получаются одинаковые результаты Примеры движение тела без учета ветра расчеты по известным формулам вероятностные (стохастические) учитывают случайность событий в реальном мире при одинаковых входных данных каждый раз получаются немного разные результаты Примеры движение тела с учетом ветра броуновское движение частиц модель движения судна на волнении модели поведения человека
* Модели по структуре табличные модели (пары соответствия) иерархические (многоуровневые) модели сетевые модели (графы)
* Специальные виды моделей имитационные нельзя заранее вычислить или предсказать поведение системы, но можно имитировать её реакцию на внешние воздействия; максимальный учет всех факторов; только численные результаты; Примеры: испытания лекарств на мышах, обезьянах, … математическое моделирование биологических систем модели бизнеса и управления модели процесса обучения
* Специальные виды моделей игровые – учитывающие действия противника Примеры: модели экономических ситуаций модели военных действий спортивные игры тренинги персонала
* Адекватность модели Адекватность – совпадение существенных свойств модели и оригинала: результаты моделирования согласуются с выводами теории (законы сохранения и т.п.) … подтверждаются экспериментом Модель всегда отличается от оригинала
* Системный подход Система – группа объектов и связей между ними, выделенных из среды и рассматриваемых как одно целое. Примеры: семья экологическая система компьютер техническая система общество среда
* Системный подход Модель-система: Модель-не-система: 1-я линия: Пр. Ветеранов Ленинский пр. Автово Кировский завод Нарвская … 2-я линия: Купчино Звездная Московская Парк Победы Электросила …
* Системный подход Граф – это набор вершин и соединяющих их ребер. 1 2 3 4 5 вершина ребро 23 18 20 15 14 5 вес ребра (взвешенный граф) ориентированный граф (орграф) –ребра имеют направление
* Системный подход Семантическая (смысловая) модель предложения: «Выхожу один я на дорогу…» выхожу я на дорогу один что делаю? кто? сколько? куда? граф
* Матрица смежности петля A B C D A 0 1 1 0 B 1 0 1 1 C 1 1 1 1 D 0 1 1 0
* Матрица смежности A B C D A B C D A B C D A B C D
* Матрица смежности A B C D A 0 1 1 B 0 1 0 C 1 1 0 D 1 0 0 A B C D A 1 0 1 B 1 1 0 C 0 1 1 D 1 0 1
* Весовая матрица Васюки Солнцево Ягодное 12 8 5 4 6 Грибное 2 A B C D A 12 8 B 12 5 6 C 8 5 2 4 D 6 4
* Весовая матрица A B C D A B C D A B C D A B C D
* Весовая матрица A B C D A 4 3 B 4 2 C 3 6 D 2 6 A B C D A 2 3 B 4 C 2 5 D 3 4 5
* Кратчайшие пути Определите кратчайший путь между пунктами A и D. A B С E С D С D E D 2 4 6 2 4 6 1 3 1 3 9 7 5 8 4 1 3 7 дерево возможных маршрутов A B C D E A 2 4 6 B 2 1 C 4 1 5 1 D 5 3 E 6 1 3
* Кратчайшие пути Определите кратчайший путь между пунктами A и E. A B C D E A 2 4 B 2 1 7 C 4 1 3 5 D 3 3 E 7 5 3
* Количество путей Сколько существует различных путей из А в Ж? 1. Откуда можно приехать в Ж? Ж←БВГДЕ Е←В Д←Б Г←АБВ В←А Б←А 2. Можно приехать только из А: Б←А В←А 3. Можно приехать только из уже отобранных вершин (А, Б и В): Б←А В←А Е←В Д←Б Г←АБВ 4. Можно приехать только из уже отобранных вершин: Б←А В←А Е←В Д←Б Г←АБВ Ж←БВГДЕ
* Количество путей Б←А В←А Е←В Д←Б Г←АБВ Ж←БВГДЕ После сортировки: Ж←БВГДЕ NЖ← NБ + NВ + NГ + NД + NЕ Б←А В←А Е←В Д←Б Г←АБВ Ж←БВГДЕ Заполнение таблицы: 1 1 1 1 3 7
* Количество путей Б←А В←А Е←В Д←Б Г←АБВ Ж←БВГДЕ Форма записи: 1 1 1 1 3 7
* Количество путей Сколько существует различных путей из А в Ж? Ж А Б В Г Д Е
Модели и моделирование © К.Ю. Поляков, 2007-2011 Тема 2. Этапы моделирования
* I. Постановка задачи исследование оригинала изучение сущности объекта или явления анализ («что будет, если …») научиться прогнозировать последствий при различных воздействиях на оригинал синтез («как сделать, чтобы …») научиться управлять оригиналом, оказывая на него воздействия оптимизация («как сделать лучше») выбор наилучшего решения в заданных условиях
* I. Постановка задачи Хорошо поставленная задача: описаны все связи между исходными данными и результатом известны все исходные данные решение существует задача имеет единственное решение Примеры плохо поставленных задач: Винни Пух и Пятачок построили ловушку для слонопотама. Удастся ли его поймать? Малыш и Карлсон решили по–братски разделить два орешка – большой и маленький. Как это сделать? Найти максимальное значение функции y = x2 (нет решений). Найти функцию, которая проходит через точки (0,1) и (1,0) (неединственное решение).
* II. Разработка модели выбрать тип модели определить существенные свойства оригинала, которые нужно включить в модель, отбросить несущественные (для данной задачи) построить формальную модель это модель, записанная на формальном языке (математика, логика, …) и отражающая только существенные свойства оригинала разработать алгоритм работы модели алгоритм – это четко определенный порядок действий, которые нужно выполнить для решения задачи
* III. Тестирование модели Тестирование – это проверка модели на простых исходных данных с известным результатом. Примеры: устройство для сложения многозначных чисел – проверка на однозначных числах модель движения корабля – если руль стоит ровно, курс не должен меняться; если руль повернуть влево, корабль должен идти вправо модель накопления денег в банке – при ставке 0% сумма не должна изменяться
* IV. Эксперимент c моделью Эксперимент – это исследование модели в интересующих нас условиях. Примеры: устройство для сложения чисел – работа с многозначными числами модель движения корабля – исследование в условиях морского волнения модель накопления денег в банке – расчеты при ненулевой ставке
* V. Проверка практикой, анализ результатов Возможные выводы: задача решена, модель адекватна необходимо изменить алгоритм или условия моделирования необходимо изменить модель (например, учесть дополнительные свойства) необходимо изменить постановку задачи
* Пример. Задача. Обезьяна хочет сбить бананы на пальме. Как ей надо кинуть кокос, чтобы попасть им в бананы. Анализ задачи: все ли исходные данные известны? есть ли решение? единственно ли решение?
* I. Постановка задачи Допущения: кокос и банан считаем материальными точками расстояние до пальмы известно рост обезьяны известен высота, на которой висит банан, известна обезьяна бросает кокос с известной начальной скоростью сопротивление воздуха не учитываем При этих условиях требуется найти начальный угол, под которым надо бросить кокос.
* II. Разработка модели Графическая модель h Формальная (математическая) модель Задача: найти t, , при которых
* III. Тестирование модели при нулевой скорости кокос падает вертикально вниз при t=0 координаты равны (0,h) при броске вертикально вверх ( =90o) координата x не меняется при некотором t координата y начинает уменьшаться (ветви параболы вниз) Математическая модель
* IV. Эксперимент Метод I. Меняем угол . Для выбранного угла строим траекторию полета ореха. Если она проходит выше банана, уменьшаем угол, если ниже – увеличиваем. Метод II. Из первого равенства выражаем время полета: Меняем угол . Для выбранного угла считаем t, а затем – значение y при этом t. Если оно больше H, уменьшаем угол, если меньше – увеличиваем. не надо строить всю траекторию для каждого
* V. Анализ результатов Всегда ли обезьяна может сбить банан? Что изменится, если обезьяна может бросать кокос с разной силой (с разной начальной скоростью)? Что изменится, если кокос и бананы не считать материальными точками? Что изменится, если требуется учесть сопротивление воздуха? Что изменится, если дерево качается?
Модели и моделирование © К.Ю. Поляков, 2007-2011 Тема 3. Модели биологических систем (по мотивам учебника А.Г. Гейна и др., Информатика и ИКТ, 10 класс, М.: Просвещение, 2008)
* – начальная численность – после 1 цикла деления – после 2-х циклов Особенности модели: не учитывается смертность не учитывается влияние внешней среды не учитывается влияние других видов Модель деления
* – коэффициент рождаемости – коэффициент смертности Особенности модели: не учитывается влияние численности N и внешней среды на K не учитывается влияние других видов на K Коэффициент прироста прирост Модель неограниченного роста (T. Мальтус)
* Модель ограниченного роста (П. Ферхюльст) L – предельная численность животных Идеи: коэффициент прироста KL зависит от численности N при N=0 должно быть KL=K (начальное значение) при N=L должно быть KL=0 (достигнут предел)
* Модель с отловом Примеры: рыбоводческое хозяйство, разведение пушных зверей и т.п.
* Модель эпидемии гриппа L – всего жителей Ni – больных в i-ый день Zi – заболевших в i-ый день Vi – выздоровевших Wi – всего выздоровевших за i дней Основное уравнение: Ограниченный рост: Выздоровление (через 7 дней):
* Модель системы «хищник-жертва» Модель – не-система: Модель – система: число встреч пропорционально Ni Zi «эффект» пропорционален числу встреч
* Модель системы «хищник-жертва» Хищники вымирают: Равновесие: караси щуки караси щуки
*
* Модель системы «хищник-жертва» Колебания:
Модели и моделирование © К.Ю. Поляков, 2007-2011 Тема 4. Моделирование случайных процессов (по мотивам учебника А.Г. Гейна и др., Информатика и ИКТ, 10 класс, М.: Просвещение, 2008)
* Случайные процессы Случайно… встретить друга на улице разбить тарелку найти 10 рублей выиграть в лотерею Случайный выбор: жеребьевка на соревнованиях выигравшие номера в лотерее Как получить случайность?
* Случайные числа на компьютере Электронный генератор нужно специальное устройство нельзя воспроизвести результаты 318458191041 564321 209938992481 458191 938992 малый период (последовательность повторяется через 106 чисел) Метод середины квадрата (Дж. фон Нейман) в квадрате Псевдослучайные числа – обладают свойствами случайных чисел, но каждое следующее число вычисляется по заданной формуле.
* Случайные числа на компьютере Линейный конгруэнтный метод a, c, m - целые числа простое число 230-1 период m остаток от деления «Вихрь Мерсенна»: период 219937-1
* Распределение случайных чисел Модель: снежинки падают на отрезок [a,b] распределение равномерное неравномерное
* Распределение случайных чисел Особенности: распределение – это характеристика всей последовательности, а не одного числа равномерное распределение одно, компьютерные датчики (псевдо)случайных чисел дают равномерное распределение неравномерных – много любое неравномерное можно получить с помощью равномерного a b a b
* Вычисление площади (метод Монте-Карло) Вписываем сложную фигуру в другую фигуру, для которой легко вычислить площадь (прямоугольник, круг, …). Равномерно N точек со случайными координатами внутри прямоугольника. Подсчитываем количество точек, попавших на фигуру: M. 4. Вычисляем площадь: Всего N точек На фигуре M точек Метод приближенный. Распределение должно быть равномерным. Чем больше точек, тем точнее. Точность ограничена датчиком случайных чисел. !
* Вычисление площади Когда точка внутри круга? (x,y) Случайные координаты: x := R*random; y := R*random; Программа: for i:=1 to N do begin { найти случайные координаты } if x*x + y*y
* Броуновское движение Случайный шаг: Случайное направление (в рад): alpha := 2*pi*random; h := hMax*random; Программа: for i:=1 to N do begin { найти случайное направление и шаг } x := x + h*cos(alpha); y := y + h*sin(alpha); end;
* Системы массового обслуживания Примеры: звонки на телефонной станции вызовы «скорой помощи» обслуживание клиентов в банке сколько бригад? сколько линий? сколько операторов? Особенности: клиенты (запросы на обслуживание) поступают постоянно, но через случайные интервалы времени время обслуживание каждого клиента – случайная величина
* Клиенты в банке Вход клиентов: за 1 минуту – до N человек равномерное распределение Обслуживание: от Tmin до Tmax минут равномерное распределение
* Клиенты в банке Число клиентов в помещении банка: N := N + in - out; было пришли ушли Количество касс: K Средняя длина очереди: Допустимая длина очереди:
* Клиенты в банке Пришли за очередную минуту: in := round(N*random); округление Обслужены за очередную минуту и выходят: Случайное время обслуживания: T := Tmin + (Tmax – Tmin)*random; out := K / T;
* Клиенты в банке (программа) count := 0; { счетчик «плохих» минут } for i:=1 to L do begin in := { случайное число входящих } out := { случайное число обслуженных } N := N + in – out; if N > Q*K then count := count + 1; end; writeln(count/L:0:2); период моделирования L минут
* Конец фильма