# Intelligenza artificiale/Linguaggi formali

Intelligenza artificiale
Copertina Tutti i moduli · Sviluppo
* DefinizioneIntelligenza artificiale/Definizione
* StoriaIntelligenza artificiale/Storia
* FilosofiaIntelligenza artificiale/Filosofia
** Test di TuringIntelligenza artificiale/Test di Turing
** Stanza cineseIntelligenza artificiale/Stanza cinese
* Rappresentazione della conoscenzaIntelligenza artificiale/Rappresentazione della conoscenza
** Linguaggi formaliIntelligenza artificiale/Linguaggi formali
** Alberi di decisioneIntelligenza artificiale/Alberi di decisione
* Apprendimento automaticoIntelligenza artificiale/Apprendimento automatico
** Apprendimento non supervisionatoIntelligenza artificiale/Apprendimento non supervisionato
*** ClusteringIntelligenza artificiale/Clustering
*** Regole di associazioneIntelligenza artificiale/Regole di associazione
** Apprendimento supervisionatoIntelligenza artificiale/Apprendimento supervisionato
*** Regole di decisioneIntelligenza artificiale/Regole di decisione
*** Sistemi espertiIntelligenza artificiale/Sistemi esperti
** Apprendimento con rinforzoIntelligenza artificiale/Apprendimento con rinforzo
*** AgenteIntelligenza artificiale/Agente
*** Reti neuraliIntelligenza artificiale/Reti neurali
*** Algoritmi geneticiIntelligenza artificiale/Algoritmi genetici
*** ClassificatoriIntelligenza artificiale/Classificatori
* Logica FuzzyIntelligenza artificiale/Fuzzy
* Problema di soddisfacimento di vincoliIntelligenza artificiale/Problema di soddisfacimento di vincoli
* ApplicazioniIntelligenza artificiale/Applicazioni
Modifica il sommario
Per rappresentare la conoscenza si può far uso dei linguaggi formali. Dal punto di vista matematico per linguaggio formale si intende un insieme di stringhe di lunghezza finita costruite sopra un alfabeto finito, cioè sopra un insieme finito di oggetti tendenzialmente semplici che vengono chiamati caratteri, simboli o lettere.
Di un linguaggio formale può far parte o meno la stringa muta o parola vuota, cioè la sequenza costituita da zero caratteri: questa spesso viene denotata come e, ε o λ: qui preferiamo usare μ.
Un linguaggio può essere finito o infinito in quanto non si pongono limiti alla lunghezza delle stringhe.
Per rappresentare la conoscenza quasi sempre si fa uso della logica del primo ordine dato che questa logica consente di costruire enunciati relativamente complessi che tramite le regole della logica possono essere analizzati per definire se rispetto alle premesse sono degli enunciati veri oppure no. Questa logica in sostanza permette di costruire dei risolutori automatici che analizzano gli enunciati e ne scartano quelli falsi senza bisogno dell'intervento umano.
I linguaggi formali risultano utili quando ci si trova a dover lavorare in un ambiente deterministico che possa essere descritto in modo agevole tramite enunciati logici. Agenti informatici che si muovono in un ambiente virtuale spesso si avvantaggiano di descrizioni dell'ambiente o delle sue regole effettuate tramite linguaggi formali. Invece ambienti non deterministici e dove si trova un elevato rumore di fondo come possono essere gli ambienti reali esplorati da robot mal si prestano all'utilizzo delle regole dato che una descrizione accurata del mondo sarebbe estremamente complessa e comunque incompleta. Inoltre il rumore di fondo insito in misure effettuate da sensori reali può rendere molto difficile la realizzazione di regole basate su logiche del primo ordine.