Capitolo III. Algoritmi e Programmi

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo III. Algoritmi e Programmi"

Transcript

1 Capitolo III Algoritmi e Programmi

2 Trattamento delle Informazioni Informatica Studio sistematico dei processi che servono al trattamento delle informazioni Studio della definizione della soluzione di problemi assegnati Studi di questo tipo coinvolgono analisi dettagliata di ciò che serve al trattamento dell informazione progetto di una soluzione applicabile verifica della correttezza e della efficienza della soluzione manutenzione della soluzione nella fase di esercizio

3 Studio di Algoritmi Algoritmo sequenza precisa di operazioni il cui svolgimento è necessario per la soluzione di un problema assegnato L informatica può considerarsi lo studio sistematico degli algoritmi Il calcolatore è l esecutore degli algoritmi Esecutore potente permettere di gestire quantità di informazioni altrimenti non trattabili risolve un gran numero di problemi in modo più veloce e conveniente degli esseri umani L informatica utilizza il computer come uno scienziato utilizza il proprio microscopio uno strumento per provare le teorie sviluppate e, nel caso specifico, verificare i propri ragionamenti o algoritmi

4 La soluzione di problemi: osservazioni La descrizione del problema non fornisce, in generale, indicazioni sul metodo risolvente Anzi, in alcuni casi, presenta imprecisioni e ambiguità che possono portare a soluzioni errate Per alcuni problemi Non esiste una soluzione Non esiste una soluzione eseguibile in tempi utili Esistono più soluzioni Bisogna individuare quella più vantaggiosa sulla base di un insieme di parametri prefissati Costi Tempi di attuazione Risorse necessarie

5 Alcuni esempi Risolvere le equazioni di secondo grado Problema di analisi matematica per il quale si conosce chiaramente il procedimento risolvente Calcolare tutte le cifre decimali di P Non esiste una soluzione eseguibile in tempi ragionevoli! Inviare un invito ad un insieme di amici Più soluzioni possibili (posta elettronica, sms, ) Bisogna quindi scegliere la soluzione più conveniente: ad esempio quella che presenta un costo più basso Individuare le tracce del passaggio di extraterrestri Problema non risolvibile

6 Schema di soluzione

7 Algoritmo ed Esecutore Algoritmo L insieme delle azioni eseguendo le quali è possibile risolvere il problema Se si indica con istruzione la prescrizione di una singola operazione, allora l'algoritmo è un insieme di istruzioni da svolgere secondo un ordine prefissato Esecutore l'uomo o la macchina in grado di risolvere il problema eseguendo l'algoritmo l esecutore deve comprendere le singole istruzioni e deve essere capace di eseguirle Informazioni di ingresso ( input ) informazioni da fornire per il funzionamento dell algoritmo Informazioni di uscita ( output ) risultati prodotti dall'esecutore del dato algoritmo

8 Elaborazioni, funzioni ed algoritmi Elaborazione concetto matematico di funzione (trasformazione dei dati) Y=F(X) -X sono i dati iniziali da elaborare -Y i dati finali o risultati -F è la regola di trasformazione -Spesso è necessaria una sequenza di azioni elaborative per effettuare una elaborazione -Es: divisioni, controlli di parità, ricerca di un valore in una lista, ordinamento di un elenco. -Algoritmo sequenza finita di azioni elaborative ( passi elaborativi ) che risolve un problema

9 Automa a stati finiti Astrazione del concetto di macchina che esegue algoritmi Introduce il concetto di stato particolare condizione di funzionamento in cui può trovarsi la macchina in conseguenza della quale la macchina reagisce con una determinata uscita ad un determinato ingresso La macchina ha sempre uno stato di partenza a partire dal quale si evolve per effetto delle sollecitazioni esterne o input La macchina può terminare in uno stato finale attraversando una serie di stati intermedi Ogni macchina, se soggetta a sollecitazioni in ingresso, risponde in funzione della sua situazione attuale eventualmente emettendo dei segnali di uscita e mutando il suo stato L automa a stati finiti è uno dei modelli fondamentali dell informatica E applicabile a qualsiasi sistema che evolve nel tempo per effetto di sollecitazioni esterne

10 Automa a Stati Finiti: definizione formale Un automa M (a stati finiti) può essere definito da una quintupla di elementi (Q,I,U,t,w) dove: 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 è la funzione di transizione che trasforma il prodotto cartesiano Q I in Q (t: QxI Q) w è la funzione di uscita che trasforma Q I in U (w: QxI U).

11 Diagramma degli stati Rappresentazione a grafo di un automa a stati finiti un cerchio per rappresentare gli stati del sistema archi orientati ad indicare le transizioni

12 Diagramma a stati finiti Esempio: diagramma a stati finiti dell ascensore I = PT, 1P, 2P Q = PT, 1P, 2P U = fermo, sale, scende

