Intelligenza Artificiale. Pianificazione. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 0

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Intelligenza Artificiale. Pianificazione. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 0"

Transcript

1 Intelligenza Artificiale Pianificazione Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 0

2 Pianificazione automatica (Capitolo 12 del R& N) Estensioni di POP: Partial Order Planning Applicazioni Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 1

3 Limitazioni di POP: Piani gerarchici Per trattare l aumento di complessità è utile specificare piani con livelli variabili di dettagli: Piano di livello più alto: preparare il razzo vettore, preparare la capsula, inserire il carico e effettuare il lancio. Livello delle azioni eseguibili: inserire il dado A nel buco B e fermarlo con il bullone C. Rappresentare piani gerarchici può semplificare la pianificazione rendere i piani più comprensibili Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 2

4 Limitazioni di POP: Condizioni complesse Gli operatori di Strips sono essenzialmente proposizionali, l uso di variabili è molto limitato: non si può descrivere il fatto che l operatore Lancia comporta che tutti gli oggetti che sono nella navicella spaziale vadano in orbita. Gli operatori di Strips sono incondizionati: non si può esprimere il fatto che se tutti i sistemi sono pronti, Lancia condurrà la navicella spaziale in orbita, altrimenti la condurrà nell oceano. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 3

5 Limitazioni di POP: Tempo In Strips si assume che tutte le azioni accadano istantaneamente, mentre spesso occorre un modello in cui: le azioni hanno una durata (l azione di lancio può richiedere diversi minuti); i passi dei piani possono avere delle finestre temporali (la macchina che verifica l assemblaggio di XYZ è disponibile dal 1 maggio al 1 giugno (eccetto i fine settimana), ma deve essere prenotata una settimana prima). Le tecniche di ricerca operativa permettono il soddisfacimento di vincoli temporali per un piano completo con ordinamento parziale. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 4

6 Limitazioni di POP: Risorse risorse: budget, personale,... vincoli: max totale, numero max (contemporaneamenteimpiegate)... Le descrizioni di azioni devono incorporare il consumo e la generazione di risorse. Gli algoritmi di pianificazione devono essere in grado di occuparsi efficientemente dei vincoli sulle risorse. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 5

7 Decomposizione gerarchica [V ai(supermercato), Compra(Latte), Compra(Banane), V ai(casa)] [Avanti(1cm), Gira(1grado), Avanti(1cm),...] Decomposizione gerarchica: un operatore astratto può essere decomposto in un gruppo di passi che forma un piano che lo implementa. Riduzione di operatori(riduzione di un operatore ad alto livello a un insieme di operatori di livello più basso) Espansione di operatori (espansione di un operatore, visto come una macro, nella struttura che lo implementa) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 6

8 Build House decomposes to Obtain Permit Hire Builder Construction Pay Builder decomposes to Build Foundation Build Frame Build Roof Build Walls Build Interior Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 7

9 Pianificazione gerarchica Estendere il linguaggio Strips per permettere operatori non primitivi. Modificare l algoritmo di pianificazione per permettere la sostituzione di un operatore non primitivo con la sua decomposizione. Il piano è completo quando ogni passo è un operatore primitivo. La decomposizione gerarchica è più utile quando gli operatori possono essere decomposti in più di un modo. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 8

10 Estendere il linguaggio Si divide l insieme di operatori in operatori primitivi e non primitivi (ma la distinzione tra primitivo e non primitivo è relativa all agente che eseguirà il piano). Si aggiunge un insieme di metodi di decomposizione Decomponi(o, p): un operatore non primitivo che unifica con o può essere decomposto in un piano p. Decomponi(Costruzione, P iano(passi:{s 1 : Costruisci(F ondamenta), S 2 : Costruisci(Struttura), S 3 : Costruisci(T etto), S 4 : Costruisci(Muri), S 5 : Costruisci(Interni)} Ordinamenti:{S 1 S 2 S 3 S 5, S 2 S 4 S 5 }, Legami:{}, Relazioni:{S F ondamenta 1 S 2, S Struttura 2 S 5, S Muri 4 S 5 })) S 3, S 2 Struttura S 4, S T etto 3 Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 9

11 Correttezza della decomposizione Un piano p realizza correttamente un operatore o se è un piano completo e consistente per il problema di raggiungere gli effetti di o date le precondizioni di o: 1. p deve essere consistente (senza contraddizioni nei vincoli sull ordinamento o sui legami delle variabili di p.) 2. Ogni effetto di o deve essere asserito da almeno un passo di p (e non essere annullato da qualche altro passo successivo di p). 3. Ogni precondizione dei passi di p deve essere raggiunta da un passo di p oppure deve essere una delle precondizioni di o. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 10

12 Modificare il pianificatore Pianificatore a decomposizione gerarchica: HD-POP 1. realizzare dei raffinamenti (scelte indipendenti): (1) raggiungere condizioni non raggiunte nel piano (2) decomporre gli operatori non primitivi 2. l algoritmo prende un piano come input e non solo un obiettivo. 3. modificare Soluzione? per verificare che ogni passo del piano sia primitivo Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 11

13 function HD-POP( plan, operators, methods) returns plan inputs: plan, an abstract plan with start and goal steps (and possibly other steps) loop do if Solution?( plan) then return plan S need, c Select-Sub-Goal( plan) Choose-Operator( plan, operators, S need, c) S nonprim Select-Nonprimitive( plan) Choose-Decomposition( plan, methods, S nonprim ) Resolve-Threats( plan) end Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 12

14 HD-POP Seleziona-Nonprimitivo seleziona arbitrariamente un passo non primitivo del piano Scegli-Decomposizione sceglie ed applica una decomposizione. Se metodo è scelto come decomposizione per il passo S nonprim, allora i campi del piano vengono alterati nel modo seguente: Passi: aggiungere tutti i passi del metodo al piano, rimuovendo S nonprim. Legami: aggiungere tutti i vincoli sui legami delle variabili di metodo al piano. Fallimento se ciò introduce una contraddizione. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 13

15 Ordinamenti Ordinamenti: seguendo il principio del minimo impegno, sostituiamo S a S m a ciascun vincolo di ordinamento della forma S a S nonprim dei vincoli che ordinano S a prima dell ultimo passo (eventualmente più di uno) di metodo (S m è un passo di metodo, e non c è nessun altro S j in metodo tale che S m S j ). Analogamente per S nonprim S z. Quindi chiamiamo Risolvi-Minacce per aggiungere qualsiasi vincolo di ordinamento necessario. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 14

