Здесь видим, что насыщение рынка в модели с повторными покупками не достигается. Создадим пространственную модель. Теперь сделаем модель пространственной, чтобы задать места проживания людей. Откроем структурную диаграмму класса Person, сделав двойной щелчок мышью по элементу Person в окне Проект. Создадим переменные x и y типа real. Для обеих переменных задаем начальное значение: uniform(300).С помощью функции равномерного распределения uniform() помещаем человека в точку со случайно выбранными координатами от 0 до 300. Далее создаем функцию, вычисляющую расстояние между людьми. В окне Проект, щелкните правой кнопкой мыши по элементу Person и выбираем Новая математическая функция… из контекстного меню. В появившемся диалоговом окне задаем имя функции: distance. В окне Свойства, оставьте выбранный по умолчанию тип возвращаемого значения функции. Задаем аргументы, передающие функции координаты другого человека:
Рис. 19. Аргументы, передающие функции координаты другого человека
Задаем выражение функции:
Рис. 20. Выражение функции sqrt()
Функция sqrt() является предопределенной функцией AnyLogicTM.
Изменим стейтчарт. Откроем диаграмму стейтчарта adoption, сделав двойной щелчок мышью по элементу adoption в окне Проект. Выделим щелчком мыши внутренний переход состояния Adopter и изменим Действие перехода:
Рис. 21. Изменения действия перехода
Люди будут общаться не с любыми своими знакомыми, вне зависимости от места их проживания, а только с теми, кто живет поблизости. Запустим модель.
Создадим анимацию для модели. Теперь необходимо создать наглядную визуализацию исследуемого процесса. AnyLogic TM позволяет создавать интерактивную анимацию с возможностью изменения параметров системы по ходу моделирования процесса.
Вначале создадим переменную, которая понадобится нам для анимации агента. Откроем структурную диаграмму класса Person, сделав двойной щелчок мышью по элементу Person в окне Проект. Создаем переменную color типа Color переменная будет определять цвет, которым агент будет отображаться на анимации. Анимация в AnyLogic TM рисуется на анимационной диаграмме. Создаем анимационную диаграмму. Щелкнем правой кнопкой мыши по элементу Main в дереве модели и выберем Новая анимация… из контекстного меню. В появившемся диалоговом окне зададим имя анимации модели: animation. Автоматически появится окно редактора анимации. Изменим размер анимации. Передвинем рамку анимационной области, чтобы она имела координаты (-20, -20), и измените ее размер на (520, 340). Необходимо показать на анимации людей, проживающих в исследуемой области. Это будет отображаться их точками разных цветов, в зависимости от того, приобрели ли они продукт, или еще нет.
Нарисуем границу исследуемой области. Щелкните мышью по кнопке панели инструментов Прямоугольник. Щелкнем левой кнопкой мыши рядом с точкой (-10, -10) и, не отпуская кнопку, переместим мышь в точку (310, 310). Нарисуем на анимации агентов с помощью маленьких прямоугольников. Щелкнем мышью по кнопке панели инструментов Прямоугольник. В окне Свойства, зададим Имя прямоугольника: agentShape.
Рис. 22. Анимационная область
Зададим размер прямоугольника: ширина – 3, высота – 3. Зададим Количество анимационных объектов. Зададим местоположение фигур агентов на анимации. Зададим цвет фигуры с помощью следующего выражения. Это выражение проверяет, является ли человек владельцем продукта (анализируется значение булевской переменной isAdopter). Если да, то этот человек будет отображаться на анимации синей точкой, если нет - то серой.
Теперь добавим на анимацию индикаторы, с помощью которых будем отслеживать, сколько людей приобрело продукт, а сколько – нет. Добавим индикатор числа потенциальных потребителей продукта. Щелкнем мышью по кнопке панели инструментов Столбцовый индикатор. Поместим индикатор на анимацию, щелкнув мышью справа от прямоугольника исследуемой области. На вкладке Общие окна Свойства, изменим размер индикатора: х – 350, у – 80, ширина – 30, высота 200. На вкладке Столбцовый индикатор окна Свойства, выбирали переменную, которую будет отображать этот индикатор: positional_adopters.
Зададим максимальное отображаемое значение в поле Максимум, изменим цвет индикации и сбросим флажок Отображать шкалу. Добавим индикатор числа потребителей. Добавим подписи к индикаторам. Добавим элемент управления.
Теперь хотим исследовать моделируемый процесс в течение более длительного времени, поэтому сделаем так, чтобы наша модель работала бесконечно. Удалим условие остановки модели. В окне Проект, щелкните мышью по элементу Simulation. На вкладке Дополнительные окна Свойства, сбросили флажок Стоп по времени. Теперь закончили создание анимации. Запускаем модель щелчком мыши по кнопке.
Рис. 23. Анимация модели
Технология системного моделирования – основа целенаправленной деятельности, смысл которой в обеспечении возможности эффективного выполнения на ЭВМ исследований функционирования сложной системы.
Имитационная модель – специфическое, сложное программное изделие, ее разработка должна вестись с применением высокотехнологичных систем моделирования. Действия исследователя организуются на всех этапах имитационного моделирования, начиная с изучения предметной области и выделения моделируемой проблемной ситуации и кончая построением и реализацией планов машинных экспериментов и обработкой результатов.
Анализ означает, как меняется выходная переменная Y при небольших изменениях различных параметров модели или ее входов X.
Величины параметров систематически варьируются в некоторых представляющих интерес пределах (Хmin Хmax) и наблюдается влияние этих вариаций на характеристики системы (Ymin Ymax). Если при незначительных изменениях величин некоторых параметров результаты меняются очень сильно, то это основание для затраты большого количества времени и средств с целью получения более точных оценок. И наоборот, если конечные результаты при изменении величин параметров в широких пределах не изменяются, то дальнейшее экспериментирование в этом направлении бесполезно и неоправданно. Поэтому очень важно определить степень чувствительности результатов относительно выбранных для исследования величин параметров.
Исследование чувствительности является предварительной процедурой перед планированием эксперимента и позволяет определить стратегию планирования экспериментов на имитационной модели.
Процедуры верификации и валидации собственно имитационной модели и её программного кода требуют проведения широкого спектра тестовых имитационных экспериментов согласно сценариям, разработанным в процессе как тактического, так и стратегического планирования.
Стратегическое планирование направлено на решение задач анализа чувствительности имитационной модели и определение комбинации оптимизирующих исследуемую систему параметров.
Тактическое планирование позволяет определиться с условиями проведения каждого прогона в рамках составленного плана эксперимента и связано с вопросами эффективности и определением способов проведения испытаний (прогонов), намеченных планом экспериментов.
Тактическое планирование направлено на решение проблемы точностного оценивания имитационных моделей и связано с тем, что в условиях стохастической модели, чтобы достигнуть заданной точности результатов экспериментов, стремятся повторять реализации (проводить многочисленные прогоны). Время на серию машинных прогонов сложного модельного эксперимента может быть большим, а выделенное на эксперимент машинное время ограничивается имеющимися временными и машинными ресурсами. Поэтому необходимо стремиться к получению максимальной информации с помощью небольшого числа прогонов.
Имитационное моделированием применяется к процессам, в ход которых может время от времени вмешиваться человеческая воля. Человек, руководящий операцией, может в зависимости от сложившейся обстановки, принимать те или иные решения, подобно тому, как шахматист глядя на доску, выбирает свой очередной ход. Затем приводится в действие математическая модель, которая показывает, какое ожидается изменение обстановки, в ответ на это решение и к каким последствиям оно приведет спустя некоторое время. Следующее текущее решение принимается уже с учетом реальной новой обстановки и т.д. В результате многократного повторения такой процедуры руководитель как бы «набирает опыт», учится на своих и чужих ошибках и постепенно выучиваться принимать правильные решения – если не оптимальные, то почти оптимальные.
Процессы, происходящие в природе и обществе, настолько взаимосвязаны, что их изучение по отдельности невозможно. Только изучение всей системы целиком со всеми петлями причинных связей может привести к корректному пониманию системы. В результате построения имитационной модели жизненного цикла товаров ООО «Стимул» была смоделирована модель поведения потребителей на рынке. Где было выявлена специфика покупателей данной группы товаров. Следует сделать вывод, что если жизненный цикл товаров очень долгий, то происходит пресыщение на этом рынке данной продукцией. Если жизненный цикл становиться более не продолжительным, то происходит полное насыщение товарами. Ну а если все же жизненный цикл товаров очень короткий, то происходит дефицит данного товара на потребительском рынке. Отсюда следует, что надо всегда, варьируя данными подбирать оптимальные сроки жизненного цикла товаров.
1. Емельянов А.А. Имитационное моделирование экономических процессов: учеб. пособие / А.А. Емельянов, Е.А. Власова, Р.В. Дума; под ред. А.А. Емельянова. – М.: Финансы и статистика, 2002. – 368 с: ил.
2. Карпов Ю. Имитационное моделирование систем. Введение в моделирование с AnyLogic 5. – Спб.: БХВ-Петербург, 2005 – 400 с.: ил.
3. Лычкина Н.Н. Имитационное моделирование экономических процессов – М: Академия АйТи, 2005 – 160 с.
4. Учебное пособие по моделированию в AnyLogicTM. – CopyrightXJTechnologies, 2005 – 55 c.: ил.
5. Справочноеруководствопо Pedestrian Library в AnyLogic TM. – Copyright XJ Technologies, 2005 – 82 c.: ил.
6. Кельтон В.Д., Лоу А.М. Имитационное моделирование. Классика CS. 3-е изд. – СПб.: Питер; Киев: Издательская группа BHV, 2004. – 847 с.: ил.