Можно ли получить строку в этой системе перезаписи?


11

Переписывание системы представляет собой набор правил в виде . Если мы применим это правило к строке мы заменим любую подстроку в подстрокой и наоборот.A↔ВвесAвесВ

Учитывая начальную строку мы можем получить в системе по следующим правилам:AAAВВВAAВ

  • A↔ВA
  • ВAВA↔AAВВ
  • AAA↔AВ
  • ВA↔AВ

Есть ли общий алгоритм для этого?


Буду признателен, если вы добавите больше тегов к этому вопросу или измените набор правил, чтобы он выглядел круче.
— Даниил

1
@ JD Я думаю, что в целом эта проблема переписывания не может быть решена, потому что вы можете смоделировать машину Тьюринга с такой системой переписывания и проблемой деривации == проблема остановки в TM
— Даниил

@ JD ах, это имеет смысл, я должен прочитать больше об этом, спасибо!
— Даниил

@Daniil и будущие читатели: неразрешимая проблема - это проблема почтовой корреспонденции .
— Джмад

По сути это марковская идея алгоритма.
— vonbrand

Ответы:


7

Обратите внимание, что соотношение числа s не меняется. Поскольку одна строка содержит нечетное число а другая четная, они недоступны.AA

Я считаю, что в целом (для произвольного набора правил, а не для вашего конкретного примера) это, вероятно, будет неразрешимой проблемой. Если преобразования односторонние (то есть правила вида ), то это так, например, см .: Система тегов .A→ВA


1
Да, IIRC, это неразрешимо, потому что вы можете смоделировать TM с определенным набором правил переписывания.
— Даниил
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.