無向マルチグラフ、つまり (G, E) ペアがあるとします。ここで、G はノードの有限集合であり、E はエッジの有限集合です。次の制約の下で、各ノードに単一の文字列値を割り当てるアルゴリズムを探しています。
1.
すべてのノードには、許容値を制限する一連の (空の可能性がある) 制約が与えられます。少なくとも次のタイプの値の制約をサポートしたいと思います。
- min-length(x) (値は指定された文字数以上の長さ)、
- max-length(x) (値は指定された文字数以下)、
- regexp(x) (値は指定された正規表現に準拠します)、
- 数値 (値は数字のみで構成されます)。
理想的には、将来的に新しいタイプの制約のサポートを追加できるようにする必要があります。
2.
エッジには次の 2 種類があります。
- 違う、
- 同じ、
関連するノードに異なる/同じ値を割り当てる必要があることを意味します(等しくない/等しい文字列を意味します)。
3.
最後に、すべてのノードに次のタイプの制約のセット (場合によっては空の) を割り当てることができます。
- 異なる-から(x),
- (x) に等しい、
つまり、指定されたノードには、指定された値とは異なるか等しい値が割り当てられる必要があります。
アルゴリズムが不一致を報告するか (そのような評価が存在しない場合)、基準を満たす評価のいずれか (理想的には小さいもの、つまり、割り当てられた値が少数の文字で構成されるもの) を返すことを期待します (そうでない場合)。 .
アルゴリズムの詳細な説明を提供してくれるとは思っていないことに注意してください。私を正しい軌道に乗せるために、あなたが提供できるヒントをいただければ幸いです。