web-dev-qa-db-ja.com

数値アプリの無駄な調整を最小限に抑える

私は数値アプリケーション(非線形オプティマイザー)を開発しています。

このドメインへの私の最初の進出ではありませんが、今回はコードにさらに多くの変数があり、私はタイトなスケジュールにあります。いじる時間を無駄にしたくない。

変数の調整、ベンチマークデータセットの再コンパイル、および再処理に数日または数か月が無駄になる可能性があります。得られたデータを表示し、トラブル箇所を確認します。ソリューションの全体的な品質はプログラムによって報告されますが、レポートの意味は時間の経過とともに変化する可能性があります。 (レポートの数値単位は、私が特定しようとしていることの1つです。)

主な問題の1つは、結果ファイルを整理して、特定のコード変更でそれぞれを識別することです。メモを取るのは苦痛かもしれませんが、これを支援するソフトウェアはありますか?

この種の開発サイクルを確実に前進させるための合意されたベストプラクティスはありますか?ソルバーパッケージは、機械的な決定によって最適なソリューションに収束しますが、過剰な設計上の決定が開発を妨げる可能性がある方法については、私はよく知っています。

3
Potatoswatter

ああ、この質問にはたくさんのことが起こっています。あなたが求めていることをすべて理解できるかどうかはわかりませんが、試してみましょう。

変数の調整、ベンチマークデータセットの再コンパイル、再処理に数日または数か月が無駄になる可能性があります

少なくとも、変数を変更するために再コンパイルする必要がないように、変数を構成ファイルにプルすることをお勧めします。理想的には、いくつかのベンチマークも作成し、 山登り または [〜#〜] ga [〜#〜] などの手法を使用して、変数をプログラムで最適化するように調整します。解決

(レポートの数値単位は、私が特定しようとしていることの1つです。)

測定単位を意味しますか?ほとんどの言語でこれらを支援するために利用できるライブラリがあります。 F#でも言語に組み込まれています (レポート用ではありませんが)

主な問題の1つは、結果ファイルを整理して、特定のコード変更でそれぞれを識別することです。メモを取るのは苦痛かもしれませんが、これを支援するソフトウェアはありますか?

ここでの明らかな解決策は、ベンチマーク結果をソース管理にコミットし、それらを変更したことです。その後、コミットフックを使用して、ベンチマークの悪化を通知することもできます。

5
jk.