16 Relazioni Relazioni: se S c i S nonprim è una relazione causale di piano, si sostituisce con un insieme di relazioni S c i S m (e i vincoli di ordinamento corrispondenti), dove ciascun S m è un passo di metodo che ha c come precondizione e non esiste alcun passo precedente di metodo che abbia c come precondizione. (Se ci sono diversi passi con c come precondizione, allora si inserisce una relazione causale per ciascuno di essi. Se non ce n è nessuno, allora la relazione causale da S i può essere eliminata, poiché c era una precondizione non necessaria di S nonprim.) Analogamente si sostituisce S c nonprim S j con un insieme di relazioni S c m S j, dove S m è un passo di metodo che ha c come effetto e non c è nessun passo successivo di metodo che abbia c come effetto. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 15

17 Soluzioni astratte soluzione discendente: se p è una soluzione astratta, esiste una soluzione primitiva di cui p è un astrazione; appena trovata una soluzione astratta, possiamo potare tutti gli altri piani astratti dall albero di ricerca; soluzione ascendente: se un piano astratto è inconsistente, allora non esiste alcuna soluzione primitiva di cui il piano rappresenti un astrazione (implica anche che tutte le astrazioni complete di soluzioni primitive sono soluzioni astratte); possiamo potare tutti i discendenti di qualsiasi piano astratto inconsistente. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 16

18 b=3 branching factor: number of decomposition methods per step s=4 steps in a decomposition method d=3 depth of the hierarchical plan Depth d=0 d=1 d=2 d=3 Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 17

19 Complessità Un pianificatore non gerarchico dovrebbe generare un piano di n passi, scegliendo tra b possibilità per ciascuno, impiega un tempo pari a O(b n ) nel caso peggiore ( ) Il pianificatore gerarchico deve guardare sb passi a profondità d = 1. A profondità d = 2, guarda altri sb passi per ciascun passo che decompone, ma ne deve decomporre solo 1/b di essi, per un totale di bs 2. Perciò, il numero totale di piani considerati è: d i=1 bs i = O(bs d ) (252). In generale (senza proprietà delle soluzioni), un pianificatore gerarchico non funziona meglio di un pianificatore non gerarchico nel caso peggiore (anche se meglio nel caso medio). Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 18

20 Watch Hair Happy(He) Happy(She) Watch Hair Watch Comb Happy(She) Start Finish Start Finish Give Comb (a) Initial Problem Watch Hair Give Chain L L Hair Happy(He) Chain (b) Abstract Inconsistent Plan Watch Hair Give Comb (On Credit) Comb Owe(Watch) Happy(She) Watch Deliver Watch L L Watch Owe(Watch) Start Finish Hair Watch Give Chain (On Credit) Chain Owe(Hair) Happy(He) Hair Deliver Hair L L Hair Owe(Hair) (c) Decomposition of (b) into a Consistent Solution Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 19

21 Decomposizione e condivisione Scegli-Decomposizione fa semplicemente la fusione di ciascun passo di decomposizione del piano esistente. Spesso l unica soluzione a un problema comporta l unione di due soluzioni attraverso passi di condivisione piuttosto che la congiunzione di insiemi distinti di passi. si aggiunge un punto di scelta per ogni operatore di una decomposizione in Scegli-Decomposizione (analogo a Scegli-Operatore) si fondono le decomposizioni senza condivisione ma permettendo a dei critici di modificare il piano risultante La scelta tra condividere e fondere passi ha un effetto sull efficienza della pianificazione ed anche sulla completezza. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 20

22 Decomposizione ed approssimazione Pianificazione gerarchica: operatore astratto, non primitivo può essere decomposto in una rete di passi più complessa Gerarchie d astrazione: in cui un singolo operatore può essere pianificato a differenti livelli di astrazione. Al livello primitivo, l operatore ha un insieme completo di precondizioni e effetti; al livelli più alti, il pianificatore ignora alcuni di questi dettagli (gerarchia d approssimazione) Op(Action:Compra(x), Effect:Ha(x) Ha(Denaro), Precond:1: V ende(n egozio, x) 2: A(Negozio) 3: Ha(Denaro)) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 21

23 Pianificatore a gerarchia d approssimazione Prima si risolve il problema usando solo le precondizioni con criticità 1. Trovata una soluzione, si espande considerando le precondizioni al livello 2, finché sono soddisfatte tutte le precondizioni. Compra 1, che ha solo la precondizione con livello di criticità 1 e ha un singolo metodo di decomposizione Compra 2, che ha precondizioni a criticità 1 e 2 e così via. La decomposizione ha solo un passo e ha tutte le precondizioni e gli effetti dell operatore astratto: vale la proprietà della soluzione ascendente e si realizza un pianificatore a gerarchia d approssimazione con quello a decomposizione gerarchica. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 22

24 Effetti condizionali Mondo dei blocchi: siamo stati costretti a introdurre due operatori con lo scopo di gestire correttamente il predicato Libero: Op(Action:Sposta(b, x, y), Precond:Su(b, x) Libero(b) Libero(y), Effect:Su(b, y) Libero(x) Su(b, x) Libero(y)) Op(Action:SpostaSulT avolo(b, x), Precond:Su(b, x) Libero(b), Effect:Su(b, T avolo) Libero(x) Su(b, x)) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 23

25 Estensione del linguaggio Sposta(b, x, y) con un effetto condizionale: tavolo allora un effetto è Libero(y). se y non è il effetto when condizione, dove effetto e condizione sono entrambi letterali o congiunzioni di letterali. Op(Action:Sposta(b, x, y), Precond:Su(b, x) Libero(b) Libero(y), Effect:Su(b, y) Libero(x) Su(b, x) Libero(y) when y T avolo) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 24

26 Pianificatore: scelta delle precondizioni Seleziona-Sottobiettivo decide se una precondizione c in un effetto condizionale della forma e when c è candidata per la selezione. Se l effetto e fornisce una condizione protetta da una relazione causale, allora si può selezionare c, ma non quando c è la relazione causale, che implica che il piano non funzionerà a meno che non sia vera anche c. Il pianificatore per il mondo dei blocchi non ha alcuna necessità di stabilire y T avolo perché Libero(y) perché non è (di solito) necessaria come precondizione di qualche altro passo del piano. Quindi si può usare il tavolo per mettere un blocco che non deve essere un posto speciale. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 25

27 Modifica del pianificatore: minacce In Risolvi-Minacce qualsiasi passo che abbia l effetto ( c when p) è una possibile minaccia per la relazione causale S c i S j ogni volta che c e c unificano. Possiamo risolvere la minaccia assicurando che p non sia valido. Questa tecnica viene chiamata confronto. Nel mondo dei blocchi se è necessario che un dato blocco sia libero per effettuare qualche passo, l operatore Sposta(b, x, y) può minacciare questa condizione se y non è istanziata. La minaccia si verifica solo se y T avolo; il confronto rimuove la minaccia ponendo y = T avolo. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 26

28 procedure Resolve-Threats(plan) for each S c i S j in Links( plan) do for each S threat in Steps( plan) do for each c in Effect(S threat ) do if Subst(Bindings( plan), c) = Subst(Bindings( plan), c ) then choose either Promotion: Add S threat S i to Orderings( plan) Demotion: Add S j S threat to Orderings( plan) Confrontation: if c is (c when p) then Choose-Operator( plan, operators, S threat, p) Resolve-Threats( plan) if not Consistent( plan) then fail end end end Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 27

29 Obiettivi negati La tecnica del confronto chiama Scegli-Operatore con l obiettivo p: fino ad ora tutti gli obiettivi (e le precondizioni) sono letterali positivi. Per i letterali negati negli obiettivi dobbiamo verificare che gli effetti rispecchino ancora l obiettivo assicurare che la nostra funzione di unificazione permetta di associare p e p. Inoltre per lo stato iniziale: un obiettivo della forma p può essere soddisfatto o con un effetto esplicito che unifica con p o con lo stato iniziale, se non contiene p. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 28

30 Precondizioni disgiuntive Se scegliamo un passo con una precondizione della forma p q in Seleziona-Sottobiettivo, scegliamo in modo non deterministico di restituire p o q e di riservare l altro come punto di backtracking. Qualsiasi operatore con la precondizione p q potrebbe essere sostituito con due operatori, uno con p come precondizione e uno con q, ma allora il pianificatore dovrebbe vincolarsi all uno o all altro. Mantenere le condizioni in un singolo operatore ci permette di rimandare l assunzione dell impegno. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 29

31 Effetti disgiuntivi Modificano l ambiente da deterministico a non deterministico. Un effetto disgiuntivo è usato per modellare effetti casuali o effetti che non sono determinati dalle precondizioni dell operatore. Ad esempio, l operatore Lancia(moneta) avrebbe l effetto disgiuntivo T esta(moneta) Croce(moneta). Gli effetti disgiuntivi e la pianificazione con azioni non deterministiche sono, in generale, difficili da trattare. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 30

32 Quantificazione universale Precondizioni quantificate universalmente: invece di scrivere Libero(b) come precondizione, si usa l espressione x Blocco(x) Su(x, b) Effetti quantificati universalmente: l operatore T rasporta(borsa, x, y) ha l effetto che tutti gli oggetti che sono nella borsa siano in y e non più in x. Op(Action:T rasporta(borsa, x, y), Precond:Borsa(borsa) A(borsa, x), Effect:A(borsa, y), A(borsa, x) i Articolo(i) (A(i, y) A(i, x)) when In(i, borsa)) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 31

33 Universo finito Si considerano solo mondi con un universo di oggetti: finito, statico e tipato la condizione quantificata universalmente viene soddisfatta per enumerazione. La descrizione dello stato iniziale deve contenere tutti gli oggetti e assegnare a ciascuno un tipo, specificato come predicato unario. Borsa(B) Articolo(I 1 ) Articolo(I 2 ) Articolo(B) È possibile che un oggetto abbia più di un tipo: B è sia una borsa sia un articolo. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 32

34 Universo statico Gli oggetti menzionati nello stato iniziale non possono cambiare tipo o essere distrutti e non può essere creato alcun oggetto nuovo. Nessun operatore, eccetto Inizia, può avere Borsa(x) o Borsa(x) come effetto. Avere un universo finito, statico e tipato significa che possiamo espandere sempre questa formula in una espressione congiuntiva equivalente senza quantificatori: [ x T (x) C(x)] C(X 1 )... C(X n ) dove X 1,..., X n sono gli oggetti nello stato iniziale che soddisfano T (x). Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 33

35 Esempio Stato iniziale: Borsa(B) Latte(M 1 ) Latte(M 2 ) Latte(M 3 ) Espressione: x Latte(x) In(x, B) Espansione: In(M 1, B) In(M 2, B) In(M 3, B) Il pianificatore espande obiettivi quantificati universalmente per eliminare il quantificatore. Per gli effetti quantificati universalmente non è necessario espandere l effetto, vengono trattati da Risolvi-Minacce per riconoscere le minacce Scegli-Operatore che lo può usare per le relazioni causali. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 34

36 Domini dinamici Alcuni domini sono dinamici in quanto gli oggetti vengono creati o distrutti o cambiano il loro tipo nel tempo. I piani in cui gli oggetti vengono prima generati e poi usati, sembrano abbastanza naturali. Si trattano specificando tipi statici generali nelle espressioni quantificate universalmente e usando predicati aggiuntivi dinamici unari per fare discriminazioni più sottili. Gli oggetti che possono esistere potenzialmente in grandi quantità indifferenziate possono essere spesso trattati come risorse. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 35

37 function Select-Sub-Goal( plan) returns plan, precondition conjunct pick a plan step S need from Steps( plan) with a precondition conjunct c that has not been achieved if c is a universally quantified expression then return S need, Expansion(c) else if c is a disjunction c 1 c 2 then return S need, choose(c 1, c 2 ) else return S need, c Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 36

38 procedure Choose-Operator(plan, operators, S need, c) choose a step S add from operators or Steps( plan) that has c add as an effect such that u = Unify(c, c add, Bindings( plan)) if there is no such step then fail u u without the universally quantified variables of c add add u to Bindings( plan) add S c add S need to Links( plan) add S add S need to Orderings( plan) if S add is a newly added step from operators then add S add to Steps( plan) add Start S add F inish to Orderings( plan) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 37

39 procedure Resolve-Threats(plan) for each S c i S j in Links( plan) do for each S threat in Steps( plan) do for each c in Effect(S threat ) do if Subst(Bindings( plan), c) = Subst(Bindings( plan), c ) then choose either Promotion: Add S threat S i to Orderings( plan) Demotion: Add S j S threat to Orderings( plan) Confrontation: if c is (c when p) then Choose-Operator( plan, operators, S threat, p) Resolve-Threats( plan) if not Consistent( plan) then fail end end end Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 38

40 POP-DUNC La funzione Seleziona-Sottobiettivo è stata modificata per espandere le precondizioni quantificate universalmente e per scegliere uno dei due modi possibili per soddisfare una precondizione disgiuntiva. Scegli-Operatore è stata modificata solo leggermente, per trattare correttamente le variabili quantificate universalmente. Risolvi-Minacce è modificato per includere il confronto come metodo per risolvere una minaccia da un effetto condizionale. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 39

