私はJava/Kotlinで学習エージェントを実装しています。このエージェントの機能の一部には、可能なオプションの大きなリストを検索する機能があります。可能性のある空間を検索するには、複数の良い方法がありますし、どちらが最善であるかについて頻繁に気が変わります。したがって、私はそれを戦略パターンとして実装することにしました。JSONの設定で戦略を選択する
最近、さまざまなシステムパラメータの有効性をテストする一連の実験を実行することに決めました。これはPythonスクリプトを通して行われます。このスクリプトは、異なるconfig.jsonファイルを引数としてコンパイルされたjarファイルを実行することによって各実験を開始します。次のようなものがあります。
{
"numSamples" : 5000,
"environmentDifficulty" : 3,
"hazardProbability" : 0.4,
//etc..
}
これで、エージェントが使用する戦略を構成する能力を実験者に与えたいと考えています。これを行う最善の方法は何ですか?そして、とき場合、または支店とメインシステムでそれを構築
{
"numSamples" : 5000,
"environmentDifficulty" : 3,
"hazardProbability" : 0.4,
"agentStrategy": "FastSearch"
}
:私の即時の思考は、私はちょうどconfig.jsonに追加の文字列フィールドを追加する可能性があることです
val searchStrategy = when(config.agentStrategy){
"FastSearch" -> FastSearch()
"AccurateSearch" -> AccurateSearch()
"ExperimentalSearch" -> ExperimentalSearch()
val agent = agent(searchStrategy)
しかし、これはそうです私がもっと戦略を追加し始めるなら、それは厄介な/維持するのが難しくなるようになり始めるでしょう。より良い方法がありますか?それを解決するために