Имитационное моднлирование

Автор работы: Пользователь скрыл имя, 14 Марта 2013 в 11:06, реферат

Краткое описание

Имитационное моделирование на цифровых вычислительных машинах является одним из наиболее мощных средств исследования, в частности, сложных динамических систем. Как и любое компьютерное моделирование, оно дает возможность проводить вычислительные эксперименты с еще только проектируемыми системами и изучать системы, натурные эксперименты с которыми, из-за соображений безопасности или дороговизны, не целесообразны. В тоже время, благодаря своей близости по форме к физическому моделированию, это метод исследования доступен более широкому кругу пользователей.

Содержание

Введение……………………………………………………………………..……2
1.Определение понятия «имитационное моделирование»……………………..3
2. Классификационные признаки моделирования……………………………...3
2.1 По характеру процессов…………………………………………………….4
2.2 По форме представления………………………………………………….…5
3. Классификации языков моделирования……………………………………10
4. Достоинства и недостатки языков имитационного моделирования……..12
5. Языки имитационного моделирования………………………………….…13
5.1 Язык моделирования Симула………………………………………………14
5.2 Язык моделирования SIMSCRIPT………………………………………….15
5.3 Унифицированный язык моделирования UML…………………………..16
5.4 Язык моделирования DYNAMO…………………………………………..19
Заключение……………………………………………………………………...22
Список литературы……………………………………………………………..23

Вложенные файлы: 1 файл

ИМ.doc

— 212.00 Кб (Скачать файл)

В язык Симула-67 введено  понятие объект, которое возникло из понятия процесс языка Симула-1. Под объектом понимается экземпляр описания класса, имеющий свои собственные локальные данные и действия. В языке есть элементарные операторы, которые позволяют организовать выполнение программы в виде последовательных активных фаз объектов. Такое выполнение называют квазипараллельным. Квазипараллельное выполнение программ дает возможность отойти от обычной схемы решения задачи (в виде последовательности шагов) и представить ее в виде ряда взаимодействующих объектов, получивших название сопрограмм.

Установление в языке таких понятий, как класс, подкласс и некоторых других, позволяет использовать его в качестве основы для построения специализированных языков, ориентированных на различные предметные области (проблемно-ориентированных языков). Одним из преимуществ языка по сравнению с базовым предшественником является наличие удобных средств ввода и вывода.

Идеи, заложенные в языке  Симула-67, оказали существенное влияние  на языки программирования, которые  появились позже. В частности, понятие  класс нашло свое воплощение в понятии абстрактные типы данных, а понятие объект в объектно-ориентированном программировании, хотя при разработке Симулы не ставилась цель создать объектно-ориентированный язык. Средствами Симулы-67, помимо языков моделирования, описаны языки работы с базами данных, машинной графики и некоторые другие.

 

5.2 Язык моделирования SIMSCRIPT

 

Примером языка событий  является язык SIMSCRIPT. Модель состоит из элементов, с которыми происходят события, представляющие собой последовательность предложений, изменяющих состояния моделируемой системы в различные моменты времени. Моделирование с помощью языка SIMSCRIPT включает в себя следующие этапы:

  1. элементы моделируемой системы S описываются и вводятся с помощью карт определений;
  2. вводятся начальные условия;
  3. фиксируются и вводятся исходные значения временных параметров;
  4. составляются подпрограммы для каждого события;
  5. составляется перечень событий и указывается время свершения каждого эндогенного события.

Команды языка SIMSCRIPT группируются следующим образом:

  • операции над временными объектами;
  • арифметические и логические операции и команды управления;
  • команды ввода-вывода;
  • специальные команды обработки результатов.

К центральным понятиям языка SIMSCRIPT относятся обработка списков с компонентами, определяемыми пользователем, и последовательность событий в системном времени. При этом имеются специальные языковые средства для работы с множествами.

 

5.3 Унифицированный язык моделирования UML

 

Язык UML представляет собой общецелевой язык визуального моделирования, который разработан для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения, бизнес-процессов и других систем. Язык UML одновременно является простым и мощным средством моделирования, который может быть эффективно использован для построения концептуальных, логических и графических моделей сложных систем самого различного целевого назначения.

Конструктивное использование  языка UML основывается на понимании  общих принципов моделирования  сложных систем и особенностей процесса объектно-ориентированного проектирования (ООП) в частности. Выбор выразительных средств для построения моделей сложных систем предопределяет те задачи, которые могут быть решены с использованием данных моделей. При этом одним из основных принципов построения моделей сложных систем является принцип абстрагирования, который предписывает включать в модель только те аспекты проектируемой системы, которые имеют непосредственное отношение к выполнению системой своих функций или своего целевого предназначения. При этом все второстепенные детали опускаются, чтобы чрезмерно не усложнять процесс анализа и исследования полученной модели.

