Чи є мова пар слів однакової довжини, відстань колування яких 2 або більше без контексту?


26

Чи є наступним мовний контекст вільним?

L={uxvyu,v,x,y{0,1}+,|u|=|v|,uv,|x|=|y|,xy}

Як вказує sdcvvc, слово на цій мові також можна описати як сполучення двох слів однакової довжини, відстань колування яких 2 або більше.

Я думаю, що це не контекстно, але мені важко це довести. Я спробував перетинати цю мову зі звичайною мовою (наприклад, наприклад), тоді використовую качаючу лему та \ або гомоморфізми, але я завжди отримую занадто складну мову для характеристики та написання вниз. 0101


Ви спробували накачати рядок 0u1x1u0x ?
Pål GD

Так, але мені не вдалося викачати цей рядок з мови (це не означає, що це неможливо, просто що я не зміг це зробити).
Robert777

1
@ PålGD, можливо, вам знадобиться спосіб "позначити" шматки, як-от 1u01x01u01x0
vonbrand

8
Цю мову можна записати як {uv:|u|=|v|,d(u,v)2} де d - відстань Хеммінга. Зауважте, що якщо ми замінимо 2 на 1, це контекстно ( cs.stackexchange.com/questions/307 ), але трюк, який використовується там, не буде працювати. Особисто я думаю, що це не контекстно.
sdcvvc

1
@sdcvvc: Ви праві, один розділяє на u x, так що один з різних бітів знаходиться в u ′, а інший у x . Я стою виправлений. uuxux
Андраш Саламон

Відповіді:


7

Примітка [2019-07-30] Доказ невірний ... питання складніше, ніж звучить.

Після невдалої спроби тут інша ідея.

Якщо перетинаємо L із звичайною мовою Lreg=0101010 отримаємо мову CF.

Можливо, у нас буде більше удачі, якщо ми будемо використовувати Lreg=010101010 (рядок із рівними 4 1s).

Нехай L1=LLreg , неофіційно wL1 якщо його можна розділити на дві половини, так що одна половина містить точно {0,1,3,4} 1s або обидві половини містять дві 1 с але їхні позиції не відповідають.

Припустимо, що L1 є CF і нехай G є його граматикою в нормальному вигляді Хомського, і нехай

w=uv=0a10b10c10d10eL1

У нас |u|=|v|(рівна довжина) і d(u,v)2

Якщо ми обмежимо нашу увагу способами, якими можна генерувати чотири 1s w нас є три випадки, показані у верхній частині малюнка 1. Центральна частина фігури 1 показує перший випадок (але інші схожі) .

введіть тут опис зображення
Рисунок 1 (повну картинку можна завантажити тут )

Якщо ми виберемо a=e,c=2a і b,da ми побачимо, що нулі між двома парами 1s повинні бути незалежно перекачувані (червоні вузли на рисунку): зокрема, для досить великих ba , ми отримуємо дублікат нетермінального вузла на внутрішньому піддереві (вузол X на фігурі 2) або повторне підряд в шляху до першого або другого 1 (вузол Y на фігурі 2). Зауважте, що малюнок 2 трохи спрощений: між двома X s, а також між двома Ys ( Y →) може бути більше нетермінальних вузлів .Y...Zi...Y але приZi що виробляє лише 0s праворуч від першого 1).

введіть тут опис зображення
Малюнок 2

Таким чином, ми можемо зафіксувати довільне a=e=k,c=2a , а потім вибрати досить велике b щоб отримати незалежно перекачуваний вузол на послідовності нулів між першим і другим 1 . Для послідовності нулів між третьою та четвертою 1 ми можемо вибрати d=b!+b .
Але 0b є незалежно накачуваним, тому існує pb підкачана підрядка y , тобто така, що b=xyz,|y|=p,|x|0,|z|0 іxyiz=b!+b . Рядок, який ми отримуємо, це:

w=0k10b!+b102k10b!+b10k

але wL1 . Таким чином, L1 не є CF і, нарешті, L не є CF.

Якщо доказ правильний (???), його можна поширити на всі мови Lk={uv:|u|=|v|,d(u,v)k},k2


Я боюся, що щедрість закінчиться до того, як ми дійсно зможемо перевірити цей доказ, тому, якщо будь-яка різка інформація не з’явиться протягом наступних 4 годин, це отримає бали за найкращу спробу поки що.
jmite

@jmite: не хвилюйтеся, є велика ймовірність, що це неправильна спроба, як попередня (яка тривала близько 30 хвилин, перш ніж виявити тривіальну помилку) :-) :-)
Vor

Чому відмінність справи? Гілки в граматиці не мають відношення до половинок слова. Але я думаю, це не має значення; якщо докази спрацьовують, це розмежування справи не потрібно. Дивлячись на припущену граматику та використовувати доказ лемми накачки замість самої леми, це приємний трюк (слід робити це частіше). У мене є одне (справжнє) занепокоєння: якщо накачати підрядку , ви отримаєте 0 b + p ( i - 1 ) ; Я не бачу, як ти дістаєшся до b + b ! . Не думайте, що це може нашкодити доказу, але краще перевірте. Крім того, ви можете виправити деякі позначення (та друкарські помилки).0b0b+p(i1)b+b!
Рафаель

