Formalizzare i problemi con un linguaggio. La FOL (Logica del primo ordine) é utilizzata in AI e in altri campi.. nei nostri esercizi, per definire linguaggi, utilizzeremo logiche più ristrette di FOL:
- MFO (Logica Monadica del Prim'ordine)= come FOL ma con quantificatori solo su variabili.
- MSO (Logica Monadica del Second'ordine)=con quantificatori anche sui predicati.
- come logica proposizionale ma con variabili che rappresentano posizioni all'interno della stringa
- in genere nei nostri esercizi possiamo utilizzare abbreviazioni. Esempi di abbreviazioni: (succ(x,y) per dire y=x+1)(last(x))
- strettamente meno potente degli FSA
- I linguaggi definiti da MFO non sono chiusi rispetto alla
$*$ di Kleen. Quindi diciamo che riconosce i cosidetti linguaggi star-free, cioè linguaggi definibili come unione, concatenazione,intersezione, complemento di linguaggi finiti.
MFO non sa riconoscere
Scrivere una formula di MFO che descrive parole in cui tra 2 simboli
Scrivere una formula di MFO che descrive parole in cui i simboli al massimo compaiono una volta sola.
- identico a MFO ma con la possibilità di quantificare anche i predicati.
- potente tanto quanto gli FSA e quindi le Grammatiche Regolari
E' possibile utilizzare la logica anche in maniera ricorsiva, l'importante ovviamente è che non vada in loop all'infinito.
La notazione di Hoare serve per specificare opportune pre-condizioni e post-condizioni per un programma. (In questo caso usiamo FOL).
L'insieme delle funzioni calcolabili coincide con quello delle funzioni calcolabili da una macchina di Turing.
Nessun algoritmo, indipendentemente dallo strumento utilizzato per l'implementazione, può risolvere un problema che non sia risolvibile dalla Macchina di Touring.
In 80 anni non abbiamo trovato controesempi di questa tesi (che non ha dimostrazione).
NB: esistono problemi non risolvibili algoritmicamente.
Enumerazione algoritmica: un algoritmo che mi trova tutte le corrispondenze biunivoche tra un certo insieme e l'insieme
La MTU è una MT che può emulare qualsiasi altra MT. Essendo le MT finite, e fissato il # stati e il # nastri , ricevendo il numero corrispondente della MT, la MTU può identificare la corrispondente funzione di transizione e quindi emulare la