Т. к. этот пример утраивает только слова из символов

, на

он просто почти сразу завершится:

. А ваш алгоритм записывается практически как есть, надо только учесть, что «правила» вида

— это наборы правил

, где

заменяется разными символами из

. Так что ваш алгоритм там кодируется как
Код:
Aa -> aBaCaA
Ab -> bBbCbA
Ac -> cBcCcA
Baa -> aBa
Bba -> aBb
Bca -> aBc
Bab -> bBa
Bbb -> bBb
Bcb -> bBc
Bac -> cBa
Bbc -> cBb
Bcc -> cBc
Caa -> aCa
Cba -> aCb
Cca -> aCc
Cab -> bCa
Cbb -> bCb
Ccb -> bCc
Cac -> cCa
Cbc -> cCb
Ccc -> cCc
B ->
C ->
A =>
-> A
и это не влезает в ограничения эмулятора.

(Вообще не понимаю, зачем такие сильные — 20 правил и 500 шагов.) Если выкинуть все правила, содержащие

, то для строк в алфавите

работает.