Po przeczytaniu ostatniego pytania „Czy uzupełnienie pozbawione kontekstu?” ; Przypomniałem sobie podobny problem, którego nie byłem w stanie odeprzeć:
Czy bez kontekstu?
Tutaj wymagamy, aby dwa struny różniły się co najmniej w dwóch pozycjach (odległość Hamminga musi być większa niż ).
Jest bezkontekstowy, jeśli wymagamy (tzn. Dwa ciągi muszą być po prostu różne).
Podejrzewam, że język nie jest pozbawiony kontekstu: jeśli przecinamy go ze zwykłymi , otrzymujemy przypadki, w których palmtop powinien „zapamiętać” dwie pozycje w odwrotnej kolejności po osiągnięciu połowy sznurka.
Aktualizacja: jeśli przecinamy ze zwykłym , otrzymujemy język bezkontekstowy, jak pokazuje domotorp w jego odpowiedzi; nieco bardziej złożone z (jeszcze aby „śledzić”) nadal sugeruje, że nie powinien być pozbawiony kontekstu.
źródło
Odpowiedzi:
Przecięcie z słowa o parzystości jest pozbawione kontekstu, ponieważ PDA może w pewien sposób zapamiętać dwie pozycje. Tak czy inaczej, niech najpierw zobaczyć, co ten język jest. Jego dopełnieniem jest . Dlatego . Możemy przepisać to jako .R={0∗10∗10∗10∗∣ } L R∖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}
Pierwsze przypadki można łatwo zweryfikować, podobnie jak czwarty.3
źródło