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

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

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


Sviluppo Applicazioni Mobile Lezione 7. Dr. Paolo Casoto, Ph.D

Problemi, algoritmi, calcolatore

Il concetto di calcolatore e di algoritmo

Introduzione all informatica

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO

Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica

Informatica, Algoritmi, Linguaggi

ELEMENTI DI INFORMATICA L. Ing. Claudia Chiusoli

L ELABORATORE ELETTRONICO!

Laboratorio di Calcolo di Aerodinamica: II Lezione

Il concetto di algoritmo. Il concetto di algoritmo. Costruire un algoritmo. Il concetto di algoritmo (più tecnico) Dati di ingresso (input)

LA METAFORA DELL UFFICIO LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Algoritmi. Informatica B. Daniele Loiacono

Problemi e algoritmi. Il che cosa e il come. F. Damiani - Alg. & Lab. 04/05 (da U. de' Liguoro - Alg. & Spe. 03/04)

Problemi e algoritmi. Il che cosa ed il come. Il che cosa ed il come. Il che cosa e il come

Elaboratore Elettronico

LA METAFORA DELL UFFICIO

Algoritmi. Informatica B. Daniele Loiacono

Introduzione alla programmazione strutturata

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

Algoritmi e (cenni sul) calcolatore

Risoluzione di un problema

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

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

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

Scrivere il software. Scrivere il software. Interprete. Compilatore e linker. Fondamenti di Informatica

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Scienza dei calcolatori elettronici (Computer Science) Scienza dell informazione. è uno strumento in grado di eseguire insiemi di azioni elementari.

Il Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)

Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati

Algoritmi e Complessità

L informatica comprende: INFORMATICA. Varie definizioni: Definizione proposta: ELABORATORE ELETTRONICO ( COMPUTER ) L ELABORATORE

INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione

Algoritmi e diagrammi di flusso

LA METAFORA DELL UFFICIO

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

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

10 STRUTTURE DI CONTROLLO REPEAT E WHILE. Strutture di controllo e variabili strutturate

Algoritmo. Programmazione

Introduzione agli Algoritmi 4. Problemi. Dal Problema alla Soluzione

Introduzione agli algoritmi

Algoritmi. Andrea Passerini Informatica. Algoritmi

CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO

L ELABORATORE ELETTRONICO

Corso di Fondamenti di Informatica

Algoritmi e diagrammi di flusso versione biennio

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Esempio. Risoluzione di un Problema

Cosa è l Informatica?

INFORMATICA DI BASE Linguaggio C Prof. Andrea Borghesan

Algoritmi. Andrea Passerini Conoscenze informatiche e relazionali Corso di laurea in Scienze dell Ingegneria Edile

Le aree dell informatica

INFORMATICA (Computer Engineering o

Gli algoritmi. Prof. Pasquale De Michele. Gli algoritmi. Pasquale De Michele

Corso di Informatica

CdL in Medicina Veterinaria - STPA AA

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI Algoritmi e programmazione Prof. Andrea Borghesan

L uomo come esecutore di algoritmi

Che cosa si intende per INFORMATICA?

Università degli Studi di Verona. Algoritmie Diagrammidiflusso. Gennaio Sergio Marin Vargas. Dipartimento di Biotecnologie

MODULO 07. La soluzione dei problemi mediante gli algoritmi

Introduzione agli Algoritmi 4

Sommario. Problema computazionale Sviluppo software Algoritmi. Istruzioni Sequenziali, Condizionali, Cicliche; Javascript

Informatica. Come si risolve un problema?

Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.

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

A lezione sono stati presentati i seguenti passi per risolvere un problema:

Corso di Informatica

Concetti Introduttivi. Il Computer

generalità concetti di base

Programmazione strutturata IV e Gli array. Dove siamo. Un esercizio. Oggi. Schema 1. Prima idea. 7. Programmazione strutturata 4 & Array

Paolo Bison. Fondamenti di Informatica A.A. 2006/07 Università di Padova

Algoritmi. Strutture dati. Strumenti del linguaggio di programmazione

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

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.)