Другим принципом построения моделей сложных систем является принцип многомодельности. Этот принцип представляет собой утверждение о том, что никакая единственная модель не может с достаточной степенью адекватности описывать различные аспекты сложной системы. Применительно к методологии ООП это означает, что достаточно полная модель сложной системы допускает некоторое число взаимосвязанных представлений (views), каждое из которых адекватно отражает некоторый аспект поведения или структуры системы. При этом наиболее общими представлениями сложной системы принято считать статическое и динамическое представления, которые в свою очередь могут подразделяться на другие более частные представления. Феномен сложной системы как раз и состоит в том, что никакое ее единственное представление не является достаточным для адекватного выражения всех особенностей моделируемой системы.

Еще одним принципом  прикладного системного анализа  является принцип иерархического построения моделей сложных систем. Этот принцип  предписывает рассматривать процесс  построения модели на разных уровнях  абстрагирования или детализации  в рамках фиксированных представлений. При этом исходная или первоначальная модель сложной системы имеет наиболее общее представление (метапредставление). Такая модель строится на начальном этапе проектирования и может не содержать многих деталей и аспектов моделируемой системы.

Главными в разработке UML были следующие цели:

  • предоставить пользователям готовый к использованию выразительный язык визуального моделирования, позволяющий разрабатывать осмысленные модели и обмениваться ими;
  • предусмотреть механизмы расширяемости и специализации для расширения базовых концепций;
  • обеспечить независимость от конкретных языков программирования и процессов разработки;
  • обеспечить формальную основу для понимания этого языка моделирования (язык должен быть одновременно точным и доступным для понимания, без лишнего формализма);
  • стимулировать рост рынка объектно-ориентированных инструментальных средств;
  • интегрировать лучший практический опыт.

UML содержит стандартный  набор диаграмм и нотаций самых  разнообразных видов.

Диаграмма в UML – это графическое представление набора элементов, изображаемое чаще всего в виде связанного графа с вершинами (сущностями) и ребрами (отношениями). Диаграммы рисуют для визуализации системы с разных точек зрения.

Диаграмма – в некотором смысле одна из проекций системы. Как правило, за исключением наиболее тривиальных случаев, диаграммы дают свернутое представление элементов, из которых составлена система. Один и тот же элемент может присутствовать во всех диаграммах, или только в нескольких (самый распространенный вариант), или не присутствовать ни в одной (очень редко).

Теоретически диаграммы  могут содержать любые комбинации сущностей и отношений. На практике, однако, применяется сравнительно небольшое  количество типовых комбинаций, соответствующих  пяти наиболее употребительным видам, которые составляют архитектуру программной системы.

В UML выделяют следующие типы диаграмм:

  • диаграммы вариантов использования (usecase diagrams) – для моделирования бизнес-процессов организации (требований к системе);
  • диаграммы классов (class diagrams) – для моделирования статической структуры классов системы и связей между ними. На таких диаграммах показывают классы, интерфейсы, объекты и кооперации, а также их отношения. При моделировании объектно-ориентированных систем этот тип диаграмм используют чаще всего. Диаграммы классов соответствуют статическому виду системы с точки зрения проектирования;
  • диаграммы поведения системы (behavior diagrams);
  • диаграммы взаимодействия (interaction diagrams) – для моделирования процесса обмена сообщениями между объектами. Существуют два вида диаграмм взаимодействия: диаграммы последовательности (sequence diagrams) и кооперативные диаграммы (collaboration diagrams). На диаграммах взаимодействия представлены связи между объектами; показаны, в частности, сообщения, которыми объекты могут обмениваться. Диаграммы взаимодействия относятся к динамическому виду системы. При этом диаграммы последовательности отражают временную упорядоченность сообщений, а диаграммы кооперации – структурную организацию обменивающихся сообщениями объектов. Эти диаграммы являются изоморфными, то есть могут быть преобразованы друг в друга;
  • диаграммы состояний (statechart diagrams) – для моделирования поведения объектов системы при переходе из одного состояния в другое. На них представлен автомат, включающий в себя состояния, переходы, события и виды действий. Диаграммы состояний относятся к динамическому виду системы; особенно они важны при моделировании поведения интерфейса, класса или кооперации. Они акцентируют внимание на поведении объекта, зависящем от последовательности событий, что очень полезно для моделирования реактивных систем;
  • диаграммы деятельностей (activity diagrams) – для моделирования поведения системы в рамках различных вариантов использования или моделирования деятельностей. Это частный случай диаграммы состояний; на ней представлены переходы потока управления от одной деятельности к другой внутри системы. Диаграммы деятельности относятся к динамическому виду системы; они наиболее важны при моделировании ее функционирования и отражают поток управления между объектами;
  • диаграммы реализации (implementation diagrams): диаграммы компонентов (component diagrams) – для моделирования иерархии компонентов (подсистем) системы; диаграммы размещения (deployment diagrams) – для моделирования физической архитектуры системы. На диаграмме компонентов представлена организация совокупности компонентов и существующие между ними зависимости. Диаграммы компонентов относятся к статическому виду системы с точки зрения реализации. Они могут быть соотнесены с диаграммами классов, так как компонент обычно отображается на один или несколько классов, интерфейсов или коопераций.

 

