現在、離散変数の信念伝播を実装しています。
メッセージは関数です。新しい関数を作成するには、積と和を使用してそれらを組み合わせる必要があります。
現在、デリゲートを使用して基本的な実装を行っていますが、これを処理するためのより良い方法があるかどうかを知りたいです。また、デリゲートを使用してこれがどのようにスケーリングされるかについても懸念しています。
これが私の実装の例です:
public Func<double, double> ProductFunc(List<Func<double, double>> messages)
{
// Construct the product of the message functions
Func<double, double> productFunc = delegate(double x)
{
double productValue = 1.0;
foreach(Func<double, double> message in messages)
{
productValue *= message(x);
}
return productValue;
};
return productFunc;
}
これを達成するためのより効果的な方法はありますか?