Capitolo III. Algoritmi e Programmi

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

APPUNTI DI INFORMATICA

Fondamenti dell Informatica. Esercizi di preparazione al secondo compitino

Introduzione agli Algoritmi 4

Corso di Informatica di Base

Introduzione alla programmazione

2 Problemi, Algoritmi e Programmi

ALGORITMI. I diagrammi a blocchi o diagrammi di flusso (flow charts) sono diagrammi a blocchi

Fondamenti di Informatica. per la Sicurezza. a.a. 2003/04. Grammatiche. Stefano Ferrari

LABORATORIO DI INFORMATICA

Pseudo codice. Paolo Bison. Fondamenti di Informatica 1 A.A. 2003/04 Università di Padova. Pseudo codice, Paolo Bison, A.A , p.

Elementi di Informatica e Programmazione

Le parole dell informatica: algoritmo e decidibilità

Lezione 8. Soluzione di un problema Problema. Soluzione di un problema. Comprensione del Problema. Analisi. Introduzione agli algoritmi

Algoritmi e Programmi

Transcript:

Scaletta Cenni di computabilità Steano Mizzaro Dipartimento di matematica e inormatica Università di Udine http://www.dimi.uniud.it/mizzaro/ mizzaro@dimi.uniud.it Programmazione, lezione 12a 12 novembre 2007, domande, risposte Algoritmi, programmi, linguaggi di programmazione Algoritmi che calcolano unzioni computabili e non Steano Mizzaro - Computabilità 2 Cosa a un programma? Fornisce risposte a domande Qual è la radice quadrata di 2345? Qual è il massimo comun divisore di 234 e 36? Fornisce risposte a una classe di domande Programma per calcolare la radice quadrata di un numero Risolve problemi Deinizioni (1/2) Problema = insieme di domande omogenee Esempi: P1 = Calcolare sqrt(n) P2 = Calcolare mcd(x,y) Domanda ( istanza di un problema ) Esempi: I1 = Quanto vale sqrt(341)? I2 = Quanto vale mcd(48,36)? Steano Mizzaro - Computabilità 3 Steano Mizzaro - Computabilità 4 e domande Deinizioni (2/2) Risposta (a una domanda) = soluzione di un istanza Soluzione di un problema = metodo generale che permette di ornire in modo uniorme la risposta a tutte le istanze di un problema = Algoritmo risolvente Steano Mizzaro - Computabilità 5 Steano Mizzaro - Computabilità 6 Steano Mizzaro 1

Algoritmi e programmi Algoritmo Metodo, procedimento, sequenza di passi Astratto Non si può toccare/vedere Programma Rappresentazione precisa di un algoritmo in un certo linguaggio di programmazione Per eseguire/comunicare un algoritmo bisogna rappresentarlo!! e Steano Mizzaro - Computabilità 7 Steano Mizzaro - Computabilità 8 Algoritmi e programmi,, programmi Progr. per Progr. per Progr. per Progr. per Steano Mizzaro - Computabilità 9 Steano Mizzaro - Computabilità 10 Il calcolatore È un: Esecutore di rappresentati da programmi mediante un linguaggio di programmazione Esecutore universale di Un algoritmo va eseguito su dati Es.: calcola sqrt(897) Calcolatore, programma e dati Problema Algoritmo Istanza Programma Dati Risultati Calcolatore Steano Mizzaro - Computabilità 11 Steano Mizzaro - Computabilità 12 Steano Mizzaro 2

