Почему агенты могут захватывать переносимые ресурсы из разных мест? - PullRequest
0 голосов
/ 21 марта 2020

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

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

Я использую один пул ресурсов и определяю ГИС-местоположения для велосипедов на разных станциях. Есть ли способ ограничить действия агентов по сбору ресурсов с их местоположения и обеспечить, чтобы велосипеды не перемещались самостоятельно с 1 станции на другую, или мне следует рассмотреть другой подход, чем использование 1 пула ресурсов? Кроме того, как я могу определить положение велосипедов в начале симуляции?

Любая помощь очень ценится, спасибо!

/ Hal

Небольшой пример с 2 станциями, обзор

1 Ответ

1 голос
/ 22 марта 2020

у вас слишком много вопросов в 1 ... поэтому я дам вам несколько подсказок

  1. Каждый велосипед должен быть агентом ресурса, где вы храните его текущее местоположение, это будет проходить переменной, которая будет называть станцию, которая будет определять, где находится местоположение.
  2. Чтобы человек мог взять велосипед из его текущего местоположения, вам нужно получить пользовательский агент (настроить агент ресурса в свойствах сервисного блока), где unit.station.equals(agent.station) ... при условии, что в вашем агенте также есть переменная станции, которая определяет, на какой станции он находится ... в противном случае вам потребуется получить ближайшую станцию ​​или что-то в этом роде
  3. Вы должны убедиться, что ресурсы не go возвращаются домой после их освобождения ... я думаю, что местоположение агента восстановления на выходе должно быть отключено
  4. Чтобы все ресурсы запускались в нужном месте, вы можете выбрать узлы домашнего расположения и, возможно, определить количество ресурсов в зависимости от их домашнего местоположения ... много способов сделать это, вам придется добавить более подробную информацию

Попробуйте все это начать ...

...