Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
X-Men / Курсовая ТОПС.doc
Скачиваний:
37
Добавлен:
30.04.2013
Размер:
454.14 Кб
Скачать

6. Метод математического моделирования

Для расчёта методом статистического моделирования необходимо многократно проанализировать свободные платформы от начала системы через все узлы до выхода. Чтобы это сделать необходимо, ответить на вопрос, при подходе свободной платформы к узлу она будет загруженной или останется свободной. Ответ можно получить с помощью разыгрывания случайной величины. Данный алгоритм является универсальным, что позволяет использовать его для двух случаев ПЗС и для ПЗС.

k

ПЗ=  ПС

l

где k и l – целые числа. В данном примере случайная величина является дискретной, и описывается ансамблем событий.

1 2 … 4

X =

P1 P1+ P2 … 1

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

Стандартная случайная величина – это случайная непрерывная величина, равномерно распределённая на интервале (0; 1). Также значения стандартной случайной величины можно взять из специальной таблицы, которая приведена в литературе по статистическому моделированию. При описании случайной величины X имеем всего четыре значения. «1» - это такой случай, когда значение от датчика случайных чисел попадает в отрезок [0; P1]. «2» - это такой случай, когда значение от датчика случайных чисел попадает в отрезок [P1+P2; P2+P3]. Соответственно принимаем, что «1» тогда когда груз поступил в адрес первой сортировочной линии, 2 когда груз поступил в адрес второй и т.д., относительно каждой конкретной сортировочной линии.

1 2 3 4

0 Рj 1

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

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

В зависимости от величины повторов работы системы I можно получить большую или меньшую ошибку. Допустимой считается ошибка 4% (разница между аналитическим методом и методом математического моделирования).

Если при расчёте произошло превышение допустимой ошибки, то необходимо увеличить величину повторов работы системы.

Для того чтобы составить программу необходимо описание алгоритма работы программы.

7. Описание алгоритма работы системы по методу математического моделирования

Блок 1:

Ввод начальных данных (L, m, h, r, Pz).

Блок 2:

Изменение параметра L от 3 до 6

Блок 3:

Изменение ёмкости накопителя М от 2 до 4

Блок 4:

Обнуление предыдущей суммы свободных платформ SS и повторов SP

Блок 5:

Число тактов загрузочных конвейеров

Блок 6:

Переход от одной загрузочной линии к другой

Блок 7:

Разыгрывание случайной величины

Блок 8,9,10,11

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

Блок 12:

Условие того, что в узле на который пришел груз сортировочная платформа пуста

Блок 13:

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

Блок 14;

Если сортировочная платформа пуста, то загружаем на неё груз, то есть, делаем значение данного члена матрицы сортировочных платформ равным 1

Блок 15:

Если нет, то увеличиваем число грузов в накопителе на 1

Блок 16:

Если накопитель полон, то число повторов увеличивается на 1

Блок 17:

Осуществляем такты сортировочного конвейера

Блок 18,19:

Осуществляем переход от одного узла к другому

Блоки 20:

Проверяем состояние сортировочной платформы в данном узле

Блок 21,22:

Если платформа пустая, и при этом в накопителе есть грузы, то в накопителе становится на 1 груз меньше, а платформа становится загруженной

Блок 23

Осуществляем переход от одной сортировочной линии к другой

Блок 24

Проверяем состояние сортировочных платформ в последних узлах сортировочных линий.

Блок 25

Если платформа пуста, то число свободных платформ становится на одну больше.

Блок 26,27

Осуществляем сдвиг платворм сортировочного конвейера на одну позицию вправо.

Блок 28

Делаем платформы в первых узлах сортировочных линий пустыми

Блок 29

Получаем интенсивности свободных платформ и повторов

Блок 30

Вывод интенсивности свободных платформ и повторов

SS=0, SP=0

Rn=random

Po=P[1]

Po=Po+P[i+2]

a=i+1

Pl[a,j]=1

Na[a,j]= Na[a,j]+1

SP=SP+1

Pl[i,j]=1

Na[i,j]= Na[i,j]-1

SS=SS+1

Pl[i,r+2-j]=Pl[i,r+1-j]

Pl[i,1]=0

SS=SS/10000

SP=SP/10000

ВЫВОД

SS,SP

programp1; -название программы

varg,z,SP,SS,Po,Pz,N,la,mu,Rn:real; -задаём переменные типаreal

i,j,l,m,a,b,t,k,r,h,d:integer; - задаём переменные целочисленного

диапазона

P:array [1..4] of real; -задаём массивы

PC:array [1..5] of real;

Pp:array [1..5] of real;

Pl:array [1..4,1..5] of integer; -массив состояний платформ

Na:array[1..4,1..5]ofinteger; -массив состояний накопителей

Begin-начало программы

P[1]:=0.5; -исходные данные

P[2]:=0.25;

P[3]:=0.125;

P[4]:=0.125;

h:=4;

r:=5;

forl:=3to6do-образуем цикл меняяLот 3 до 6

form:=2to4dobegin-образуем цикл меняя М от 2 до 4

SS:=0; -обнуляем число свободных платформ

SP:=0; -обнуляем число повторов

Задаём число тактов загрузочного конвейера

Fort:=1to10000do-задаём время процесса 10000 часов

Ford:=1to241do-задаём производительность

загрузочного конвейера

begin-начинаем обработку действия за 1 такт

Forj:=1tordo-осуществляем переход от одной

загрузочной линии к другой

begin

Rn:=random; -используем генератор псевдослучайных

чисел

i:=1; -присваиваем счётчику сортировочных

линий значение 1

Po:=P[1];

IfRn>PoThen-Сравниваем значениеRnс значением

BeginPoкоторое для каждой сортировочной

Po:=Po+P[i+1]; линии равно сумме вероятностей

i:=i+1; попадания груза на предыдущие линии

end; Таким образом выясняем куда идет груз

Далее узнаём что происходит с грузом в узле

If Pl[i,j]=0 Then Pl[i,j]:=1 else If Na[i,j]=m Then SP:=SP+1 else Na[i,j]:=Na[i,j]+1;

-если к узлу i,jподходит пустая

платформа то она заполняется, если нет,

то проверяем полный ли накопитель,

если да то число повторов

увеличивается на 1, если нет то в

накопителе прибавляется груз

end;

Производим процессы протекающие в узлах при движении сортировочных линий

For k:=1 to l do

Begin

Производим перегрузку грузов из накопителей на сортировочные платформы

For i:=1 to h do

For j:=1 to r do

IfPl[i,j]=0thenifNa[i,j]>0Then-на всех узлах проверяем состояние

сортировочных платформ если они

пусты и в накопителе есть грузы, то

begin

Pl[i,j]:=1; -платформа загружается

Na[i,j]:=Na[i,j]-1; -а в накопителе становится на 1 груз меньше

end;

Осуществляем сдвиг платформ сортировочного конвейера на 1 позицию

For i:=1 to h do

begin

IfPl[i,r]=0ThenSS:=SS+1; -если платформа в последнем узле была

пуста, то число свободных платформ

становится на 1 больше

Forj:=2tordoPl[i,r+2-j]:=Pl[i,r+1-j]; -сдвигаем платформы на 1 позицию

начиная с конца

Pl[i,1]:=0; -платформы в первом узле пусты

end;

end;

end;

SS:=SS/(10000); -получаем интенсивность свободных

платформ

SP:=SP/10000; -получаем интенсивность повторов

Выводим результат

Writeln('pril=',l,'im=',m);

Writeln ('SS=',SS:8:3);

Writeln ('SP=',SP:8:3);

end;

end. –конец.

Соседние файлы в папке X-Men