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

Автор: Пользователь скрыл имя, 15 Мая 2013 в 22:35, курсовая работа

Описание работы

Для данной задачи простым и удобным средством моделирования является язык GPSS Wоrld, позволяющий проанализировать результаты в виде отчетов.
В процессе курсового проектирования рассматриваются следующие вопросы:
- понятие моделирования;
- основные виды моделирования;
- процесс моделирования

Работа содержит 1 файл

ОТЧЕТ.docx

— 579.38 Кб (Скачать)

lim P1(t, Dt)/Dt=l(t)*(1/един.вр.).

Если этот предел существует, то он называется интенсивностью (плотностью) ОПС. Для стандартного ПС l(t)=l=const.

Применительно к элементарному  каналу обслуживания ki можно считать что поток заявок wiÎW, т.е. интервалы времени между моментами появления заявок на входе ki образуют подмножество неуправляемых переменных, а поток обслуживания uiÎU, т.е. интервалы времени между началом и окончанием обслуживания заявки образуют подмножество управляемых переменных.

Заявки, обслуженные каналом  ki и заявки, покинувшие прибор Пi по различным причинам не обслуженными, образуют выходной поток yiÎY.

Процесс функционирования прибора  обслуживания Пi можно представить как процесс изменения состояний его элементов во времени Zi(t). Переход в новое состояние для Пi означает изменение кол-ва заявок, которые в нём находятся (в канале ki и накопителе Hi). Т.о. вектор состояний для Пi имеет вид : , где - состояния накопителя, ( =0 - накопитель пуст, =1- в накопителе одна заявка…, = - накопитель занят полностью; - состояние канала ki ( =0 - канал свободен, =1 канал занят).

Q-схемы реальных объектов образуются композицией многих элементарных приборов обслуживания Пi. Если ki различных приборов обслуживания соединены параллельно, то имеет место многоканальное обслуживание (многоканальная Q-схема), а если приборы Пi и их параллельные композиции соединены последовательно, то имеет место многофазное обслуживание (многофазная Q-схема).

Т.о. для задания Q-схемы необходимо оператор сопряжения R, отражающий взаимосвязь элементов структуры.

Связи в Q-схеме изображают в виде стрелок (линий потока, отражающих направление движения заявок). Различают разомкнутые и замкнутые Q-схемы. В разомкнутой выходной поток не может снова поступить на какой-либо элемент, т.е. обратная связь отсутствует.

Собственными (внутренними) параметрами Q-схемы будут являться кол-во фаз LФ, количество каналов в каждой фазе, Lkj, j=1… LФ, количество накопителей каждой фазы Lkj, k=1… LФ, ёмкость i-ого накопителя LiH.

Для задания Q-схемы также необходимо описать алгоритмы её функционирования, которые определяют правила поведения заявок в различных неоднозначных ситуациях.

Необходимо также знать  набор правил, по которым заявки покидают Нi и ki: для Нi – либо правила переполнения, либо правила ухода, связанные с истечением времени ожидания заявки в Нi; для ki – правила выбора маршрутов или направлений ухода. Кроме того, для заявок необходимо задать правила, по которым они остаются в канале ki, т.е. правила блокировок канала. При этом различают блокировки ki по выходу и по входу. Такие блокировки отражают наличие управляющих связей в Q-схеме, регулирующих поток заявок в зависимости от состояний Q-схемы. Набор возможных алгоритмов поведения заявок в Q-схеме можно представить в виде некоторого оператора алгоритмов поведения заявок А.

Процесс имитации развивался с использованием управляющих последовательностей, определяемых по функциям распределения  вероятностей исходных данных путём  проведения случайных испытаний. В  качестве управляющих последовательностей  использовались в примере последовательности значений периодов следования заявок по каждому i-ому потоку {ti} и длительности обслуживания заявок i-ого потока устройством {Tik}. Моменты наступления будущих событий определялись по простым рекуррентным соотношениям. Эта особенность даёт возможность построить простой циклический алгоритм моделирования, который сводится к следующим действиям:

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

При моделировании Q-схем следует адекватно учитывать как связи, отражающие движения заявок (сплошные линии) так и управляющие связи (пунктирные линии).

Фрагмент Q-схемы (Рисунок 1.3.):

Рисунок 1.3 - Фрагмент Q-схемы

Примерами управляющих связей являются различные блокировки обслуживающих  каналов (по входу и по выходу): "клапаны" изображены в виде треугольников, а  управляющие связи пунктирными  линиями. Блокировка канала по входу  означает, что этот канал отключается  от входящего потока заявок, а блокировка канала по выходу указывает, что заявка обслуженная блокированным каналом, остаётся в этом канале до момента снятия блокировки. В этом случае, если перед накопителем нет "клапана", то при его переполнении будут иметь место потери заявок.

Моделирующий алгоритм должен отвечать следующим требованиям:

- обладать универсальностью относительно структуры, алгоритмов функционирования и параметров системы S;

- обеспечивать одновременную и независимую работу системы S;

- укладываться в приемлемые затраты ресурсов ЭВМ. (памяти, времени расчёта для реализации машинного эксперимента);

- проводить разбиение на достаточно автономные логические части (блоки);

- гарантировать выполнение рекуррентного правила расчётов;

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

 

 

1.6 Выбор языка программирования

 

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

На персональных компьютерах (ПК) типа IBM/PC язык GPSS реализован в рамках пакета прикладных программ GPSS/World. Основной модуль пакета представляет собой интегрированную среду, включающую помимо транслятора со входного языка средства ввода и редактирования текста модели, ее отладки и наблюдения за процессом моделирования, графические средства отображения атрибутов модели, а также средства накопления результатов моделирования в базе данных и их статистической обработки. Кроме основного модуля в состав пакета входит модуль создания стандартного отчета GPSS/ World, а также ряд дополнительных модулей и файлов.

Таким образом,  в данном курсовом проекте был использован язык имитационного моделирования GPSS, так как:

- система GPSS свободно-распространяемая, поэтому легко масштабируется на большое количество студентов;

- для языка  GPSS существует большое количество  книг и форумов на русском  языке;

- язык очень  прост в изучении;

- компактные  программы обеспечивают лучшее  документирование;

- операторы в GPSS короткие и понятные, ниже описаны операторы использовавшиеся в программе.

 

 

1.7 Основные правила и оператора языка GPSS

 

Для описания имитационной модели на языке GPSS полезно представить ее в виде схемы, на которой отображаются элементы СМО - устройства, накопители, узлы и источники . Описание на языке GPSS есть совокупность операторов (блоков), характеризующих процессы обработки заявок. Имеются операторы и для отображения возникновения заявок, задержки их в ОА, занятия памяти, выхода из СМО, изменения параметров заявок (напрмер, приоритетов), вывода на печать накопленной информации, характеризующей загрузку устройств, заполненность очередей и т.п.

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

Пути продвижения заявок между  ОА отображаются последовательностью  операторов в описании модели на языке GPSS  специальными операторами передачи управления (перехода). Для моделирования используется событийный метод. Соблюдение правильной временной последовательности имитации событий в СМО обеспечивается интерпретатором GPSSPC - программной системой, реализующий алгоритмы имитационного моделирования.

 

 

1.7.1 Структура операторов GPPS

 

В записи оператора выделяют три  части: метку, название, поле переменных.

Пример оператора:

110  L1    GENERATE     30,5                     Первый сегмент модели  
      2....6.8.................18 ..19.............................................................70  
    <метка><название>   <поле переменных>                <комментарии>    

 В поле переменных выделяют  подполя, разделяемые при записи запятыми и служащие для указания чисел, стандартных числовых атрибутов (СЧА), символов, обозначающих метки, идентификаторов, указателей разновидностей операторов и т.п. Подполя могут быть пустыми. Возможна запись комментария после последнего непустого поля через пробел.  
    Стандартные числовые атрибуты служат для сокращенного указания различных величин, фигурирующих в модели.  
     Примеры СЧА: К126 - константа, равная 126; V2 - переменная N 2; Q4 - длина очереди N 4; X5 - хранимая величина N 5; FN7 - функция N 7; P4 - значение параметра N 4 транзакта; *6 - содержимое параметра  N 6 транзакта; S*3 (или FN*3) - память (или функция), определенная в параметре  N 3 транзакта.

1.7.2 Основные операторы  языка GPSS

 

 Основные операторы  языка  GPSS  приведены в виде примеров с конкретными значениями подполей в поле переменных.

GENERATE   12,4,50,5,1  -  генерация транзактов, интервалы времени между появлениями транзактов распределены равномерно в диапазоне [12-4, 12+4], первый транзакт появится с задержкой в 50 единиц модельного времени, всего будет создано 5 транзактов, приоритет транзактов равен единице.

GENERATE   12,4,50,,1    -  то же, но количество  генерируемых транзактов неограничено.

GENERATE   6, FN$FFF,50,5,1  -  то же, но интервал времени между появлениями транзактов есть целая часть произведения числа 6 на значение фунции FFF.

FNK FUNCTION RN1,C4 0,0/0.1,0.8/0.5,1.6/1.0,1.9 - описание функции FNK, ее аргументом является случайная величина (на это указывает значение RN1), равномерно распределенная в диапазоне [0,1], функция является непрерывной числовой (указатель С), заданной таблично четырьмя точками: (0;0), (0.1; 0.8), (0.5, 1.6), (1.0; 1.9).

FNK FUNCTION*2,D4 0,12/1,9/2,8/3,6  - то же, но аргументом является значение второго параметра транзакта, для которого вычисляется значение дискретной величины (D)  числовой функции FNK, заданной таблично четырьмя узловыми точками. Это текущее значение округляется до ближайшего большего значения аргумента в узловой точке.

SEIZE PLOT   - занятие устройства PLOT приходящим на его вход транзактом; если устройство занято, то транзакт задерживается в очереди к этому устройству.

RELEASE PLOT   - освобождение устройства PLOT обслуженным транзактом.

ENTER MEM,12 - занятие транзактом 12 единиц емкости в накопителе  MEM.

LEAVE    MEM,*2 - освобождение k единиц памяти в накопителе MEM, гдк  k - значение 2-го параметра транзакта.

STR STORAGE    4096 - описание накопителя STR емкостью 4096 единиц.

TERMINATE  3 - удаление транзакта из системы, при этом содержимое итогового счетчика уменьшается на 3 единицы, моделирование заканчивается, если содержимое счетчика станет равным или меньше нуля.

ADVANCE A,B  - задержка транзакта на время, определенное содержимым полей A и B, смысл величин, записываемых в этих подполях , такой же, как и в операторе GENERATE.

SPLIT 3,LLL,6 - копирование транзактов, в данном случае создаются три копии исходного транзакта, исходный транзакт направляется в следующий по порядку блок, а созданные копии - в блок с меткой LLL, при этом параметр 6 основного транзакта увеличивается на единицу, а транзактов - копий - на 2, 3, 4 соответственно.

ASSEMBLE    5 - объединение транзактов, первый из вошедших в блок транзактов продолжит движение в системе после того, как в блок придут еще четыре транзакта.

ASSIGN     2,NAP  - изменение параметров транзактов, в данном случае второй параметр транзакта получит значение  NAP.

ASSIGN     3+,V4  - изменится значение третьего параметра транзакта - к нему прибавится значение V4.

TRANSFER    ,MET  - безусловная передача управления оператору с меткой (номером) MET.

TRANSFER    BOTH,LAB1,UNN - переход к оператору с меткой LAB1, если он невозможен, то к оператору с меткой UNN , если и он невозможен, то транзакт задерживается до следующего момента дискретного модельного времени, в который повторяются указанные попытки перехода.

TRANSFER    .4,AAA,LAB - транзакт с вероятностью 0.4 переходит к оператору с меткой LAB и с вероятностью 0.6 к оператору с меткой AAA.

TRANSFER    PICK,STK7,STK21  - равновероятный переход к операторам с номерами STK7, STK7+1, STK7+2, . . . , STK21.

TRANSFER    FN,AAA,5  - переход к оператору, метка которого равна сумме значения функции AAA и числа 5.

TRANSFER    P,4,41 - переход к оператору, метка которого равна сумме значения парметра N 4 транзакта и числа 41.

Информация о работе Выбор языка программирования