Форум программистов, компьютерный форум, киберфорум
GPSS
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 3

Моделирование транспортного участка

09.04.2012, 21:42. Показов 1947. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, вопрос заключается в следующем - каким образом можно получить зависимость средней длины очереди от номера транзакта?

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

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

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
LQUE0   EQU 250
 
NTr5    EQU LQUE0+5
NTr10   EQU LQUE0+10
NTr15   EQU LQUE0+15
NTr20   EQU LQUE0+20
NTr25   EQU LQUE0+25
NTr50   EQU LQUE0+50
NTr75   EQU LQUE0+75
NTr100  EQU LQUE0+100
NTr200  EQU LQUE0+200
NTr500  EQU LQUE0+500
NTr1000 EQU LQUE0+1000
NTr2000 EQU LQUE0+2000
NTr5000 EQU LQUE0+5000
NTr10000    EQU LQUE0+10000
NTr20000    EQU LQUE0+20000
 
    TEST E XN1,NTr5,MET1
    SAVEVALUE SAV5,QA$QUE1  
MET1    TEST E XN1,NTr10,MET2
    SAVEVALUE SAV10,QA$QUE1
MET2    TEST E XN1,NTr15,MET3
    SAVEVALUE SAV15,QA$QUE1
MET3    TEST E XN1,NTr20,MET4
    SAVEVALUE SAV20,QA$QUE1
MET4    TEST E XN1,NTr25,MET5
    SAVEVALUE SAV25,QA$QUE1
MET5    TEST E XN1,NTr50,MET6
    SAVEVALUE SAV50,QA$QUE1
MET6    TEST E XN1,NTr75,MET7
    SAVEVALUE SAV75,QA$QUE1
MET7    TEST E XN1,NTr100,MET8
    SAVEVALUE SAV100,QA$QUE1
MET8    TEST E XN1,NTr200,MET9
    SAVEVALUE SAV200,QA$QUE1
MET9    TEST E XN1,NTr500,MET10
    SAVEVALUE SAV500,QA$QUE1
MET10   TEST E XN1,NTr1000,MET11
    SAVEVALUE SAV1000,QA$QUE1
MET11   TEST E XN1,NTr2000,MET12
    SAVEVALUE SAV2000,QA$QUE1
MET12   TEST E XN1,NTr5000,MET13
    SAVEVALUE SAV5000,QA$QUE1
MET13   TEST E XN1,NTr10000,MET14
    SAVEVALUE SAV10000,QA$QUE1
MET14   TEST E XN1,NTr20000,MET15
    SAVEVALUE SAV20000,QA$QUE1
MET15   ADVANCE 100,60  
    RELEASE UZK 
    TERMINATE
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2012, 21:42
Ответы с готовыми решениями:

Моделирование работы транспортного цеха
имеется задание Предприятие имеет транспортный цех, который обслуживает три филиала A, B и C. Грузовики перевозят изделия из A в B и...

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

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

4
Эксперт GPSS
 Аватар для SergProgC++
555 / 414 / 105
Регистрация: 02.07.2010
Сообщений: 1,729
10.04.2012, 17:35
а полное задание, а не вашими словами можно глянуть
0
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 3
10.04.2012, 18:35  [ТС]
Можно, звучит так:

Необходимо исследовать поведение очереди, которую образует транспортный поток перед сужением дороги. Среднее значение времени прохождения узкого участка Tу в нормальном режиме определяется вариантом задания. Время прохождения узкого участка распределено равномерно в диапазоне Tу ± 0,8Tу.
Средний интервал времени между транспортными средствами на трассе Tи = 1,11Tу. Интервалы между транспортными средствами на трассе распределены по экспоненциальному закону.
Модель на GPSS должна обеспечить сбор статистических данных об оче¬реди транспортных средств перед узким участком дороги.
У трассы в районе сужения могут быть три режима работы:
1. Нормальный – среднее время прохождения узкого участка равняется Tу при отсутствии на нем дополнительных заторов. Коэффициент загрузки узкого участка ρ < 1 (ρ = Tу/Tи = 0,9). Начальная длина очереди равна 0.
2. Аварийный – с образованием дополнительного затора на узком участке, при этом среднее время прохождения узкого участка удваивается и равняется 2Tу; ρ > 1 (ρ = 2Tу/Tи = 1,8).
3. Нормальный – с ликвидированным дополнительным затором на узком участке (ρ = Tу/Tи = 0,9) и с начальными условиями по длине очереди образовавшимися после аварийного режима 2.

Полный листинг программы:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
EXPON     FUNCTION RN1,C24 
    0,0/.1,.104/.2,.222/.3,.335/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38
    .8,1.6/.84,1.85/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2
    .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
 
LQUE0   EQU 250 ;Начальная длина очереди
 
; Первый сегмент программы - задание начальной длины очереди перед сужением
    GENERATE 1,0,,LQUE0;Начальная длина очереди в 4-ом параметре транзакта
    QUEUE QUE1,1
    SEIZE UZK
    DEPART QUE1,1
    ADVANCE 100,60
    RELEASE UZK
    TERMINATE
 
