Pyslvs 開發進度

  • 演算法中斷機制

演算法中斷機制

研究許久 Cython 的外部中斷迴圈,一直沒有找到較好的方式。

大部分 github 的參考都是藉由 Python 的 threading 模組達成的,但是這樣可能又得改寫演算法模組的物件。

因此後來運用運算進度條檢查 function object 的機制做出中斷的方法。

傳入的 function object 被 call 時會回傳 QThread 的暫停狀態 self.stoped,Cython 即可判斷是否終止,若為 True,會在當前代數停下,回傳本代最佳解。

而對話方塊端新增了「Interrupt」鈕,按下此鈕時會中止運算,收下當前最佳解。

而原本的「Cancel」鈕則會捨棄這次演算結果。

不過目前還未增加中斷的資訊,接下來應該會增加標籤圖示,並且顯示中斷時的代數供參考。

中斷結果的數據通常未必能成形,大多數都是非合法的連桿機構。


Comments

comments powered by Disqus