Todas as linguagens livres de contexto e regulares são eficientemente decidíveis?

12

Me deparei com esta figura que mostra que linguagens regulares e sem contexto são subconjuntos (apropriados) de problemas eficientes (supostamente ). Entendo perfeitamente que problemas eficientes são um subconjunto de todos os problemas decidíveis, porque podemos resolvê-los, mas isso pode levar muito tempo.P

Por que todas as linguagens regulares e sem contexto são decididas com eficiência? Significa resolvê-los não vai demorar muito tempo (quero dizer, sabemos sem mais contexto)?

insira a descrição da imagem aqui

Gigili
fonte
3
Por curiosidade, onde você encontrou essa figura? Pode ajudar a ter um contexto para explicar, já que “eficiente” não é uma noção formal e pessoas diferentes podem usá-la para significar coisas diferentes.
Gilles 'SO- stop being evil'
2
Se "eficiente" significa " " (como é comum), "eficiente" não significa "não muito tempo", pois os polinômios também produzem valores enormes. Observe que um resultado básico da complexidade é que existem infinitas seqüências de problemas, cada uma adequadamente mais fácil que a seguinte. Isso mantém dentro e fora do . PPP
Raphael
@ Rafael: Neste contexto, eficiente é uma classe de idiomas que são decidíveis em tempo polinomial. Eu usei "poderia levar muito tempo" para problemas decidíveis, em vez de indecidíveis, para os quais não conseguimos encontrar soluções em um período finito de tempo.
Gigili 13/03/12
a forma técnica correta de dizer isto é que determinar se w∈L onde w é uma palavra e L é uma linguagem está em P. ie / aka "reconhecimento da linguagem"
vzn

Respostas:

15

A associação regular ao idioma pode ser decidida em tempo, simulando o DFA (mínimo) do idioma (que foi pré-computado).O(n)

A associação de idioma livre de contexto pode ser decidida em pelo algoritmo CYK .O(n3)

Existem idiomas decidíveis que não estão em , tais como aqueles em E X P T I M EP .PEXPTEuMEP

Dave Clarke
fonte
2
Você pode mencionar o algoritmo de multiplicação de matrizes para gramamrs sem contexto que possui um tempo de execução melhor e que esse algoritmo funciona de maneira muito eficiente (linear) em praticamente qualquer gramática prática sem contexto: sciencedirect.com/science/article/pii / 030439759190180A
Alex ten Brink
@AlextenBrink Acho que essa pergunta não exige granularidade mais fina do que "polinomial ou não".
Raphael
1
O(n)
1
De fato, para idiomas comuns, você nem precisa explicitamente de autômatos determinísticos. Você simula todos os cálculos em paralelo, acompanhando todos os estados dessa maneira, imitando a construção do conjunto de potências.
Hendrik Jan
1
@ Dave: linear no comprimento da string de entrada, para uma linguagem regular fixa, como as outras complexidades apresentadas aqui.
Hendrik Jan
1

Refinamento / "impressão fina" na resposta por DC: todas as CFLs na forma de Chomsky Normal Form podem ser analisadas com eficiência com o algoritmo CYK e todas as CFLs podem ser convertidas em CNF. No entanto, a conversão de uma CFL arbitrária para CNF pode levar um espaço exponencial na pior das hipóteses, dependendo de alguns algoritmos. (Eu não tenho conhecimento de um algoritmo que a conversão garantias P-tempo aqui, é ninguém? Deve-se considerar todos / piores casos de ponta, tais como lâmpadas fluorescentes compactas não deterministas ou mais ambíguas .) Wikipedia afirma na seção CNF Ordem de transformações

|G|222|G|

Portanto, parece que pode existir CFLs que não sejam analisáveis ​​com eficiência. A maioria das linguagens de programação é eficientemente conversível em CNF (ou talvez definida principalmente em CNF ou quase CNF), portanto, a análise CFL para linguagens "típicas" é "praticamente" em P. Há provavelmente alguma pesquisa moderna sobre essa complexidade de pior caso (mas não foi encontre artigos recentes sobre pesquisa superficial). Por exemplo, este trabalho de pesquisa mais antigo (1973) de Greibach também parece indicar que o pior desempenho pode não ser limitado por P. ver, por exemplo.

vzn
fonte