簡體   English   中英

從一個起始節點中尋找最合適的節點,起始和結束節點是間接連接的,邊是加權的

[英]Find most suitable nodes from a starting node, start and end nodes are indirectly connected and edges are weighted

下圖中是我顯示的整個圖表的子圖。 我有三種不同類型的節點,綠色、藍色和紫色節點。

綠色和紫色的通過藍色節點間接連接。

藍色節點通過加權的有向邊相互連接。 藍色邊緣被加權,但綠色或紫色邊緣沒有加權。

我要解決的問題如下:我想找到最適合綠色節點的紫色節點。 ,例如,我想說對於綠色節點GA ,三個最合適的紫色節點是V1V4V42

什么使節點適合?

完美匹配是綠色節點連接到紫色節點連接的所有藍色節點。 但是,綠色節點可以連接到更多的藍色節點。 這仍然是紫色節點的最佳分數。

如果綠色和紫色不連接到同一個藍色節點,而是連接到彼此連接的藍色節點,則算法需要考慮藍色節點之間的邊的權重。 這不會導致完美匹配,但仍然是一個很好的匹配。

是什么讓它或多或少適合?

連接藍色節點所需的藍色節點之間的跳數越多,連接綠色和紫色節點的節點越小,紫色節點的得分越小。 此外,如果藍色節點之間的權重越小,紫色節點的得分越小,這里要考慮從綠色到紫色的方向。

如果綠色沒有連接到一些藍色節點,這將是一個懲罰,紫色節點的分數會更小。

你能想到什么圖算法來解決這個問題?

我打算使用 neo4j 數據庫。

我的子圖

完美匹配是綠色節點連接到紫色節點連接的所有藍色節點。

認為這意味着從綠色節點到紫色節點的路徑僅通過一個藍色節點。 如果有不止一個紫色節點距離綠色節點只有一個藍色節點,那么您需要所有這些紫色節點。 請確認。

如果我對您的要求的猜測是正確的,那么 Dijsktra 算法將給出您的答案。 該算法將告訴您每個紫色節點與每個綠色節點的距離——因此您可以過濾掉正好兩跳遠的節點。

你有樣本數據集嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM