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

Моделирование работы речного канала gpss

08.12.2016, 14:55. Показов 1717. Ответов 6

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

Задача:
При подходе судов к речному порту из-за географических особенностей местности используются судоходные каналы. Поток судов, прибывающих в порт, распределен в интервале (35±25) минут. Среднее время пребывания судов в порту, занятое под разгрузку/погрузку, составляет (1.5±0.5) суток. Затем суда выходят из порта через те же каналы. Среднее время прохождения судна через канал равно (1.5±0.5) часа. Определить оптимальное число судоходных каналов, если стоимость эксплуатации одного канала составляет 1000 рублей в час, а потери от простоя судна в очереди перед каналом составляет 500 рублей в час. Обеспечить безусловный приоритете для судов, выходящих из порта.

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
Potery_Sudno VARIABLE (1#30#24#60-QC$Sudno#Q$Sudno)/60#500
EXPL_Kanal VARIABLE (1#30#24#60-ST$Kanal#SC$Kanal)/60#1000
ITOG VARIABLE V$Potery_Sudno-V$EXPL_Kanal
Kanal STORAGE 1
 
          GENERATE 35,25 ;интервал прибытия судов
              TRANSFER .5,OUT ;делим суда на 2 вида, 1 на вход, 2 на выход
          TEST NE F$Kanal,0,Och_IN ;проверяем канал на наличие в нем судов
Och_IN    QUEUE Sudno ;занять очередь для входа в канал
              ENTER Kanal ;занять канал на вход
             ADVANCE 90,30 ;время необходимое судну для прохода по каналу
         DEPART Sudno ;освободить очередь для входа в канал
         LEAVE Kanal ;освободить канал на вход 
             SEIZE PORT ;занять порт
         ADVANCE 2160,720 ;Разгрузка/погрузка
         RELEASE PORT ;освободить порт 
OUT       QUEUE Sudno_Out ;занять очередь на выход
             ENTER Kanal ;занять канал на выход
             PRIORITY 1 ;
         DEPART Sudno_Out ;освободить очередь
             LEAVE Kanal ;освободить канал на выход
         SAVEVALUE 1,V$Potery_Sudno ;потери от простоя судна в очереди
         SAVEVALUE 2,V$EXPL_Kanal ;эксп. канала
         SAVEVALUE 3,V$ITOG ;?
         TERMINATE
         ;Таймер
         GENERATE 43200 ;общее время моделирования 30 дней.
         TERMINATE 1
         START 1
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.12.2016, 14:55
Ответы с готовыми решениями:

Моделирование работы аэропорта - GPSS
Самолеты прибывают для посадки в район крупного аэропорта каждые 10±5 минут. Если взлетно-посадочная полоса свободна, прибывший самолет...

Моделирование заправки в GPSS
Пусть это будет АЗС Лукойл или любая другая Но не учтено, что очереди создают не только автомобили у бензоколонок, но и водители у касс. ...

Задача GPSS моделирование минимаркета
Помогите, пожалуйста решить задачку на GPSS. Я в нем вообще не разбираюсь... Если есть на свете добрые и хорошие люди, которым не все равно...

6
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
08.12.2016, 17:53
Добрый день.

Цитата Сообщение от AleksandrGV Посмотреть сообщение
TRANSFER .5,OUT ;делим суда на 2 вида, 1 на вход, 2 на выход
Какое условие задачи воспроизводит?

Добавлено через 3 минуты
Code
1
2
3
4
ENTER Kanal ;занять канал на выход
             PRIORITY 1 ;
         DEPART Sudno_Out ;освободить очередь
             LEAVE Kanal ;освободить канал на выход
не понятен смысл занятие канала и освобождение происходит в один момент времени... не по условию
0
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 4
08.12.2016, 18:00  [ТС]
По условию нужно обеспечить безусловный приоритет для судов, выходящих из порта
поэтому я использовал
TRANSFER .5,OUT
чтобы разделить их на входящих и выходящих.


Code
1
2
3
4
ENTER KANAL ;занять канал на выход
          PRIORITY 1 ;присвоение приоритета судам выходящим из канала
      DEPART SUDNO_OUT ;освободить очередь
          LEAVE KANAL ;освободить канал на выход
А этот фрагмент использовал для присвоения приоритета судам, которые выходят.
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
08.12.2016, 18:09
Цитата Сообщение от AleksandrGV Посмотреть сообщение
Затем суда выходят из порта через те же каналы.
По сути вот это условие задачи не выполнено, вы полагаете ВСЕГДА что именно тот канал который нужен, он свободен. При большой загрузке каналов выходящий корабль вынужден ждать свой канал не смотря на то что у него приоритет, поскольку там движется корабль.Отсюда возникнут потери на ожидание канала в ИСХОДЯЩЕЙ очереди.

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

Добавлено через 1 минуту
Цитата Сообщение от AleksandrGV Посмотреть сообщение
По условию нужно обеспечить безусловный приоритет для судов, выходящих из порта
поэтому я использовал
TRANSFER .5,OUT
чтобы разделить их на входящих и выходящих.
По условию задачи нет разделения потока на 50% входящих и исходящих, поэтому transfer лишний.

Добавлено через 1 минуту
Цитата Сообщение от AleksandrGV Посмотреть сообщение
ENTER KANAL ;занять канал на выход
PRIORITY 1 ;присвоение приоритета судам выходящим из канала
DEPART SUDNO_OUT ;освободить очередь
LEAVE KANAL ;освободить канал на выход
А этот фрагмент использовал для присвоения приоритета судам, которые выходят.
По этому коду написал выше - нет задержки передвижения по каналу, приоритет не работает + не выполнено условие занятия тогоже канала что и раньше (для входа).
0
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 4
08.12.2016, 18:26  [ТС]
Code
1
2
3
4
ENTER KANAL ;занять канал на выход
          PRIORITY 1 ;присвоение приоритета судам выходящим из канала
      DEPART SUDNO_OUT ;освободить очередь
          LEAVE KANAL ;освободить канал на выход
Получается данный код в программе вообще не нужен или его нужно чем-то дополнить, например
ADVANCE 90,30 как в начале программы?
Может как-то через
ASSIGN?

А может в этом направлении лучше двигаться?

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
Zanyat   EQU 1
Svob     EQU 2
Sudno_In VARIABLE 1
Sudno_Out VARIABLE 1
EXPL VARIABLE 1#1000#720#SC$KANAL-(1#500#720#QA$Sudno_In+QX$Sudno_Out)
Kanal STORAGE 1
GENERATE 35,25 ;интервал прибытия судов
TEST E X$Kanal,F$Sudno_Out 
;1 блок
ADVANCE 2160,720 ;разгрузка/погрузка
QUEUE Sudno_In ;вход в очередь, порт ???????
ENTER Kanal ;судно получает доступ к порту ?????
DEPART Sudno_In ;выход из очереди, порт ??????
ADVANCE 90,30 ;время прохождения судном канала
LEAVE Kanal ;судно освобождает очередь на выход ???????
TERMINATE
;смоделировать работу канала
GENERATE ,,V$Sudno_Out,1,1
QUEUE Sudno_Out
ENTER Kanal
DEPART Sudno_Out
Begin1 SAVEVALUE Sudno_In,Zanyat
SAVEVALUE Sudno_Out,Svob
ADVANCE Svob
TRANSFER ,Begin1
LEAVE Kanal
SAVEVALUE 1,V$EXPL
TERMINATE
 
 
;таймер
GENERATE 43200 ;генерация происходит на протяжении 30 суток
TERMINATE 1 
START 1
0
 Аватар для Dukalys
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
08.12.2016, 18:59
Форматируйте CODE.

Тест выкинуть.
Исправляйте задачу обратно, вы не понимаете условие, что из себя представляют шлюзовые каналы и т.д. в порту.
По сути есть несколько каналов - они используются и для входа и для выхода в/из порта. Это двунаправленные "речные" каналы, но одновременно по каналу может идти только одно судно, либо в ту сторону, либо в другую.

Задача у вас генерация - проход через каналы порта - задержка порта - выход через канал порта - выход из системы

выбор свободного канала можно сделать как
Code
1
2
3
4
5
6
Nchannel EQU 5 ; 5 каналов 
...
select min nomer,1,Nchannel,,F ; выбор устройства с наименьшей (min) занятостью (F) из устройств с номерами 1..Nchannel
...
SEIZE p$nomer ; занимаем нужный канал
....   Но тут прикол в том, что различные суда могут выбирать один и тотже номер канала, получается будет очередь и необходимо учитывать это в штрафах (статистике).
с запятыми м.б. неточность
0
0 / 0 / 0
Регистрация: 24.11.2016
Сообщений: 4
08.12.2016, 19:09  [ТС]
Спасибо, буду пробовать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.12.2016, 19:09
Помогаю со студенческими работами здесь

Моделирование одноканальной СМО в GPSS
Доброго времени суток! Помогите, пожалуйста, смоделировать одноканальную СМО с неограниченной очередью в GPSS В порту имеется один...

Моделирование уличного движения - GPSS
Ребят, такая проблема, нужно срочно сдать задание, а я в gpss совсем не разбираюсь. Вот нашел в интернете задание и код к заданию, но когда...

Моделирование узла сообщений GPSS
Ребят срочно нужна помощь! Можете помочь исправить код программы! есть основа, даже 2 варианта. Одну мне скинули и с другими числами она...

Моделирование системы управления запасами gpss
Доброго времени суток уважаемые форумчане! Помогите разобраться с задачей плиз! В случае чего готов помочь, например пополню счет...

Моделирование разнотипных заявок в системе GPSS
Помогите люди добрые!!! В почтовое отделение поступает пуассоновский поток клиентов трех типов: клиенты, которые отправляют посылки, со...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru