Файл: Вдовин Суркова Валентинов Теория систем и системный анализ.pdf

Добавлен: 12.02.2019

Просмотров: 22764

Скачиваний: 342

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

534

535

снимаются отмеченные выше проблемы, возникающие при руч-
ном кодировании модели в виде Pilgrim-файла:

•автоматическая генерация программного кода позволяет 

пользователю не задумываться о структуре и синтаксисе про-
граммы, уделяя все внимание структуре и параметрам самой 
модели и ее узлов;

•генерация функций описания узлов конструктором исклю-

чает ошибки, связанные с неправильной последовательностью 
указания позиционных параметров или пропуском некоторых 
из них;

•анализируя модель, конструктор не позволяет пользовате-

лю выполнять заведомо неверные действия, а также предупре-
ждает о возможных ошибках;

•поддержка конструктором множества плоскостей обеспе-

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

II. Разработка имитационной модели экономического про-

цесса с помощью графического конструктора Pilgrim-5.

Пример. Имеется предприятие, принимающее заказы на 

изготовление продукции ти пов А и В. Заказы на продукцию типа 
А поступают в среднем раз в 30 дней, а на продукцию типа В — 
раз в 5 дней. Для производства продукции типа А необходимо 
10 дней, а для продукции типа В — 2 дня. Одновременно может 
идти производство только по одному заказу. При этом заказы 
на продукцию А являются первоочередны ми. Все сведения о 
выполнении заказов типов А и В фиксируются в отдельных до-
кументах. Модель строится для исследования очереди задержек 
заказов.

Порядок выполнения.
1. Создание графа модели.
1. Рассмотрим в качестве автономных процессов:

•производство и фиксацию выполненных заказов;

•формирование заказов и очередь заказов на производство.
2. Определим единицу модельного времени для последую-

щего формирования параметров модели. Очевидно, в данном 
примере за единицу времени удобно взять один рабочий день.

3. Запустим конструктор на выполнение.
4. В основном меню выберем “Файл” -> “Создать”. В резуль-

тате в рабочей области экрана появится пустое окно с именем 
“Плоскость 1”. Это пустая корневая плоскость.

5. Из панели узлов в левой части экрана перетащим в пло-

скость построения узлы типов parent, serv. В панели узлов также 
найдем узел типа ag и щелкнем мышью по узлу ag. Надпись на 
панели сменится на term. Добавим в плоскость построения два 
узла типа term. Расположим узлы в рабочей области так, как 
показано на рис. 3.49.

6. Зададим имена узлов. Для этого нужно дважды щелкнуть 

мышью по каждому из узлов и в появившемся диалоговом окне 
в поле “Имя” вместо находящегося там “Object...” ввести: “Про-
изводство” для узла 102; “Отчет А” для узла 103, “Отчет В” для 
узла 104. Узел 101 будет содержать подуровень формирования 
заказов; он будет рассмотрен позже.

7. Определим маршруты транзактов. Для этого захватим 

изображение круга с перекрестием на панели узлов и перета-
щим на узел “Производство”. После отпускания кнопки мыши 
за курсором потя нется стрелка. Далее необходимо щелкнуть 
мышью по узлу “Отчет А”, в результате чего появится стрелка, 
символизирующая маршрут прохождения транзактов из узла 
“Производство” в “Отчет А”. 

Предостережение. Необходимо сначала указывать узел-

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


background image

536

537

Рис. 3.49. Окно создания узлов и графа корневой плоскости

Рис. 3.50. Окна графа плоскости 10 и определения параметров слоя


background image

536

537

Рис. 3.49. Окно создания узлов и графа корневой плоскости

Рис. 3.50. Окна графа плоскости 10 и определения параметров слоя


background image

538

539

8. Создадим плоскость формирования заявок. Дважды щел-

кнем по узлу “Object 101”, в результате чего получим новую 
пустую плоскость 10 с именем “Object 101”. В этой плоскости 
теми же операциями, что и ранее, создадим граф, как показано 
на рис. 3.50. Останемся в этой плоскости.

9. Можно увидеть, что в информационной строке в нижней 

