Teoria automatica
Questa teoria fornisce modelli matematici che formalizzano il concetto di computer o algoritmo in modo sufficiente modo semplificato e generale in modo che possano essere analizzate le loro capacità e limitazioni. Alcuni di questi modelli svolgono un ruolo centrale in diverse applicazioni di informatica, compresa la lavorazione del testo, compilarers, design hardware e intelligenza artificiale.
Ci sono molti altri tipi di automi come accessori, Abaco, Automatici cellulari, Abaco macchine e macchine da stato astratta; Tuttavia, in tutti i casi è stato dimostrato che questi modelli non sono più generali della macchina di Turing, poiché la macchina di Turing ha la possibilità di simulare ciascuno di questi automi. Ciò si traduce nella macchina di Turing come modello di computer universale.
TEORYYDIT DIT
Questa teoria esplora i limiti della possibilità di risolvere i problemi attraverso gli algoritmi. Gran parte delle scienze computazionali sono dedicate alla risoluzione dei problemi algoritmici, in modo che la scoperta di problemi impossibili sia una grande sorpresa. La teoria della computabilità è utile per non provare algoritmicamente questi problemi, risparmiando così tempo e sforzi.
I problemi sono classificati in questa teoria in base al loro grado di impossibilità:
- Computables Sono quelli per i quali esiste un algoritmo che li risolve sempre quando c’è una soluzione ed è anche in grado di distinguere i casi che non ce l’hanno. Sono anche conosciuti come decisivi, risolubili o ricorsivi.
- Le semicomputerible sono quelle per le quali esiste un algoritmo in grado di trovare una soluzione se esiste, ma nessun algoritmo che determina quando la soluzione non esiste (Nel qual caso l’algoritmo per trovare la soluzione entrerebbe inserire un ciclo infinito). L’esempio classico per eccellenza è il problema della fermata. Questi problemi sono anche noti come elenco, in modo ricorsivamente enumerabile o riconoscibile, perché se sono elencati tutti i casi possibili del problema, è possibile riconoscere coloro che hanno una soluzione.
- Gli incomputabili sono quelli per i quali c’è Nessun algoritmo che può risolverli, indipendentemente da ciò che hanno o nessuna soluzione. L’esempio classico per eccellenza è il problema del coinvolgimento logico, che è quello di determinare quando una proposta logica è un teorema; Per questo problema non vi è alcun algoritmo che in tutti i casi può distinguere se una proposizione o una negazione è un teorema.
C’è una versione più generale di questa classificazione, in cui i problemi incomputabili sono suddivisi problemi più difficili di altri. Lo strumento principale per raggiungere queste classificazioni è il concetto di rientralità: un problema A {\ Displaystyle A}
è ridotto al problema B {\ Displaystyl b}
Se sotto il presupposto che è noto per risolvere il problema b {\ displaysty b}
è possibile risolvere il problema a {\ DisplayStyle A}
; Questo è indicato da A ≤ T B {\ DisplayStyle A \ Leq T} B
, e informalmente significa che il problema a {\ DisplayStyle A }
non è più difficile da risolvere rispetto al problema B {\ DisplayStyle B}
. Ad esempio, sotto il presupposto che una persona sa aggiungere, è molto facile insegnargli a moltiplicare facendo somme ripetute, in modo che moltiplicando sia ridotto da aggiungere.
teoria della complessità computataleditar
Anche quando un problema è calcolato, potrebbe non farlo è possibile risolverlo in pratica se è richiesta molta memoria o runtime. La teoria della complessità computazionale studia le esigenze della memoria, del tempo e delle altre risorse computazionali per risolvere i problemi; In questo modo è possibile spiegare perché alcuni problemi sono più difficili da risolvere rispetto ad altri. Uno dei più grandi successi di questa filiale è la classificazione dei problemi, simile alla tabella periodica, secondo la sua difficoltà. In questa classificazione, i problemi sono separati da classi complesse.
Questa teoria ha un’applicazione in quasi tutte le aree di conoscenza in cui si desidera risolvere un problema computazionalmente, poiché i ricercatori non solo vogliono usare un metodo per risolvere un problema, ma utilizzare il più veloce. La teoria della complessità computazionale ha anche domande in settori come la crittografia, dove dovrebbe decifrare un codice segreto è un problema molto difficile a meno che la password non sia disponibile, nel qual caso il problema diventa facile.