Реферат по предмету "Экономико-математическое моделирование"


Имитационное моделирование жизненного цикла товара на примере ООО "Стимул"

КУРСОВАЯ РАБОТА
по курсу
«Имитационное моделирование экономических процессов»
Тема:
«Имитационное моделирование жизненного цикла товара напримере ООО »Стимул""
Брянск2010

Введение
В современном мире никакому предприятию не обойтись без моделированияразличных ситуаций. Будь это экономические, политические или другие ситуации.Для этого можно применять современные методики и инструменты, снижающиевременные затраты. Наиболее подходящим и эффективным является методимитационного моделирования, основу которого составляет сценарный подход.
С помощью имитационных моделей можнопроигрывать различные сценарии поведения потребителей, поставщиков,конкурентов, что во многом определяет развитие предприятия в будущем. Моделидают возможность проверить различные идеи, гипотезы и предположенияотносительно развития бизнеса, проанализировать последствия их реализации.Деятельность предприятия в модели воспроизводится посредством описания движенияденежных потоков как событий, происходящих в различные периоды времени.
Моделировать экономические ситуациивозможно с помощью программного продукта AnyLogic. Пакет моделирования AnyLogic поддерживает различные подходы моделирования. AnyLogic является одним из инструментовмоделирования, позволяющим быстро создавать гибкие модели с агентами,взаимодействующими как друг с другом, так и со своим окружением. AnyLogic поддерживает все возможные способызадания поведения агентов – диаграммы состояний (стейтчарты), синхронное иасинхронное планирование событий.
Актуальность данной темы определяетсянеобходимостью сравнения различных вариантов функционированиянедетерминированных экономических процессов с помощью экспериментальных методовисследования.
Цель написания данной курсовой работы:имитационное моделирование деятельности фирмы жизненного цикла товара фирмы ООО «Стимул»с помощью программы AnyLogic.
Задачи написания данной курсовой работы:
1. Изучить теоретическийматериал.
2. Рассмотретьпрограммный продукт AnyLogic.
3. Построить имитационнуюмодель жизненного цикла товара ООО «Стимул».
4. Смоделироватьнесколько экономических ситуаций на рынке.
5. Провести анализполученных результатов.
Объектом исследования является деятельностькомпании ООО «Стимул».
Предметом исследования является изучениежизненного цикла товаров ООО «Стимул».
Методы исследования: монографический иимитационное моделирование.
1. Теоретические основы имитационного моделирования1.1 Сущностьпонятия «имитационное моделирование»
Имитационное моделирование –это разработка и выполнение на компьютерепрограммной системы, отражающей структуру и функционирование (поведение)моделируемого объекта или явления во времени. Такую программную системуназывают имитационной моделью этого объекта или явления. Объекты и сущностиимитационной модели представляют объекты и сущности реального мира, а связиструктурных единиц объекта  моделирования отражаются в интерфейсных связяхсоответствующих объектов модели. Таким образом, имитационная модель – этоупрощенное подобие реальной системы, либо существующей, либо той, которуюпредполагается создать в будущем. Имитационная модель обычно представляетсякомпьютерной программой, выполнение программы можно считать имитацией поведенияисходной системы во времени.
В русскоязычной литературетермин «моделирование» соответствует американскому «modeling» и имеет смысл создание модели и ее анализ, причем подтермином «модель» понимается объект любой природы, упрощенно представляющийисследуемую систему. Слова «имитационное моделирование» и «вычислительный(компьютерный) эксперимент» соответствуют англоязычному термину «simulation». Эти термины подразумевают разработку модели именно каккомпьютерной программы и исполнение этой программы на компьютере.
Итак, имитационноемоделирование – это деятельность по разработке программных моделей реальных илигипотетических систем, выполнение этих программ на компьютере и анализрезультатов компьютерных экспериментов по исследованию повеления моделей.Имитационное моделирование имеет существенные преимущества перед аналитическиммоделированием в тех случаях, когда:
· отношения между переменными в модели нелинейны, и поэтому аналитические модели трудно или невозможно построить.
· модель содержит стохастическиекомпоненты.
· для понимания поведения системытребуется визуализация динамики происходящих в ней процессов.
· модель содержит много параллельнофункционирующих взаимодействующих компонентов.
Во многих случаяхимитационное моделирование – это единственный способ получить представление оповедении сложной системы и провести ее анализ.
Имитационное моделированиереализуется посредством набора математических инструментальных средств,специальных компьютерных программ и приемов, позволяющих с помощью компьютерапровести целенаправленное моделирование в режиме «имитации» структуры и функцийсложного процесса и оптимизацию некоторых его параметров. Набор программныхсредств и приемов моделирования определяет специфику системы моделирования – специальногопрограммного обеспечения.
В отличие от других видов испособов математического моделирования с применением ЭВМ имитационноемоделирование имеет свою специфику: запуск в компьютере взаимодействующихвычислительных процессов, которые являются по своим временным параметрам – сточностью до масштабов времени и пространства – аналогами исследуемыхпроцессов.
Имитационное моделированиекак особая информационная технология состоит из следующих основных этапов:
1. Структурный анализ процессов.Проводится формализация структуры сложного реального процесса путем разложенияего на подпроцессы, выполняющие определенные функции и имеющие взаимные функциональныесвязи согласно легенде, разработанной рабочей экспертной группой. Выявленныеподпроцессы, в свою очередь, могут разделяться на другие функциональныеподпроцессы. Структура общего моделируемого процесса может быть представлена ввиде графа, имеющего иерархическую многослойную структуру, в результатепоявляется формализованное изображение имитационной модели в графическом виде.Структурный анализ особенно эффективен при моделировании экономических процессов,где (в отличие от технических) многие составляющие подпроцессы не имеютфизической основы и протекают виртуально, поскольку оперируют с информацией,деньгами и логикой (законами) их обработки.
2. Формализованное описание модели.Графическое изображение имитационной модели, функции, выполняемые каждымподпроцессов, условия взаимодействия всех подпроцессов и особенности поведениямоделируемого процесса (временная, пространственная и финансовая динамика)должны быть описаны на специальном языке для последующей трансляций.
3. Построение модели (build). Обычно этотрансляция и редактирование связей (сборка модели), верификация (калибровка)параметров.
4. Проведение экстремального экспериментадля оптимизации определенных параметров реального процесса./>1.2 Системамоделирования моделирования AnyLogic TM
Пакет моделирования AnyLogic TM поддерживает различные подходы моделирования. В этойкурсовой описывается агентный подход моделирования, успешно применяемый в различныхсферах деятельности. При помощи агентов моделируют рынки (агент – потенциальныйпокупатель), конкуренцию и цепочки поставок (агент – компания), население (агент– семья, житель города или избиратель) и многое другое. Агентные моделипозволяют получить представление об общем поведении системы, исходя из предположенийо поведении ее элементов, при отсутствии знания о глобальных законах-то есть внаиболее общем случае. AnyLogic TM является единственным инструментом моделирования,позволяющим быстро создавать гибкие модели с агентами, взаимодействующими какдруг с другом, так и со своим окружением. AnyLogicTM поддерживаетвсе возможные способы задания поведения агентов – диаграммы состояний(стейтчарты), синхронное и асинхронное планирование событий.
Агентные модели в программереализуются с помощью специальной Библиотеки агентного моделирования AnyLogicAgent Based Library. Она предоставляет возможность задания функциональности,которая часто требуется в агентных моделях. Библиотека находится в стадии разработки,и на данный момент она содержит только один объект – AgentBase, который, будучидобавлен в класс активного объекта агента, позволяет использовать различныевременные и пространственные модели, задавать сети контактов агентов, а такжедругие важные свойства.
Агенты группируются впопуляции. Агенты одной и той же популяции используют одинаковые:
· Временную модель.
· Пространственную модель.
· Сеть.
· Тип взаимодействия.
В одной модели может бытьнесколько популяций, причем каждая популяция может содержать объекты различныхклассов. Принадлежность агента той или иной популяции определяется параметромPopulationName объекта AgentBase. Популяция создается при создании первогоагента, ссылающегося на ее имя. Она использует значения глобальных параметровиз настроек объекта AgentBase этого агента. Агенты, созданные позднее, не будутиметь возможность изменять свойства этой популяции, но должны иметь совместимыенастройки.
Инициализация сети ирасположения агента внутри популяции производится при наступлении специальногособытия, запланированного на момент времени 0; поэтому она затрагивает всеобъекты, уже созданные к тому времени при инициализации модели. Вот как этопроисходит:
1. Если в качестве значения параметраDefaultNetwork не выбран тип ALL IN RANGE, то происходит создание сети
2. Применяется заданное по умолчаниюрасположение (дискретное или непрерывное)
3. Если в качестве значения параметраDefaultNetwork выбран тип ALL IN RANGE, то происходит создание сети.
В случае дискретноговремени, первый шаг («тик часов») будет совершен сразу после инициализациимодели. Но обратите внимание, что если в модели на момент времени 0 будутзапланированы другие события, то неизвестно, какое из действий будет выполненораньше – инициализация сети и расположения агентов или какие-то иззапланированных событий.
Для всех агентов,динамически создаваемых во время выполнения модели, никакие контакты с другимиагентами по умолчанию не устанавливаются.
Объект AgentBaseподдерживает две временные модели: непрерывную – CONTINUOUS и дискретную – DISCRETE.Непрерывная модель подразумевает, что агенты сами управляют временем, т.e. онимогут иметь таймеры, стейтчарты и уравнения, планирующие какие-тоиндивидуальные активности во времени. Дискретная модель подразумевает, чтоагенты работают синхронно и пошагово.
В модели с дискретнойвременной моделью популяция генерирует события («тики часов») в моменты времени0, 1, 2… При наступлении каждого такого события выполняется следующаяпоследовательность действий:
· Для всей популяции один раз вызываетсякод параметра OnBeforeStepGlobal (предполагается, что этот код содержитглобальные действия, не связанные с какими-либо отдельными агентами).
· У каждого агента популяции вызываетсякод параметра OnBeforeStep
· Для всей популяции один раз вызываетсякод параметра OnStepGlobal (опять же, предполагается, что этот код содержитглобальные действия, не связанные с какими-либо отдельными агентами)
· Справочное руководство по Agent BasedLibrary
· У каждого агента популяции вызываетсякод параметра OnStep
Дискретная временная модельне означает, что у агентов не может быть своих активностей – они могутвыполнять любые действия параллельно с дискретными «тиками» часов модельноговремени.
Объект AgentBaseподдерживает две пространственные модели: непрерывную – CONTINUOUS и дискретную– DISCRETE. В моделях с непрерывным пространством каждый агент имеет кординаты(x, y), и не существует никаких ограничений на плотность или расположениеагентов в пространстве. Можно управлять расположением агентов, либо изменяятекущие значения координат (параметры Xdynamic и Ydynamic) (тогда должен бытьвыбран режим управления местоположением агента DYNAMIC USER DEFINED), илииспользуя функции API, отвечающие за передвижение агентов: moveTo, stop,jumpTo, и т.д. (тогда должен быть выбран режим управления местоположениемSTATIC OR MOBILE).
Начальное расположение агентовв непрерывном пространстве задается параметром DefaultLayoutContinuous.Использование параметров SpaceWidth и SpaceHeight имеет смысл, только еслииспользуется заданное по умолчанию расположение агентов. Если используетсядискретная модель пространства, то агенты помещаются в ячейки, причем в каждойячейке может быть не более одного агента. Количество ячеек задается параметрамиSpaceRows (количество строк) и SpaceColumns (количество столбцов). Начальноерасположение агентов задается параметром DefaultLayoutDiscrete. В дискретномпространстве существует понятие соседства агентов. Тип соседства задаетсяпараметром Neighborhood. При типе соседства EUCLIDIAN функция getNeighbors()возвратит объект типа Vector, содержащий всех агентов, находящихся в ячейках,которые имеют общие границы с данной ячейкой (если таковые имеются). Если жебудет выбран тип соседства MOORE, то будут также учитываться агенты и вячейках, соседних с данной по диагонали, то есть, в ячейках, имеющих общие углыс этой ячейкой.
Если Вы создадите анимациюагента, то на анимации активного объекта, содержащего объект агента, агентыбудут расположены согласно их текущим координатам.
Каждый агент может иметьконтакты с другими агентами этой же популяции (если значение параметраDefaultNetwork не равно NONE). Список всех агентов, соединенных с этим агентом,можно получить с помощью функции getContacts().
Существует несколькопредопределенных типов сетей: RANDOM, SCALE FREE, и т.д. Можно использоватьодин из предопределенных типов сетей, но можно также соединять агентов«вручную» с помощью функций connectTo/disconnectFrom.
Можно использовать сеть дляпосылки сообщений соединенным агентам с помощью функций sendToRandomContact и sendToAllContacts. Если у агента создана анимация, то при желании можноотобразить на ней линии, показывающие связи между соединенными агентами.
Стандартный тип сети неозначает, что агенты не могут иметь каких-то других соединений. Можно задатьлюбую топологию сети взаимодействий агентов, устанавливая и сохраняясоответствующие связи. Например, можно промоделировать семьи, создав в объектеагента переменные Parent и Children, которые будут хранить ссылки наагента-родителя и агентов-детей соответственно.
Если создается анимациюагента, то можно сделать анимацию интерактивной, задав реакцию на щелчок мышьюпо анимации агента (для этого нужно установить параметр Clickable в true).Область, чувствительная к щелчку мыши, будет ограничена пунктирной рамкойанимации агента. Действие, которое будет выполняться при совершении щелчкамышью по анимации агента, задается параметром OnClick. В частности, рядом санимацией агента может показываться любая необходимая информация об агенте (можноизменить содержание отображающегося текста с помощью параметра InfoString).
Объект AgentBase такжепредоставляет механизм обмена сообщениями между агентами. Функции sendTo…используются для пересылки сообщений различного типа агентам той же популяции.При получении агентом сообщения, начинает выполняться код параметра OnReceive.В этом коде можно задать обработчик события получения сообщения, при этомсообщение будет доступно как встроенная переменная message (типа Object), аагент-отправитель сообщения – как переменная sender (типа ActiveObject).
Как обычно, можно задатьлюбой другой механизм взаимодействия между агентами: они могут вызывать функциидруг друга, изменять значения переменных, и т.д.
2. Разработка имитационной модели жизненного цикла товара ООО «Стимул»2.1 Краткаяорганизационно-экономическая характеристика предприятия ООО «Стимул» и егодеятельности
Общество с ограниченной ответственностью «Стимул» (далее ООО «Стимул»)создано в 1995 году. Зарегистрировано советом учредителей в г. Брянске в1995 году. Расположено всеверо-восточной части города. Предприятиеимеет 0,5 га площади, на которой расположено складское и торговое хозяйство,административно-управленческие помещения.
Целью деятельности предприятия является: получение прибылипутём использования имущества ООО «Стимул», осуществление производственно-хозяйственной,коммерческой и прочей деятельности, в порядке и в соответствии с действующимзаконодательством Российской федерации. Предметомдеятельности ООО «Стимул» является: производствотоваров народного потребления и предоставление платных услуг населению./>2.2 Разработкаимитационной модели жизненного цикла товара ООО «Стимул»
В начале создадим новыйпроект для модели.
· Создаем новый проект:
1. Щелкнем мышью по кнопке панелиинструментов Создать появится диалоговое окно Новый Проект.
1. Щелкнем мышью по кнопке Выбрать… ивыберите директорию, в которой вы будете хранить файлы проекта.
2. Укажем имя нового проекта Product Stimyl в полередактирования Имя проекта.
5. Подтверждаем операцию, нажав кнопку ОК.
Создали новый проект. Вцентре появилась структурная диаграмма в центре рабочей области AnyLogic, окноПроект – в левой панели, и окно Свойства в правой.
/>
Рис. 1. Структурнаядиаграмма в центре рабочей области AnyLogic
Первым шагом при созданиимодели является создание агентов. В AnyLogicTM для создания агентов вначалесоздали класс активного объекта, который будет задавать внутреннюю структуруагента, а затем создали необходимое количество экземпляров этого класса, каждыйиз которых будет представлять отдельного агента модели. Создаем новый классактивного объекта, кликаем по кнопке панели инструментов Новый класс активногообъекта. В диалоговом окне задаем имя Имя нового класса: Person.
/>
Рис. 2. Созданиенового класса активного объекта

