Pyslvs 編譯進度 - 演算法:

  • 程式

Pyslvs 編譯進度 - 演算法

程式

將編譯好的 so 函式庫放到 kernel 資料夾的 pyslvs_generate 資料夾中,一樣是分開版本。

跟 Path track 與普通解題函式一起放在 calculation.py 中。

載入選擇:

if platform.system().lower()=="linux":
    if py_nm=="3.4":
        from ..kernel.pyslvs_generate.py34 import tinycadlib
        from ..kernel.pyslvs_generate.py34.planarlinkage import build_planar
        from ..kernel.pyslvs_generate.py34.rga import Genetic
        from ..kernel.pyslvs_generate.py34.firefly import Firefly
        from ..kernel.pyslvs_generate.py34.de import DiffertialEvolution
    if py_nm=="3.5":
        from ..kernel.pyslvs_generate.py35 import tinycadlib
        from ..kernel.pyslvs_generate.py35.planarlinkage import build_planar
        from ..kernel.pyslvs_generate.py35.rga import Genetic
        from ..kernel.pyslvs_generate.py35.firefly import Firefly
        from ..kernel.pyslvs_generate.py35.de import DiffertialEvolution

這裡必須額外載入 tinycadlib 函式庫。

在同層目錄下,planarlinkage 函式庫可以搜尋到 tinycadlib 函式庫,但是當用外部位置載入時,被包起來的 so 檔會找不到原本存在的名稱,所以額外載入 tinycadlib 供其使用。

當使用 Path solving panel 後可以回傳數據,但是無法回傳進度,要有這個功能可能得改寫演算法。

選擇演算方法的部份是切換式的,一次只能儲存一組解。如果空間允許,可能建一個清單儲存結果。

至於 Windows 方面則完全封鎖功能,編譯時會跳過整個 Path solving 的相關函式。


Comments

comments powered by Disqus