1

Microsoft Solver Foundation と F# を使用して、Graph Coloring 問題のソリューションを実装しています。最近、次のドキュメントを見つけました。

http://msdn.microsoft.com/en-us/library/ff826354(v=vs.93).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

これは、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」を使うのはかなり不便です。私の問題をより良く解決する方法はありますか?

4

1 に答える 1