41 Vincoli sulle risorse Problema: esprimere una precondizione come Ha($1.89) Possiamo rappresentare nello stato iniziale tutte le monete e le banconote nel mondo: Dollaro(d 1 ) Dollaro(d 2 ) Quarto(q 1 ).... Possiamo poi aggiungere metodi di decomposizione per enumerare i modi in cui è possibile avere un dollaro. Dobbiamo stare attenti ai vincoli di disuguaglianza, perché non vorremmo che l obiettivo Ha($2.00) venga soddisfatto da Ha(d 1 ) Ha(d 1 ). La rappresentazione finale sarebbe fattibile, ma totalmente inadatta alla pianificazione. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 40

42 Usare misure in pianificazione Una misura è una quantità di qualcosa, come denaro o volume, valutata numericamente. Ci si può riferire alle misure attraverso termini logici come $(1.50) o Galloni(6) o LivelloBenzina. Le funzioni di misure come V olume si applicano a oggetti come BenzinaInM acchina per produrre misure: LivelloBenzina = V olume(benzinainm acchina) = Galloni(6). Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 41

43 Dichiarazione di misure I pianificatori che usano misure tipicamente richiedono che siano dichiarate con l informazione dell intervallo associato. $(0) Contante Galloni(0) LivelloBenzina Galloni(15) $(1.00) P rezzou nitario(benzina) Galloni(1) $(1.50) $(1.00) P rezzou nitario(latte) Quarti(1) $(1.50) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 42

44 Risorse Le misure come il prezzo della benzina sono realtà di cui il pianificatore si deve occupare, ma su cui ha poco controllo. Altre misure, come Contante e LivelloBenzina, sono trattate come risorse che possono essere prodotte e consumate. Ci sono operatori come Guida che richiedono e consumano la risorsa LivelloBenzina e ci sono operatori come F aiilp ieno che aumentano la risorsa LivelloBenzina (mentre consumano parte della risorsa Contante). Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 43

45 Esempio Op(Action:Inizia, Effetto: Contante $(12.50) LivelloBenzina Galloni(5). L azione Compra riduce la somma di Contante che si ha: Op(Action:Compra(x, negozio), Effect:Ha(x) Contante Contante P rezzo(x, negozio)) Rifornirsi di benzina può essere descritto da un operatore astratto F aiilp ieno: Op(Action:F aiilp ieno(livellobenzina), Effetto: LivelloBenzina Galloni(15) Contante Contante (P rezzou nitario(benzina) (Galloni(15) LivelloBenzina))) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 44

46 Precondizioni per le misure I limiti superiori e inferiori dichiarati servono come precondizioni implicite per ciascun operatore. Compra(x) ha la precondizione implicita Contante P rezzo(x) per assicurare che la quantità sarà all interno dell intervallo dopo l azione. Una verifica grossolana sulle risorse tiene conto dei valori minimi e massimi possibili di ciascuna quantità in ogni passo del piano. Tutti i pianificatori pratici come Sipe, O-Plan e Deviser hanno meccanismi per la collocazione di risorse. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 45

47 Vincoli temporali Nella maggior parte dei casi il tempo può essere trattato come qualsiasi altra risorsa. Lo stato iniziale specifica un tempo d inizio per il piano, ad esempio, T empo 8:30. Quindi possiamo dire quanto tempo consuma ciascuna operazione. Un effetto di F aiilp ieno è T empo T empo + Minuti(3) + (Secondi(10)/Gall(1)) (Gall(15) LivelloBenzina)) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 46

48 Tempo e risorse le azioni che sono eseguite in parallelo consumano il massimo dei rispettivi tempi e non la somma i vincoli sulle risorse di tempo devono essere consistenti con vincoli di ordinamento. Cioè, se S i S j è uno dei vincoli di ordinamento, allora T empo a S i deve essere minore di T empo a S j. il tempo non torna mai indietro: nessun operatore genera tempo invece di consumarlo. Perciò, se lo stato obiettivo specifica una scadenza (un tempo massimo) e si ha un piano parziale i cui passi richiedono più tempo di quello che è permesso, si può fare backtracking immediatamente, senza considerare alcun completamento del piano. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 47

49 Applicazioni industriali Problema: assemblaggio di materie grezze e componenti e assemblarli in prodotti finiti. Esempio tipico: una linea di produzione con 350 prodotti differenti, 35 macchine di assemblaggio e più di 2000 operazioni differenti. Il pianificatore deve determinare uno scheduling di 30 giorni per tre turni di 8 ore al giorno. un compito di pianificazione (per decidere quali passi di assemblaggio saranno eseguiti) un compito di scheduling (per decidere quando e dove ciascun passo verrà eseguito) Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 48

50 O-Plan O-Plan è simile a POP, esteso per rappresentare tempo, risorse e piani gerarchici. Accetta euristiche per guidare la ricerca e registra le ragioni di ciascuna scelta, rendendo la ripianificazione più facile quando è necessaria. la pianificazione delle commesse software alla Price Waterhouse, la pianificazione del processo di assemblaggio dell asse posteriore alla Jaguar Cars la pianificazione completa della produzione industriale alla Hitachi Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 49

51 ISIS Le industrie con minore differenziazione dei prodotti seguono spesso un piano fissato, ma possono ancora aver bisogno di scheduling automatizzato. Il sistema Isis è stato sviluppato specificamente per lo scheduling ad applicato alla fabbricazione di componenti di turbine della Westinghouse. Isis usa una ricerca gerarchica con minimo impegno per trovare piani di alta qualità che soddisfino tutti i requisiti. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 50

52 Scheduling per missioni spaziali errori possono essere costosi e/o irrecuperabili effetti in genere prevedibili Telescopio spaziale Hubble Navicelle spaziali: Voyager, Uosat-II e ERS-1 L obiettivo è dirigere gli strumenti di osservazione, i trasmettitori di segnali e i meccanismi di controllo dell assetto e della velocità, in modo da massimizzare il valore delle informazioni acquisite dalle osservazioni, pur rispettando i vincoli sulle risorse di tempo ed energia. Simile allo scheduling di attività di reparto Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 51

53 SIPE Sipe (System for Interactive Planning and Execution monitoring) primo pianificatore ad occuparsi del problema della ripianificazione e il primo a compiere dei passi importanti in direzione di operatori espressivi. pianificazione delle operazioni sul ponte di volo di una portaerei scheduling delle attività di reparto di una fabbrica di birra pianificazione della la costruzione di edifici a più piani Sipe permette vincoli sugli stati, la definizione di classi di oggetti e un insieme espressivo di vincoli. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 52

54 Vantaggi della pianificazione automatica Approccio classico: piano costruito manualmente scheduling fatto con tecniche di ricerca operativa La pianificazione automatica comporta un lavoro di modellazione e rappresentazione delle risorse, ma consentono di ripianificare agevolmente a fronte di cambiamenti. Intelligenza Artificiale Daniele Nardi, 2003 Pianificazione 53

Intelligenza Artificiale. Lezione 14. Pianificazione automatica

