01 Pjalgo Introduzione
01 Pjalgo Introduzione
a.a. 2016/17
Classe 3: matricole congrue 2 modulo 3
Presentazioni
• Marcella Anselmo
• Info: http://www.di.unisa.it/professori/anselmo/
• Orario ricevimento:
• Lunedì 11:00 - 12:00
• Giovedì 9:00 - 11:00
• Sulla piattaforma
http://elearning.informatica.unisa.it/el-platform/
troverete: orario lezioni, ricevimento, programma, syllabus,
avvisi, calendario aggiornato via via, slides, date di esame,…
Ti posso
dimostrare che
funziona su ogni
input e che fra
quelle
considerate è la Sei sicuro
più efficiente. che
funzioni?
Ci mette
molto
tempo?
Si poteva
fare
meglio?
In pratica
Il nostro obiettivo sarà: risolvere un problema
(reale, computazionale)
Nostro compito: Progettare un algoritmo che lo
risolva
Tre aspetti importanti della soluzione:
1. Tempo impiegato
2. Costo delle risorse (memoria)
3. Qualità : funziona bene? Sempre?
Cosa imparerete in questo corso?
• Progettare nuovi algoritmi per risolvere i
problemi di oggi e di domani
• Studiando come hanno fatto gli altri finora, quali
tecniche sono state sviluppate e vengono tutt’ora
utilizzate con successo (se siete fortunati, nuovi
problemi possono essere formalizzati con
problemi noti la cui soluzione è ben conosciuta e
testata)
• Come dimostrarne la correttezza e valutarne la
efficienza
Problemi…
Un algoritmo risolve un problema, ma…
… cos’è un problema?
Corrispondenza fra spazio delle istanze (dati in
ingresso) e delle soluzioni
Un esempio
Problema reale / concreto:
Scheduling di attività:
In una scuola c’è 1 sala computer e più classi
che vogliono accedervi ognuna in certi orari.
s1 = 9, f1 = 12
1 s2 = 10, f2 = 14
s3 = 13, f3 = 15
2 ….
3 Soluzioni ammissibili :
S1 = {1, 3, 6}
4 S2 = {1, 6}
S3 = {2, 4, 6}
5 S4 = {5}
6 Soluzioni ottimali:
S1 = {1, 3, 6}
9 10 11 12 13 14 15 16 17 18 19
S3 = {2, 4, 6}
Valore ottimo = 3
Varianti
• Nell’input : Scheduling di attività pesato
Ad ogni classe è associato un valore
Cerco S’ il cui valore totale sia massimo (non
necessariamente la cardinalità)
• Nell’output
– Cerco soltanto valore ottimo
– Cerco tutti S’
Scelta della tecnica per Scheduling di attività
1) Ricerca esaustiva/ Forza bruta / naif
Sono 2n
Analisi: il tempo di esecuzione di tale algoritmo è esponenziale!
Esponenziale = non accettabile
Altra soluzione?
Tecniche di programmazione
1 1 2 3 4
2
3
4 5
5
6 6
9 10 11 12 13 14 15 16 17 18 19
Input: grafo
• Dimostrare correttezza