私は現在、木を使っていくつかの計算を行っています。各ノードには、計算しようとしている5つの値と、これらの値の計算方法を決定するタイプがあります。一部の計算は、かなり複雑なアルゴリズムになる可能性があります。ノード内のすべての計算は、その子ノードの値のみに依存するため、下から上に計算を行っています。ノードタイプごとに、値は子ノードのさまざまな値によって異なります。私は主にルートノードの5つの値に興味があります。これらは、cの他のすべてのノードのすべての値に依存します。これはすべて正常に機能しています。ノードは1つまたは2つの子ノードしか持つことができず、ツリーは通常5レベルより深くはありません。
一部のノードタイプには、許容範囲があります。いくつかの値は重要ではないことを意味します。この写真を参照してください。私はそれらにXXのマークを付けました。場合によっては、C = XX * Aのように、いくつかの値が関係していることもあります。現在、これらの値はいくつかのデフォルト値に設定されています。開始値によっては、ニュートン法のようなアルゴリズムの複数の可能な解のように、複雑な関係が存在する場合もあります。
これで、ルートノードの値に適用できる評価があります。ツリーの奥深くにあるXX値を調整して、この評価を最適化したいと思います。各ノード内の計算は多くの可能な式の範囲であり、許容誤差は多くの可能なパターンの1つである可能性があるため、式を理解することはできませんが、非常に柔軟なアルゴリズムが必要になります。私はそのようなアルゴリズムを知りません。誰かアイデアがありますか?
/編集:明確にするために、ツリー内のいくつの値が解放されるかは不明です。XXは1つだけではなく、いくつでも存在する可能性があるため(最大10と思います)、最初のステップはこれらの値を特定することです。また、時間枠内に生成された多くのツリーでこれを実行するので、速度も重要ではありません。ありがとう:)