русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Моделирующий алгоритм


Дата добавления: 2013-12-23; просмотров: 1253; Нарушение авторских прав


Для расположения событий в хронологическом порядке необходимо вести запись[2] событий, подлежащих последующей обработке. Это осуществляется путем фиксирования моментов наступления будущих событий. Сравнение этих моментов определяет затем выбор одного из событий для обработки. События выполняются в упорядоченной по времени последовательности, при этом имитационное время продвигается от одного события к другому.

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

Уточним некоторые термины. В процессе имитации объекты чередуют занятие делом с бездействием или ожиданием в очереди, и наоборот. Когда объекты заняты, говорят, что они связаны активностью. События, которые определяют начало активностей, часто зависят от некоторых условий (например, от доступности ресурса). Это условные (conditional, contingent) события. Назначенные (bound, scheduled, occurrence-predictable) события, определяющие конец активностей, безусловно, расписаны к выполнению в соответствующие моменты времени. Диаграммы активностей показывают потоки или жизненные циклы объектов. Язык проектирования программ (псевдокод) используется для записи алгоритмов.

Рассмотрим псевдокод управляющей программы. Подход, ориентированный на активности, по существу, состоит из трех этапов:

a: <установить значение текущего имитационного

времени равным моменту наступления

следующего назначенного события>;

b: <для всех назначенных событий, происходящих

в это время>

<извлечь первый объект из календаря>;



<обработать событие>;

c: <сканировать условия для каждого действия>.

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

В моделях, ориентированных на описание процессов, подпрограммы кодируются для каждого процесса и должен использоваться свой вариант управляющей программы. Псевдокод, представленный ниже, основывается на управляющей программе, заложенной в gpss. Здесь объект всегда находится либо в календаре, либо в цепи приостановленных процессов. Сканирование условных событий заменено сканированием цепи приостановленных процессов:

a: <установить значение текущего имитационного

времени равным моменту наступления

следующего события>;

b: <для всех событий, происходящих в это время>

<извлечь первый объект из календаря>;



<активировать соответствующий процесс>;

if <процесс завершен>

then <избавиться от объекта>

else

if <объект вне календаря> then

<поместить его в конец

цепи приостановленных процессов>;

c: repeat

for <каждого объекта в цепи>

<активировать соответствующий процесс>;

if <объект продвинут> or <в календаре>

then <извлечь его из цепи>;

if <процесс завершен>

then <избавиться от объекта>

else

if <объект вне календаря> and

<продвинут>

then <поместить его в конец цепи

приостановленных процессов>

until <цепь сканирована> and

<все процессы активированы>.

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

Такова в общих чертах схема имитации дискретно-событийных моделей.

Можно, таким образом, сделать вывод, что для разработки программы дискретно-событийной имитационной модели необходимо написать управляющую программу, подпрограмму инициализации[3], а также сами подпрограммы событий для описания изменений, происходящих в модели в моменты наступления этих событий. Необходимо также наличие в моделях механизмов обработки очередей, сбора статистики и выдачи отчетов, генерации псевдослучайных чисел.



<== предыдущая лекция | следующая лекция ==>
Способы имитации | Принципы моделирования случайных элементов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.