cspsat.hooks module

新規関数と新規制約に対応するためのフック関数を提供.

cspsat.hooks.defaultFunctionHook(function, encoder)[ソース]

新規関数に対応するためのフックとしてデフォールトで設定されている関数. 以下に対応している.

  • ["div", X, n]

  • ["mod", X, n]

  • ["abs", X]

  • ["min", X1, ..., Xn]

  • ["max", X1, ..., Xn]

  • ["if", A, X, Y]

パラメータ:
  • function (list) -- 制約充足問題中の式.

  • encoder (Encoder) -- Encoderインスタンス.

戻り値:

引数の function そのまま,または function を変換した式.

cspsat.hooks.defaultConstraintHook(constraint, encoder)[ソース]

新規制約に対応するためのフックとしてデフォールトで設定されている関数. 以下に対応している.

  • ["alldifferent", X1, ..., Xn]

  • ["lexCmp", cmp, [X1,...Xn], [Y1,...,Yn]] (cmpは"==", "!=", "<=", "<", ">=", ">")

  • ["mulCmp", cmp, X, Y, Z] (cmpは"==", "!=", "<=", "<", ">=", ">")

  • ["powCmp", cmp, X, n, Z] (cmpは"==", "!=", "<=", "<", ">=", ">")

  • ["bits", [X1,...Xn], X]

  • ["bit", X, i]

パラメータ:
  • constraint (list) -- 制約充足問題中の制約.

  • encoder (Encoder) -- Encoderインスタンス.

戻り値:

引数の constraint そのまま,または constraint を変換した制約.