2014-11-17 3 views
0

나는 끊임없이 변화하는 그래프가 있습니다. 시간이 지남에 따라 몇 개의 정점이 추가되고 몇 개의 새로운 모서리가 나타납니다 (노드는 삭제되지 않습니다). 이전 페이지 랭크 계산 결과가있는 경우 속도를 향상시키기 위해 어떻게 다시 사용할 수 있습니까?어떻게 파이썬 igraph에서 PageRank 계산의 이전 결과를 다시 사용할 수 있습니까

파이썬 igraph 모듈은 멋진 것처럼 보이지만 모두 관련성이 없습니다. pr은 임의 알고리즘이므로 지정된 개선이 유용합니다. 나는 파이썬으로 작성된 프로토 타입을 가지고 있지만 이것에 C 라이브러리 래퍼를 사용하고 싶습니다. 누구든지 그 경험을?

답변

1

우선 PageRank는 이 아니며 임의 알고리즘입니다.입니다. 페이지 랭크 방정식은 스파 스 매트릭스의 지배적 인 고유 벡터를 계산하는 것으로 귀결됩니다 (스파 스 매트릭스가 아니라 스파 스 매트릭스와 스파 스 매트릭스처럼 빠른 벡터 산출물을 계산할 수있는 다른 매트릭스의 합계). 그것은 완전히 결정 론적입니다. 고유 벡터 계산 수렴 할 수 있기 때문에 유용 할 수있는 이론적 있지만

둘째, 불행하게도, 그 결과는 이전의 페이지 랭크 (PageRank) 벡터에 "close"가 예상되는 페이지 랭크 (PageRank) 알고리즘의 내부 구현을 알 수있는 방법이 없습니다 이미 실제 고유 벡터에 가까운 벡터에서 시작하면 빠릅니다.

그러나 igraph는 버전 0.7 이후 PageRank 벡터를 계산하는 데 PRPACK을 사용하며 PRPACK은 이미 매우 최적화되어 있으므로 "고유 벡터 힌트"를 미리 지정하지 않아도 그래프에서 빠르다고 할 수 있습니다. 나는 그것을 먼저 시도하고 그것이 어떻게되는지 보게 될 것이다.