Intelligenza Artificiale. Lezione 14. Pianificazione automatica Pianificazione automatica (Capitolo 11 del R& N) Intelligenza Artificiale Ricerca vs. Pianificazione Linguaggio di specifica: STRIPS Pianificazione nello spazio degli stati Lezione 14 POP: Partial Order

Dettagli

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati

Tipologie di pianificatori. Pianificazione. Partial Order Planning. E compiti diversi. Pianificazione gerarchica. Approcci integrati Tipologie di pianificatori Pianificazione Intelligenza Artificiale e Agenti II modulo Pianificazione a ordinamento parziale (POP) (HTN) pianificazione logica (SatPlan) Pianificazione come ricerca su grafi

Dettagli

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0

Intelligenza Artificiale. Lezione 14. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0 Intelligenza Artificiale Lezione 14 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 14 0 Sommario Russell & Norvig Capitolo 4, Paragrafi 3 4 IDA* SMA* Ricerca Hill-climbing Simulated annealing Intelligenza

Dettagli

Intelligenza Artificiale. Lezione 23. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 23 0

Intelligenza Artificiale. Lezione 23. Intelligenza Artificiale Daniele Nardi, 2003 Lezione 23 0 Intelligenza Artificiale Lezione 23 Intelligenza Artificiale Daniele Nardi, 2003 Lezione 23 0 Azioni e cambiamento Il calcolo delle situazioni Pianificazione Deduttiva (Capitolo 11 delle dispense, 7.6

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR

Ambienti più realistici. Ricerca online. Azioni non deterministiche L aspirapolvere imprevedibile. Soluzioni più complesse. Alberi di ricerca AND-OR Ambienti più realistici Ricerca online Maria Simi a.a. 2011/2012 Gli agenti risolutori di problemi classici assumono: Ambienti completamente osservabili e deterministici il piano generato può essere generato

Dettagli

CONCETTI DI BASE PER LA QUALITA

CONCETTI DI BASE PER LA QUALITA CONCETTI DI BASE PER LA QUALITA Misura: è una funzione m: A -> B che associa ad ogni attributo A di un osservabile nel mondo reale o empirico (dominio) un oggetto formale B nel mondo matematico (range);

Dettagli

Interpretazione astratta

Interpretazione astratta Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU)

FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) FONDAMENTI DI INTELLIGENZA ARTIFICIALE (8 CFU) 13 Febbraio 2015 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (punti 6) Si esprimano in logica dei predicati del I ordine le seguenti frasi:

Dettagli

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi

Problemi di soddisfacimento di vincoli. Formulazione di problemi CSP. Colorazione di una mappa. Altri problemi Problemi di soddisfacimento di vincoli Maria Simi a.a. 2014/2015 Problemi di soddisfacimento di vincoli (CSP) Sono problemi con una struttura particolare, per cui conviene pensare ad algoritmi specializzati

Dettagli

I Modelli della Ricerca Operativa

I Modelli della Ricerca Operativa Capitolo 1 I Modelli della Ricerca Operativa 1.1 L approccio modellistico Il termine modello è di solito usato per indicare una costruzione artificiale realizzata per evidenziare proprietà specifiche di

Dettagli

La programmazione con vincoli in breve. La programmazione con vincoli in breve

La programmazione con vincoli in breve. La programmazione con vincoli in breve Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con

Dettagli

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale

Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale Planning as Model Checking Presentazione della Tesina di Intelligenza Artificiale di Francesco Maria Milizia francescomilizia@libero.it Model Checking vuol dire cercare di stabilire se una formula è vera

Dettagli

Risoluzione. Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005

Risoluzione. Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005 Risoluzione Eric Miotto Corretto dal prof. Silvio Valentini 15 giugno 2005 1 Risoluzione Introdurremo ora un metodo per capire se un insieme di formule è soddisfacibile o meno. Lo vedremo prima per insiemi

Dettagli

Programmazione. Prima lezione sugli oggetti: agenda

Programmazione. Prima lezione sugli oggetti: agenda Programmazione A.A. 2002-03 I Programmazione Orientata agli Oggetti (1): Principi generali ( Lezione XXV ) Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università

Dettagli

Lezione 8. La macchina universale

Lezione 8. La macchina universale Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione

Dettagli

Note su quicksort per ASD 2010-11 (DRAFT)

Note su quicksort per ASD 2010-11 (DRAFT) Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea

Dettagli

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio

Verifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere

Dettagli

Ottimizzazione in ECLiPSe

Ottimizzazione in ECLiPSe OTTIMIZZAZIONE In molte applicazioni non siamo interessati a soluzioni ammissibili, ili, ma alla soluzione ottima rispetto a un certo criterio. ENUMERAZIONE trova tutte le soluzioni ammissibili scegli

Dettagli

Intelligenza Artificiale. Metodi di ricerca

Intelligenza Artificiale. Metodi di ricerca Intelligenza Artificiale Metodi di ricerca Marco Piastra Metodi di ricerca - 1 Ricerca nello spazio degli stati (disegno di J.C. Latombe) I nodi rappresentano uno stato Gli archi (orientati) una transizione

Dettagli

Intelligenza Artificiale

Intelligenza Artificiale Intelligenza Artificiale Esercizi e Domande di Esame Tecniche di Ricerca e Pianificazione Esercizi Griglia Si consideri un ambiente costituito da una griglia n n in cui si muove un agente che può spostarsi

Dettagli

Esercizi di Ricerca Operativa I

Esercizi di Ricerca Operativa I Esercizi di Ricerca Operativa I Dario Bauso, Raffaele Pesenti May 10, 2006 Domande Programmazione lineare intera 1. Gli algoritmi per la programmazione lineare continua possono essere usati per la soluzione

Dettagli

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli

Introduzione al MATLAB c Parte 2

Introduzione al MATLAB c Parte 2 Introduzione al MATLAB c Parte 2 Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 18 gennaio 2008 Outline 1 M-file di tipo Script e Function Script Function 2 Costrutti di programmazione

Dettagli

Appunti di Logica Matematica

Appunti di Logica Matematica Appunti di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Una proposizione è un affermazione che esprime un valore di verità, cioè una affermazione che è VERA oppure FALSA. Ad esempio: 5

Dettagli

Logica del primo ordine

Logica del primo ordine Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_4 V1.3 Logica del primo ordine Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

The Zachman Framework for Enterprise Architecture

The Zachman Framework for Enterprise Architecture The Zachman Framework for Enterprise Architecture Introduzione Una delle sfide più importanti che un impresa moderna deve affrontare è quella del cambiamento. Considerando la necessità di cambiamento dal

