2017-03-31 73 views
0

我想在Python中實現以下內容,但不知道從哪裏開始。對於這種類型的最短路徑問題,有沒有好的模塊?計算從設置節點到所有其他節點的最短路徑,其中一些節點被禁止路徑

我試圖XYZ的給定集合中,以限定從特定原子(節點)到所有其它原子(節點)的最短路徑座標用於3D化學結構(圖)。原子(節點)之間的鍵是允許從節點到節點的行進的邊緣。

我想根據從選定中心節點向外的連通性從分子(圖)中篩選出某些原子(節點)。

**對於考慮的路徑,我想FORBID特定的原子(節點)被越過。如果從A到B的最短路徑是通過禁止節點的,那麼這個答案是不允許的。從A到B的最短路徑不得包含禁止節點**如果從所選中心原子(A)到另一個其他節點(B)的最短路徑包含禁止節點,並且沒有其他可用路徑可用從A到B通過可用的邊(鍵),然後從最後一組要保存的xyz座標(節點)中刪除節點B.

對於結構(圖)中的所有其他原子(節點),這應該針對A到C,A到D,A到E等重複。

在此先感謝您提供的任何幫助。

回答

0

確保導致禁止節點的所有邊都具有無限的成本,並且您使用的任何圖遍歷算法都會自動處理。

或者,只是刪除禁止的節點被圖遍歷算法考慮。

+0

謝謝。你會推薦什麼文件格式和Python模塊? –

0

要回答你的問題的第一部分,我推薦networkx.這是一個通用的圖形庫,很容易進入(我用它在我的博士學位)。

相關問題