13 Macchina di Turing (1936) Modello teorico fondamentale basato su quello di automa a stati finiti Usato per approfondire il concetto stesso di algoritmo L algoritmo verrà formalmente definito come tutto ciò che una macchina di Turing può elaborare Raggiungere risultati teorici sulla calcolabilità Cosa si può fare e cosa non si fare con una macchina automatica sulla complessità Cosa si intende per algoritmo più o meno complesso? sull equivalenza degli algoritmi

14 Macchina di Turing Il modello di Macchina di Turing è un particolare automa a stati finiti per il quale sono definiti La natura degli ingressi e degli uscite L insieme dei possibili passi elaborativi In particolare L insieme degli ingressi e delle uscite è un insieme di simboli I passi elaborativi sono definiti nel contesto di un meccanismo ideale capace di effettuare operazioni di lettura e scrittura su di un nastro continuo

15 Macchina di Turing Una macchina di Turing è composta da: Un nastro (memoria) Striscia continua e potenzialmente infinita di caselle atte a contenere simboli Una testina di lettura/scrittura In ogni istante è posizionata su una delle caselle del nastro Il seguente insieme di azioni elaborative: Spostamento della testina di una posizione a destra o sinistra, o mantenimento della testina ferma Scrittura nella casella su cui è posizionata la testina Un dispositivo di controllo Per ciascuna coppia (stato, simbolo letto) Determina il cambiamento di stato Esegue una delle azioni elaborative in accordo

16 Macchina di Turing Una macchina di Turing è completamente individuata dalle seguenti informazioni: Contenuto iniziale del nastro Posizione iniziale della testina Stato iniziale Tabella delle transizioni (stato attuale, simbolo letto, stato seguente, simbolo scritto, direzione di spostamento)

17 Il funzionamento di una MdT Il comportamento della macchina è determinato dall insieme delle regole di transizione Una regola ha la forma seguente: (A, a, B, b, dir) Una regola viene applicata se lo stato corrente della macchina è A e il simbolo letto dalla testina è a L applicazione della regola cambia lo stato in B, scrive sul nastro b ed eventualmente sposta la testina di una cella a sinistra o a destra (dir)

18 Il funzionamento di una MdT La macchina opera come segue: Determina la regola da applicare in base allo stato interno e al simbolo corrente (quello letto dalla testina) Se esiste una tale regola cambia lo stato, scrive il simbolo sulla cella corrente si sposta come indicato dalla regola Se non esiste la regola l esecuzione termina NB: In questo modello non può esistere più di una regola per uno stato ed un simbolo corrente

19 Esempio Una MdT che modifichi una sequenza di A rimpiazzando ogni A in posizione dispari con una B (la prima A ha posizione pari, uguale a 0) Nastro iniziale : ----AAAAAAAAA----. Posizione iniziale della testina: sulla prima A da sinistra Stato iniziale: posizione pari Una tale MdT può essere definita dal seguente insieme di regole: (0, A, 1, A, >) (1, A, 0, B, >) (0, -, END, -, -) (1, -, END, -, -)

20 Definizione Formale è definita dalla quintupla: (A, S, f m, f s, f d ) A è l insieme finito dei simboli di ingresso e uscita; S è l insieme finito degli stati (di cui uno è quello di terminazione); f m è la funzione di macchina definita come A S A; f s è la funzione di stato A S S; f d è la funzione di direzione A S D = {Sinistra, Destra, Nessuna} 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

21 Macchina di Turing ed Algoritmi Una macchina di Turing che si arresti e che trasformi un nastro t in un nastro t rappresenta l algoritmo per l elaborazione Y = f(x) dove X è rappresentato da t ed Y da t Si dice allora che la MdT calcola Y=f(X) Una funzione è calcolabile secondo Turing se è possibile trovare una macchina di Turing che si arresti e che effettui la trasformazione Y=f(X)

22 Macchina di Turing ed Algoritmi Due questioni fondamentali 1. Data la funzione Y = F(X), esiste sempre una macchina di Turing in grado di calcolarla? No. Esistono funzioni non calcolabili con la MdT (funzioni non calcolabili secondo Turing) Problema dell arresto: non esiste un algoritmo atto a decidere se, data una qualsiasi macchina MdT ed un qualsiasi nastro di ingresso t, la MdT si arresta su t 2. Esiste un formalismo capace di calcolare le funzioni non calcolabili secondo Turing? quindi più potente della MdT?

23 Tesi di Church-Turing Non esiste un formalismo né una macchina concreta che possa calcolare una funzione non calcolabile secondo Turing La tesi non è stata dimostrata, ma nessuno fino ad oggi è in grado di smentirla! Tutte le nuove definizioni, astratte o concrete, di macchina avanzate dal 1936 ad oggi sono equivalenti alla MdT nella capacità di calcolare funzioni Non esiste alcun formalismo che, per modellare una determinata computazione, sia più potente della Macchina di Turing e dei formalismi ad essa equivalenti Esistono problemi che per loro natura non sono risolvibili da alcuna macchina finora costruita o teorizzata