Теперь добавим агентов в модель.Откроем структурную диаграмму класса Main, сделав двойной щелчок мышью поэлементу Main в окне Проект. Перетащим мышью класс Person из окна Проект наструктурную диаграмму класса Main. Назовем объект people. Зададим количествочеловек в модели. На вкладке Количество окна Свойства зададим Количествообъектов: 1000. Автоматически создано 1100 экземпляров класса Person, каждый изкоторых будет представлять отдельного агента. Зададим характеристики агента.Характеристики агента задаются с помощью параметров класса. Все агенты обладаютобщей структурой, поскольку все они задаются объектами одного класса. Параметрыже позволяют задавать характеристики индивидуально для каждого агента. Зададимподверженность человека влиянию рекламы. Откроем структурную диаграмму классаPerson, сделав двойной щелчок мышью по элементу Person в окне Проект. В окнеСвойства, кликаем мышью по кнопке Новый параметр. В появившемся диалоговом окнеПараметр, задаем свойства параметра. Изменим имя параметра. В поле Имя введем Ad_Effectiveness.Зададим значение параметра. Введем 0.011 в поле По умолчанию.
/>
Рис. 3. Подверженностьчеловека влиянию рекламы

/>
Рис. 4. Среднегодовоеколичество встреч человека
Зададим среднегодовоеколичество встреч человека. Аналогично создаем параметр Contact_Rate.Предположим, что человек в среднем встречается со 90 людьми в год. Введем вполе редактирования По умолчанию 90.
Зададим силу убеждениячеловека, влияющую на то, сколько людей он сможет убедить в необходимостикупить продукт. Для этого создаем параметр Adoption_Fraction. Зададим значение0.014.
/>
Рис. 5. Сила убеждениячеловека
Создадим вспомогательныепеременные. Для этого откроем структурную диаграмму класса Person, сделавдвойной щелчок мышью по элементу Person в окне Проект. Щелкнем мышью по кнопкепанели инструментов Переменная, а затем щелкнем по диаграмме класса. Надиаграмме появится голубой кружок, обозначающий переменную.
Когда поместили элемент наструктурную диаграмму, этот элемент стал выбранным, и дальше изменили свойстваэлемента в окне Свойства. В дальнейшем для изменения свойств элемента нужнобыло вначале щелчком мыши выделить его на диаграмме или в окне Проект. Изменилиимя переменной на model в поле редактирования Имя. Задали Тип переменной: Main.Main – это класс корневого объекта нашей модели. Задали начальное значение: (Main) getOwner(). Этапеременная понадобится нам, чтобы упростить доступ к окружению (объекту классаMain) из кода объектов, моделирующих агентов. Аналогично создадим переменную isAdopter: спомощью этой переменной мы будем определять, является ли данный человеквладельцем продукта, или нет.
Зададим поведения агентаПоведение агента задается визуально с помощью стейтчарта (диаграммы состояний).Для создания откроем структурную диаграмму класса Person, сделав двойной щелчокмышью по элементу Person в окне Проект. Кликнем мышью вначале по кнопке панелиинструментов Стейтчарт, а затем по диаграмме. На диаграмме появится значокстейтчарта. Сделаем двойной щелчок мышью по этому значку. Автоматическиоткроется диаграмма со следующим стейтчартом рис 7.
/>
Рис. 6. Сейтчарт
В окне Свойства, зададимновое Имя стейтчарта: adoption. Щелкнем мышью по состоянию state, нажмем F2 ипереименуем состояние в PotentialAdopter. Это начальное состояние, о чемсвидетельствует указатель начального состояния, направленный в это состояние.Если стейтчарт будет находиться в этом состоянии, то это будет означать, чтоэтот человек еще не купил продукт. Нарисуем следующий стейтчарт рис 7.
Затем добавили еще односостояние, щелкнув мышью вначале по кнопке панели инструментов Состояние, апотом по диаграмме под состоянием PotentialAdopter. Назовали его Adopter. Еслистейтчарт будет находиться в этом состоянии, это будет означать, что этотчеловек уже купил продукт. Потом добавили переход из состояния PotentialAdopterв состояние Adopter. Для этого щелкните мышью по кнопке панели инструментовПереход, затем щелкните вначале по границе верхнего состояния, а затем погранице нижнего. Этот переход будет моделировать покупку продукта.
/>
Рис. 7. Сейтчарт
В окне Свойства, выбералиПо таймауту из выпадающего списка. Время, через которое человек купит продукт,экспоненциально зависит от
эффективности рекламыпродукта. Помимо функции экспоненциального распределения exponential(), AnyLogicпредоставляет функции и других случайных распределений, таких как нормальное, равномерное,треугольное и т.д.
Посчитаем потребителейпродукта. Главная задача модели распространения продукта – изучение того, какбыстро люди покупают новый продукт. Поэтому добавили возможность отслеживаниятого, сколько людей уже купило продукт, а сколько – еще нет. Подсчитываетсячисло потребителей и потенциальных потребителей продукта с помощью специальносозданных переменных.
Создали две переменные:adopters и potential_adopters. Изменили стейтчарт. Открыли диаграммустейтчарта, сделав двойной щелчок мышью по элементу statechart в окне Проект. Щелкнулимышью по состоянию PotentialAdopter. В окне Свойства, задали Действие при входев состояние и Действие при выходе из этого состояния: при входе в состояние мыбудем увеличивать на единицу значение переменной, подсчитывающей количество потенциальныхпотребителей продукта. При выходе из состояния мы будем уменьшать значение этойпеременной. Для того чтобы подтвердить произведенное изменение, вызывалифункцию setModified() объекта, моделирующего окружение. Кроме того, измерилоизначение переменной isAdopter, чтобы показать, купил ли этот человек нашпродукт (если да, то значение переменной равно true, если нет, то false). Аналогичнозадалисвойства состояния Adopter. Запустим модель. Построим проект с помощьюкнопки панели инструментов Построить.
Теперь изучим динамикупроцесса. С помощью диаграмм можно понаблюдать за динамикой моделируемогопроцесса. Создадим диаграмму, отображающую динамику изменения числапотребителей и потенциальных потребителей продукта. Подготовили модель кзапуску, щелкнув мышью по кнопке панели инструментов Выполнить шаг. Щелкнулимышью по кнопке панели инструментов Новая диаграмма. Появилось окно новойдиаграммы. Выбрали переменные, которые должны быть отображены на диаграмме.Щелкнули правой кнопкой мыши по окну диаграммы и выбрали Содержимое диаграмм изконтекстного меню. Появилось диалоговое окно Содержимое диаграммы. Добавилипеременную potential_adopters, сделав двойной щелчок мышью по значку переменнойroot.potential_adopters в списке Переменные, параметры, наборы данных.
/>
Рис. 8. Содержимоедиаграммы
Аналогичным способомдобавили переменную root.adopters. Затем изменили параметры диаграммыПодготовили модель к запуску. Выбрали Параметры диаграммы… из контекстногоменю. В появившемся диалоговом окне задали временной диапазон диаграммы.
/>
Рис. 9. Параметрыдиаграммы