Finitezza, univocità, eettività Un programma/algoritmo deve essere: Finito (# inito di istruzioni) i (x == 0) return 1; else i (x == 1) return 2; else i (x == 2) return 3; else i (x == 3) return 4; else i (x == 4) return 5; Univoco, non ambiguo (x x = x + un po ) Eettivo: deve esistere un calcolatore in grado di eseguire le istruzioni prossimavincitaallotto() Steano Mizzaro - Computabilità 13 Curiosità legittime Ma con gli si può are tutto? E se no, che cos è che si può are? E quello che si può are dipende dal linguaggio di programmazione scelto? A queste domande risponde la teoria della computabilità (tà) Approccio ormale, matematico, preciso Steano Mizzaro - Computabilità 14 4 Domini e codomini Funzione = legge che associa a un elemento di un insieme (dominio) un elemento di un insieme (codominio) b a d codominio 3 2 5 3 64 9 5 dominio c e Steano Mizzaro - Computabilità 15 1 codominio dominio Steano Mizzaro - Computabilità 16 Algoritmi calcolano unzioni Algoritmo per calcolare la radice quadrata calcola la unzione che associa a un numero la sua radice quadrata Algoritmo di Euclide calcola la unzione che dati 2 numeri restituisce il loro MCD Sembra riduttivo, ma codiica Quali unzioni? : R R: analisi matematica La teoria della computabilità si occupa delle unzioni : N N Parziali Ad esempio programma con un ciclo ininito che non dà nessun output Funzione non deinita Steano Mizzaro - Computabilità 17 Steano Mizzaro - Computabilità 18 Steano Mizzaro 3

Le unzioni : N N Curiosità legittime 2 : N N De.: Funzione calcolabile (computabile) = unzione per cui esiste un algoritmo che la calcola Ora, inalmente, possiamo porci una domanda precisa: Le unzioni : N N sono tutte? Data una qualsiasi unzione, esiste sempre un algoritmo che la calcola? MCD: ok. Somma: ok. Radice quadrata:ok. Ma in generale? Steano Mizzaro - Computabilità 19 Steano Mizzaro - Computabilità 20 No! e non No? Voglio un esempio 2 : N N Il problema della terminazione (Halting problem) Trovare un algoritmo A in grado di dirci se un qualsiasi algoritmo A i su dati D termina. (un algoritmo potrebbe non terminare perché entra in un ciclo ininito) non Steano Mizzaro - Computabilità 21 Steano Mizzaro - Computabilità 22 Il problema della terminazione Una soluzione? Descrizione di un algoritmo A i Dati di ingresso D Algoritmo A? Calcolatore Termina / Non termina Beh, potrei ar eseguire A i sui dati e attendere Se termina so che termina Se dopo 2 ore non ha terminato so che non ha terminato in due ore ma quanto devo aspettare?! Non va! Teorema: A non esiste Steano Mizzaro - Computabilità 23 Steano Mizzaro - Computabilità 24 Steano Mizzaro 4

non e problemi non risolubili,, programmi non risolubili P 1 P 2 P 3 P 4 risolubili non : N --> N 2 Steano Mizzaro - Computabilità 25 Steano Mizzaro - Computabilità 26 5 ] Progr. per Progr. per P2(mcd(X,Y)) risolubili mcd(21,63) mcd(135,207) P1( N ) P3() 27 144 : N N 2 [mcd(x,y)] 2 (21,63) 2 (135,207) [] [ N (27) (5) 1 (144) A3: gli per P3 A1: gli per P1 A2: gli, e programmi 2 per P2 (Euclide) l'algoritmo di Euclide l'algoritmo l'algoritmo Rierimenti http://www.dimi.uniud.it/mizzaro/papers/ algoritmo.pd Capp. 3 e 4 Sostituite: Uicio / Calcolatore Impiegato / Processore Diagramma di lusso / Programma Steano Mizzaro - Computabilità 27 Steano Mizzaro - Computabilità 28 Riassunto, domande, risposte Algoritmi, programmi, linguaggi di programmazione Algoritmi che calcolano unzioni computabili e non Steano Mizzaro - Computabilità 29 Steano Mizzaro 5