Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
|
|
|
- Bartolomeo Rubino
- 9 anni fa
- Просмотров:
Транскрипт
1 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo Efficienza rispetto allo spazio L informatica è lo studio degli algoritmi: delle loro proprietà formali e matematiche delle loro realizzazioni hardware delle loro realizzazioni linguistiche delle loro applicazioni Corso di Informatica - AA Algoritmi e proprieta' 2 Che cos è un algoritmo? Un insieme ben ordinato e finito di operazioni non ambigue ed effettivamente calcolabili che, applicate ad un insieme di condizioni iniziali, produce un risultato e termina in una quantità di tempo finita. Un esempio di algoritmo La somma dei primi 100 numeri interi (da 0 a 99!): 1. Poni somma = 0 2. Poni indice = 1 3. Finché indice è minore di 100 ripeti i passi 4. e Aggiungi indice a somma 5. Incrementa indice di 1 6. Stampa somma 7. Fermati Corso di Informatica - AA Algoritmi e proprieta' 3 Corso di Informatica - AA Algoritmi e proprieta' 4
2 2 Proprietà formali e matematiche degli algoritmi La prima proprietà è ovviamente la correttezza Ma ha una fondamentale importanza anche l efficienza, che si misura rispetto alla risorsa spazio e rispetto alla risorsa tempo Scrivere un algoritmo La ricerca del giusto algoritmo per la soluzione di un dato problema è la parte più creativa del lavoro di un informatico. Ogni algoritmo può essere scomposto in tre tipi fondamentali di operazioni : Operazioni sequenziali Operazioni condizionali Operazioni iterative Teorema di Boehm-Jacopini Corso di Informatica - AA Algoritmi e proprieta' 5 Corso di Informatica - AA Algoritmi e proprieta' 6 Operazioni sequenziali Istruzioni di elaborazione Esempi: Poni indice = 1 Aggiungi indice a somma Incrementa indice di 1 Istruzioni di Input/Output (I/O) Esempi: Acquisisci misura Acquisisci errore assoluto Stampa errore relativo Esempio: Operazioni condizionali 1. Se misura 0 allora 2. Esegui algoritmo trova errore relativo 3. Altrimenti 4. Stampa il messaggio errore relativo non definito Corso di Informatica - AA Algoritmi e proprieta' 7 Corso di Informatica - AA Algoritmi e proprieta' 8
3 3 Operazioni iterative Ciclo do While : Inizio ciclo: esegui..... Fine del ciclo Fino a che (condizione) rimane vera ripeti ciclo eseguito almeno 1 volta Ciclo While Mentre (condizione) rimane vera ripeti: Fine del ciclo eseguito 0 o più volte Pseudocodice Gli algoritmi presentati sono stati scritti secondo uno schema strutturato chiamato pseudocodice Notate che: tutte le linee contengono un verbo specifico (azione) i passi sono numerati in modo tale che per ogni riga viene eseguita una sola azione se la linea richiede due passi viene suddivisa in linee successive identate Corso di Informatica - AA Algoritmi e proprieta' 9 Corso di Informatica - AA Algoritmi e proprieta' 10 Correttezza di un algoritmo Determinare la correttezza dell algoritmo elaborato per un dato problema può essere arduo le condizioni per essere ragionevolmente sicuri di averlo trovato sono: Comprensione effettiva del problema Validità della soluzione indipendentemente da condizioni particolari o dal valore dei dati in ingresso Livello di approssimazione del risultato sufficiente agli scopi di progetto Comprensione del problema La condizione necessaria per trovare un corretto algoritmo a un problema è ovviamente la corretta formulazione e comprensione del problema Esempio: Qual è la via più breve fra le città A e B? Algo 1: Esamina tutte le strade che congiungono A a B e scegli quella di lunghezza inferiore Algo 2: Esamina tutte le strade che congiungono A a B e scegli quella il cui tempo di percorrenza medio è minimo Corso di Informatica - AA Algoritmi e proprieta' 11 Corso di Informatica - AA Algoritmi e proprieta' 12
4 4 Dipendenza dai dati in ingresso Algoritmo per risolvere equazioni algebriche di secondo grado: 1. Acquisisci a, b, c 2. Poni Dipendenza dalle condizioni del problema Esempio: gittata di un proiettile: 1. Acquisisci v, θ 2. Poni 3. Stampa x 1, x 2 4. Fermati 3. Stampa G 4. Fermati valido solo se il cannone è al suolo... Corso di Informatica - AA Algoritmi e proprieta' 13 Corso di Informatica - AA Algoritmi e proprieta' 14 Livello di approssimazione richiesto Spesso il risultato di un algoritmo è solo un approssimazione, più o meno buona della risposta corretta. Ad esempio se il risultato è un numero reale, un calcolatore potrà fornire solo un numero finito di cifre significative: occorrerà stabilire in base all uso che della soluzione si deve fare quale approssimazione è accettabile come corretta. Efficienza degli algoritmi Una volta determinato un algoritmo corretto per la soluzione di un problema, occorre preoccuparsi della sua efficienza, ovvero di come esso gestisca le risorse tempo (numero di operazioni necessarie alla soluzione) e spazio (memoria occorrente per trovare la soluzione) che saranno in quantità finita per qualunque elaboratore reale. Corso di Informatica - AA Algoritmi e proprieta' 15 Corso di Informatica - AA Algoritmi e proprieta' 16
5 5.... proseguendo Un criterio per la valutazione dell efficienza di un algoritmo e di grande utilita in quanto dobbiamo assicurarci la possibilita di operare confronti tra diversi algoritmi, indipendentemente dal linguaggio con cui saranno implementati e dalla potenza della macchina su cui saranno eseguiti. Valutare l efficienza rispetto al tempo L efficienza rispetto alla risorsa tempo può essere valutata in generale contando il numero di operazioni richieste dall algoritmo per arrivare alla soluzione del problema in funzione del numero n dei dati in ingresso. In questa valutazione non è importante il valore esatto quanto la dipendenza funzionale e l ordine di grandezza. Si parlerà allora di algoritmi o complessita O(n), O(n 2 ), O(log n), O(2 n ) etc a seconda degli andamenti. Corso di Informatica - AA Algoritmi e proprieta' 17 Corso di Informatica - AA Algoritmi e proprieta' 18 L algoritmo di ricerca sequenziale... Supponiamo di voler cercare un nome in una rubrica telefonica contenente 100 nomi. Il primo algoritmo che viene in mente potrebbe essere: finche Corso di Informatica - AA Algoritmi e proprieta' 19 Corso di Informatica - AA Algoritmi e proprieta' 20
6 6 e quello di ricerca binaria L algoritmo di ricerca sequenziale è semplice e corretto... ma non sfrutta il fatto che la rubrica è ordinata! Riesco a trovare i nomi molto più velocemente sul dizionario, da quando ho scoperto che sono in ordine alfabetico (Groucho Marx) Corso di Informatica - AA Algoritmi e proprieta' Acquisisci nome 1..nome Acquisisci tel 1 tel Acquisisci nome cercato 4. Poni trovato = falso 5. Poni inizio = 1 e fine = Ripeti finché trovato diventa vero o fine<inizio 7. Poni i a (inizio+fine)/2 8. Se nome i = nome cercato allora 9. Stampa tel i 10. Poni trovato = vero Altrimenti Se nome cercato precede alfabeticamente nome i 11. Poni fine = i -1 altrimenti (nome cercato segue nome i ) 12. Poni inizio = i Fine del ciclo 14. Se trovato = falso allora 15.Stampa messaggio Nome non in elenco 16. Fermati Corso di Informatica - AA Algoritmi e proprieta' 22 Carattere cercato: b Passi = 3 b d h Carattere cercato: m Passi = 4 l m n Ricerca Binaria: Complessita Passi (confronti) k s n Numero di dati per passo n /2 n/2/2 = n/2 2 n/2 3 n/2 (k-1) 1 = n/2 (s-1) Caso peggiore a b c d e f g h i j k l m n o p 2 (s-1) = n ; s-1 = log 2 n ; s = log 2 n + 1 O(log 2 n) Corso di Informatica - AA Algoritmi e proprieta' 23 Corso di Informatica - AA Algoritmi e proprieta' 24
7 7 Costo Confronto fra ricerca sequenziale e ricerca binaria Operazione/sec CRAY T3E processori in parallelo 30 Milioni 7*10 11 Pentium Pro 200 ~ 50 7*10 7 Ordini di grandezza gli algoritmi di complessita di tipo polinomiale O(n k ) producono una soluzione trattabile ad un problema; gli algoritmi di complessita di tipo esponenziale O(k n ) producono una soluzione intrattabile op. al secondo Algoritmo Ricerca sequenziale Elenco di Napoli (10 6 abitanti): Elenco di New York (2*10 7 abitanti): ricerca binaria n 10-7 s s s s n s s s s 2 n 10-5 s s s s Corso di Informatica - AA Algoritmi e proprieta' 25 Corso di Informatica - AA Algoritmi e proprieta' 26 Efficienza rispetto allo spazio Tutti gli algoritmi mostrati finora sono O(n) nel numero di celle di memoria da utilizzare. In alcuni casi (ordinamento di elenchi con ricopiature e spostamenti etc) la risorsa spazio può essere utilizzata in modo più intenso. In generale esiste un tradeoff tempo - spazio : la soluzione più efficiente per la risorsa tempo tende a utilizzare maggiormente la risorsa spazio e viceversa. Corso di Informatica - AA Algoritmi e proprieta' 27 Riassumendo... Abbiamo definito gli algoritmi e visto alcuni esempi. Ci siamo preoccupati delle proprietà formali degli algoritmi. Abbiamo visto che gli algoritmi possono sempre essere ricondotti ad operazioni sequenzialicondizionali-iterative Abbiamo trovato dei criteri per studiare la correttezza e l efficienza degli algoritmi. Abbiamo imparato che algoritmi di tipo esponenziale sono di fatto inutilizzabili. Corso di Informatica - AA Algoritmi e proprieta' 28
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
Lezioni di Informatica di Base per la Facoltà di Lettere e Filosofia. Algoritmi
Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Lezioni di Informatica di Base per la Anno Accademico 2012/20103 Docente: ing. Salvatore Sorce Algoritmi
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
Corso di Informatica. Problemi ed algoritmi. Ing Pasquale Rota
Corso di Problemi ed algoritmi Ing Pasquale Rota Argomenti Problemi ed algoritmi Proprietà degli algoritmi Pseucodice Diagrammi di flusso Problemi ed algoritmi - Ing. Pasquale Rota 2 Proprietà degli algoritmi
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
Algoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
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
Programmazione strutturata
Corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Gestionale (L-Z) 3. (testo di riferimento: Bellini-Guidi) Ing. Michele Ruta 1di 29 Linguaggi di programmazione Un programma è un algoritmo
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
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
Algoritmi e Programmi
Algoritmi e Programmi Algoritmi e Programmi Le azioni che si compiono ogni giorno sono finalizzate alla risoluzione di problemi. Problema di elaborazione Insieme dati di partenza Risultato ricerca Algoritmi
INFORMATICA. Scienza degli elaboratori elettronici (Computer. informazione
Varie definizioni: INFORMATICA Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione informazione Definizione proposta: Scienza della rappresentazione e dell elaborazione elaborazione
Algoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
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
1) Quale tra questi non è un dispositivo di output? 2) Nell ambito dei linguaggi di alto livello, un interprete è:
Test di informatica 1) Quale tra questi non è un dispositivo di output? - Monitor - Plotter - Mouse 2) Nell ambito dei linguaggi di alto livello, un interprete è: - Un dispositivo hardware - Una periferica
Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice. Nicola Vitucci
Esercitazioni di Informatica B A.A. 2010/2011 Pseudocodice Cos'è lo pseudocodice? Abbiamo visto che prima di scrivere del codice è importante innanzitutto avere le idee chiare sul problema da affrontare
Analisi strutturata 1
Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata
Teoria dell Informazione
Corso di Laurea Magistrale in Scienze dell Informazione Editoriale, Pubblica e Sociale Teoria dell Informazione Cosa è l informazione L informazione è qualcosa che si possiede e si può dare ad un altro
1.1 Concetti base dell Informatica: Algoritmi
1.1 Concetti base dell Informatica: Algoritmi Insegnamento di Informatica Elisabetta Ronchieri Corso di Laurea di Economia, Universitá di Ferrara I semestre, anno 2014-2015 Elisabetta Ronchieri (Universitá)
Informatica per la Storia dell Arte. Algoritmi
Università degli Studi di Palermo Dipartimento di Ingegneria Chimica, Gestionale, Informatica, Meccanica Informatica per la Storia dell Arte Anno Accademico 2014/2015 Docente: ing. Salvatore Sorce Algoritmi
Definizione FONDAMENTI DI INFORMATICA. Esempio di algoritmo: determinare il maggiore di due numeri interi x, y. Proprietà degli algoritmi
Università degli Studi di Cagliari Corsi di Laurea in Ingegneria Chimica e Ingegneria Meccanica FONDAMENTI DI INFORMATICA http://www.diee.unica.it/~marcialis/fi A.A. 201/2017 Docente: Gian Luca Marcialis
Sistemi di Elaborazione delle Informazioni
SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 I linguaggi di programmazione e gli
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1
CORSO DI PROGRAMMAZIONE E INFORMATICA GENERALE 1 Lezione 1 (Introduzione e Definizioni) Docenti Docente: Prof. Michele Colajanni Lezioni (Aula IV): martedì 10:00-12:45 Esercitazioni (Laboratorio): mercoledì
Introduzione agli Algoritmi
Introduzione agli Algoritmi Informatica Sara Zuppiroli A.A. 2012-2013 Informatica () Introduzione agli Algoritmi A.A. 2012-2013 1 / 25 Risoluzione dei problemi Dalla descrizione del problema all individuazione
Unità di apprendimento 6. Dal problema al programma
Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere
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
Studio degli algoritmi
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.2006/07 Prof. V.L. Plantamura Dott.ssa A. Angelini Studio degli algoritmi Dato un problema P, le problematiche riguardano: Sintesi
Dal Problema all Algoritmo. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dal Problema all Algoritmo Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Cosa Impareremo Informazioni e codici Definizione e soluzione di un problema Individuazione dei dati Definizione
Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:
Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)
