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。 https://doi.org/10.21105/joss.05028
または、次の 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 }
}