0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
1 | |
Моделирование морского порта22.03.2014, 02:39. Показов 5497. Ответов 16
Метки нет (Все метки)
Всем приветик! Надо решить задачку, а я не понимаю как, но очень хочу разобраться! Плиизз помогите решить!
А ещё лучше объяснить! Буду очень благодарна! Всем привет! Начал изучал изучать имитационное моделирование систем массового обслуживания. Для этого необходимо уметь писать программы в среде GPSS (GPSS World). А вот с этим у меня туговато... Хотелось бы научится этому делу. В универе задали домашку. Не знаю как решить. Хотелось бы попросить помощи у тех к то уже умеет програмировать, написать программу к этой задачи: Порт с гаванью имеет три причала: 1, 2 и 3. В любое время причал BERTH1 может принять два малых или один средний корабль. Причалы BERTH2 и BERTH3 могут каждый принять один большой, два средних или четыре малых судна. Время между прибытиями судов в среднем составляет 26 часов, распределенных по экспоненциальному закону, а малые, средние и большие суда находятся в пропорции 5: 3: 2 соответственно. Очередь к причалам организована по принципу первый прибывший обслуживается первым за исключением того, что средние и малые суда не могут проходить к причалу, когда большое судно ожидает в очереди, а средние суда имеют более высокий приоритет по сравнению с малыми. Время разгрузки судов распределено по экспоненциальному закону со следующими средними временами: малые суда – 15 часов, средние суда – 30 часов и большие суда – 45 часов. Время погрузки следующее: - малые суда 24 ± 6 часов с равномерным распределением; - средние суда 36 ± 10 часов с равномерным распределением; - крупные суда 56 ± 12 часов с равномерным распределением. Задание: 1) прогоните модель за 500 дней; 2) определите распределение времени прохождения в порту для каждого типа судов; 3) определите коэффициент использования трех причалов.
0
|
22.03.2014, 02:39 | |
Ответы с готовыми решениями:
16
Модель морского порта с двумя типами кораблей Моделирование работы порта Моделирование работы порта Моделирование работы порта. Потоки прибытия и разгрузки |
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
22.03.2014, 07:52 | 2 |
Добрый день. Советую начать знакомство с GPSS с анализа простых программок, описание которых предложено в книге Кудрявцев имитационное моделирование на gpss.
Итоговое решение задачи потребует знания базовых из книги блоков + многоканальные устройств ENTER LEAVE (каждый корабль будет занимать своё количество ресурса от порта (мест), в книге есть примеры), также нужно будет познакомиться с параметрами каждой входящей заявки (с помощью параметров можно заявке задть размер корабля и т.д. - от этого будет зависеть время обслуживания) и др. Главное начните с книги, с начала!
1
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,723
|
|
22.03.2014, 10:19 | 3 |
Можем обсудить
0
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
22.03.2014, 16:40 [ТС] | 4 |
Вот ещё одно требование:
Большие корабли могут прийти и уйти только во время прилива. Отлив длится 3 часа, прилив- 10 часов. Добавлено через 1 минуту А скажите, надо ли начать с блока STORAGE? Как разобратся с этой вместимостью?
0
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,723
|
|
22.03.2014, 16:41 | 5 |
Удалено
да можно через STORAGE
0
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
22.03.2014, 17:08 [ТС] | 6 |
Что-то вроде этого:
Prch1 STORAGE 1mid or 2sm Prch2 STORAGE 1big,2mid or 4sm Prch3 STORAGE 1big,2mid or 4sm prch-pri4al
0
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,723
|
|
22.03.2014, 17:18 | 7 |
это чего за я язык? в gpss так нельзя
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
22.03.2014, 17:18 | 8 |
Сообщение было отмечено Dukalys как решение
Решение
PRIСHAL1 STORAGE 2 - ёмкость причала номер 1 = 2 малых корабля
это ёмкость многоканального устройства в самой программе, вы используете эти места следующим образом. например приходит средний корабль ENTER PRICHAL1,2 - корабль требует 2 места (2 ресурса из 2 общих) от причала 1, если они свободны - он заходит в блок и идёт дальше по коду - обслуживается. маленькие корабли будут требовать по 1 месту ENTER PRICHAL1,1 и смогут быть вдвоём на причале. (займут 2/2 ресурса)
0
|
Эксперт GPSS
552 / 411 / 105
Регистрация: 02.07.2010
Сообщений: 1,723
|
|
22.03.2014, 17:18 | 9 |
вы хоть одну книгу почитали?
0
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
23.03.2014, 02:46 [ТС] | 10 |
Есть такая идея:
PRICHLA1 STORAGE 2 PRICHAL2 STORAGE 4 PRICHAL3 STORAGE 4 GENERATE(exponential(1,0,26)) QUEUE SMALL ENTER PRICHAL1,1 DEPART SMALL ADVANCE(exponential(1,0,15)) ADVANCE 26,6 LEAVE PRICHAL1 GENERATE(exponential(1,0,26)) QUEUE MIDLE ENTER PRICHAL1,2 DEPART SMALL ADVANCE(exponential(1,0,30)) ADVANCE 36,10 LEAVE PRICHAL1 GENERATE(exponential(1,0,26)) QUEUE BIG ENTER PRICHA2,4 DEPART BIG ADVANCE(exponential(1,0,45)) ADVANCE 56,12 LEAVE PRICHAL1 ?? ? GENERATE 12000 START1 И как вписать пропорцию? Дать приоритет большим кораблям?? и как задать условия с приливами и отливами?
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
23.03.2014, 08:33 | 11 |
Используя GENERATE(exponential(1,0,26)) несколько раз, получается что корабли поступаю не 1 раз в 26 часов, а несколько раз в 26 часов что нарушет условия. должен быть 1 generate!
после этого generate вы должны назначить входящей заявке-кораблю - его размер, например 1 - будет мелкий 2- средний 3 - большой - это просто номера. нам известны вероятности(доли) появления кораблей 5-3-2, поэтому заводим функцию которая будет нам возвращать случайный тип корабля TIP FUNCTION RN1,D3 ; разберитесь с функциями! 0.5,1/0.8,2/1,3 теперь когда объявлена функция определения типа корабля - можем её использовать в программе сразу после generate ASSIGN 1,FN$TIP ; в параметр№1 (P1) вошедшей заявки записываем тип корабля (1-3) далее в программе мы знаем тип корабля и можем в зависимости от этого типа построить обслуживание. для управления ходом заявок будем использовать блок TEST: TEST E P1,1,SREDNII ; если P1=1 то заявка идёт ниже, иначе по метке SREDNII (метка указывается перед нужным блоком) PRIORITY 1 lk всех других кораблей приоритет не нужен (установлен авт.0) Добавлено через 1 минуту Да, и пишите комментарии к каждой строчке вашего кода - сами лучше осознаете что к чему, и нам проще вам будет подсказать где не верно думаете. например ENTER PRICHAL1,2 ; корабль пытается встать на причал1, при этом требует 2е единицы места, если места нет, ожидает в очереди. кстати, если разобрались с выше-описанным, то TIP FUNCTION RN1,D3 ; разберитесь с функциями! 0.5,1/0.8,2/1,3 тип корабля 3 можно заменить на 4, тогда!!! получается полное совпадение ТИПА корабля 1,2,4 - с количеством занимаемых им мест на причале. тогда можно будет писать ENTER PRICHAL,P1 ; напомним, что в P1 как раз лежит значение функции FN$TIP
0
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
23.03.2014, 20:50 [ТС] | 12 |
А как добавить условие к этому требованию?: Большие корабли могут прийти и уйти только во время прилива. Отлив длится 3 часа, прилив- 10 часов.
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
24.03.2014, 08:35 | 13 |
Нужно сделать дополнительный сегмент модели, который будет функционировать параллельно во времени - короче одновременно с основным
Код
GENERATE ,,,1 ; формируем 1у управляющую заявку PO_NOVOI SAVEVALUE 1,0 ; сохраняемая величина X1=0 - отлив ADVANCE 3 SAVEVALUE 1,1 ; сохраняемая величина X1=1 - прилив ADVANCE 10 ; 10 часов TRANSFER ,PO_NOVOI =0 - отлив и т.д.
1
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
24.03.2014, 11:33 [ТС] | 14 |
а как это относится именно к большим кораблям??? Если их обозначить как 4.
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
24.03.2014, 12:54 | 15 |
Сначала проверяете большой ли корабль
TEST E P1,4,HE_BOLbWOI ; если P1=4 (большой), то транзакт идёт ниже по коду, иначе (если не большой корабль) в метку HE_BOLbWOI итак, ниже идёт большой корабль - теперь необходима проверка, прилив или отлив TEST E X1,1,HE_PRILIV ; вместо HE_PRILIV можно использовать туже метку HE_BOLbWOI если тудаже нужно отправить в случае если отлив ... тут действие если X1=1 (прилив) HE_BOLbWOI .... ваш код - продолжение
0
|
0 / 0 / 0
Регистрация: 22.03.2014
Сообщений: 7
|
|
24.03.2014, 18:08 [ТС] | 16 |
Пишу так:
PRICHLA1 STORAGE 2; ёмкость причала номер 1 PRICHAL2 STORAGE 4; ёмкость причала номер 2 PRICHAL3 STORAGE 4;ёмкость причала номер 3 GENERATE(exponential(1,0,26)); Прибытие кораблей TIP FUNCTION RN1,D3; Прибытие того или иного вида корабля 0.5,1/0.8,2/1,4; вероятностные значения ASSIGN1,FN$TIP;тип корабля TEST EP1,1,SREDNII; определяем тип корабля PRIORITY 4; задаём приоритет большому кораблю PRIORITY 2,1;????? нужно задать приоритет средним по отношению к малым кораблям Вопрос а как давать команды ENTER и LEAVE? ENTER PRICHAL1,1; малый в первый причал ENTER PRICHAL1,2; средний во второй причал ENTER PRICHAL2,1;и тд ENTER PRICHAL2,2; ENTER PRICHAL2,4; ENTER PRICHAL3,1; ENTER PRICHAL3,2; ENTER PRICHAL3,4;
0
|
1817 / 1031 / 285
Регистрация: 13.02.2012
Сообщений: 3,339
|
|
24.03.2014, 21:08 | 17 |
PRIORITY 2 допустим приходит корабль - как он выбирает причал? случайно? в определённом порядке проверяет который свободен? или тупо встаёт случайным образом в очередь??? От этого будет зависеть его ход. И всегда - разрабатывайте простую модельку - которую можно было бы запустить и исправить на ней ошибки. модель разрастётся и вы не сможете исправить там ошибки!!! Уже на данном этапе я рекомендую вам остановиться - поправить ошибки и запустить - разобраться с результатами моделирования - сколько куда заявок прошло и т.д. (результаты расшифровываются в Кудрявцеве).
0
|
24.03.2014, 21:08 | |
24.03.2014, 21:08 | |
Помогаю со студенческими работами здесь
17
Моделирование работы морского порта Моделирование работы морского порта ИС мониторинг акватории морского порта Моделирование COM порта в виртуалке Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Из чего и как собрать свой домашний кинотеатр
bt_guru 21.01.2025
Создание домашнего кинотеатра: от идеи до реализации
В современном мире домашний кинотеатр стал неотъемлемой частью комфортного жилого пространства, предоставляя возможность наслаждаться. . .
|
Ошибки стиральных машин
bt_guru 21.01.2025
Современные стиральные машины представляют собой сложные электронные устройства, оснащенные множеством датчиков и систем контроля. Они способны самостоятельно определять вес загруженного белья,. . .
|
Копирование (маппинг) объектов в JavaScript
bytestream 21.01.2025
В современной разработке программного обеспечения копирование объектов представляет собой фундаментальную операцию, которая требует особого внимания и понимания. Маппинг объектов в JavaScript – это. . .
|
Как работать с Apache Kafka в C# .NET
bytestream 21.01.2025
Apache Kafka представляет собой распределенную платформу потоковой передачи данных, которая произвела революцию в области обработки больших объемов информации в реальном времени. Эта система,. . .
|
Как использовать RabbitMQ в C# .NET
bytestream 21.01.2025
RabbitMQ представляет собой мощный брокер сообщений, который эффективно решает эту задачу, обеспечивая надежную передачу данных между множеством приложений. Этот инструмент реализует протокол AMQP. . .
|
Как объединить последние коммиты в Git
bytestream 21.01.2025
В мире разработки программного обеспечения система контроля версий Git стала незаменимым инструментом для управления исходным кодом. Одной из наиболее полезных, но порой сложных для освоения функций. . .
|
Как запушить новую локальную ветку (branch) в удалённый репозиторий Git и отслеживать её
bytestream 21.01.2025
В современной разработке программного обеспечения система контроля версий Git стала неотъемлемым инструментом для эффективного управления кодом и организации командной работы. Одной из ключевых. . .
|
Как создать директорию и все родительские директории, указанные в пути, с помощью Python
bytestream 21.01.2025
Python предоставляет мощные инструменты для работы с файловой системой через встроенные модули os и pathlib, которые значительно упрощают процесс манипуляции директориями. Эти модули содержат. . .
|
Как работать с массивами в JavaScript
bytestream 21.01.2025
Массивы в JavaScript представляют собой один из фундаментальных типов данных, который позволяет хранить упорядоченные коллекции различных элементов в одной переменной. Эта структура данных является. . .
|
Какая максимальная длина адреса (URL) в различных браузерах и стандартах
bytestream 21.01.2025
В современном мире интернет-технологий URL-адреса (Uniform Resource Locator) играют фундаментальную роль в функционировании веб-пространства. Эти уникальные идентификаторы ресурсов стали неотъемлемой. . .
|
Как сбросить локальный репозиторий до состояния удалённого репозитория Git
bytestream 21.01.2025
При разработке программного обеспечения с использованием системы контроля версий Git разработчики часто сталкиваются с необходимостью синхронизации локального и удаленного репозиториев. Данная задача. . .
|
Как запретить подсветку выделенного текста с помощью CSS
bytestream 20.01.2025
Подсветка текста при выделении является стандартным поведением браузера, которое не всегда соответствует дизайнерским решениям или функциональным требованиям веб-приложения.
Выделение текста может. . .
|