1 / 20

ALGORITMI E COMPLESSIT À

ALGORITMI E COMPLESSIT À. G1DisCs: Albertani , Driussi , Tomasoni. Pastasciutta all’olio. Mettere 2 litri di acqua in una pentola Mettere la pentola sopra al gas Portare l’acqua in ebollizione Buttare in acqua 20 g di sale Aggiungere 80 g di pasta

dexter
Download Presentation

ALGORITMI E COMPLESSIT À

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITMI E COMPLESSITÀ G1DisCs: Albertani, Driussi, Tomasoni

  2. Pastasciutta all’olio Mettere 2 litri di acqua in una pentola Mettere la pentola sopra al gas Portare l’acqua in ebollizione Buttare in acqua 20 g di sale Aggiungere 80 g di pasta Spegnere il fuoco dopo il tempo indicato sulla confezione della pasta Scolare l’acqua in un apposito scolapasta Servire in un piatto aggiungendo 10 ml di olio Cospargere il tutto con 10 g di parmigiano

  3. Cos’è un algoritmo? • È una procedura automatica, cioè eseguibile da un essere non pensante (ad esempio un computer), per risolvere in un numero finito di passi un certo problema • Un algoritmo è un insieme ordinato di passi eseguibili e non ambigui

  4. Algoritmo

  5. Pastasciutta all’olio 2 Mettere un po’ d’acqua in una pentola Mettere la pentola sopra al gas Portare l’acqua in ebollizione Buttare in acqua sale q.b. Aggiungere una porzione di pasta Spegnere il fuoco quando la pasta è cotta Scolare l’acqua in un apposito scolapasta Servire in un piatto aggiungendo un filo d’olio Cospargere il tutto con una spolveratadi parmigiano

  6. Finitezza • Un algoritmo per essere tale, deve produrre un output in un numero finito di passi • Questo significa che finirà in un tempo finito qualora venga eseguito da un computer • La finitezza è una condizione necessaria per un algoritmo

  7. Questo è un algoritmo? Calcolare il numero di Nepero come somma di una serie

  8. Correttezza Ovvero per ogniinput valido, l'output dell'algoritmo è una soluzione per il problema La correttezza non è una condizione necessaria per un algoritmo (un algoritmo non corretto è comunque un algoritmo)

  9. Efficienza Si indica col termine efficienza la velocità di un algoritmo nel risolvere un problema L’efficienza dipende da molte variabili esterne: tipo di calcalatore, input differenti, ecc. Come trovare una misura univoca dell’efficienza dell’algoritmo?

  10. Complessità computazionale La misura univoca dell’efficienza di un algoritmo si basa sul numero di istruzioni da eseguire nel caso peggiore possibile Il numero di istruzioni dipende dalle dimensioni dell’input

  11. Classi di complessità • I problemi vengono classificati in differenti classi di complessità • La complessità è sempre funzione della dimensione dell’input (dice come aumentano le istruzioni al crescere delle dimensioni dell’input)

  12. Tempo/Memoria Per diminuire la complessità di un algoritmo è utile memorizzare le soluzioni di sottoproblemi in modo da non doverle ricalcolare più volte Si rischiano però problemi insuperabili di spazio per la memoria

  13. Esempi • Calcolo dei numeri di Fibonacci • con uso della memoria • senza memoria

  14. Programma ≠ Algoritmo Un algoritmo non è un programma! Un programma è l’implementazione di uno o più algoritmi

  15. Strutture dati Organizzazione dell’input: vengono usate in ogni programma per raggruppare in modo logico i dati e accedervi in modo veloce. Sono utilizzate dall'algoritmo e ne influenzano l'efficienza

  16. Calcolabilità Per ogni problema esiste un algoritmo che lo risolve? Può essere utile sapere se esiste o no un algoritmo per un determinato problema È stato dimostrato che per certi problemi non esiste un algoritmo risolutivo

  17. Ruolo nel pensiero razionale Matematica…. Latino… perché non l’informatica? È universalmente riconosciuto il valore di alcune discipline per esercitare e stimolare il ragionamento: l’informatica si presta molto bene Computational thinking!

  18. Relazione con altre Scienze • Al giorno d’oggi l’informatica assume un ruolo centrale tra le scienze • Algoritmi di ogni genere sono usati da fisici, matematici, biologi, ecc.

  19. Importanza in informatica Gli algoritmi sono come il prezzemolo Gli algoritmi sono tra i fondamenti dell’informatica Hanno dato vita a molti studi teorici (teorie della complessità e della calcolabilità) Sono presenti in ogni settore, dalla teoria all’ingegneria

  20. Per saperne di più The Art of Computer Programming Donald Knuth Introduction to Algorithms Thomas H. Cormen Algoritmi, divinità e gente comune F. Luccio, L. Pagli http://g1discs.wikispaces.com/

More Related