CALCOLABILITA’ AFFERMARE CHE UN PROBLEMA E’ RISOLUBILE MEDIANTE UN PROCESSO AUTOMATICO EQUIVALE A DIRE CHE E’ POSSIBILE TROVARE UN ALGORITMO RISOLUTIVO.

Slides:



Advertisements
Presentazioni simili
…da von Neumann al computer quantistico
Advertisements

…da von Neumann al computer quantistico
…da von Neumann al computer quantistico architettura dellelaboratore.
Sistemi dinamici discreti e computabilità intrinseca
La struttura fisica e logica di un elaboratore
Estendere i linguaggi: i tipi di dato astratti
Definizione e tipi di implementazione
INTRODUZIONE ALL’ INFORMATICA
IL COMPUTER Il computer, o elaboratore, è un insieme di dispositivi (meccanici, elettrici,ottici) predisposti per accettare dati dallesterno, elaborarli.
Algoritmi e Programmazione
Informatica Generale Susanna Pelagatti
Deduzione naturale + Logica & Calcolabilità
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
MACCHINE DI TURING Le macchine di Turing sono dispositivi astratti per la manipolazione di simboli, ideati nel 1936 dal matematico e logico britannico.
Iterazione enumerativa (for)
Introduzione allinformatica. Cosè linformatica ? Scienza della rappresentazione e dellelaborazione dellinformazione ovvero Studio degli algoritmi che.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
CORSO DI PROGRAMMAZIONE II Introduzione alla ricorsione
Introduzione alla programmazione l
Funzioni, Rappresentazioni e Coscienza
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Modelli simulativi per le Scienze Cognitive
2) Trattamento dell'informazione. Lab.Calc. I AA 2002/03 - cap.22 Esempio Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
La macchina di von Neumann
INSIEMI NUMERABILI L’analisi matematica introduce il concetto di insieme numerabile come insieme i cui elementi possono essere “contati” ossia che possiede.
PROBLEMI RISOLUBILI E COMPUTABILITÀ
L’AUTOMA ESECUTORE Un automa capace di ricevere dall’esterno una descrizione dello algoritmo richiesto cioè capace di interpretare un linguaggio (linguaggio.
LINGUAGGI DI PROGRAMMAZIONE
Elementi di Informatica
Il Modello logico funzionale dell’elaboratore
Algoritmi e Programmazione strutturata
INFORMATICA MATTEO CRISTANI.
PROGRAMMAZIONE: linguaggi
Antonio Cisternino La Macchina di Turing.
Architettura del calcolatore
LA MACCHINA DI TURING Nel 1936 il matematico inglese A. M. Turing propose una definizione del concetto di algoritmo tramite un modello matematico di macchina.
Unità centrale di processo
Programma di Informatica Classi Prime
ORGANIZZAZIONE DI UN SISTEMA DI ELABORAZIONE
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Corsi di Laurea in Biotecnologie
Laboratorio Informatico
Allievi Elettrici - AA Le funzioni ricorsive in C
1 Sommario lez 1 Concetti principali, domande ed esercizi Concetti principali –algoritmo, programma –struttura di controllo: condizionale (if …), iterativa.
Algoritmi.
L’esecuzione dei programmi
Concetti Fondamentali sulla Programmazione
Il calcolatore Stefano Cagnoni e Monica Mordonini
Il software Claudia Raibulet
Esercizi.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
TIPI SEMPLICI (ATOMICI) DIREMO CHE UNA INFORMAZIONE E’ DI TIPO SEMPLICE SE NON E’ COMPOSTA DA INFORMAZIONI PIU’ SEMPLICI TIPI STRUTTURATI DIREMO CHE UNA.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari.
Programmazione dei Calcolatori Elettronici
Indecidibilità Limiti della calcolabilità Pigreco-day 14 marzo 2014 Matematica e Incertezza Prof. Antonio Iarlori Mathesis Lanciano-Ortona.
…da von Neumann al computer quantistico L’archittettura dell’elaboratore.
Tipi di Computer MainframeSupercomputerMinicomputerMicrocomputerHome Computer Personal Computer WorkstationMicrocontrollori Sistemi Barebone.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Il computer RAM: Unità di misura MByte e GByte MHz Processore: Unità di misura Singolo o multiprocessore 32/64 bit velocità GHz Mouse tastiera video stampante.
IL PIANO CARTESIANO E LA RETTA
Unità di apprendimento 6 Dal problema al programma.
Laboratorio di Architettura Degli Elaboratori1 PSPICE – simulazione di circuiti combinatorii Decodificatore e Multiplexer.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Istruzioni e algoritmi. Istruzioni Operative I passi elementari che compongono l’algoritmo sono le istruzioni. Distinguiamo: Istruzioni di input Istruzioni.
Unità di apprendimento 6
Transcript della presentazione:

CALCOLABILITA’ AFFERMARE CHE UN PROBLEMA E’ RISOLUBILE MEDIANTE UN PROCESSO AUTOMATICO EQUIVALE A DIRE CHE E’ POSSIBILE TROVARE UN ALGORITMO RISOLUTIVO CHE PORTI, DOPO UN NUMERO FINITO DI OPERAZIONI, ALLA SOLUZIONE CERCATA.

CALCOLABILITA’ UNA FUNZIONE E’ CALCOLABILE SE ESISTE UN ALGORITMO CHE LA RISOLVE PER OGNI FUNZIONE CALCOLABILE E’POSSIBILE COSTRUIRE UNA MACCHINA DI TURING E’POSSIBILE COMBINARE TANTE MACCHINE SEMPLICI PER RISOLVERE QUALSIASI COMPITO DESCRIVIBILE TRAMITE UN ALGORITMO

CALCOLABILITA’ UNA MACCHINA DI TURING CHE SI ARRESTI E TRASFORMI UN NASTRO t IN UNO t’ RAPPRESENTA L’ALGORITMO PER LA ELABORAZIONE Y=F(X), CON X E Y CODIFICATI SU t E t’ MdT CALCOLA Y=F(X)

TESI DI CHURCH-TURING QUANTO NON E’ CALCOLABILE SU UNA DELLE MACCHINE IDEALI PROPOSTE DA TURING NON E’ CALCOLABILE SU NESSUNA ALTRA MACCHINA, SIA ESSA IDEALE O REALE NON ESISTE UN FORMALISMO NE’ UNA MACCHINA CONCRETA CHE POSSA CALCOLARE UNA FUNZIONE NON CALCOLABILE SECONDO TURING UN ALGORITMO E’ CIO’ CHE PUO’ ESSERE REALIZZATO CON UNA MACCHINA DI TURING

TESI DI CHURCH-TURING Tutte le definizioni di algoritmo che noi conosciamo sono EQUIVALENTI Tutte le definizioni di algoritmo che chiunque farà saranno equivalenti a quelle conosciute Ciò porta al fatto che tutti i computer sono EQUIVALENTI tra di loro

Problemi non Computabili La domanda alla quale si vuole rispondere è la seguente: –Tutti i problemi sono computabili? O, in altre parole, ci sono problemi per i quali non esiste nessun algoritmo in grado di risolverli? La risposta a questa domanda è: –Esistono problemi che non sono computabili

Problema dell’ Arresto Dato un programma P ed i suoi dati di input D si vuole sapere se tale programma terminerà. Tale problema NON E’ COMPUTABILE, cioè non esiste un algoritmo in grado di risolverlo

Problema dell’ Arresto Supponiamo che esista un algoritmo, Test_arresto(P,D), che risolva il problema e che si comporti come in figura PD P(D) si arresta? SiNo Stampa OK e fermati Stampa NO e fermati

Problema dell’ Arresto Supponiamo di utilizzare come dati D lo stesso P. Chiamiamo questa versione Test_arresto_nuovo P P(P) si arresta? SiNo Stampa OK e fermati Stampa NO e fermati

Problema dell’ Arresto Test_arresto_nuovo può essere schematizzato in termini di Test_arresto come segue Test_arresto_nuovo(P) { Test_arresto(P,P); }

Problema dell’ Arresto Supponendo che test_arresto e Test_arresto_nuovo esistano, costruiamo un nuovo algortimo Test_arresto_loop che si comporta come segue P P(P) si arresta? SiNo Esegui un ciclo infinito Stampa NO e fermati

Problema dell’ Arresto Test_arresto_loop può essere schematizzato in termini di Test_arresto_nuovo come segue Test_arresto_loop(P) { if ( Test_arresto_nuovo(P) da NO in Output) fermati; else esegui un ciclo infinito; }

Problema dell’ Arresto Consideriamo, infine, il caso in cui a Test_arresto_loop diamo in ingresso lo stesso Test_arresto_loop Test_arresto_loop Test_arresto_loop(Test_arresto_loop) si arresta? SiNo Esegui un ciclo infinito Stampa NO e fermati

Problema dell’ Arresto E’ immediato constatare che l’algoritmo Test_arresto_loop mostra una evidente contraddizione logica, e quindi NON ESISTE Test_arresto_nuovo NON ESISTE Test_arresto NON ESISTE

MODELLO DI VON NEUMANN unita' controllo unita' ingresso unita' uscita unita' aritmetica unita' memoria

MODELLO DI VON NEUMANN Elaborazione sequenziale Linguaggio imperativo Memoria comune per dati ed Istruzioni

Elaborazione Y=F(X) assegnare i valori Y ai corrispondenti attributi Ay in base alla regola F, partendo dai valori X degli attributi Ax La decomposizione dell’elaborazione in azioni componenti ci porta a costruire l’algoritmo di calcolo, detto anche processo di elaborazione

Il processore (o unità di controllo) nel modello di Von Neumann è la macchina che esegue il processo di elaborazione Il processo(algoritmo) è formalmente descritto mediante un programma, registrato nella memoria dell’elaboratore Un programma è formalmente descritto mediante un linguaggio noto al processore

MACCHINA DI VON NEUMANN stato: (A,V) A={a1,a2,...,an} e V={v1,v2,...,vn} una azione elaborativa altera lo stato essa assegna un valore ad uno o piu' attributi Esempi –assegnazione del valore 3 all’attributo a1 –assegnazione del valore a1 ad a2 –assegnazione del valore derivante da un ingresso ad a1

Macchina Astratta Generalizzata (MAG) Ciasun linguaggio di programmazione definisce i tipi che tratta e le operazioni su di essi Il processore è una parte hardware del calcolatore o esso stesso un programma utilizzato per l’esecuzione o per l’interpretazione di altri programmi Per ciascuna coppia linguaggio-processore sono diversi i tipi,le operazioni definite e quindi le Istruzioni ed i programmi

Macchina Astratta Generalizzata (MAG) Modello dal quale trarre come casi particolari i componenti delle macchine concrete Cosituita da: –un insieme di registri di memoria –un registro speciale PI atto a contenere la informazione "puntatore alla prossima istruzione” –un processore

MAG: TIPI Dati (le informazioni da elaborare o elaborate) Istruzioni (le azioni da compiere) Puntatori (a dati e a istruzioni) –Il valore di un tipo puntatore è uno specifico registro di memoria

MAG: Istruzioni e Programmi Nella famiglia di tipi T è definito un insieme di operazioni elementari O Mediante composizione di uno o più operatori viene definito l’insieme di funzioni f: U=f(I) Ogni funzione trasforma un insieme I di k valori in un insieme Q di q valori

MAG: Istruzioni e Programmi Mediante la f si costruisce un’ azione elaborativa che consiste nell’assegnare i valori U ai registri della macchina, cioè ai registri di memoria e/o al registro speciale PI Un’azione elaborativa si esprime mediante un’ istruzione che, in generale, è composta da 3 componenti

MAG: Istruzioni e Programmi i=(f,P1,P2) f è la funzione da calcolare P1 rappresenta i valori di I ed è un insieme di valori e/o puntatori a registri contenenti valori P2 è costituito da q-1 puntatori a registri di memoria associati ad altrettanti valori dell’insieme U che rappresentano i dati elaborati dall’istruzione. L’ultimo valore di U è destinato al registro PI ed è un puntatore ad un’istruzione

Modello Operativo della MAG 1- Prelievo dalla memoria dell’istruzione definita da PI e suo spostamento nel processore 2- prelievo delle informazioni P1 dalla memoria oppure direttamente dall’istruzione 3- calcolo dei valori U=f(I) 4- memorizzazione dei valori calcolati nei registri P2 5- trasferimento in PI dell’ultimo valore di U 6- ripetizione delle operazioni a partire dal punto 1

1) (f,P1,P2) spostata in memoria in un registro di G 2) si costituisce l'insieme di I 3) si esegue il calcolo U=f(I) 4) q-1 valori sono memorizzati nei registri puntati da P2 5) l'ultimo valore di U, u q, e' memorizzato in PI f P1 P2 a IU PI PROCESSORE G memoria M P2 P1 IU U=f(I) ALU a

Un modello semplice (es MdT) è in grado di calcolare mediante apposite macchine costruite su di esso problemi complessi Nel caso di macchine a programma ciò si ottiene inserendo l’apposito programma Una macchina può simularne un’altra (più semplice o più complessa) se attrezzata con un programma

Con riferimento al modello di Von Neumann, una coppia linguaggio processore è in grado di operare equivalentemente ad un’altra coppia con azioni elaborative diverse (ma equivalenti per la Tesi di Church)

Registro PI ORDINAMENTO STATICO O DINAMICO I 1 >I 2 >……………<I N STATICO U Q =F Q (I) DINAMICO

HARDWARE E SOFTWARE Hardware Software Macchina Virtuale

Hardware: l’insieme di circuiti, dei componenti elettrici, elettronici e meccanici Software: l’insieme dei programmi operanti sulla macchina

Strato Hardware Il classico strato hardware è costituito da una macchina di Von Neumann detta Macchina di base: –linguaggio macchina –processore hardware –memoria fisica e registri fisici

Software I sistemi di elaborazione sono completati da appositi programmi che ne consentono un uso più semplice. Essi cosituiscono il Software di base Con tali programmi il calcolatore appare all’utente come una macchina diversa che verrà indicata come Macchina Virtuale

Gerarchia di Astrazione di un Calcolatore.. 6Programma App 5Linguaggio di Programmazione 4Ling. Assemblativo 3Nucleo del Sist. Operativo 2Linguaggio Macchina 1Microprogramma 0Logica Digitale LIVELLO ASTRAZIONE

