alns
是 Python 中自適應大鄰域搜尋 (ALNS) 元啟發式的通用、有據可查且經過測試的實作。 ALNS 是一種可用於解決困難的組合最佳化問題的演算法。該演算法從初始解決方案開始。然後演算法迭代直到滿足停止標準。在每次迭代中,都會選擇一個破壞和修復算子,將目前解決方案轉換為候選解決方案。然後透過驗收標準評估該候選解決方案,並根據評估結果更新營運商選擇方案。
alns
alns
依賴numpy
和matplotlib
。它可以按照通常的方式安裝
pip install alns
此外,為了使用多臂老虎機演算法啟用更進階的算符選擇方案,可以使用可選的 MABWiser 依賴項安裝alns
:
pip install alns[mabwiser]
該文件可在此處取得。如果您不熟悉元啟發式或 ALNS,您可能會從閱讀 ALNS 頁面的介紹中受益。
alns
函式庫提供了 ALNS 演算法和各種接受標準、算子選擇方案和停止標準。為了解決您自己的問題,您應該提供以下資訊:
objective()
函數的問題的解決方案狀態。此處提供了“快速入門”程式碼模板。
我們提供了幾本範例筆記本,展示如何使用 ALNS 函式庫。這些包括:
最後,功能筆記本概述了alns
套件中可用的各種選項。在筆記本中,我們使用這些不同的選項來解決玩具 0/1 背包問題。當您想要自己使用不同的方案、接受或停止標準時,該筆記本是一個很好的起點。可以在這裡找到。
我們非常感謝您願意做出的任何貢獻。請查看此處以開始使用。如果您打算進行重大更改,那麼首先在新的 GitHub 問題中討論該更改會很有幫助。隨意打開一個!
請隨意在 GitHub 上提出問題或新的討論主題。請不要透過電子郵件向我們提出疑問、建模問題或程式碼範例。透過 GitHub 比透過電子郵件討論這些內容要容易得多。撰寫您的問題或討論時,請按照此處的說明進行操作。
alns
如果您在研究中使用alns
,請考慮引用以下論文:
Wouda, NA 與 L. Lan (2023)。 ALNS:自適應大鄰域搜尋元啟發式的 Python 實作。開源軟體雜誌,8(81):5028。
或者,使用以下 BibTeX 條目:
@article { Wouda_Lan_ALNS_2023 ,
doi = { 10.21105/joss.05028 } ,
url = { https://doi.org/10.21105/joss.05028 } ,
year = { 2023 } ,
publisher = { The Open Journal } ,
volume = { 8 } ,
number = { 81 } ,
pages = { 5028 } ,
author = { Niels A. Wouda and Leon Lan } ,
title = { {ALNS}: a {P}ython implementation of the adaptive large neighbourhood search metaheuristic } ,
journal = { Journal of Open Source Software }
}