2014-02-17 1 views
0

В igraph, что наименее CPU-дорогой способ найти:мере CPU-дорогой способ найти два наиболее (и наименее) удаленные вершины графа [igraph]

  • две наиболее удаленные вершины (в кратчайшие расстояния образуют друг друга) графа. В отличие от функции farthest.points(), которая выбирает первую найденную пару вершин с самым длинным самым коротким расстоянием, если существует более одной пары, я бы хотел случайно выбрать эту пару.
  • То же самое с ближайшими вершинами графа.

Спасибо!

+1

Возможно, вам будет необходимо уточнить, что означает, что vertext будет «самым удаленным» - это самая дальняя из * любой * другой вершины? Или самая дальняя из * всех * других вершин? Или вершина, имеющая самое дальнее расстояние до любой другой вершины? Или удаленный в смысле самого удаленного удаления из любой кластеризации вершин на основе некоторых других критериев? – twalberg

+0

Когда вычисляются все кратчайшие расстояния в графе, то, что я ищу в первой точке пули моего вопроса, это две вершины, которые находятся на концах самого длинного из этих кратчайших путей. Для этого я мог бы использовать функцию farthest.points(), за исключением того, что она дает первый результат, найденный, когда несколько самых длинных путей имеют одинаковое кратчайшее расстояние, в то время как мне нужно, чтобы алгоритм выбирал среди самых длинных кратчайших путей случайным образом. Надеюсь, я немного поразмыслил ... :) – Rodolphe

ответ

2

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

Я не совсем понимаю второй вопрос. Если вы ищете невзвешенные пути, то каждая пара вершин на обоих концах ребра имеет минимальное расстояние (1). То есть, если вы не рассматриваете пути к самим вершинам, по определению они имеют длину 0.