COSA E’ LA RICORSIVITA’ ? ANNIDARSI DI COSE DENTRO LE COSE Ma ….. Attenzione ai paradossi ! A PRIMA VISTA :COSA DEFINITA IN TERMINI DI SE STESSA IL DIALOGO CON A,B,C …... PUSH, POP e PILE

RICORSIVITA’ NEL CAMPO MUSICALE BachSuite Francise n. 5 “AABB” NEL CAMPO LINGUISTICO Rete di Transizione Ricorsiva (RTN) NEL CAMPO DELLE STRUTTURE GEOMETRICHE MOLTO NOTA Leonardo Pisano “figlio di Bonaccio”1202 detto FIBONACCI

Il Diagramma G e le successioni ricorsive Possiamo definire strutture geometriche infinite usando lo stesso metodo,cioe’quello di espandere un nodo dopo l’altro. Per esempio, definiamo un diagramma infinito chiamato “Diagramma G”. Useremo a questo scopo una rappresentazione implicita. In due nodi scriveremo semplicemente la lettera ‘G’, che starà per una copia del Diagramma G, nella figura 31a, abbiamo disegnato il Diagramma G implicitamente. Ora se vogliamo vedere il Diagramma G più esplicitamente, possiamo espandere ciascuna delle due G, cioè, sostituirle con lo stesso diagramma, ma in dimensioni ridotte (vedi Fig 31b). Questa versione “disecondo ordine” del diagramma G ci dà una vaga idea dell’aspetto che avrebbe il Diagramma G se fosse completo, cosa che è impossibile G G G G GG H H H H H H (a) (d) (b) (c) FIGURA 31. (a) Diagramma G, senza espansioni (b) Diagramma G, con una espansioni (c) Diagramma H, senza espansioni (d) Diagramma H, con una espansioni

Il Diagramma G e le successioni ricorsive G G G G GG H H H H H H (a) (d) (b) (c) (a) Diagramma G, senza espansioni (b) Diagramma G, con una espansioni (c) Diagramma H, senza espansioni (d) Diagramma H, con una espansioni

Nella Figura si vede una parte ancora più grande del diagramma G, in cui tutti i nodi sono stati numerati cominciando dal basso e da sinistra a destra. In basso sono stati inseriti due nodi supplementari che portano i numeri 1 e

Questo albero infinito, possiede alcune propietà matematiche molto curiose. Se ci muoviamo lungo il suo bordo destro, troviamo la famosa successione dei numeri di Fibonacci 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, ……. Il migliore modo per definire questi numeri consiste in una ricorsione in base alle due formule FIBO(n) = FIBO(n-1) + FIBO(n-2) per n >= 2 FIBO(0) = 1 FIBO(1) = 1

inizio Porre x=FIBO(n-1) X+Y fine FIBO(n) Porre y=FIBO(n-2) Il valore è 1 Come si vede, ogni numero di Fibonacci viene definito in base ai numeri di Fibonacci definiti in precedenza. Potremo rappresentare le due formule con una RTN