Intelligenza artificiale/Linguaggi formali
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.