Sto pensando al seguente problema: voglio trovare un'espressione regolare che corrisponda a un determinato insieme di stringhe (ad esempio indirizzi e-mail validi) e non corrisponda ad altri (indirizzi e-mail non validi).
Supponiamo che per espressione regolare intendiamo una macchina a stati finiti ben definita, non ho familiarità con la terminologia esatta, ma concordiamo su una classe di espressioni consentite.
Invece di creare manualmente l'espressione, voglio dargli una serie di esempi positivi e una serie di esempi negativi.
Dovrebbe quindi venire con un'espressione che corrisponda a +, respinga - ed è minima in un certo senso ben definito (numero di stati negli automi?).
Le mie domande sono:
- È stato considerato questo problema, come può essere definito in modo più concreto e può essere risolto in modo efficiente? Possiamo risolverlo in tempo polinomiale? NP è completo, possiamo approssimarlo in qualche modo? Per quali classi di espressioni avrebbe funzionato? Gradirei qualsiasi puntatore a libri di testo, articoli o simili che trattano questo argomento.
- Ciò è in qualche modo collegato alla complessità di Kolmogorov?
- Questo è in qualche modo legato all'apprendimento? Se l'espressione regolare è coerente con i miei esempi, in quanto è minima, possiamo dire qualcosa sul suo potere di generalizzazione su esempi ancora invisibili? Quale criterio per la minimalità sarebbe più adatto a questo? Quale sarebbe più efficiente? Questo ha qualche connessione con l'apprendimento automatico? Ancora una volta, qualsiasi puntatore sarebbe utile ...
Ci scusiamo per la domanda disordinata ... Indicami la giusta direzione per capirlo. Grazie !