Muszę określić, czy język (na przykład L = {a^nb^mc^s | 0 < = n < = m < = s}) jest regularny, bezkontekstowy, rekursywny, rekurencyjnie wyliczalny lub żaden z nich .Jak ustalić, czy język jest rekurencyjny czy rekursywnie przeliczalny?
Wiem, jak ustalić, czy dany język jest regularny (znaleźć DFA lub wyrażenie regularne, które działa), czy bezkontekstowy (znajdź gramatykę PDA lub gramatykę bezkontekstową, która działa); Wiem, że język rekursywny ma maszynę Turinga, która zawsze zatrzymuje się i że rekursywnie przeliczalny język ma maszynę Turinga, która nie może się zatrzymać.
Pytanie brzmi: czy istnieje szybkie kryterium do określenia, czy dany język jest rekursywny, czy rekursywnie przeliczalny, czy też nie? Na przykład, nie muszę budować PDA, aby zrozumieć, że język jest pozbawiony kontekstu, nie widzę go przez to, że wymaga jednego stosu; czy istnieje podobne szybkie podejście do problemu (który, mam nadzieję, oszczędza kłopotów z budową maszyny Turinga)?
To na pewno nie jest odpowiedzią miałem nadzieję :(chociaż to wyjaśnia kilka wątpliwości, które miałem, więc dziękuję! Tak więc, gdybyś musiał rozwiązać przykład, który napisałem na początku, jak byś postąpił (wiedząc, że nie jest on wolny od kontekstu)? – Jacob
@ Jacob- Are jesteś pewien, że to nie jest wolne od kontekstu? – templatetypedef
Całkiem pewnie, tak .. Pompujący lemat powinien to wykluczyć, także nie mogę znaleźć gramatyki, która by działała. – Jacob