R: Получите наименьшее количество узлов, чтобы посетить все узлы, основываясь на простой исходной цели df - PullRequest
0 голосов
/ 26 сентября 2018

Описание проблемы
У меня есть сеть, для которой нужно наименьшее количество узлов, охватывающих все узлы своими соединениями.
Допустим, у нас есть этот фрейм данных

src <- c("A", "A", "A", "A", "B", "B", "C", "C", "D")
target <- c("B", "C", "D", "J", "E", "F", "G", "H", "I")
data <- data.frame(src,target)

, который выглядит так:

enter image description here
Тогда яхотите, чтобы код возвращал A и B, поскольку выбор этих двух узлов охватит всю сеть.Очевидно, что я также мог бы выбрать больше узлов, но я хочу только наименьшее количество узлов, охватывающих всю сеть.Я знаю, что все еще может быть несколько возможностей, и затем я хочу получить их все.

Что я пытался
Хотя я думал, что это будет довольно распространенным явлением, я нашел толькоалгоритмы, чтобы получить кратчайшие пути от одного узла к другому.Я мог бы

...