特定の関数 F を最大化し、座標を返す小さなクラスをコーディングしています。たとえば、以下の 1 次元フィットネス関数を最大化する場合、現在次のようにしています。
using System;
public static class Program
{
public static double F(double x)
{
// for example
return Math.Exp(0.4 * Math.Pow(x - 0.4, 2) - 0.08 * Math.Pow(x, 4));
}
static void Main(string[] args)
{
Metaheutistic Solve = new Metaheutistic;
Solve.Maximize(Mu, Lambda, Theta);
}
}
クラス Metaheutistic のメソッド「Maximize」には、すべての作業を行うアルゴリズムが含まれています。私の問題は、このアルゴリズムがフィットネス関数がどのように見えるかを知らないクラスにあることです。
私は C# が初めてで、ここでベンダーに行ったことがあれば、それを正しく行うためにもう一度やり直しても構わないと思っています。ただし、Solver クラスをフィットネス関数から分離しておく必要があります。
どうもありがとう。*「合格」が探している正しい用語かどうかはわかりません