Microsoft Solver Foundation と F# を使用して、Graph Coloring 問題のソリューションを実装しています。最近、次のドキュメントを見つけました。
これは、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」を使うのはかなり不便です。私の問題をより良く解決する方法はありますか?