; Второй сегмент программы
    GENERATE 111,FN$EXPON   ;Приход транс. средства
 
    QUEUE QUE1,1    ;Присоединение к очереди перед сужением
    SEIZE UZK       ;Переход в узкое место
    DEPART QUE1,1   ;Уход из очереди
 
 
 
;Число транс. средств вошедших в сужение с учетом начальной длины очереди
NTr5    EQU LQUE0+5
NTr10   EQU LQUE0+10
NTr15   EQU LQUE0+15
NTr20   EQU LQUE0+20
NTr25   EQU LQUE0+25
NTr50   EQU LQUE0+50
NTr75   EQU LQUE0+75
NTr100  EQU LQUE0+100
NTr200  EQU LQUE0+200
NTr500  EQU LQUE0+500
NTr1000 EQU LQUE0+1000
NTr2000 EQU LQUE0+2000
NTr5000 EQU LQUE0+5000
NTr10000    EQU LQUE0+10000
NTr20000    EQU LQUE0+20000
 
    TEST E XN1,NTr5,MET1    ;В сохраняемых величинах SAVi фиксируется ;средняя длина очереди QUE1
    SAVEVALUE SAV5,QA$QUE1  ;после прохождения i транс. средств
    ;SAVEVALUE TIME5,C1 ;Можно фиксировать время вхождения i тр.ср.
MET1    TEST E XN1,NTr10,MET2
    SAVEVALUE SAV10,QA$QUE1
MET2    TEST E XN1,NTr15,MET3
    SAVEVALUE SAV15,QA$QUE1
MET3    TEST E XN1,NTr20,MET4
    SAVEVALUE SAV20,QA$QUE1
MET4    TEST E XN1,NTr25,MET5
    SAVEVALUE SAV25,QA$QUE1
MET5    TEST E XN1,NTr50,MET6
    SAVEVALUE SAV50,QA$QUE1
MET6    TEST E XN1,NTr75,MET7
    SAVEVALUE SAV75,QA$QUE1
MET7    TEST E XN1,NTr100,MET8
    SAVEVALUE SAV100,QA$QUE1
MET8    TEST E XN1,NTr200,MET9
    SAVEVALUE SAV200,QA$QUE1
MET9    TEST E XN1,NTr500,MET10
    SAVEVALUE SAV500,QA$QUE1
MET10   TEST E XN1,NTr1000,MET11
    SAVEVALUE SAV1000,QA$QUE1
MET11   TEST E XN1,NTr2000,MET12
    SAVEVALUE SAV2000,QA$QUE1
MET12   TEST E XN1,NTr5000,MET13
    SAVEVALUE SAV5000,QA$QUE1
MET13   TEST E XN1,NTr10000,MET14
    SAVEVALUE SAV10000,QA$QUE1
MET14   TEST E XN1,NTr20000,MET15
    SAVEVALUE SAV20000,QA$QUE1
 
MET15   ADVANCE 100,60  ; Проход узкого места
    RELEASE UZK ; Конец  узкого места
    TERMINATE   ; Уход из модели
 
; Третий сегмент программы
    GENERATE 1000000    ; Время моделирования 
    TERMINATE 1 ; Завершение моделирования
 
    START 1
Необходимо построить зависимости средней длины очереди для каждого режима от номера транзакта (то бишь автомобиля) в системе.

Вопрос состоит в том, как упростить код и сделать его более красивым (без кучи ячеек).
0
Эксперт GPSS
 Аватар для SergProgC++
555 / 414 / 105
Регистрация: 02.07.2010
Сообщений: 1,729
10.04.2012, 19:10
(сильно не вникал) , но думаю можно использовать матрицу в этом случае, и забивать ее

Добавлено через 1 минуту
и комментарии не помешали бы вашей логики не видно

Добавлено через 5 минут
не отнеситесь предвзято но комментарии в каждом бллоке существенно повышают понимание чужой программы
0
0 / 0 / 0
Регистрация: 09.04.2012
Сообщений: 3
10.04.2012, 20:01  [ТС]
Согласен, что код непонятен. Насчет матриц была мысль, но не получилось реализовать, поэтому решил спросить здесь помощи.

Вот подробные комментарии:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
;экспоненциальная функция распределения интервалов прихода транспортных средств
EXPON     FUNCTION RN1,C24 
    0,0/.1,.104/.2,.222/.3,.335/.4,.509/.5,.69/.6,.915/.7,1.2/.75,1.38
    .8,1.6/.84,1.85/.88,2.12/.9,2.3/.92,2.52/.94,2.81/.95,2.99/.96,3.2
    .97,3.5/.98,3.9/.99,4.6/.995,5.3/.998,6.2/.999,7/.9998,8
 
;начальная длина очереди перед узким участком дороги
LQUE0   EQU 250 
 