Затем перезапустили модель,поочередно щелкнув мышью по кнопкам панели инструментов Перезапустить иЗапустить. Диаграмма показывает, как изменяются переменные potential_adopters иadopters во время моделирования.
/>
Рис. 10. Диаграммадинамики моделируемого процесса
Теперь рассмотрим учетвлияния общения людей. В текущей модели люди приобретают продукт только подвлиянием рекламы. На самом деле, рекламный эффект играет значительную роль тольков момент выпуска продукта на рынок. В дальнейшем все большую роль будет игратьобщение людей с теми своими знакомыми, которые этот продукт уже приобрели.
В основном люди приобретаютновые продукты именно под влиянием убеждения своих знакомых; этот процессчем-то похож на распространение эпидемии. Чтобы учесть влияние общения людей, внесемв модель небольшие изменения. Изменим стейтчарт. Откроем диаграмму стейтчартаadoption, сделав двойной щелчок мышью по элементу adoption в окне Проект. Добавимв состояние Adopter внутренний переход. Задаем таймаут, по которому происходитпереход.
Этот переход будетмоделировать покупку продукта знакомым этого человека. То, насколько быстро этотвладелец продукта сумеет убедить своего знакомого в необходимости покупки,будет зависеть от силы убеждения этого человека и от того, сколько знакомых онвстречает за год. Задаем действие перехода.
Этот переход генерируетсигнал для стейтчарта какого-то знакомого этого человека. Вследствие этогосрабатывает переход стейтчарта, моделирующий покупку продукта этим знакомым.
/>
Рис. 11. Изменениестейтчарта
/>
Рис. 12. Заданиетаймаута перехода
/>
Рис. 13. Заданиедействия перехода
Добавим еще один переход изсостояния PotentialAdopter в состояние Adopter.

/>
Рис. 14. Переход изсостояния PotentialAdopter в состояние Adopter
Этот переход будетсрабатывать по сигналу, который будет генерироваться внутренним переходомсостояния Adopter. На странице свойств перехода, в поле Происходит выберали Посигналу, и задали вид Сигнала. На странице свойств перехода, в поле Происходитвыбрали По сигналу, и задали вид Сигнала. Запустили модель щелчком мыши по кнопкепанели инструментов Запустить.
Диаграмма будет иметь такойвид:
/>
Рис. 15. Диаграммаучета влияния общения людей
Теперь смоделируемповторных покупок. Созданная модель не учитывает того, что со временем продукт можетбыть израсходован или прийти в негодность, что вызовет необходимость егоповторного приобретения. Смоделируем повторные покупки, полагая, чтопотребители продукта снова становятся потенциальными потребителями, когдапродукт, который они приобрели, становится непригоден. Вначале зададим срокслужбы продукта. Для этого откройте структурную диаграмму класса Main, сделавдвойной щелчок мышью по элементу Мain в окне Проект. Создаем параметрDiscard_Time. Пусть средний срок службы продукта равен полтора года. Сделаемпараметр глобальным.
/>
Рис. 16. Параметр срокслужбы продукта
Изменим стейтчарт. Откроемдиаграмму стейтчарта двойным щелчком мыши по элементу adoption в окне Проект. Добавимпереход из состояния Adopter в состояние PotentialAdopter. Задим следующиесвойства перехода:
/>
Рис. 17. Свойстваперехода из состояния Adopter в состояние PotentialAdopte
Запустили модель и проследилидинамику изменения числа потребителей продукта.