Dettagli

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della

Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della Metodi formali per la verifica dell affidabilità di sistemi software (e hardware) (Peled, Software Reliability Methods, cap. 1) Importanza della verifica di sistemi (safety-critical, commercially critical,

Dettagli

Tipologie di macchine di Turing

Tipologie di macchine di Turing Tipologie di macchine di Turing - Macchina di Turing standard - Macchina di Turing con un nastro illimitato in una sola direzione - Macchina di Turing multinastro - Macchina di Turing non deterministica

Dettagli

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali

Introduzione a Visual Basic Lezione 1 Concetti base e istruzioni condizionali a Visual Basic Lezione 1 Concetti base e istruzioni condizionali Mario Alviano Introduzione all informatica Università della Calabria http://alviano.net/introinfo A.A. 2008/09 Introduzione Un esempio:

Dettagli

Progettazione e realizzazione di uno strumento per la risoluzione distribuita e decentralizzata di problemi di soddisfacimento di vincoli.

Progettazione e realizzazione di uno strumento per la risoluzione distribuita e decentralizzata di problemi di soddisfacimento di vincoli. UNIVERSITÀ DEGLI STUDI DI PARMA Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Informatica Tesi di Laurea Triennale Progettazione e realizzazione di uno strumento per la risoluzione

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M 15 Luglio 2010 Tempo a disposizione 2h 45min Risultato 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE M 15 Luglio 2010 Tempo a disposizione 2h 45min Risultato 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE M Luglio 2010 Tempo a disposizione 2h 45min Risultato 32/32 punti Esercizio 1 (punti 4) Si formalizzino il logica dei predicati del I ordine le seguenti frasi: Ogni

Dettagli

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = , dove: Finite State Machine (2)

Idee guida. Finite State Machine (1) Un automa a stati finiti è definito da una 5- pla: FSM = <Q,,, q0, F>, dove: Finite State Machine (2) Idee guida ASM = FSM con stati generalizzati Le ASM rappresentano la forma matematica di Macchine Astratte che estendono la nozione di Finite State Machine Ground Model (descrizioni formali) Raffinamenti

Dettagli

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX

ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX ESAME DI FONDAMENTI DI INFORMATICA T-2 del 15/01/2013 Proff. E. Denti G. Zannoni Tempo a disposizione: 4 ore MAX NB: il candidato troverà nell archivio ZIP scaricato da Esamix anche il software Start Kit

Dettagli

Rappresentazione della conoscenza. Lezione 11. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0

Rappresentazione della conoscenza. Lezione 11. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0 Rappresentazione della conoscenza Lezione 11 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0 Sommario Pianificazione Deduttiva nel calcolo delle situazioni (Reiter 3.3) Teoria del calcolo

Dettagli

Introduzione ai tipi di dato astratti: applicazione alle liste

Introduzione ai tipi di dato astratti: applicazione alle liste Universitàdegli Studi di L Aquila Facoltàdi Scienze M.F.N. Corso di Laurea in Informatica Corso di Laboratorio di Algoritmi e Strutture Dati A.A. 2005/2006 Introduzione ai tipi di dato astratti: applicazione

Dettagli

Tecniche di Simulazione: Introduzione. N. Del Buono:

Tecniche di Simulazione: Introduzione. N. Del Buono: Tecniche di Simulazione: Introduzione N. Del Buono: 2 Che cosa è la simulazione La SIMULAZIONE dovrebbe essere considerata una forma di COGNIZIONE (COGNIZIONE qualunque azione o processo per acquisire

Dettagli

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:

Prof. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base: LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto

Dettagli

Descrizione di un algoritmo

Descrizione di un algoritmo Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica

Dettagli

x u v(p(x, fx) q(u, v)), e poi

x u v(p(x, fx) q(u, v)), e poi 0.1. Skolemizzazione. Ogni enunciato F (o insieme di enunciati Γ) è equisoddisfacibile ad un enunciato universale (o insieme di enunciati universali) in un linguaggio estensione del linguaggio di F (di

Dettagli

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012

Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di

Dettagli

Rappresentazione della conoscenza. ha poco potere espressivo in quanto ha un ontologia limitata: il mondo consiste di fatti, es.

Rappresentazione della conoscenza. ha poco potere espressivo in quanto ha un ontologia limitata: il mondo consiste di fatti, es. Scaletta argomenti: Rappresentazione della conoscenza Logica del primo ordine Logiche non-monotone Reti semantiche Frame e script Regole di produzione Logica del Primo Ordine - Logica proposizionale ha

Dettagli

Processi principali per il completamento del progetto

Processi principali per il completamento del progetto Piano di progetto È un documento versionato, redatto dal project manager per poter stimare realisticamente le risorse, i costi e i tempi necessari alla realizzazione del progetto. Il piano di progetto

Dettagli

Corso di Laurea in INFORMATICA

Corso di Laurea in INFORMATICA Corso di Laurea in INFORMATICA Algoritmi e Strutture Dati MODULO 2. Algebre di dati Dati e rappresentazioni, requisiti delle astrazioni di dati, costrutti. Astrazioni di dati e dati primitivi. Specifica

Dettagli

Fasi di creazione di un programma

Fasi di creazione di un programma Fasi di creazione di un programma 1. Studio Preliminare 2. Analisi del Sistema 6. Manutenzione e Test 3. Progettazione 5. Implementazione 4. Sviluppo 41 Sviluppo di programmi Per la costruzione di un programma

Dettagli

Ricerca euristica. Funzioni di valutazione euristica. Esempi di euristica. Strategia best-first: esempio. Algoritmo di ricerca Best-First 03/03/15

Ricerca euristica. Funzioni di valutazione euristica. Esempi di euristica. Strategia best-first: esempio. Algoritmo di ricerca Best-First 03/03/15 Ricerca euristica Ricerca euristica Maria Simi a.a. 2014/2015 La ricerca esaustiva non è praticabile in problemi di complessità esponenziale Noi usiamo conoscenza del problema ed esperienza per riconoscere

Dettagli

Intelligenza Artificiale Ing. Tiziano Papini

Intelligenza Artificiale Ing. Tiziano Papini Intelligenza Artificiale Ing. Tiziano Papini Email: papinit@dii.unisi.it Web: http://www.dii.unisi.it/~papinit Constraint Satisfaction metodi costruttivi Intelligenza Artificiale - CSP Tiziano Papini -

Dettagli

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica

Università degli Studi di Napoli Federico II. Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Università degli Studi di Napoli Federico II Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica Anno Accademico 2009/2010 Appunti di Calcolabilità e Complessità Lezione 9: Introduzione alle logiche

Dettagli

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010

Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012. Introduzione a Visual Studio 2005/2008/2010 Fondamenti di Informatica T-1 CdS Ingegneria Informatica a.a. 2011/2012 Introduzione a Visual Studio 2005/2008/2010 1 Outline Solution e Project Visual Studio e linguaggio C Visual Studio schermata principale

Dettagli

Lezione 10. La classificazione dell Intelligenza Artificiale

Lezione 10. La classificazione dell Intelligenza Artificiale Lezione 10 Intelligenza Artificiale Cosa è l Intelligenza Artificiale Elaborazione del linguaggio naturale La visione artificiale L apprendimento nelle macchine La classificazione dell Intelligenza Artificiale

Dettagli

I metodi formali nel processo di sviluppo del software

I metodi formali nel processo di sviluppo del software I metodi formali nel processo di sviluppo del software I metodi formali consentono di creare una specifica più completa, uniforme e non ambigua di quelle prodotte usando i metodi convenzionali ed orientati

Dettagli

Modelli con vincoli di tipo logico

Modelli con vincoli di tipo logico Modelli con vincoli di tipo logico Le variabili decisionali possono essere soggette a vincoli di tipo logico, più o meno espliciti. Ad esempio: vincoli di incompatibilità tra varie alternative: se localizziamo

Dettagli

Rappresentazione di domini complessi e tecniche di ragionamento simbolico per un Robot Mobile Autonomo

Rappresentazione di domini complessi e tecniche di ragionamento simbolico per un Robot Mobile Autonomo Rappresentazione di domini complessi e tecniche di ragionamento simbolico per un Robot Mobile Autonomo Fulvio Mastrogiovanni Laboratorium - DIST Università di Genova Introduzione Requisiti per un Robot

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra Booleana ed Espressioni Booleane Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale

Dettagli

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

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio Il Concetto Intuitivo di Calcolatore Fondamenti di Informatica A Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini I Problemi e la loro Soluzione Problema: classe

Dettagli

Prova di Laboratorio di Programmazione

Prova di Laboratorio di Programmazione Prova di Laboratorio di Programmazione 6 febbraio 015 ATTENZIONE: Non è possibile usare le classi del package prog.io del libro di testo. Oltre ai metodi richiesti in ciascuna classe, è opportuno implementare

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni

Dettagli

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. Universitá di Bologna

Linguaggi. Claudio Sacerdoti Coen 11/04/2011. 18: Semantica della logica del prim ordine. <sacerdot@cs.unibo.it> Universitá di Bologna Linguaggi 18: Semantica della logica del prim ordine Universitá di Bologna 11/04/2011 Outline Semantica della logica del prim ordine 1 Semantica della logica del prim ordine Semantica

Dettagli

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.

Testing: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice. Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori

Dettagli

Ripasso di teoria ed esercizi in preparazione al secondo compito.??? Dicembre 2004

Ripasso di teoria ed esercizi in preparazione al secondo compito.??? Dicembre 2004 Ripasso di teoria ed esercizi in preparazione al secondo compito??? Dicembre 2004 Teoria: domande tipiche da compitino 1. Manipolazione delle strutture sintattiche: quali sono i predicati per la manipolazione

Dettagli

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO

EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO EVOLUZIONE DEI LINGUAGGI DI ALTO LIVELLO Linguaggi di programmazione classificati in base alle loro caratteristiche fondamentali. Linguaggio macchina, binario e fortemente legato all architettura. Linguaggi

Dettagli

Progettazione! Progettazione! Progettazione! Progettazione!

Progettazione! Progettazione! Progettazione! Progettazione! Creare un oggetto specificandone la classe esplicitamente! Orienta ad una particolare implementazione invece che ad una interfaccia! Può complicare i cambiamenti futuri! E meglio creare oggetti indirettamente!

Dettagli

Si basano sul seguente Teorema: S = A sse S { A} è insoddisfacibile.

Si basano sul seguente Teorema: S = A sse S { A} è insoddisfacibile. Deduzione automatica La maggior parte dei metodi di deduzione automatica sono metodi di refutazione: anziché dimostrare direttamente che S A, si dimostra che S { A} è un insieme insoddisfacibile (cioè

Dettagli

Normalizzazione. Relazionali

Normalizzazione. Relazionali Normalizzazione di Schemi Relazionali Normalizzazione Forme Normali Una forma normale è una proprietà di uno schema relazionale che ne garantisce la qualità, cioè l assenza di determinati difetti Una relazione

Dettagli

Intelligenza Artificiale. Lezione 10

Intelligenza Artificiale. Lezione 10 Un sentito ringraziamento ed un ricordo per Raymond Reiter Intelligenza Artificiale Lezione 10 Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 10 0 Sommario Il calcolo delle situazioni Reiter

Dettagli

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Raffinamento dello schema e forme normali 1 Forme Normali Le forme normali consentono di valutare la qualità delle relazione Sono state proposte diverse forme normali che includono, in ordine di generalità:

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati schifano@fe.infn.it Laurea di Informatica - Università di Ferrara 2011-2012 [1] Strutture dati Dinamiche: Le liste Una lista è una sequenza di elementi di un certo tipo in cui è possibile aggiungere e/o

Dettagli

Ingegneria del Software T. 2. Analisi orientata agli oggetti

Ingegneria del Software T. 2. Analisi orientata agli oggetti Ingegneria del Software T 2. Analisi orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare

Dettagli

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Ingegneria del Software L-A 2.1. 2. Analisi orientata agli oggetti

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Ingegneria del Software L-A 2.1. 2. Analisi orientata agli oggetti Ingegneria del Software L-A 2. orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare in dettaglio

Dettagli

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Analisi e gestione dei rischi. Analisi e gestione dei rischi. Ingegneria del Software L-A 2.

Analisi. Ingegneria del Software L-A. Analisi. Analisi. Analisi e gestione dei rischi. Analisi e gestione dei rischi. Ingegneria del Software L-A 2. Ingegneria del Software L-A 2. orientata agli oggetti Per effettuare correttamente l analisi, è necessario Comunicare con l utente Ottenere una buona conoscenza dell area applicativa Determinare in dettaglio

Dettagli

Elementi di Informatica

Elementi di Informatica Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica Algoritmi, e Programmi D. Gubiani 29 marzo 2010 D. Gubiani Algoritmi, e Programmi

Dettagli

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007

Correttezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza

Dettagli

Semantica Assiomatica

Semantica Assiomatica Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,

Dettagli

DAL DIAGRAMMA AL CODICE

DAL DIAGRAMMA AL CODICE DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/SQL Uso di un linguaggio procedurale per un database PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del

Dettagli

GESTIONE INFORMATICA DEI DATI AZIENDALI

GESTIONE INFORMATICA DEI DATI AZIENDALI GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming

Dettagli

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 3 Aprile 2008 (Punteggio su 30/30; Tempo 2h )

COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 3 Aprile 2008 (Punteggio su 30/30; Tempo 2h ) COMPITO DI APPLICAZIONI DI INTELLIGENZA ARTIFICIALE 3 Aprile 2008 (Punteggio su 30/30; Tempo 2h ) Esercizio 1 (punti 8) Dato il seguente training set S: Lunghezza petali Larghezza petali Iris 1 1 Setosa

Dettagli

Prova finale di Ingegneria del software

Prova finale di Ingegneria del software Prova finale di Ingegneria del software Scaglione: Prof. San Pietro Andrea Romanoni: Francesco Visin: andrea.romanoni@polimi.it francesco.visin@polimi.it Italiano 2 Scaglioni di voto Scaglioni di voto

Dettagli

La macchina universale

La macchina universale La macchina universale Una immediata conseguenza della dimostrazione è la seguente Corollario il linguaggio L H = {M (w) M rappresenta una macchina di Turing che si ferma con input w} sull alfabeto {0,1}*

Dettagli

Ingegneria del Software Progettazione

Ingegneria del Software Progettazione Ingegneria del Software Progettazione Obiettivi. Approfondire la fase di progettazione dettagliata che precede la fase di realizzazione e codifica. Definire il concetto di qualità del software. Presentare

Dettagli

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie

b) Costruire direttamente le relazioni e poi correggere quelle che presentano anomalie TEORIA RELAZIONALE: INTRODUZIONE 1 Tre metodi per produrre uno schema relazionale: a) Partire da un buon schema a oggetti e tradurlo b) Costruire direttamente le relazioni e poi correggere quelle che presentano

Dettagli

Sistemi e schedulazione in tempo reale

Sistemi e schedulazione in tempo reale Sistemi e schedulazione in tempo reale 1 Sistemi in tempo reale Sistemi di calcolo in cui la correttezza del funzionamento dipende criticamente dal tempo in cui i risultati sono prodotti. Possibili campi

Dettagli

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT

Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Note del Corso di Modelli Biologici Discreti: Un paio di algoritmi DNA per risolvere SAT Giuditta Franco Corso di Laurea in Bioinformatica - AA 2012/2013 Uno dei più grossi risultati nell informatica degli

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy

Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Dr Maria Federico Programmazione dinamica Solitamente usata per risolvere problemi di ottimizzazione il problema ammette

Dettagli

Problemi di Programmazione Lineare Intera

Problemi di Programmazione Lineare Intera Capitolo 4 Problemi di Programmazione Lineare Intera La Programmazione Lineare Intera (PLI) tratta il problema della massimizzazione (minimizzazione) di una funzione di più variabili, soggetta a vincoli

Dettagli

VARIABILI LOCALI E GLOBALI (ESTERNE)

VARIABILI LOCALI E GLOBALI (ESTERNE) VARIABILI LOCALI E GLOBALI (ESTERNE) Le variabili locali sono definite (ed il loro uso dichiarato) nella funzione (o nel blocco) che le usa; nascono quando la funzione entra in esecuzione e muoiono al

Dettagli

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati Informatica 3 Informatica 3 LEZIONE 10: Introduzione agli algoritmi e alle strutture dati Modulo 1: Perchè studiare algoritmi e strutture dati Modulo 2: Definizioni di base Lezione 10 - Modulo 1 Perchè

Dettagli

Capitolo 7: Teoria generale della calcolabilitá

Capitolo 7: Teoria generale della calcolabilitá Capitolo 7: Teoria generale della calcolabilitá 1 Differenti nozioni di calcolabilitá (che seguono da differenti modelli di calcolo) portano a definire la stessa classe di funzioni. Le tecniche di simulazione

Dettagli

Corso di Esercitazioni di Programmazione

Corso di Esercitazioni di Programmazione Corso di Esercitazioni di Programmazione Introduzione Dott.ssa Sabina Rossi Informazioni Pagina web del corso: News Orari Mailing list Lezioni Esercitazioni Date esami Risultati esami.. http://www.dsi.unive.it/~prog1

Dettagli

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006

Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Laboratorio di architettura degli elaboratori Progetto finale AA 2005/2006 Esercizio 1 - Heapsort Si consideri la seguente struttura dati, chiamata heap. Essa è un albero binario semi-completo (ossia un

Dettagli

Implementazione del gioco del Bantumi Corso di Intelligenza Artificiale 2012

Implementazione del gioco del Bantumi Corso di Intelligenza Artificiale 2012 Implementazione del gioco del Bantumi Corso di Intelligenza Artificiale 2012 Nicola Febbrari Università degli Studi di Verona Facoltà MM.FF.NN. nicola.febbrari@studenti.univr.it 22 gennaio 2013 1 Introduzione

Dettagli

Management Sanitario. Modulo di Ricerca Operativa

Management Sanitario. Modulo di Ricerca Operativa Management Sanitario per il corso di Laurea Magistrale SCIENZE RIABILITATIVE DELLE PROFESSIONI SANITARIE Modulo di Ricerca Operativa Prof. Laura Palagi http://www.dis.uniroma1.it/ palagi Dipartimento di

Dettagli

DIAGRAMMI DI SEQUENZA

DIAGRAMMI DI SEQUENZA DIAGRAMMI DI SEQUENZA Francesco Poggi fpoggi@cs.unibo.it A.A. 2015-2016 Premessa As always, there is never a correct solution to any modelling problem. It s more that some models are more precise, and

Dettagli

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 12 Luglio 2012 Tempo a disposizione: 2 h Risultato: 32/32 punti

FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 12 Luglio 2012 Tempo a disposizione: 2 h Risultato: 32/32 punti FONDAMENTI DI INTELLIGENZA ARTIFICIALE 1 parte (6 CFU) 12 Luglio 2012 Tempo a disposizione: 2 h Risultato: 32/32 punti Esercizio 1 (7 punti) Si formalizzi in logica dei predicati del primo ordine la seguente

Dettagli

Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica 20010-11

Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica 20010-11 Modelli dei Sistemi di Produzione Modelli e Algoritmi della Logistica 20010-11 Project Scheduling: Reti di attività CARLO MANNINO Sapienza Università di Roma Dipartimento di Informatica e Sistemistica

Dettagli

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso Obiettivi formativi Introdurre i principi del funzionamento di un elaboratore e della programmazione. Presentare gli approcci elementari alla soluzione di problemi (algoritmi)e al progetto di strutture

Dettagli

USO DI CONCETTI PROBABILISTICI NEL PROGETTO E NELL ANALISI DI ALGORITMI

USO DI CONCETTI PROBABILISTICI NEL PROGETTO E NELL ANALISI DI ALGORITMI USO DI CONCETTI PROBABILISTICI NEL PROGETTO E NELL ANALISI DI ALGORITMI - Analisi probabilistica di algoritmi deterministici: si assume una distribuzione di probabilità delle istanze e si calcola il tempo

Dettagli