我正在研究一個理論圖論問題,它涉及到hypergrapha中的hyperedges組合來分析各種情況。使用cython或PyPy來優化元組/列表(在python中實現的圖論算法)
我已經在Python中實現了主算法的初始版本,但由於它的組合結構(可能是我的實現),算法很慢。
我正在考慮加快速度的一種方法是使用PyPy或Cython。
看看文檔,看起來Cython在元組方面沒有提供很好的加速。這可能對實現有問題,因爲我將hyperedges表示爲元組 - 所以該算法的大部分操作元組(但是它們都是相同的長度,每個len 6左右)。
由於我的C和Python技能都非常小,我將不勝感激,如果有人可以建議什麼是繼續優化代碼的最佳方式,因爲它依賴於元組/列表。是否有使用Cython(或PyPy)的列表/元組的文檔?
你可以發佈你的代碼並突出顯示緩慢的部分?如果沒有看到代碼,很難提出改進建議,因爲問題可能不是您想象的那樣。在_general_中,提高速度的最佳答案是想一個更好的算法...... –
Cython可以使用C數組和結構,並且可以定義擴展類型。其中任何一個都可以替代元組。 –
@Roland,算法實際上是NP(它與超圖中的匹配有關),所以我不能希望得到比我已經實現的算法更優化的算法。但是,我只對一個非常具體的案例感興趣。我從Python的天真實施的運行時間估算,如果我能使它運行速度提高100倍,那麼這將使它在可接受的時間內(約2周)完成。 – nsimplex