我正在使用 Microsoft Solver Foundation 和 F# 实现图形着色问题的解决方案。最近我发现了这段文档:
它解释了如何使用 C# 实现这一点。我试图翻译这个,但添加约束存在问题。在 C# 中,这很简单:
model.AddConstraints("borders",
be != de, be != fr, be != nl, de != fr, de != nl);
然而,对 F# 的文字翻译不起作用:
// WRONG !!
model.AddConstraints("borders",
be <> de, be <> fr, be <> nl, de <> fr, de <> nl);
过了一会儿,我在 Term 类中找到了一个函数,可以用它来代替:
model.AddConstraints("borders1", Term.op_Inequality(be, de)) |> ignore
但是,使用这个“Term.op_Inequality”非常不方便。有没有办法更好地解决我的问题?