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


13

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

Є L={www,w{0,1}|w|=|w|HamDist(w,w)>1} контексту?

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

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

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

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


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

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

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

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

Відповіді:


4

R={0101010}LRL={0a10b10c10db=n/2c=n/2a+d=n/2}L={0a10b10c10dbn/2cn/2a+dn/2}L={0a10b10c10db>n/2c>n/2a+d>n/2b,c,a+d<n/2}

3

b>n/2

c>n/2

a+d>n/2

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


RL{0a10b10c0c10d (n/2=a+b+c=c+d+1)[(a=c)(c=d)}b=n/2c=n/2a+d=n/2

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

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

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

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