24 Def di Algoritmo con la MdT Con la tesi di Church possiamo identificare il concetto di algoritmo con il modello di Turing: Un algoritmo è ciò che può essere realizzato con una macchina di Turing Pertanto ogni algoritmo può essere codificato in termini di Macchina di Turing

25 Problemi indecidibili Un problema è non risolubile algoritmicamente o indecidibile se nessuna Macchina di Turing è in grado di fornire la soluzione al problema

26 Calcolabilità Dalla tesi di Church-Turing se un problema si può calcolare, allora esisterà una macchina di Turing (o un dispositivo equivalente, come il computer) in grado di risolverlo (cioè di calcolarlo) la classe delle funzioni calcolabili algoritmicamente coincide con quella delle funzioni calcolabili da una macchina di Turing

27 Macchina di Turing Universale E possibile definire una MT, detta Macchina di Turing Universale (MTU), in grado di simulare il comportamento di ogni altra MT Grazie al fatto che le caratteristiche che definiscono ogni MT possono essere rappresentati in modo tale da essere scritte sul nastro di una MT

28 Macchina di Turing Universale La MdT universale è una MdT il cui input è composto dalla concatenazione di due elementi La codifica della MdT da simulare(m) Stato iniziale, posizione iniziale della testina, regole di transizione L input di tale MdT (I) Nastro iniziale Per ogni M e per ogni I, MdT U decodifica la transizione e la applica ad I, ottenendo lo stesso output che darebbe M a partire da I È definito un metodo di codifica e decodifica della tabella di transizione di una MdT

29 MTU vs MT La MTU è in grado di simulare il comportamento di qualsiasi MT....allora essa, in virtù della Tesi di Church, è in grado di calcolare qualsiasi funzione che sia calcolabile algoritmicamente Rispetto alle semplici MT, la MTU è una macchina calcolatrice programmabile Mentre infatti le normali macchine di Turing eseguono un solo programma, che è incorporato nella tavola di transizione, la MTU assume in input il programma che deve eseguire

30 Macchina di Turing Universale: riassumendo Una Macchina di Turing Universale è una MdT che, preso in input il codice di un altra MdT, ne simula il comportamento La MTU è l interprete di un linguaggio leggere dal nastro la descrizione dell algoritmo richiede di saper interpretare il linguaggio con il quale esso è stato descritto

31 Conseguenze L algoritmo è indipendente dal sistema che lo esegue L algoritmo è indipendente dal linguaggio usato per descriverlo visto che per ogni linguaggio si può sempre definire una macchina di Turing universale.

32 MdT e Von Neumann Due modelli fondamentali per caratterizzare la modalità di descrizione e di esecuzione degli algoritmi La macchina di Von Neumann costituisce una rappresentazione concreta di una Macchina di Turing Universale per ciò che attiene alle sue modalità di computazione Se si suppone che il calcolatore di von Neumann è dotato di memoria e tempi di calcolo illimitati, esso è in grado di calcolare tutte le funzioni computabili, in virtù della Tesi di Church (per questo si dice che una macchina di von Neumann è un calcolatore universale)

33 Trattabilità Calcolabilità consente di dimostrare l esistenza di un algoritmo risolvente un problema assegnato ed indipendente da qualsiasi automa Trattabilità studia la eseguibilità di un algoritmo da parte di un sistema informatico Esistono problemi classificati come risolvibili (calcolabili), ma praticamente intrattabili non solo dagli attuali elaboratori ma anche da quelli, sicuramente più potenti, del futuro 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 quindi inaccettabile

34 Trattabilità e Complessità Il concetto di trattabilità è legato a quello di complessità computazionale studia i costi intrinseci alla soluzione dei problemi, con l'obiettivo di comprendere le prestazioni massime raggiungibili da un algoritmo applicato a un problema La complessità consente di individuare i problemi risolvibili che siano trattabili da un elaboratore con costi di risoluzione che crescano in modo ragionevole al crescere della dimensione del problema Tali problemi vengono detti trattabili

35 Spazio e Tempo La complessità di un algoritmo corrisponde a una misura delle risorse di calcolo consumate durante la computazione ed è tanto più elevata quanto maggiori sono le risorse consumate Complessità spaziale. quantità di memoria necessaria alla rappresentazione dei dati necessari all algoritmo per risolvere il problema Complessità temporale. il tempo richiesto per produrre la soluzione Le misure di complessità possono essere: statiche se sono basate sulle caratteristiche strutturali (ad esempio il numero di istruzioni) dell algoritmo e prescindono dai dati di input su cui esso opera dinamiche se tengono conto sia delle caratteristiche strutturali dell algoritmo che dei dati di input su cui esso opera

36 Complessità e dati di input Un primo fattore che incide sul tempo impiegato dall algoritmo è la quantità di dati su cui l algoritmo deve lavorare il tempo di esecuzione è solitamente espresso come una funzione f(n) della dimensione n dei dati di input. Si dirà, ad esempio, che un algoritmo ha un tempo di esecuzione n 2 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 anche dalla configurazione dei dati in input oltre che dalla loro dimensione

