Sei sulla pagina 1di 35

Prof.

Mario Sicuranza

INGEGNERIA MECCANICA E INGEGNERIA AEROSPAZIALE

UNIVERSITÀ DEGLI STUDI DI NAPOLI FEDERICO II


SCUOLA POLITECNICA E DELLE SCIENZE DI BASE
Lezione 8 10 aprile 2018
 Informatica
 Studio sistematico dei processi per la risoluzione dei problemi
 Elaborazione ed Algoritmi
▪ Esempi di Problemi

 Automi a stati finiti


 Macchina di Mealy e Macchina di Moore
 Macchina di Turing
 Macchina Universale
▪ Calcolabilità e Trattabilità dei problemi

Prof. Mario Sicuranza – Elementi di Informatica 3


 Richiede la comprensione del modo con cui procedere all’elaborazione
automatica delle informazioni stesse

 Informatica  studio sistematico dei processi che servono al


trattamento delle informazioni o più in generale della definizione della
soluzione di problemi assegnati

 Analisi dettagliata di ciò che serve al trattamento dell’informazione


 Progetto di una soluzione applicabile alla generazione di informazioni prodotte da altre
informazioni
 Verifica della correttezza e dell’efficienza della soluzione pensata
 Manutenzione della soluzione nella fase di funzionamento in esercizio

Prof. Mario Sicuranza – Elementi di Informatica 4


 Algoritmo
 Termine introdotto in matematica per indicare la sequenza precisa di azioni elaborative
necessarie per la soluzione di un problema assegnato

 Elaborazione  concetto matematico di funzione Y=F(X)


 X sono i dati iniziali da elaborare
 Y i dati finali o risultati
 F è la regola di trasformazione

 Informatica  studio sistematico degli algoritmi

Prof. Mario Sicuranza – Elementi di Informatica 5


 Il calcolatore è il più potente esecutore di algoritmi
 Permette di gestire quantità di informazioni altrimenti non trattabili
 Consente di verificare i propri ragionamenti o algoritmi

 Le macchine informatiche trovano soluzioni ad un gran numero di


problemi in modo più veloce e conveniente degli esseri umani

Prof. Mario Sicuranza – Elementi di Informatica 6


 Il calcolatore è il più potente esecutore di algoritmi
 Permette di gestire quantità di informazioni altrimenti non trattabili
 Consente di verificare i propri ragionamenti o algoritmi

 Le macchine informatiche trovano soluzioni ad un gran numero di


problemi in modo più veloce e conveniente degli esseri umani

 Alcune osservazioni
 La descrizione del problema non fornisce, in generale, indicazioni sul metodo risolvente
▪ In alcuni casi presenta imprecisioni e ambiguità che possono portare a soluzioni errate

Prof. Mario Sicuranza – Elementi di Informatica 7


 Il calcolatore è il più potente esecutore di algoritmi
 Permette di gestire quantità di informazioni altrimenti non trattabili
 Consente di verificare i propri ragionamenti o algoritmi

 Le macchine informatiche trovano soluzioni ad un gran numero di


problemi in modo più veloce e conveniente degli esseri umani

 Alcune osservazioni
 La descrizione del problema non fornisce, in generale, indicazioni sul metodo risolvente
▪ In alcuni casi presenta imprecisioni e ambiguità che possono portare a soluzioni errate
 Per alcuni problemi non esiste una soluzione

Prof. Mario Sicuranza – Elementi di Informatica 8


 Il calcolatore è il più potente esecutore di algoritmi
 Permette di gestire quantità di informazioni altrimenti non trattabili
 Consente di verificare i propri ragionamenti o algoritmi

 Le macchine informatiche trovano soluzioni ad un gran numero di


problemi in modo più veloce e conveniente degli esseri umani

 Alcune osservazioni
 La descrizione del problema non fornisce, in generale, indicazioni sul metodo risolvente
▪ In alcuni casi presenta imprecisioni e ambiguità che possono portare a soluzioni errate
 Per alcuni problemi non esiste una soluzione
 Alcuni problemi hanno più soluzioni possibili
▪ Si calcola quella più vantaggiosa sulla base di un insieme di parametri prefissati
▪ Costo della soluzione, tempi di attuazione, risorse necessarie alla sua realizzazione, ecc.

Prof. Mario Sicuranza – Elementi di Informatica 9


 Il calcolatore è il più potente esecutore di algoritmi
 Permette di gestire quantità di informazioni altrimenti non trattabili
 Consente di verificare i propri ragionamenti o algoritmi

 Le macchine informatiche trovano soluzioni ad un gran numero di


problemi in modo più veloce e conveniente degli esseri umani

 Alcune osservazioni
 La descrizione del problema non fornisce, in generale, indicazioni sul metodo risolvente
▪ In alcuni casi presenta imprecisioni e ambiguità che possono portare a soluzioni errate
 Per alcuni problemi non esiste una soluzione
 Alcuni problemi hanno più soluzioni possibili
▪ Si calcola quella più vantaggiosa sulla base di un insieme di parametri prefissati
▪ Costo della soluzione, tempi di attuazione, risorse necessarie alla sua realizzazione, ecc.
 Per alcuni problemi non esistono soluzioni eseguibili in tempi ragionevoli

Prof. Mario Sicuranza – Elementi di Informatica 10


 Preparare una torta alla frutta
 È noto il risultato
 Non si riesce a ricavare alcuna indicazione sulla ricetta da seguire
 La ricetta non è di facile individuazione in un libro di cucina per la sua
formulazione generica

 Risolvere le equazioni di secondo grado


 Problema di analisi matematica di cui si conosce chiaramente il procedimento
risolvente

 Individuare il massimo tra tre numeri


 Problema impreciso ed ambiguo
 Non specifica se va cercato il valore massimo o la sua posizione all’interno
della terna dei tre numeri assegnati

Prof. Mario Sicuranza – Elementi di Informatica 11


 Calcolare le cifre decimali di π
 Soluzione nota
 Non si arriva a terminazione in quanto le cifre da calcolare sono infinite

 Inviare un invito ad un insieme di amici


 Soluzioni tradizionali basate sulla posta ordinaria o più moderne quali i
messaggi SMS dei telefoni cellulari, i messaggi di posta elettronica o messaggi
con App di messaggistica istantanea (WhatsApp)
▪ Bisogna scegliere la soluzione più conveniente
▪ Ad es. si può scegliere la soluzione che presenta un costo più basso e più efficiente

 Individuare le tracce del passaggio di extraterrestri


 Problema che non ammette soluzione o non risolvibile

Prof. Mario Sicuranza – Elementi di Informatica 12


 Algoritmo
 Un insieme di operazioni/azioni (dette istruzioni) da eseguire per risolvere il
problema assegnato secondo un ordine prefissato

 Esecutore
 L’uomo o la macchina in grado di risolvere il problema eseguendo l’algoritmo
 Non solo deve comprendere le singole istruzioni ma deve essere anche capace di
eseguirle
▪ secondo un ordine rigidamente sequenziale
▪ in parallelo eseguendo più istruzioni contemporaneamente

 Informazioni di ingresso
 Le informazioni da fornire affinché avvengano Algoritmo
le trasformazioni desiderate
Input Output
 Informazioni di uscita
 I risultati prodotti dall’esecutore del dato algoritmo

Esecutore
Prof. Mario Sicuranza – Elementi di Informatica 13
Torta Ricetta
Latte, Torta
uova,
zucchero

Cuoco

Soluzioni equazione di Equazioni


secondo grado Coefficienti Radici

Matematico

Prof. Mario Sicuranza – Elementi di Informatica 14


 Astrazione del concetto di macchina che esegue algoritmi
 Basato sul concetto di stato
▪ Particolare condizione di funzionamento in cui può trovarsi la macchina

 Applicabile a qualsiasi sistema che evolve nel tempo per effetto di


sollecitazioni esterne
 Ogni sistema se soggetto a sollecitazioni in ingresso risponde in funzione della sua
situazione attuale eventualmente emettendo dei segnali di uscita
 L’effetto della sollecitazione in ingresso è il mutamento dello stato del sistema stesso
 Il sistema ha sempre uno stato iniziale di partenza da cui inizia la sua evoluzione
 Può terminare in uno stato finale dopo aver attraversato una serie di stati intermedi

Prof. Mario Sicuranza – Elementi di Informatica 15


 Un automa M (a stati finiti) può essere definito da una quintupla di
elementi (Q, I, U, t, w):

 Q è un insieme finito di stati interni caratterizzanti l’evoluzione del sistema

 I è un insieme finito di sollecitazioni in ingresso

 U è un insieme finito di uscite

 t: Q x I → Q è la funzione di transizione che trasforma il prodotto cartesiano


Q × I in Q

 w: Q x I → U è la funzione di uscita che trasforma Q × I in U

Prof. Mario Sicuranza – Elementi di Informatica 16


 Un automa M (a stati finiti) può essere definito da una quintupla di
elementi (Q, I, U, t, w):

 Q è un insieme finito di stati interni caratterizzanti l’evoluzione del sistema

 I è un insieme finito di sollecitazioni in ingresso

 U è un insieme finito di uscite

 t: Q x I → Q è la funzione di transizione che trasforma il prodotto cartesiano


Q × I in Q

 w: Q → U è la funzione di uscita che trasforma Q in U

Prof. Mario Sicuranza – Elementi di Informatica 17


 Grafo
 Un nodo per rappresentare gli stati del sistema
 Archi orientati ad indicare le transizioni

 Stati intermedi
 Nodi con archi entranti ed uscenti

 Stato iniziale
 L’unico nodo con nessun arco entrante

 Stato finale
 Se esiste, nodo con nessun arco uscente

Rappresentazione grafica di una


macchina di Mealy

Prof. Mario Sicuranza – Elementi di Informatica 18


 Tabella
 Tante righe quanti sono gli ingressi
 Tante colonne quanti sono gli stati

 Stati nei quali il sistema si sposta


per effetto delle sollecitazioni in
ingresso

 Indicazione dell’eventuale uscita


prodotta

Rappresentazione tabellare di una


macchina di Mealy

Prof. Mario Sicuranza – Elementi di Informatica 19


 È un particolare automa per il quale sono definiti:
 l’insieme degli ingressi e delle uscite come insiemi di simboli
 un particolare meccanismo di lettura e scrittura delle informazioni

 Composto da una testina di scrittura/lettura su nastro bidirezionale


potenzialmente illimitato

 È un modello:
 Permette di raggiungere risultati teorici sulla calcolabilità e sulla complessità degli
algoritmi

Prof. Mario Sicuranza – Elementi di Informatica 20


 La macchina si compone di:
 una memoria costituita da un nastro di dimensione infinita diviso in celle
▪ ogni cella contiene un simbolo oppure è vuota
 una testina di lettura/scrittura posizionabile sulle celle del nastro
 un dispositivo di controllo che, per ogni coppia (stato, simbolo letto),
determina il cambiamento di stato ed esegue un’azione elaborativa

Esempio di Macchina di Turing

Prof. Mario Sicuranza – Elementi di Informatica 21


 Definita dalla quintupla (A, S, fm, fs, fd)

 A è l’insieme finito dei simboli di ingresso e uscita

 S è l’insieme finito degli stati (di cui uno è quello di terminazione)

 fm è la funzione di macchina A × S → A

 fs è la funzione di stato A × S → S

 fd è la funzione di direzione A × S → D = {Sinistra, Destra, Nessuna}

Prof. Mario Sicuranza – Elementi di Informatica 22


 La macchina è capace di:
 leggere un simbolo dal nastro
 scrivere sul nastro il simbolo specificato dalla funzione di macchina
 transitare in un nuovo stato interno specificato dalla funzione di stato
 spostarsi sul nastro di una posizione nella direzione indicata dalla funzione di
direzione

 La macchina si ferma quando raggiunge lo stato di terminazione

Prof. Mario Sicuranza – Elementi di Informatica 23


 Una macchina di Turing rappresenta l’algoritmo per l’elaborazioneY=F(X) se
 si arresta in una configurazione (stato) finale
 trasforma un nastro t in uno t’
▪ X eY sono codificati rispettivamente in t e t’

 Macchina Universale  macchina di Turing la cui parte di controllo è capace


di leggere da un nastro anche la descrizione dell’algoritmo
 Simula il lavoro compiuto da una qualsiasi altra macchina

 La macchina di Turing Universale è l’interprete di un linguaggio


 Leggere dal nastro la descrizione dell’algoritmo richiede di saper interpretare il
linguaggio con il quale esso è stato descritto

Prof. Mario Sicuranza – Elementi di Informatica 24


 La macchina di Turing (assieme ai formalismi ad essi equivalenti)
rappresenta lo strumento più potente per modellare una computazione
meccanica
 Ogni algoritmo codificabile mediante macchina di Turing è ciò che è eseguibile
da una macchina di Turing
 Problema non risolubile algoritmicamente se nessuna macchina di Turing è
in grado di fornire soluzione in tempo finito
 Per problemi irrisolvibili mediante macchina di Turing non esistono algoritmi
calcolabili

 Problemi decidibili  sono meccanicamente risolvibili da una macchina


di Turing

 Problemi indecidibili  non sono meccanicamente risolvibili da una


macchina di Turing

Prof. Mario Sicuranza – Elementi di Informatica 25


 Un algoritmo risolvente un dato problema è indipendente dal sistema che lo
esegue se per esso esiste una macchina di Turing

 L’algoritmo è indipendente dal linguaggio usato per descriverlo


 Per ogni linguaggio si può sempre definire una macchina di Turing Universale

 Teoria della calcolabilità  Cerca di comprendere quali funzioni ammettono un


procedimento di calcolo automatico

 Secondo la tesi di Church-Turing se un problema si può calcolare, allora esisterà


una macchina di Turing in grado di risolverlo
 La classe delle funzioni calcolabili coincide con quella delle funzioni calcolabili da una
macchina di Turing

