我试图解决基于任意无上下文语法的CSP(约束 - 满意度问题)。一个简单的例子:假设我们有一个无上下文语法,其中包含以下生产规则:S-> A,S-> B,S-> AB,A-> Aa,A-> ; a,A-> aa,B-> Bb,B-> b,B-> bb。
现在我正在寻找一个使用特定(子序列)生产规则的单词。例如:
"B->b" must be used 3 times in the whole derivation-sequence
If "S->AB" is used, it must be followed by "B->Bb"
If "S->Aa" is used, it must directly be followed by "A->a"
我知道这个问题是一个CSP,但我找不到一个如何解决这个问题的具体算法。任何想法,哪些(具体)算法可以使用?此外,我正在考虑正确的数据结构。我应该使用n树还是数组(CYK-Table)?