37 Tempo di Esecuzione e configurazione dei dati in ingresso analisi del caso migliore per calcolare il tempo di esecuzione quando la configurazione dei dati presenta difficoltà minime di trattamento. analisi del caso peggiore. per calcolare il tempo di esecuzione quando 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 per calcolare il tempo di esecuzione quando la configurazione presenta difficoltà medie di trattamento

38 Tempo di esecuzione di un algoritmo n = numero dati in ingresso m = numero delle classi di istruzioni coinvolte nell algoritmo (assegnazione, confronto, calcolo) ti = tempo di esecuzione dell istruzione della classe i-esima ki = numero di istruzioni della classe i-esima da eseguire per n ingressi Semplificazioni: Considerare tutte le classi di istruzioni equivalenti con tempo di esecuzione unitario ti = 1 per ogni i il tempo di esecuzione si può esprimere in funzione di n

39 Ordine del tempo di esecuzione t(n), con n intero positivo, ha ordine f(n), detto O(f(n)), se e solo se esistono due costanti positive a ed n tali che: t(n) <= a * f(n), per ogni n>n Interessa la f(n) minima che soddisfi la relazione per avere un indicazione più precisa della delimitazione superiore della complessità Una stima significativa del tempo di esecuzione per n abbastanza grande (>n ) è determinata da f(n) Si dice che t(n) tende asintoticamente a f(n) f(n) viene detta complessità asintotica

40 Complessità Asintotica Interessa sapere come l ordine di grandezza del tempo di esecuzione cresce al limite, ossia per dimensioni dell input sufficientemente grandi quando la funzione t(n) tende ai suoi asintoti Lo studio della condizione asintotica della complessità di un algoritmo permette ulteriormente di trascurare in un algoritmo operazioni non significative concentrando l attenzione solo su quelle predominanti. dati due algoritmi diversi che risolvono lo stesso problema e presentano due diverse complessità t(n) e t (n), se t(n) è asintoticamente inferiore a t (n) allora esiste una dimensione dell input oltre la quale l ordine di grandezza del tempo di esecuzione del primo algoritmo è inferiore all ordine di grandezza del tempo di esecuzione del secondo La complessità asintotica dipende solo dall algoritmo, mentre la complessità esatta dipende da tanti fattori legati alla esecuzione dell algoritmo

41 Ordini di complessità O(logn) O(nlogn) Ordini logaritmici O(n alla k), ordine polinomiale O(k alla n), ordine esponenziale

42 Tipi di Complessità A seconda della funzione f(n) asintotica, si possono individuare: complessità di tipo polinomiale n (lineare) n 2, n 3, n5,. Complessità di tipo esponenziale (o, in generale, Non Polinomiale, NP) 2 n, 3 n,. *.. Per un elaboratore capace di eseguire un milione istruzioni al secondo (1 MIPS).

Elementi di Informatica A. A. 2016/2017

Elementi di Informatica A. A. 2016/2017 Elementi di Informatica A. A. 2016/2017 Ing. Nicola Amatucci Università degli studi di Napoli Federico II Scuola Politecnica e Delle Scienze di Base nicola.amatucci@unina.it Algoritmi e Programmi Elementi

Dettagli

Problemi, algoritmi, calcolatore

Problemi, algoritmi, calcolatore Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI

ELEMENTI DI PROGRAMMAZIONE a.a. 2012/13 MACCHINE, ALGORITMI, PROGRAMMI ELEMENTI DI PROGRAMMAZIONE a.a. 22/3 MACCHINE, ALGORITMI, PROGRAMMI Andrea Prevete, UNINA2 23 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a stati finiti)... macchine di

Dettagli

Introduzione all informatica