части экрана красным цветом отображены надписи “Вход не 
назначен” и “Выход не назначен”. В нашем случае плоскость 10 
не будет иметь входа, так как сама предназначена для генера-
ции заявок, однако выход необходимо назначить. В левой части 
экрана щелкнем по кнопке “Слой”. В диалоговом окне введем имя 
слоя “Заказы” и выход 107. Вход установим на значение “none”, 
т. е. отсутствующий. Результат приведен на рис. 3.50. После на-
жатия кнопки “ОК” одна из красных надписей в информацион-
ной строке будет заменена на “Выход: 107”. 

2. Определение глобальных переменных модели
Определим переменные модели. Очевидно, для работы мо-

жет понадобиться переменная времени обслуживания заявки. 
На левой панели щелкнем по кнопке “Переменные”. Появится 
соответствующее диалоговое окно (рис. 3.51). В нем необходимо 
ввести: имя переменной proc_time, тип переменной int. Значение 
можно не указывать, так как оно будет определяться при вы-
полнении модели в зависимости от типа продукции.

3. Определение свойств узлов.
1. Определим свойства узлов плоскости 10. Узел 105 будет 

формировать заказы типа А, узел 106 - типа В. Необходи-
мо дважды щелкнуть мышью по узлу 105, в результате чего 
появится диалого вое окно “Свойства узла”. В нем щелкнуть по 
кнопке “Определить параметры”. В результате появится окно 
определения параметров узлов типа ag (рис. 3.52). Очевидно, для 
заявок типа А значение “Приоритет” нужно указать равным 1. 
На выборе закона распределения не будем останавливаться, 
выберем его как norm — нормальное. В строке “Мат. ожидание” 
(Параметр 1) введем значение 30, а “Отклонение” (Параметр 2) 
примем равным 10. Повторим процедуру для узла 106. Но значе-
ние приоритета укажем 2, математическое ожидание примем

Рис. 3.51. 

Окно определения глобальных переменных модели


background image

538

539

8. Создадим плоскость формирования заявок. Дважды щел-

кнем по узлу “Object 101”, в результате чего получим новую 

пустую плоскость 10 с именем “Object 101”. В этой плоскости 

теми же операциями, что и ранее, создадим граф, как показано 

на рис. 3.50. Останемся в этой плоскости.

9. Можно увидеть, что в информационной строке в нижней 

части экрана красным цветом отображены надписи “Вход не 

назначен” и “Выход не назначен”. В нашем случае плоскость 10 

не будет иметь входа, так как сама предназначена для генера-

ции заявок, однако выход необходимо назначить. В левой части 

экрана щелкнем по кнопке “Слой”. В диалоговом окне введем имя

 

слоя “Заказы” и выход 107. Вход установим на значение “none”, 

т. е. отсутствующий. Результат приведен на рис. 3.50. После на-

жатия кнопки “ОК” одна из красных надписей в информацион-

ной строке будет заменена на “Выход: 107”. 

2. Определение глобальных переменных модели

Определим переменные модели. Очевидно, для работы мо-

жет понадобиться переменная времени обслуживания заявки. 

На левой панели щелкнем по кнопке “Переменные”. Появится 

соответствующее диалоговое окно (рис. 3.51). В нем необходимо 

ввести: имя переменной proc_time, тип переменной int. Значение

 

можно не указывать, так как оно будет определяться при вы-

полнении модели в зависимости от типа продукции.

3. Определение свойств узлов.

1. Определим свойства узлов плоскости 10. Узел 105 будет 

формировать заказы типа А, узел 106 - типа В. Необходи-

мо дважды щелкнуть мышью по узлу 105, в результате чего

 

появится диалого 

вое окно “Свойства узла”. В нем щелкнуть по 

кнопке “Определить параметры”. В результате появится окно 

определения параметров узлов типа ag (рис. 3.52). Очевидно, для 

заявок типа А значение “Приоритет” нужно указать равным 1. 

На выборе закона распределения не будем останавливаться,

 

выберем его как norm — нормальное. В строке “Мат. ожидание” 

(Параметр 1) введем значение 30, а “Отклонение” (Параметр 2) 

примем равным 10. Повторим процедуру для узла 106. Но значе-

ние приоритета укажем 2, математическое ожидание примем

Рис. 3.51. Окно определения глобальных переменных модели