Пусть . Язык Говорят , обладает свойством «анти-палиндром» , если для каждой строки , что является палиндром, . Кроме того, для каждой строки которая не является палиндромом, либо либо , но не оба (!) (Исключая или).L ⊆ Σ ∗ w w ∉ L u u ∈ L R e v e r s e ( u ) ∈ L
Я понимаю свойство антипалиндрома, но не смог найти ни одного языка с таким свойством. Ближайший один я смог найти , но он не имеет исключительное или часть ... то есть, например, как и находятся в .01 10 L
Может ли кто-нибудь дать мне пример языка, который обладает этим свойством? Или, может быть, даже больше, чем один пример, потому что я не вижу, какие ограничения это накладывает на язык. (Должен ли он быть нерегулярным? Context Free? Или даже не в ? И т. Д.)
formal-languages
Марик С.
источник
источник
Ответы:
Одним из примеров будет .L={x | binary(x)<binary(xR),x∈[0,1]∗}
И еще один пример .L′={x | binary(x)>binary(xR),x∈[0,1]∗}
Идея в том, что если вы создаете правило для выбора только одного из них. Вам нужно выбрать правило так, чтобы палиндромы были отклонены ( f ( x ) < f ( x R ) , для палиндромов у вас должно быть f ( x ) = f ( x R ) ). Вы также можете изменить алфавит, я взял двоичный алфавит, чтобы получить быстрый ответ.x≠xR f(x)<f(xR) f(x)=f(xR)
и L ' выше не являются регулярными. И каждыйантипалиндромныйязык будет нерегулярным и может быть таким же плохим, как не-RE язык. Пример неразрешимого языка: L = { x | такой, что b i n a r y ( x ) < b i n a r y ( x R ), если оба x и x R ∉ Halt или оба x и x R ∈ Halt, в противном случае, еслиL L′ L={x | binary(x)<binary(xR) x xR ∉ x xR ∈ Halt }x∈ }
Клаус Дрегер объяснил в комментарии ниже, что антипалиндромный язык, приведенный в начале ответа, не зависит от контекста:L={x0y1xR | x,y∈{0,1}∗}
источник
О генерации нескольких примеров:
Опираясь на ответ @shreesh, мы можем доказать, что каждый антипалиндромный язык должен иметь вид длянекоторогострогого полного упорядочения < .
Действительно, для любого антипалиндрома мы можем определить ассоциированный < следующим образом. Мы начнем с любого перечисления x 0 , x 1 , ... из { 0 , 1 } ∗ , где каждое слово встречается ровно один раз. Затем мы изменяем перечисление: для каждой пары непалиндромов x , x R мы меняем их положение так, чтобы один, принадлежащий L, появлялся перед другим. Новое перечисление индуцирует полный порядок < удовлетворяющий ( ∗ ) .L < Икс0, х1, ... {0,1}∗ x,xR L < (∗)
То, что каждый определенный как ( ∗ ), не является палиндромом, тривиально, поэтому ( ∗ ) является полной характеристикой непалиндромных языков.L (∗) (∗)
Обращаясь к исходному вопросу, мы теперь знаем, что мы можем получить несколько примеров антипалиндромных языков , создав заказы < . Мы также знаем, что этим мы не ограничиваемся подклассом языков, теряя общность.L <
По поводу вопроса «могут ли эти языки быть регулярными?»:
Чтобы доказать, что любой антипалиндром нерегулярен, предположим, что он является регулярным.L
Из последнего утверждения мы можем вывести противоречие с помощью накачки. (Смотрите, например, здесь для решения)
источник
Для чего стоит эта простая грамматика без контекста для одного антипалиндромного языка:
(Фактически, это антипалиндромный язык, предложенный @shreesh, использующий лексикографическое сравнение для оператора меньше чем.)
источник