Prof. Mario Sicuranza – Elementi di Informatica 26


 Sono due modelli di calcolo fondamentali per caratterizzare la modalità
di descrizione e di esecuzione degli algoritmi

 La macchina di Von Neumann


 è modellata dalla macchina di Turing Universale per ciò che attiene alle sue
modalità di computazione
 ha memoria limitata a differenza del nastro di Turing che ha lunghezza infinita
 come modello di riferimento per sistemi non solo teorici, prevede anche la
dimensione dell’interazione attraverso i suoi dispositivi di input ed output

Prof. Mario Sicuranza – Elementi di Informatica 27


 Calcolabilità
 Consente di dimostrare l’esistenza (ossia, la decidibilità) di un algoritmo
risolvente un problema assegnato ed indipendente da qualsiasi automa

 Trattabilità
 Studia l’eseguibilità di un algoritmo da parte di un sistema informatico

 La calcolabilità classifica i problemi in risolvibili e non risolvibili,


 La trattabilità in problemi «facili» e «difficili»

 Sono noti problemi che


 pur presentando un algoritmo di soluzione, non consentono di produrre
risultati in tempi ragionevoli neppure se eseguiti dal calcolatore più veloce
 ammettono soluzione di per sé lenta e quindi inaccettabile

Prof. Mario Sicuranza – Elementi di Informatica 28


 Il concetto di trattabilità è legato a quello di complessità computazionale
 Studia i costi intrinseci alla soluzione dei problemi
 Mira a comprendere le prestazioni massime raggiungibili da un algoritmo
applicato ad un problema

 Complessità  individua i problemi risolvibili, detti trattabili, da un


elaboratore con costi di risoluzione che crescano in modo ragionevole al
crescere della dimensione del problema

 La complessità di un algoritmo corrisponde ad una misura delle risorse di


calcolo consumate durante la computazione ed è tanto più elevata
quanto maggiori sono le risorse consumate

Prof. Mario Sicuranza – Elementi di Informatica 29


 Due tipi di complessità computazionale fra loro interdipendenti che
consentono di misurare gli algoritmi
 Spaziale
▪ Quantità di memoria necessaria alla rappresentazione dei dati necessari
all’algoritmo per risolvere il problema
 Temporale
▪ Tempo richiesto per produrre la soluzione

 Due tipi di misure di complessità (risorse di calcolo consumate)


 Statiche
▪ Basate sulle caratteristiche strutturali (ad es. il numero di istruzioni) dell’algoritmo
▪ Indipendenti dai dati di input su cui esso opera
 Dinamiche
▪ Dipendenti sia dalle caratteristiche strutturali dell’algoritmo che dai dati di input su
cui esso opera
Prof. Mario Sicuranza – Elementi di Informatica 30
 Il tempo di esecuzione è solitamente espresso come una funzione f(n)
della dimensione n dei dati di input
 Un algoritmo ha un tempo di esecuzione n2 se il tempo impiegato è pari al
quadrato della dimensione dell’input

 Da sola la dimensione dei dati di input non basta

 Il tempo di esecuzione dipende sia dalla configurazione dei dati in input


sia dalla loro dimensione

Prof. Mario Sicuranza – Elementi di Informatica 31


 Analisi del caso migliore
 La configurazione dei dati presenta difficoltà minime di trattamento

 Analisi del caso peggiore


 La configurazione dei dati presenta difficoltà massime di trattamento
▪ Si tratta di un’analisi molto utile, perché fornisce delle garanzie sul tempo
massimo che l’algoritmo può impiegare

 Analisi del caso medio


 La configurazione presenta difficoltà medie di trattamento

Prof. Mario Sicuranza – Elementi di Informatica 32


 Si valuta come l’ordine di grandezza del tempo di esecuzione f(n)
cresca al limite (tenda ai suoi asintoti)
 per dimensioni dell’input sufficientemente grandi
 si trascurano operazioni non significative concentrando l’attenzione solo
su quelle predominanti

 Complessità asintotica dipendente solo dall’algoritmo

 Complessità esatta dipendente da tanti fattori legati alla


esecuzione dell’algoritmo

Prof. Mario Sicuranza – Elementi di Informatica 33


 A seconda della funzione f(n) asintotica, si possono individuare:
 Complessità di tipo polinomiale
▪ N (lineare)
▪ n2, n3, n5,…
 Complessità di tipo esponenziale (o, in generale, Non Polinomiale, NP)
▪ 2n, 3n,…

 Elaboratore capace di eseguire un milione istruzioni al secondo (1 MIPS)


 Colonne riportano possibili dimensioni di dati di input
 Righe indicano complessità

Prof. Mario Sicuranza – Elementi di Informatica 34


Prof. Mario Sicuranza – Elementi di Informatica 35