Є {ww '| HamDist (w, w ')> 1} без контексту?


13

Після прочитання недавнього питання «Чи є додаток {www∣...} Контекстно-вільним?» ; Я згадав подібну проблему, яку я не зміг спростувати:

Є L={ww′∣w,w′∈{0,1}∗∧|w|=|w′|∧HamDist(w,w′)>1} контексту?

Тут ми вимагаємо, щоб дві струни відрізнялися щонайменше у двох положеннях (відстань Хеммінга має бути більше 1 ).

Це без контексту, якщо ми вимагаємо, щоб HamDist(w,w′)≥1 (тобто два рядки повинні просто бути різними).

Я підозрюю, що мова не є контекстною: якщо ми перетинаємо її з регулярними 0∗10∗10∗10∗ ми отримуємо випадки, коли КПК повинен “запам’ятати” дві позиції у зворотному порядку після досягнення половини рядка.

Оновлення: якщо перетинаємо L з регулярним R={0∗10∗10∗10∗} ми отримуємо контекстну мову, як показав domotorp у своїй відповіді; трохи складніший L∩R′ з R′={0∗10∗10∗10∗10∗10∗} (ще один 1 щоб “відстежувати”) все ще підказує, що L не повинен бути контекстним.


насправді простіше, оскільки саме слова не мають форми w w (перетинаються з R ′ ). L∩R′wwR′
— domotorp

@domotorp: правильно! змінено на непарний фіксований с (якщо ваша відповідь не могла бути адаптована також до { ( 0 ∗ 1 0 ∗ ) k } , для будь-якого фіксованого непарного k )1{(0∗10∗)k}k
— Marzio De Biasi

Останнє зауваження: це не допомагає починати з перших нулів, оскільки без контекстні мови закриті всілякі циклічні зміни. Ви можете просто натиснути їх на стек, позначити останній спеціальним символом, виконати решту алгоритму, роблячи вигляд, що стек там починається, а в кінці випорожніть його. (Тут використовуються -переходи, але це також просто, якщо такі КПК рівноцінні тим, що не мають.)ϵ
— domotorp

може бути простіше подумати про алфавіт {0,1,2} і розглянути рядки з точно двома 1 і двома. Це не в вашій мові, якщо відстань між 1s і відстань між 2s є n n.
— Каве

Відповіді:


4

R={0∗10∗10∗10∗∣}LR∖L={0a10b10c10d∣b=n/2∨c=n/2∨a+d=n/2}L={0a10b10c10d∣b≠n/2∧c≠n/2∧a+d≠n/2}L={0a10b10c10d∣b>n/2∨c>n/2∨a+d>n/2∨b,c,a+d<n/2}

3

b>n/2

c>n/2

a+d>n/2

b,c,a+d<n/2a+n/2


R∖L{0a10b10c′0c″10d∣ (n/2=a+b+c′=c″+d+1)∧[(a=c″)∨(c′=d)}b=n/2∨c=n/2∨a+d=n/2

R⊂L - це те, що HamDist - не більше . Це відбувається саме в тому випадку, якщо два з трьох матчів 1, тобто один знаходиться в тому ж положенні в першому таймі, як і другий у другому таймі. Якщо ці два 1 є першими та другими 1, тоді ми отримуємо , якщо вони є другими та третьмими 1, ми отримуємо , і якщо вони є першими та третьмими, ми отримуємо , або рівнозначно, (де я трохи обманюю деяку константу 's). 1b=n/2c=n/2b+c=n/2a+d=n/2±1
— domotorp

Чи відповідає це на повне запитання?
— Michaël Cadilhac

@domotorp: Ок, я зрозумів, дякую! Інший сумнів: з (що нормально) ви пишете але це еквівалентно: ? ( умоваL∩R={...b≠n/2∧c≠n/2...}L∩R={...b>n/2∨c>n/2∨b,c<n/2}a + dL∩R={...(b<n/2∨b>n/2)∧(c<n/2∨c>n/2)}a+d
— Marzio De Biasi

@Michael: No. 
— domotorp
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.