Introduzione all informatica Introduzione all informatica INFORMATICA Varie definizioni Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Definizione proposta Scienza della rappresentazione e dell

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE Metodo Risolutivo (algoritmo) Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto DATI Esecutore RISULTATI cioè capace di interpretare un linguaggio (linguaggio

Dettagli

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE

ELEMENTI DI PROGRAMMAZIONE a.a. 2013/14 UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 23/4 UNA GERARCHIA DI MACCHINE Andrea Prevete, UNINA2 24 UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Logica Algoritmi Cognizione

Logica Algoritmi Cognizione Logica Algoritmi Cognizione Le nozioni di DECIDIBILITÀ e COMPUTABILITÀ e i loro limiti Formulazione della logica in termini di teorie formalizzate e di dimostrazioni (all interno di teorie formalizzate)

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su dati in ingresso (input) per produrre uno

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it a.a. 2002-03 e.merelli

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Docente: Ing. Edoardo Fusella Dipartimento di Ingegneria Elettrica e Tecnologie dell Informazione Via Claudio 21, 4 piano laboratorio SECLAB Università degli Studi di Napoli Federico

Dettagli

UNA GERARCHIA DI MACCHINE

UNA GERARCHIA DI MACCHINE ELEMENTI DI PROGRAMMAZIONE a.a. 2015/16 UNA GERARCHIA DI MACCHINE UNA GERARCHIA DI MACCHINE macchine combinatorie macchine sequenziali (automi a numero finito di stati)... macchine di Turing Macchine di

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE DATI Esecutore Metodo Risolutivo (algoritmo) RISULTATI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio

Dettagli

Teoria della Calcolabilità!

Teoria della Calcolabilità! Teoria della Calcolabilità Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo. L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

Dettagli

L ELABORATORE ELETTRONICO!

L ELABORATORE ELETTRONICO! L ELABORATORE ELETTRONICO! Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Teoria della complessità

Teoria della complessità Teoria della complessità Materiale consigliato: testo del corso capitolo 34 Introduzione agli algoritmi e strutture dati T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein McGraw Hill, 2005 Denise Salvi

Dettagli

Algoritmi e Programmi

Algoritmi e Programmi Algoritmi e Programmi Elementi di Informatica CdL Ingegneria Civile (A-Z) Università degli Studi di Napoli Federico II 29 marzo 2017 Ing. Giovanni Ponti ENEA C.R. Portici giovanni.ponti@enea.it 2 Trattamento

Dettagli

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica

Programmazione. Dipartimento di Matematica. Ing. Cristiano Gregnanin. 29 febbraio Corso di laurea in Matematica Programmazione Dipartimento di Matematica Ing. Cristiano Gregnanin Corso di laurea in Matematica 29 febbraio 2016 1 / 33 INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, bisogna conoscere

Dettagli

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE GERARCHIA DI MACCHINE PERCHE I MODELLI MATEMATICI

L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE L AUTOMA ESECUTORE GERARCHIA DI MACCHINE PERCHE I MODELLI MATEMATICI Un automa capace di ricevere dall esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio macchina) Vincolo di realizzabilità: se l automa è fatto di parti,

Dettagli

Sommario Tesi di Church, di Turing, e di Church Turing G delizzazione. Limiti della Calcolabilità

Sommario Tesi di Church, di Turing, e di Church Turing G delizzazione. Limiti della Calcolabilità Sommario Tesi di Church, di Turing, e di Church Turing G delizzazione Macchina di Turing Universale Problema della fermata Altri problemi indecidibili 1 2 Tesi di Church Nel 1936 Church propone la seguente

Dettagli

Elaboratore Elettronico

Elaboratore Elettronico L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri oggetti

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

complessità degli algoritmi

complessità degli algoritmi complessità degli algoritmi progetto CORDA informatica algoritmo matematico persiano Muhammad al-khwarizmi (IX secolo) un algoritmo è una sequenza finita di passi interpretabili da un esecutore l esecuzione

Dettagli

Complessità degli algoritmi (cenni)

Complessità degli algoritmi (cenni) Complessità degli algoritmi (cenni) CORDA Informatica A. Ferrari Testo di riferimento Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo - Edoardo Bontà Università degli Studi di Urbino Carlo

Dettagli

Testo di riferimento. Problema delle 12 monete. Algoritmi. Complessità degli algoritmi (cenni) Dispense del Corso di Algoritmi e Strutture Dati

Testo di riferimento. Problema delle 12 monete. Algoritmi. Complessità degli algoritmi (cenni) Dispense del Corso di Algoritmi e Strutture Dati Testo di riferimento Complessità degli algoritmi (cenni) CORDA Informatica A. Ferrari Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo - Edoardo Bontà Università degli Studi di Urbino Carlo

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 4.b: Trattabilità e Intrattabilità

Algoritmi, Strutture Dati e Programmi. UD 4.b: Trattabilità e Intrattabilità Algoritmi, Strutture Dati e Programmi : Trattabilità e Intrattabilità Prof. Alberto Postiglione AA 2007-2008 INTRODUZIONE Dispense, cap. 4.2.1 1 Problemi Intrattabili Esistono problemi che, pur avendo

Dettagli

UD 4.b: Trattabilità e Intrattabilità INTRODUZIONE

UD 4.b: Trattabilità e Intrattabilità INTRODUZIONE Algoritmi, Strutture Dati e Programmi : Trattabilità e Intrattabilità INTRODUZIONE Prof. Alberto Postiglione Dispense, cap. 4.2.1 AA 2007-2008 Problemi Intrattabili Problemi Intrattabili Esistono problemi

Dettagli

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing

Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing Capitolo 5: Macchine di Turing e calcolabilitá secondo Turing 1 Macchina di Turing (MDT ) Un dispositivo che accede a un nastro (potenzialmente) illimitato diviso in celle contenenti ciascuna un simbolo

Dettagli

Limiti della calcolabilità

Limiti della calcolabilità Limiti della calcolabilità Argomenti della lezione Macchina di Turing universale Il problema della terminazione Altri problemi indecidibili Macchine di Turing in forma ridotta Per ogni MT M esiste una

Dettagli

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)

INFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell

Dettagli

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Definizione di Algoritmo. Algoritmo Euclideo. Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof.V.L.Plantamura Informatica e Comunicazione Digitale a.a. 006-007 Definizione di Algoritmo Def.: Per Algoritmo si intende un elenco di istruzioni che specificano una serie

Dettagli

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE?

Turing cercò di fornire una risposta matematica al problema CHE COSA SIGNIFICA CALCOLARE? STORIA DELLE CONOSCENZE SCIENTIFICHE SULL UOMO E SULLA NATURA a.a. 2016 2017 Prof. Roberto Giuntini, PhD. Introduzione alla storia dell intelligenza artificiale e della robotica Modulo II: Le macchine

Dettagli

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a.

Fondamenti di Informatica. Ipotesi fondamentale. Irrisolubilità. Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a. Fondamenti di Informatica Prof. V.L. Plantamura Informatica e Comunicazione Digitale a.a. 2006-2007 Ipotesi fondamentale Tesi di Church Qualunque algoritmo può essere espresso sotto forma di matrice funzionale

Dettagli

La nozione di algoritmo

La nozione di algoritmo La nozione di algoritmo Agostino Dovier Dip. di Matematica e Informatica, Univ. Udine UDINE, Aprile 2015 Agostino Dovier (DIMI) La nozione di algoritmo UDINE 1 / 17 Un algoritmo viene descritto in un certo

Dettagli

Algoritmi e Complessità

Algoritmi e Complessità Algoritmi e Complessità Università di Camerino Corso di Laurea in Informatica (tecnologie informatiche) III periodo didattico Docente: Emanuela Merelli Email:emanuela.merelli@unicam.it Lezione 1 Teoria

Dettagli

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse ) elementari le azioni vengono eseguite su oggetti (dati) per produrre altri oggetti

Dettagli

Complessità computazionale

Complessità computazionale Università Roma Tre Dipartimento di Matematica e Fisica Percorso Abilitante Speciale Classe A048 Matematica Applicata Corso di Informatica Complessità computazionale Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Teoria della complessità

Teoria della complessità Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Teoria della complessità Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Elaborazione dell informazione

Elaborazione dell informazione Elaborazione dell informazione Una elaborazione è una trasformazione di dati In generale si può indicare che una elaborazione è la trasformazione: Y=F(X) dove: X è l'insieme di dati iniziali o di "ingresso"

Dettagli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli ELEMENTI DI INFORMATICA L Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Esempi di Testi di esame Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del corso

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 2 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 09 Marzo 2010 Controlli automatici

Dettagli

Teoria della computazione

Teoria della computazione Fondamenti di Informatica per la Sicurezza a.a. 2006/07 Teoria della computazione Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati

Unità E1. Obiettivi. Non solo problemi matematici. Problema. Risoluzione di un problema. I dati Obiettivi Unità E1 Dall analisi del problema alla definizione dell algoritmo Conoscere il concetto di algoritmo Conoscere le fasi di sviluppo di un algoritmo (analisi, progettazione, verifica) Conoscere

Dettagli

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione

INFORmazione+autoMATICA. Perché saperne di piu? Le fasi della programmazione. Cosa intendiamo per programmazione INFORmazione+autoMATICA Perché saperne di piu? Calcolatore: un supporto per la rappresentazione di informazione che può: I raccogliere impressionanti quantità di dati I eseguire velocemente e con precisione

Dettagli

La tesi di Church-Turing e

La tesi di Church-Turing e La tesi di Church-Turing e l indecidibilità Automi e algoritmi i La domanda d fondamentale dll della teoria dll della calcolabilità è: Quali risultati possiamo e non possiamo ottenere mediante algoritmi?

Dettagli

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico

Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine per l elaborazione dell informazione dalla macchina di Von Neumann al Calcolatore Elettronico Lezione 15 Università degli Studi di Napoli Federico

Dettagli

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Informatica e Laboratorio di Programmazione Automi Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione Informatica e Laboratorio di Programmazione Automi Alberto Ferrari Alberto Ferrari Informatica e Laboratorio di Programmazione automa o automa: macchina astratta o realizza un certo algoritmo, secondo

Dettagli

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1

Scaletta. Cenni di computabilità. Cosa fa un programma? Definizioni (1/2) Definizioni (2/2) Problemi e domande. Stefano Mizzaro 1 Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 23 27 novembre 2013

Dettagli

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. !

! Problemi, domande, risposte. ! Algoritmi che calcolano funzioni. ! Funzioni computabili e non. ! Problema = insieme di domande omogenee. ! Scaletta Cenni di computabilità Stefano Mizzaro Dipartimento di matematica e informatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@uniud.it Programmazione, lezione 24 26 maggio 2015!

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Parte I.5 Cenni alla computazione

Parte I.5 Cenni alla computazione Parte I.5 Cenni alla computazione Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Dicembre 14, 2015 Elisabetta Elisabetta Ronchieri I Concetti

Dettagli

Teoria della computabilità. Appunti tratti dal libro di testo M. Addomine, D. Pons INFORMATICA Zanichelli pag