;в этом сегменте задаем начальную очередь автомобилей перед узким участком дороги
;при генерации транзактов используем обозначенную выше переменную LQUE0
    GENERATE 1,0,,LQUE0
    QUEUE QUE1,1
    SEIZE UZK
    DEPART QUE1,1
    ADVANCE 100,60
    RELEASE UZK
    TERMINATE
 
;перед узким участком дороги создана начальная очередь автомобилей количеством в LQUE0
 
;начинают пребывать новые автомобили по экспоненциальному закону
    GENERATE 111,FN$EXPON 
;встают в очередь 
    QUEUE QUE1,1  
;подходят к узкому месту  
    SEIZE UZK  
;покидают очередь     
    DEPART QUE1,1   
 
;здесь задание переменных для подсчета транспортных средств с учетом начальной очереди
;если начальная очередь к узкому проходу LQUE0 = 250, то NTr5 = 255
NTr5    EQU LQUE0+5
;если начальная очередь к узкому проходу LQUE0 = 250, то NTr5 = 260
NTr10   EQU LQUE0+10
;если начальная очередь к узкому проходу LQUE0 = 250, то NTr5 = 265
NTr15   EQU LQUE0+15
;и так далее
NTr20   EQU LQUE0+20
NTr25   EQU LQUE0+25
NTr50   EQU LQUE0+50
NTr75   EQU LQUE0+75
NTr100  EQU LQUE0+100
NTr200  EQU LQUE0+200
NTr500  EQU LQUE0+500
NTr1000 EQU LQUE0+1000
NTr2000 EQU LQUE0+2000
NTr5000 EQU LQUE0+5000
NTr10000    EQU LQUE0+10000
NTr20000    EQU LQUE0+20000
 
 
;далее происходит следующее: сравниваем номер транзакта (т.е. автомобилия с каждой выше описанной переменной, если она равна, то заносим в ячеяку SAVi среднюю длину очереди на данный момент
 
;например:
;если текущий номер транзакта(автомобиля) = 5    
TEST E XN1,NTr5,MET1
    ;то заносим в ячейку SAV5 текущее значение средней длины очереди 
    SAVEVALUE SAV5,QA$QUE1 
    ;если нет, то проверям следующие условия, которые расположены ниже 
MET1    TEST E XN1,NTr10,MET2
    SAVEVALUE SAV10,QA$QUE1
MET2    TEST E XN1,NTr15,MET3
    SAVEVALUE SAV15,QA$QUE1
MET3    TEST E XN1,NTr20,MET4
    SAVEVALUE SAV20,QA$QUE1
MET4    TEST E XN1,NTr25,MET5
    SAVEVALUE SAV25,QA$QUE1
MET5    TEST E XN1,NTr50,MET6
    SAVEVALUE SAV50,QA$QUE1
MET6    TEST E XN1,NTr75,MET7
    SAVEVALUE SAV75,QA$QUE1
MET7    TEST E XN1,NTr100,MET8
    SAVEVALUE SAV100,QA$QUE1
MET8    TEST E XN1,NTr200,MET9
    SAVEVALUE SAV200,QA$QUE1
MET9    TEST E XN1,NTr500,MET10
    SAVEVALUE SAV500,QA$QUE1
MET10   TEST E XN1,NTr1000,MET11
    SAVEVALUE SAV1000,QA$QUE1
MET11   TEST E XN1,NTr2000,MET12
    SAVEVALUE SAV2000,QA$QUE1
MET12   TEST E XN1,NTr5000,MET13
    SAVEVALUE SAV5000,QA$QUE1
MET13   TEST E XN1,NTr10000,MET14
    SAVEVALUE SAV10000,QA$QUE1
MET14   TEST E XN1,NTr20000,MET15
    SAVEVALUE SAV20000,QA$QUE1
 
;здесь задержка в узаком месте и его проход
MET15   ADVANCE 100,60 
    RELEASE UZK 
    TERMINATE   
 
    GENERATE 1000000    ; Время моделирования   
    TERMINATE 1 ; Завершение моделирования
 
    START 1
К слову, вот конечный график:
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2012, 20:01
Помогаю со студенческими работами здесь

Моделирование сборочного участка цеха
здраствуйте,помогите пожалуйста перевести задачу на GPSS c C++ На сборочный участок цеха через экспоненциально распределенные ин¬тервалы...

Моделирование сборочного участка цеха
Здравствуйте. Помогите пожалуйста с решением задачи. Надо курсовую сдавать, а препод мозги долбит тем что задача не правильно решена. вот...

Моделирование обрабатывающего участка цеха
Добрый день! Прошу помочь допилить код для следующей задачи: На обрабатывающий участок цеха поступают детали в среднем через 50 мин....

Моделирование работы регулировочного участка цеха
ПОМОГИТЕ ((( надежды уже нет. хотя бы что то похожее наити бы На регулировочный участок цеха поступают агрегаты через каждые 30+-10...

Имитационное моделирование экономических процессов участка цеха предприятия
Доброго времени суток! Очень нужна Ваша помощь! С такого рода задачами не сталкивалась. Буду благодарна за любую помощь. Тема:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru