Форум программистов, компьютерный форум, киберфорум
Наши страницы
AnyLogic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Saym
4 / 4 / 4
Регистрация: 02.11.2014
Сообщений: 196
Завершенные тесты: 1
1

Пример модели обслуживания ветряных турбин

31.03.2018, 07:47. Просмотров 991. Ответов 2
Метки нет (Все метки)

Есть вопрос по обучающему примеру модели обслуживания ветряных турбин, агентный подход.

Агент Turbine, функция SendRequest:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
ServiceRequest r = new ServiceRequest(type, this);
 
Transport t = main.center.findTransport(r);
if (t != null)
    sendTransport(t,r);
else if (type == AUTO)
    main.center.autoRequests.addLast(r); 
else
    main.center.aviaRequests.addLast(r);


Агент Transport, состояние AtCenter:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
LinkedList <ServiceRequest> list = type == AUTO?
main.center.autoRequests : main.center.aviaRequests;
 
if (! list.isEmpty ())
{
    ServiceRequest r = list.removeFirst();
    Turbine dest = (Turbine)r.turbine;
    dest.sendTransport(this,r);
}


Почему, если удалить из функции SendRequest проверку незанятости транспорта :
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
ServiceRequest r = new ServiceRequest(type, this);
 
if (type == AUTO)
    main.center.autoRequests.addLast(r); 
else
    main.center.aviaRequests.addLast(r);


Транспорт не прибывает на обслуживание турбин?

Насколько я понял, данная часть кода проверяет находится ли нужный транспорт (грузовик/вертолет) в данный момент в центре обслуживания - т.е. свободен ли нужный транспорт.
Если свободен, то сразу отправляется запрос к состоянию AtCenter диаграммы состояний Transport, после чего нужный транспорт отправляется к турбине.
Если не свободен, то запрос добавляется в коллекцию либо autoRequests, либо aviaRequests агента Center (MC).

Каждый раз, когда транспорт переходит в состояние AtCenter, т.е. становится свободен - происходит проверка коллекций. Если не пустые - отправляется запрос, и транспорт отправляется к нужной турбине.

Так вот, я не понимаю, почему при удалении проверки незанятости транспорта, транспорт перестает отправляться к турбинам? Ведь все эти запросы так или иначе будут сохраняться в коллекции, содержимое которых проверяется состоянием AtCenter, и, в случае наличия запросов, отправляется транспорт к турбине.
0
Миниатюры
Пример модели обслуживания ветряных турбин   Пример модели обслуживания ветряных турбин   Пример модели обслуживания ветряных турбин  

QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2018, 07:47
Ответы с готовыми решениями:

Модель ветряных турбин пример
Всем привет! такой вопрос хочу добавить третий тип транспорта для модели Никто не может подсказать...

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

Разработка модели обслуживания покупателей в магазине
Добрый день!Помогите решить задачку! Время прибытия покупателей 5+-4 минуты. Половина...

Построение модели двухфазной системы массового обслуживания
Прошу помочь с построением GPSS модели при заданных условиях. Ниже прилепляю фото. Трудности...

JS - пример модели солнечной системы
Написать упрощенную модель солнечной системы. В центре солнце, вокруг нее по эллиптической орбите...

2
Dukalys
Модератор
1782 / 1002 / 279
Регистрация: 13.02.2012
Сообщений: 3,298
01.04.2018, 10:19 2
Цитата Сообщение от Saym Посмотреть сообщение
Транспорт не прибывает на обслуживание турбин?
Скорее всего потому что для доставки транспорта используется метод sendTransport(t,r); Нужно смотреть что это за метод и конечно анализировать диаграмму состояний - всё ли так как вы описали (Если не свободен, то запрос добавляется в коллекцию либо autoRequests, либо aviaRequests агента Center (MC). Каждый раз, когда транспорт переходит в состояние AtCenter, т.е. становится свободен - происходит проверка коллекций.).
Есть подозрение что не всегда проверяется.
1
hellenDist
0 / 0 / 0
Регистрация: 17.04.2019
Сообщений: 2
17.04.2019, 23:03 3
Эту же программу прописывала в 8.4.0

Прописываю как в примере:

Java
1
2
3
4
5
6
7
8
9
LinkedList <ServiceRequest> list = type == AUTO ?
main.center.autoRequests : main.center.aviaRequests;
 
if (! list.isEmpty())
{
   ServiceRequest r = list.removeFirst();
   Turbine dest = (Turbine)r.turbine;
   dest.sendTransport(this, r);
}
И почему-то ругается так: type cannot be resolved to a variable

Перепроверила трижды, ничего найти не могу. Почему ему не угодил type ?
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.04.2019, 23:03

Пример модели теории первого порядка
Приведите, пожалуйста, два примера модели теории первого порядка.

(Моделирование системы массового обслуживания с параллельными каналами обслуживания с повторами)
Помогите написать программу Рассмотрим систему массового обслуживания с заданным числом устройств...

Обслуживания неоднородного потока заявок с ограничением очередей обслуживания
На вход СМО поступает поток заявок 2-х типов, с вероятностями поступления 0,7 и 0,3 соответственно....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru