Issueを初投稿した話


2022年 11月 24日

先日,PlatEMOという進化計算ライブラリがバージョン4.0にメジャーアップデートされました.PlatEMOは,MATLABのオープンソースライブラリです.Githubで公開されており,スター数はMATLABカテゴリ31位です(10/21確認).このPlatEMOにIssueを初投稿した話を書きます.

PlatEMO

PlatEMOは,研究目的であれば自由に使えます.MATLAB一式がダウンロードしてあれば,直ぐに利用できます.ターミナルやコマンドを利用せず,マウス操作だけでGUIの起動まで進めます.

200+のベンチマーク問題,400+のアルゴリズムが実装されています.画面左上から特徴を選択すると,対応する問題とその解法一覧が画面左下に表示されます.解集合の変化や評価指標の推移も画面から確認できます.

PlatEMO4.0で発見した問題

自分は,PlatEMOにアルゴリズムを複数提供しています.
今回,4.0のアップデートにあたり以下の3種類のアルゴリズムが動かなくなりました.

エラーを見ると,いずれもnormalize関数で問題が生じていることが分かりました.
(MOEA/D-DCWVでのエラー)

問題と解決策

そこで,normalize関数を確認に行きます.

すると,4.0で新しく実装されたアルゴリズム,その中にあるnormalize関数に飛ばされました.


MATLABには,normalize関数が存在します.
https://www.mathworks.com/help/matlab/ref/double.normalize.html
同一名で関数を新しく定義したため,問題が生じたことが判明しました.
新しいnormalize関数を削除したところ,正常にアルゴリズムが動きました.

Issueを初投稿

確認したところ,他の人が実装したアルゴリズムでも同じ原因によってエラーが出ていました.
自分の実装が問題の原因でないことが確認できたので,以下のIssueを初投稿しました.

終わりに

記事作成時点では,Issueに対してリアクションがありませんでした.気長に待ちたいと思います.
Issueに対応して頂き,エラーが解消されました.

自分が実装し,オープンにしているアルゴリズムがエラーで動かないという状況は,とても焦りました.エラーが出て動かないコードを放置していると,自分の実装が疑われる可能性もあると考えました.そこで,勇気を出してIssueを初投稿しました.

今回の1件で,公開したコードが正常に動くか,定期的に確認した方が良いと思いました.Issueは初投稿でしたが,思ったより簡単に出来ました.今後はPull requestだけでなく積極的にIssueも投稿し,コミニティに貢献していこうと思いました.