/>
Рис. 18. Диаграммадинамики изменения числа потребителей
Здесь видим, что насыщение рынкав модели с повторными покупками не достигается. Создадим пространственнуюмодель. Теперь сделаем модель пространственной, чтобы задать места проживаниялюдей. Откроем структурную диаграмму класса 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. Анимациямодели
/>3. Анализ результатов решения задачи
Технологиясистемного моделирования – основа целенаправленной деятельности, смысл которойв обеспечении возможности эффективного выполнения на ЭВМ исследованийфункционирования сложной системы.
Имитационнаямодель – специфическое, сложное программное изделие, ее разработка должнавестись с применением высокотехнологичных систем моделирования. Действияисследователя организуются на всех этапах имитационного моделирования, начинаяс изучения предметной области и выделения моделируемой проблемной ситуации икончая построением и реализацией планов машинных экспериментов и обработкойрезультатов.
Анализозначает, как меняется выходная переменная Y при небольших изменениях различныхпараметров модели или ее входов X.
Величиныпараметров систематически варьируются в некоторых представляющих интереспределах (Хmin Хmax) и наблюдается влияние этих вариаций на характеристикисистемы (Ymin Ymax). Если при незначительных изменениях величин некоторыхпараметров результаты меняются очень сильно, то это основание для затратыбольшого количества времени и средств с целью получения более точных оценок. Инаоборот, если конечные результаты при изменении величин параметров в широкихпределах не изменяются, то дальнейшее экспериментирование в этом направлениибесполезно и неоправданно. Поэтому очень важно определить степеньчувствительности результатов относительно выбранных для исследования величин параметров.
Исследованиечувствительности является предварительной процедурой перед планированиемэксперимента и позволяет определить стратегию планирования экспериментов наимитационной модели.
Процедурыверификации и валидации собственно имитационной модели и её программного кодатребуют проведения широкого спектра тестовых имитационных экспериментовсогласно сценариям, разработанным в процессе как тактического, так истратегического планирования.
Стратегическоепланирование направлено на решение задач анализа чувствительности имитационноймодели и определение комбинации оптимизирующих исследуемую систему параметров.
Тактическоепланирование позволяет определиться с условиями проведения каждого прогона врамках составленного плана эксперимента и связано с вопросами эффективности иопределением способов проведения испытаний (прогонов), намеченных планомэкспериментов.
Тактическоепланирование направлено на решение проблемы точностного оценивания имитационныхмоделей и связано с тем, что в условиях стохастической модели, чтобы достигнутьзаданной точности результатов экспериментов, стремятся повторять реализации(проводить многочисленные прогоны). Время на серию машинных прогонов сложногомодельного эксперимента может быть большим, а выделенное на экспериментмашинное время ограничивается имеющимися временными и машинными ресурсами.Поэтому необходимо стремиться к получению максимальной информации с помощьюнебольшого числа прогонов.
Заключение
Имитационное моделированием применяется к процессам, в ходкоторых может время от времени вмешиваться человеческая воля. Человек, руководящийоперацией, может в зависимости от сложившейся обстановки, принимать те или иныерешения, подобно тому, как шахматист глядя на доску, выбирает свой очереднойход. Затем приводится в действие математическая модель, которая показывает,какое ожидается изменение обстановки, в ответ на это решение и к какимпоследствиям оно приведет спустя некоторое время. Следующее текущее решениепринимается уже с учетом реальной новой обстановки и т.д. В результатемногократного повторения такой процедуры руководитель как бы «набирает опыт»,учится на своих и чужих ошибках и постепенно выучиваться принимать правильныерешения – если не оптимальные, то почти оптимальные.
Процессы, происходящие в природе и обществе, настольковзаимосвязаны, что их изучение по отдельности невозможно. Только изучение всейсистемы целиком со всеми петлями причинных связей может привести к корректномупониманию системы. В результате построения имитационной модели жизненного циклатоваров ООО «Стимул» была смоделирована модель поведения потребителей нарынке. Где было выявлена специфика покупателей данной группы товаров. Следуетсделать вывод, что если жизненный цикл товаров очень долгий, то происходитпресыщение на этом рынке данной продукцией. Если жизненный цикл становитьсяболее не продолжительным, то происходит полное насыщение товарами. Ну а есливсе же жизненный цикл товаров очень короткий, то происходит дефицит данноготовара на потребительском рынке. Отсюда следует, что надо всегда, варьируяданными подбирать оптимальные сроки жизненного цикла товаров.
Списоклитературы
1. Емельянов А.А. Имитационноемоделирование экономических процессов: учеб. пособие / А.А. Емельянов, Е.А. Власова,Р.В. Дума; под ред. А.А. Емельянова. – М.: Финансы и статистика,2002. – 368 с: ил.
2. Карпов Ю. Имитационное моделированиесистем. Введение в моделирование с AnyLogic 5. – Спб.: БХВ-Петербург, 2005 – 400 с.: ил.
3. Лычкина Н.Н. Имитационноемоделирование экономических процессов – М: Академия АйТи, 2005 – 160 с.
4. Учебное пособие по моделированию в AnyLogic TM. – Copyright XJ Technologies, 2005 – 55 c.: ил.
5.  Справочное руководство по PedestrianLibrary в AnyLogic TM. – Copyright XJ Technologies, 2005 – 82 c.: ил.
6. Кельтон В.Д.,Лоу А.М. Имитационное моделирование. Классика CS. 3-е изд. – СПб.:Питер; Киев: Издательская группа BHV, 2004. – 847 с.: ил.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.