Teoria della computabilità. Appunti tratti dal libro di testo M. Addomine, D. Pons INFORMATICA Zanichelli pag Teoria della computabilità Appunti tratti dal libro di testo M. Addomine, D. Pons INFORMATICA Zanichelli pag.120-129 Teoria della computabilità Si occupa dell esistenza o meno di algoritmi risolutivi di

Dettagli

Ad ogni problema computazionale possiamo associare una misura della sua complessità.

Ad ogni problema computazionale possiamo associare una misura della sua complessità. Problema computazionale: Descrizione dell input, Compito da svolgere. Esempio: SOMMA: INPUT: 2 numeri x e y, COMPITO: stampare x+y. Ad ogni problema computazionale possiamo associare una misura della sua

Dettagli

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza

Informatica teorica Lez. n 7 Macchine di Turing. Macchine di Turing. Prof. Giorgio Ausiello Università di Roma La Sapienza Macchine di Turing Argomenti della lezione Definizione della macchina di Turing Riconoscimento e accettazione di linguaggi Macchine a più nastri La macchina di Turing èun è automa che può leggere e scrivere

Dettagli

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi

Sommario Codifica dei dati Macchina Astratta Definizioni Esempi Sommario Codifica dei dati Macchina Astratta Definizioni Esempi 1 2 Codifica dei dati È possibile introdurre la teoria della computabilità facendo riferimento ad algoritmi che elaborano numeri naturali

Dettagli

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012.

Automi e Macchine. Computabilità. Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012. Automi e Macchine Computabilità Progetto Nazionale Lauree Scientifiche Licei Fracastoro e Messedaglia Verona, novembre/dicembre 2012 Computabilità AA 2012/13 Ugo Solitro Sommario Introduzione Automi a

Dettagli

Corso di Linguaggi di Programmazione

Corso di Linguaggi di Programmazione Corso di Linguaggi di Programmazione Lezione 2 Alberto Ceselli alberto.ceselli@unimi.it Università degli Studi di Milano 01 Marzo 2013 1 2 3 Obiettivo chiave dei LdP: fornire costrutti che riducano la

Dettagli

ALGORITMI: PROPRIETÀ FONDAMENTALI

ALGORITMI: PROPRIETÀ FONDAMENTALI ALGORITMI: PROPRIETÀ FONDAMENTALI Non si può risolvere un problema senza prima fissare un insieme di azioni, i di mosse elementari possibili per l'esecutore. Bisogna conoscerne le caratteristiche, le mosse

Dettagli

Teoria della Calcolabilità!

Teoria della Calcolabilità! Teoria della Calcolabilità!! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.!! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

Dettagli

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema

La Programmazione particolare insieme di azioni particolare tipologia di dati risolvere un problema La Programmazione È l'attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su una particolare tipologia di dati, allo scopo di risolvere un problema. 1 La Programmazione

Dettagli

L uomo come esecutore di algoritmi

L uomo come esecutore di algoritmi L uomo come esecutore di algoritmi l L algoritmo è l insieme di azioni elementari che consentono di risolvere un problema trasformando i dati iniziali del problema stesso nel risultato. l Un algoritmo

Dettagli

AUTOMA A STATI FINITI

AUTOMA A STATI FINITI Gli Automi Un Automa è un dispositivo, o un suo modello in forma di macchina sequenziale, creato per eseguire un particolare compito, che può trovarsi in diverse configurazioni più o meno complesse caratterizzate

Dettagli

Macchina di Turing. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017

