我目前正在为离散变量实施信念传播。
消息是函数。我需要能够使用产品和总和将它们组合起来以产生新的功能。
我目前有一个使用委托的基本实现,但我想知道是否有更好的方法来处理这个问题。我还担心这将如何使用代表进行扩展。
这是我的实现示例:
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;
}
有没有更有效的方法来实现这一目标?