5.4 Язык моделирования DYNAMO

 

Языки имитационного  моделирования непрерывных систем предназначены для моделирования динамических объектов с непрерывным фазовым пространством и непрерывным временем. Как правило, такие объекты описываются с помощью систем дифференциальных (интегро-дифференциальных) уравнений. Системы уравнений могут быть детерминированными или стохастическими, причем в последнем случае в имитационную систему встраиваются средства статистического моделирования и обработки. Классическим языком первого типа является язык DYNAMO, разработанный Дж. Форрестером.

Особенности языка DYNAMO:

  • легкий переход от модели, построенной в виде системы дифференциальных уравнений в форме Коши, к модели на языке DYNAMO;
  • возможность реализации на языке DYNAMO широкого спектра имитационных моделей динамических систем;
  • возможность работы с языком пользователю, не владеющему навыками программирования, а также не обладающему глубокими познаниями в математике (точнее, в теории дифференциальных уравнений);
  • достаточная популярность данного языка, а также наличие разработанных и проанализированных моделей на этом языке, что может обеспечить быструю отладку создаваемой системы;
  • наличие описания языка DYNAMO, его грамматических конструкций, а также функций, применяемых в языке.

При использовании языка DYNAMO исследование начинается с построения концептуальной диаграммы. После этого строится диаграмма потоков, в которой происходит конкретизация концептуальной модели, производится классификация переменных и связей между ними. Диаграмма потоков оказывает помощь при переходе от концептуальной диаграммы к программе на языке DYNAMO.

Переменные языка DYNAMO разбиваются на четыре типа:

  • уровни;
  • темпы;
  • вспомогательные переменные;
  • дополнительные переменные.

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

Скорости изменения  уровней называются темпами. С одним  уровнем может быть связано несколько  темпов, причем каждый из них приводит к уменьшению или к увеличению значения уровня. Изменение уровня определяется только связанными с ним темпами, сами же темпы могут зависеть от любых уровней, других темпов, а также вспомогательных переменных.

Вспомогательные переменные служат для описания воздействия уровней на темпы, а также на некоторые величины, интересующие исследователя.

Дополнительные переменные  служат для описания величин, которые  интересуют исследователя, но не являются ни уровнями, ни темпами, ни вспомогательными переменными.

Программа на языке DYNAMO –  совокупность уравнений, описывающих взаимную зависимость переменных. Для каждого из видов переменных уравнение имеет специальный вид. Для уровней оно имеет следующую форму:

 

L K.K = K.J+(DT)(I.JK)

 

Это уравнение означает, что величина  K в момент  K равна значению величины в момент  J, предшествующий моменту K, сложенному с изменениями, которые внес в нее поток, управляемый величиной  I. Здесь момент  J соответствует моменту  t в математической модели, момент  K – моменту  t+1.

Поскольку величина I является потоком, она связана с двумя  моментами времени J и K, и показывает, что под ней имеется в виду величина потока между моментами  J и  K (т.е. между моментами t и t+1).

Уравнения для темпов имеют следующий характерный вид:

 

R I.JK = (S1.J)(Y.J)

 

Здесь две переменные в скобках означают умножение.

Кроме того, встречаются уравнения типа A - для вспомогательных переменных, типа C – для постоянных, типа N – для начальных условий, типа T – для таблиц.

В программе также  задаются три особые переменные: постоянная DT – шаг моделирования, постоянная LENGTH – период моделирования и переменная  TIME, которая является текущим системным временем и для нее необходимо задать начальное значение.  

Заключение

 

Стремительное развитие компьютерного моделирования оказывает существенное влияние на все сферы жизнедеятельности человека, во многом упрощая и улучшая его жизненные условия. В мире информационных технологий имитационное моделирование переживает второе рождение. Интерес к этому виду компьютерного моделирования оживился в связи с существенным технологическим развитием систем моделирования, которые на сегодняшний день являются мощным аналитическим средством, вобравшим в себя весь арсенал новейших информационных технологий, включая развитые графические оболочки для целей конструирования моделей и интерпретации выходных результатов моделирования, мультимедийные средства и видео, поддерживающие анимацию в реальном масштабе времени, объектно-ориентированное программирование, Internet – решения и др. Модели системной динамики применяются совместно с дифференциальными уравнениями балансового типа, а также в сочетании с принципами и методами логистики, основанными на оптимизации, управлении, интеграции потоков в сложных системах. Перспективно применение компьютерного моделирования в сочетании с другими методами принятия решений, интеллектуальными технологиями, экспертными процедурами, реализация имитационно-оптимизационных вычислительных процедур на основе компенсационных подходов.

Информация о работе Имитационное моднлирование