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

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

Блок 1:

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

Блок 2:

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

Блок 3:

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

Блок 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

Po=Po+P

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

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

var SP,SS,P,Po,Rn:real; -задаём переменные типа real

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

диапазона

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

Na:array [1..14,1..2] of integer; -массив состояний накопителей

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

h:=14; -исходные данные

r:=2;

P:=1/r;

for l:=3 to 5 do -образуем цикл меняя L от 3 до 5

for m:=2 to 5 do begin -образуем цикл меняя М от 2 до 5

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

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

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

For t:=1 to 1000 do -задаём время процесса 1000 часов

For d:=1 to 1300 do -задаём производительность

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

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

For j:=1 to r do -осуществляем переход от одной

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

begin

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

чисел

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

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

Po:=P;

If Rn>Po Then -Сравниваем значение Rn с значением

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

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

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

If Pl[i,j]=0 then if Na[i,j]>0 Then -на всех узлах проверяем состояние

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

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

begin

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

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

end;

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

For i:=1 to h do

begin

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

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

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

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

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

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

end;

end;

end;

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

платформ

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

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

Writeln ('pri l=',l,' m=',m);

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

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

end;

end. –конец.

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