Структура данных в R группирующих пар данных - PullRequest
0 голосов
/ 28 августа 2018

У меня проблема с организацией данных для процесса. Требования состоят в том, чтобы у нас было N буксиров (судно, используемое для перевозки больших кораблей) и N кораблей, которые должны быть доставлены этими буксирами. Каждому кораблю требуется определенное количество буксиров, поэтому у нас есть что-то вроде этого:

setClass("tugboat", slots=list(name = "character"))

tugboat1 <- new("tugboat", name = "tugboat 1")
tugboat2 <- new("tugboat", name = "tugboat 2")
tugboat3 <- new("tugboat", name = "tugboat 3")

setClass("ship", slots=list(name = "character", tugboats_required = "numeric"))

ship1 <- new("ship", name = "Titanic", tugboats_required = 1)
ship2 <- new("ship", name = "Black Pearl", tugboats_required = 1)
ship3 <- new("ship", name = "Interceptor", tugboats_required = 1)

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

СЦЕНАРИЙ 1 : корабль1 + буксир1, корабль2 + буксир2, корабль3 + буксир3

СЦЕНАРИЙ 2 : корабль1 + буксир1, корабль2 + буксир3, корабль3 + буксир2

СЦЕНАРИЙ 3 : корабль1 + буксир2, корабль2 + буксир1, корабль3 + буксир3

СЦЕНАРИЙ 4 : корабль1 + буксир2, корабль2 + буксир3, корабль3 + буксир1

СЦЕНАРИЙ 5 : корабль1 + буксир3, корабль2 + буксир1, корабль3 + буксир2

СЦЕНАРИЙ 6 : корабль1 + буксир3, корабль2 + буксир1, корабль3 + буксир1

в примере выше, я рассматриваю только один буксир для каждого корабля (tugboats_required = 1), но если это число равно 2, например, сценарий для этого корабля должен иметь 2 буксира. Пример:

setClass("tugboat", slots=list(name = "character"))

tugboat1 <- new("tugboat", name = "tugboat 1")
tugboat2 <- new("tugboat", name = "tugboat 2")
tugboat3 <- new("tugboat", name = "tugboat 3")

setClass("ship", slots=list(name = "character", tugboats_required = "numeric"))

ship1 <- new("ship", name = "Titanic", tugboats_required = 1)
ship2 <- new("ship", name = "Black Pearl", tugboats_required = 2)

СЦЕНАРИЙ 1 : корабль1 + буксир1, корабль2 + буксир2 + буксир3

СЦЕНАРИЙ 2 : корабль1 + буксир2, корабль2 + буксир1 + буксир3

СЦЕНАРИЙ 3 : корабль1 + буксир3, корабль2 + буксир1 + буксир2

проблема не в математике, проблема в том, чтобы организовать данные после объявления объектов.

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