1
@Raphael: дякую за коментарі. Можливо, я помиляюся, але якщо ви виберете як цільову довжину то для кожної довжини накачування p , рядок 0 b можна розкласти на 0 x y z , ( | x y z | = b , | y | = p b ) і можна перекачати до x y i z = b + b ! насправді у вашому прикладі р, безумовно, ділить b !b+b!p0b0xyz,(|xyz|=b,|y|=pb)xyiz=b+b!b!, значить, є для якого p ( i - 1 ) = b ! , але початкова довжина рядка дорівнює b , тому загальна довжина накачаної дорівнює | x y ( i - 1 ) z | = b + b ! . Я пам’ятаю це з пари вправ, в яких використовується лемма Огдена… тепер я ще раз перевірю їх. (i1)p(i1)=b!b|xy(i1)z|=b+b!
Vor

@Raphael: ... я ніде не знайшов доказів, а лише документ Заха Томашевського, який доводить, що доповненням є CF (див. Питання ), тому, можливо, це новий результат (хоч і просто); і теорема стилю накачки може бути отримана для мов із рядками, що містять кінцеве число певного символу та підрядів довільної довжини між ними. Ldup={ww}
Vor

2

Після 2 невдалих спроб, які були спростовані @Hendrik Jan (спасибі), ось ще одна, яка не має успіху. @Vor знайшов приклад детермінованої мови CF, де застосовуватиметься та сама конструкція, якщо вона правильна. Це дозволило виявити помилку в прив’язці рядка у застосуванні леми. Сама лема, здається, не винна. Це очевидно занадто спрощена конструкція. Детальніше дивіться в коментарях.y


Мова не є контекстом.L={uxvyu,v,x,y{0,1}{ϵ} , u∣=∣v , uv , x∣=∣y , xy }

Корисно мати на увазі характеристику де d - відстань Хеммінга, запропонована @sdcvvc. Що потрібно подумати - це дві обрані позиції в кожній половині рядка, так що відповідні символи відрізняються.L={uv:|u|=|v|,d(u,v)2}

Тоді ви вважаєте рядок таким, що i < j і i + j є парним. Це чітко в мові L, вирізаючи u і x в будь-якому місці між двома 1. Ми хочемо перекачати цей рядок у першій частині між 1-ю, щоб вона стала 10 j 10 j, що, як передбачається, не має мови.10i10ji<ji+jux10j10j

Спочатку ми намагаємось використовувати лемму Огдена , яка нагадує лемму накачування, але застосовується до або більш відомих символів, позначених на рядку, p - довжина накачування для позначених символів (але лема може накачувати більше, тому що вона також може накачати немарковані символи). Накачка позначеної довжини p залежить лише від мови. Ця спроба зазнає невдачі, але провал стане натяком.ppp

Потім ми можемо вибрати і позначимо символи на першій послідовності i 0. Ми знаємо, що жоден з двох 1-х не буде в насосі, тому що він може викачати один раз (показник 0) замість закачування. І викачування 1-х виведе нас з мови.i=pi

Однак ми можемо накачати по обидва боки другого 1 так само швидко або навіть швидше з правого боку, щоб другий 1 ніколи не потрапляв через середину струни. Також лемма Огдена не встановлює верхньої межі розміру того, що накачується, так що неможливо організувати перекачування, щоб отримати найправіший 1 рівно через середину струни.

Ми використовуємо модифіковану версію леми, тут називається лема Неша, яка може впоратися з цими труднощами.

uvvvuv

Lp>0q>0wpLpwww=uxyzvuxyzv

  1. xz
  2. xyzp
  3. x^y^z^
    1. x^xy^yz^z
    2. 1≤∣x^z^∣≤q1≤∣y^∣≤q
    3. uxjx^iy^z^izjvLi0j0

yxzx^z^y^qxjzjj0j=1 спростити облік при застосуванні леми.

p2qi=p+2qi=p+qz^

jjihqj=i+h

d[1,q]hkk10j10j

.

Я думаю, що я ніколи не побачу
струнку милу, як дерево.
Бо якщо у нього немає розбору,
Рядок - це нічим, але фарс


Однак зауважте, що пропуск у другу половину читає стек у зворотному порядку. Це, мабуть, означає, що дві позиції знаходяться в одному положенні в обох половинах, але в зворотному?
Хендрик Ян

Ви маєте рацію ... Я похитнувся ... тепер я знаю, що нудило мене в потилиці.
бабу

Я визнав аргумент (бо не міг змусити його працювати, коли спробував себе).
Гендрик Ян

aibjckaibjck

@HendrikJan Чи я знову погукав? (BTW, спасибі за те, що обговорили)
babou

-1

LSAXBYBYAXA00A00A11A01A1B10B00B11B01B1X00X00X11X01X1Y10Y00Y11Y01Y1


4
Це неправильно; Ви не можете захистити, щоб довжина AX була такою ж, як BY. Наприклад, ваша граматика породжує S -> AXBY -> A011 -> 0A1011 -> 001011, що не є мовою оригіналу. Також ваші символи A і X породжують однакову мову, однакову для B і Y; їх можна об'єднати.
sdcvvc
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.