CYK не дает ожидаемого ответа
Я реализовал алгоритм CYK для проверки входной строки с заданной грамматикой.
И если у меня есть следующая грамматика
S->AB|BC
A->BA|a
B->CC|b
C->AB|a
и если я проверю строку ab
алгоритм говорит, что это в грамматике. Но если у меня есть грамматика, такая как ниже,
S->ABC
A->a
B->i
C->h
и если я передам строку aih
алгоритм говорит, что это не в грамматике. Но, как вы можете видеть, ясно aih
создаст нетерминалы ABC
и они равны S
, Так что я запутался в этом. Пожалуйста, укажите мне, если я ошибаюсь.. Заранее спасибо.
1 2 3
1 A null null
2 B null
3 C
РЕДАКТИРОВАТЬ: выше показывает, как алгоритм строит слова. в (1,3) его ноль. так что это не в грамматике. Это проблема с моей грамматикой?