Macchina di Turing. Dipartimento di Elettronica e Informazione Politecnico di Milano. 17 marzo 2017 Macchina di Turing Dipartimento di Elettronica e Informazione Politecnico di Milano 17 marzo 2017 Un modello di calcolo universale Macchina di Turing Gli AP sono più potenti degli FSA (= maggiori capacità

Dettagli

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco

Introduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - di cosa si occupa l informatica - una definizione della scienza informatica - cosa è un

Dettagli

Capitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved

Capitolo 11. Teoria della computazione Pearson Addison-Wesley. All rights reserved Capitolo 11 Teoria della computazione 2007 Pearson Addison-Wesley. All rights reserved Capitolo 11: Teoria della computazione 11.1 Funzioni e loro calcolo 11.2 Macchine di Turing 11.3 Linguaggi gg di programmazione

Dettagli

ALGORITMI E SOLUZIONI DI PROBLEMI

ALGORITMI E SOLUZIONI DI PROBLEMI ALGORITMI E SOLUZIONI DI PROBLEMI Il computer è una macchina complessa in grado di eseguire milioni di istruzioni al secondo, dotato di una memoria capace di contenere enormi quantità di dati, siano essi

Dettagli

ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA DI TURING.

ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA DI TURING. ALGORITMI E COMPLESSITA COMPUTAZIONALI LA MACCHINA I TURING francesca.piersigilli@unicam.it MACCHINA I TURING (MdT) Nel 936 il matematico inglese Alan Turing propose l'idea di una macchina immaginaria

Dettagli

Informatica Teorica. Macchine a registri

Informatica Teorica. Macchine a registri Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire

Dettagli

Teoria della Calcolabilità

Teoria della Calcolabilità Teoria della Calcolabilità! Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo.! L'origine risale alla prima metà del ventesimo secolo, quando i logici matematici

Dettagli

Teoria della Calcolabilità

Teoria della Calcolabilità Teoria della Calcolabilità n Si occupa delle questioni fondamentali circa la potenza e le limitazioni dei sistemi di calcolo n L origine risale alla prima metà del ventesimo secolo, quando i logici matematici

Dettagli

Capitolo 8: Teoria della complessitá

Capitolo 8: Teoria della complessitá Capitolo 8: Teoria della complessitá 1 La Teoria della calcolabilitá considera aspetti qualitativi della soluzione di problemi. Distingue il calcolabile dal non calcolabile. La Teoria della complessitá

Dettagli

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a

Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi. Roberto Basili a.a Fondamenti di Informatica 1 (I Modulo) Introduzione agli algoritmi Roberto Basili a.a. 2006-2007 2007 Informatica Col termine Informatica si intende attualmente l insieme delle discipline scientifiche

Dettagli

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Il problema di fondo Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale Algoritmi e Programmazione Stefano

Dettagli

LA TEORIA DELLA COMPLESSITÀ COMPUTAZIONALE

LA TEORIA DELLA COMPLESSITÀ COMPUTAZIONALE LA TEORIA DELLA COMPLESSITÀ COMPUTAZIONALE INTRODUZIONE OBIETTIVO: classificare gli algoritmi a seconda delle risorse utilizzate - risorse necessarie (lower bound) - risorse sufficienti (upper bound) Aspetti

Dettagli

Corso di Informatica di Base

Corso di Informatica di Base Corso di Informatica di Base A.A. 2011/2012 Algoritmi e diagrammi di flusso Luca Tornatore Cos è l informatica? Calcolatore: esecutore di ordini o automa Programma: insieme di istruzioni che possono essere

Dettagli

Che ruolo ha il linguaggio di programmazione?

Che ruolo ha il linguaggio di programmazione? L ELABORATORE ELETTRONICO Il calcolatore elettronico è uno strumento in grado di eseguire insiemi di azioni ( mosse mosse ) ) elementari le azioni vengono eseguite su oggetti (dati)) per produrre rre altri

Dettagli

La macchina di Turing

La macchina di Turing La macchina di Turing (Esercitazione) I. Frosio AIS Lab. frosio@dsi.unimi.it 1/32 Cosa è la macchina di Turing? Algoritmo: sequenza di istruzioni elementari che termina in un numero finito di passi; Macchina

Dettagli

Automa a Stati Finiti (ASF)

Automa a Stati Finiti (ASF) Automa a Stati Finiti (ASF) E una prima astrazione di macchina dotata di memoria che esegue algoritmi Introduce il concetto fondamentale di STATO che informalmente può essere definito come una particolare

Dettagli

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.)

Altrimenti, il M.C.D. di a e b è anche divisore di r (e.g. a=15,b=6,r=3 che è il M.C.D.) Elaboratore Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni sui dati digitale l informazione è rappresentata in forma numerica

Dettagli

Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE

Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE Prof. Pagani Corrado ALGORITMI E COMPLESSITÀ COMPUTAZIONALE COMPLESSITÀ DEGLI ALGORITMI L oggetto della teoria della complessità è stabilire se un problema sia facile o difficile In base a quali parametri

Dettagli

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd

Fondamenti d Informatica: Le Macchine di Turing. Barbara Re, Phd Fondamenti d Informatica: Le Macchine di Turing Barbara Re, Phd Agenda } Introdurremo } il formalismo delle Macchine di Turing nelle varie versioni } la nozione di calcolabilità e di decidibilità 2 La

Dettagli

Algoritmo. Calcolabilità

Algoritmo. Calcolabilità Algoritmo In altri termini, l algoritmo può essere definito come la descrizione di un procedimento che ha le seguenti proprietà: deve essere esplicita e non ambigua per l interlocutore cui è destinata

Dettagli

Capitolo 1 Linguaggi e Macchine Astratte

Capitolo 1 Linguaggi e Macchine Astratte Università degli Studi di Bologna Scuola di Ingegneria e Architettura Capitolo 1 Linguaggi e Macchine Astratte Corso di Laurea Magistrale in Ingegneria Informatica Anno accademico 2014/2015 Prof. ENRICO

Dettagli

Macchine sequenziali. Automa a Stati Finiti (ASF)

Macchine sequenziali. Automa a Stati Finiti (ASF) Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso

Dettagli

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione

Ma il programma in Fig. 8.2 del libro? Stampa hello, world, dato un input n se e solo se l equazione Problemi che i calcolatori non possono risolvere E importante sapere se un programma e corretto, cioe fa uello che ci aspettiamo. E facile vedere che il programma Ma il programma in Fig. 8.2 del libro?

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli