Estou pensando no seguinte problema: Quero encontrar uma expressão regular que corresponda a um conjunto específico de cadeias de caracteres (por exemplo, endereços de email válidos) e não a outros (endereços de email inválidos).
Suponha que por expressão regular queremos dizer alguma máquina de estado finito bem definida, que eu não conheço a terminologia exata, mas vamos concordar com alguma classe de expressões permitidas.
Em vez de criar manualmente a expressão, quero dar a ela um conjunto de exemplos positivos e um conjunto de exemplos negativos.
Em seguida, deve aparecer uma expressão que corresponda aos +, rejeite os - e é mínima em algum sentido bem definido (número de estados nos autômatos?).
Minhas perguntas são:
- Este problema foi considerado, como pode ser definido de alguma maneira mais concreta e pode ser resolvido com eficiência? Podemos resolvê-lo em tempo polinomial? É NP completo, podemos aproximar de alguma forma? Para quais classes de expressões isso funcionaria? Eu apreciaria qualquer indicação de livros, artigos ou outros que discutam esse tópico.
- Isso está relacionado de alguma forma à complexidade de Kolmogorov?
- Isso está relacionado de alguma forma ao aprendizado? Se a expressão regular é consistente com meus exemplos, em virtude de ser mínima, podemos dizer algo sobre seu poder de generalização em exemplos ainda não vistos? Que critério de minimalidade seria mais adequado para isso? Qual seria mais eficiente? Isso tem alguma conexão com o aprendizado de máquina? Novamente, qualquer ponteiro seria útil ...
Desculpe pela pergunta confusa ... Aponte-me na direção certa para descobrir isso. Obrigado !