Planning. un task di per se e attività comune a molti task, ad esempio

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Planning. un task di per se e attività comune a molti task, ad esempio"

Transcript

1 Planning Importante attività di problem solving dati una descrizione (parziale) dello stato corrente (eventualmente percepita) un insieme di azioni un obiettivo da raggiungere determinare: un piano, ossia un insieme (parzialmente o totalmente) ordinato di azioni per raggiungere il goal un task di per se e attività comune a molti task, ad esempio diagnosi: pianficazione di test o di azioni per riparare (riconfigurare) un sistema scheduling robotica Console, Botta - Dip. Informatica, Univ. Torino Planning 1 Planning = costruzione di un piano rappresentazione dello stato rappresentazione delle azioni strategie di ricerca Molto differente da problem solving nello spazio degli stati stato parziale azioni complesse piano è un insieme (parzialmente) ordinato di azioni Vedremo tecniche di base di planning algoritmo STRIPS costruzione di piani parzialmente ordinati e least commitment planning planning gerarchico planning condizionale planning and acting Console, Botta - Dip. Informatica, Univ. Torino Planning 2

2 Situation calculus: una soluzione deduttiva Situation calculus: un approccio logico per la rappresentazione di stati, azioni e cambiamento Situation: snapshot del mondo e delle proprietà (fluent) che valgono in quell istante Esempio: mondo dei blocchi holds(on(b,a), s) holds(ontable(c), s) Azioni: definiscono quali fluent saranno veri come risultato di un azione Esempio holds(on(x,y),s) and holds(clear(x),s) holds((ontable(x), on(x,y)), result(putontable(x,s))) Costruzione di un piano: deduzione, dimostrazione di un goal Esempio:? holds(ontable(b),s) YES per S=putOnTable(b,s) Problemi: qualification e frame problem necessità di forme di logiche non standard b a c Console, Botta - Dip. Informatica, Univ. Torino Planning 3 Rappresentazione di stati e azioni Problemi degli approcci deduttivi rappresentazioni in linguaggi specializzati e tecniche non deduttive di pianificazione STRIPS (Stanford Research Institute Problem Solver) antenato dei sistemi attuali di pianificazione linguaggio per la rappresentazione di azioni algoritmo per la costruzione di piani Rappresentazione dello stato: Insieme di fluent che valgono nello stato Esempio: on(b,a), clear(b),, ontable(c) rappresentazione del goal Insieme di fluent (simile allo stato) Si possono avere variabili esempio on(x,a) Console, Botta - Dip. Informatica, Univ. Torino Planning 4

3 Rappresentazione delle azioni Tre parti: Precondizioni: fluent che devono essere veri per applicare l azione DELETE List: fluent che diventano falsi come risultato dell azione ADD List: fluent che diventano veri come risultato dell azione Esempio move(x, Y, Z) (sposta X da sopra a Y a sopra a Z) Precondizioni: on(x,y), clear(x), clear(z) Delete List: clear(z), on(x,y) Add list: clear(y), on(x,z) Oss: a volte add e delete list rappresentate come EFFECT list con atomi positivi e negativi Esempio Precondizioni: on(x,y), clear(x), clear(z) Effect List: clear(z), on(x,y), clear(y), on(x,z) Console, Botta - Dip. Informatica, Univ. Torino Planning 5 Backward (regression) planning Ricerca nello spazio delle situazioni Ricerca backward a partire dal goal Operatori come regole riduzione di un goal a sottogoal terminazione: sottogoal che è un sottoinsieme dello stato iniziale Problema: definire come si effettua riduzione di un goal in sottogoal tenendo conto della forma delle regole (non solo deduttiva) PRECOND: Plist DELETE: Dlist ADD: Alist Stabilire come si effettua la riduzione di goal attraverso queste regole GOAL REGRESSION Console, Botta - Dip. Informatica, Univ. Torino Planning 6

4 Goal regression Goal: G1, G2,, Gn Regola R PRECOND: Plist DELETE: Dlist ADD: Alist Regr[G1, G2,.., Gn, R] = SottoGoal determinare quale è il sottogoal SottoGoal tale per cui l applicazione della regola R in G porta a G1, G2,, Gn Definire per ogni Gj come doveva essere in SottoGoal? Regr[G,R] = true se G Alist G Regr[G,R] = false se G Dlist Regr[G,R] = G altrimenti Console, Botta - Dip. Informatica, Univ. Torino Planning 7 Esempio: mondo dei blocchi Problema: spostare blocchi su un tavolo con un braccio Operatori pickup(x) PRECOND: ontable(x), clear(x), handempty DELETE: ontable(x), clear(x), handempty ADD: holding(x) putdown(x) PRECOND: holding(x) DELETE: holding(x) ADD: ontable(x), clear(x), handempty stack(x,y) PRECOND: holding(x), clear(y) DELETE: holding(x), clear(y) ADD: handempty, on(x,y), clear(x) unstack(x,y) PRECOND: handempty, on(x,y), clear(x) DELETE: handempty, on(x,y), clear(x) ADD: holding(x), clear(y) Console, Botta - Dip. Informatica, Univ. Torino Planning 8

5 Esempi di regressione regola R1: unstack(b,y) Regr[holding(b), R1] = true Regr[handempty,R1]=false Regr[ontable(c),R1 ]=ontable (c) Regr[clear (c), R1] = dipende se y=c = Y=c clear (c) = Y=c quindi due sottogoal possibili Regressione è il meccanismo di base per ridurre un goal in sottogoal in un planner backward Console, Botta - Dip. Informatica, Univ. Torino Planning 9 Riduzione di goal in sottogoal Goal: G1, G2,, Gn Regola R PRECOND: Plist = P1, P2, Pm DELETE: Dlist = D1, D2,, Dk ADD: Alist = A1, A2, Al Sottogoal che si ottiene da G con R Regr[G1, R], Regr[G2, R],, Regr[Gn,R], D1, D2,,Dk, P1, P2, Pm se Regr[Gi,R]=false allora tagliare Esempio Regr Regr on(a,b), on(b,c) { Prec, Del: holding(a), clear(b) Add: handempty stack(a,b) on(a,b), clear(a) True, on(b,c), holding(a), clear(b) Prec, Del list Console, Botta - Dip. Informatica, Univ. Torino Planning 10

6 Stato iniziale Esempio completo clear(b),, on(c,a), handempty, ontable(a), ontable(b) C A B Stato finale on(a,b), on(b,c) A B C Console, Botta - Dip. Informatica, Univ. Torino Planning 11 handempty, clear(x), on(x,b), X a, holding(a), on(b,c) holding(a) on(b,c) clear(b) unstack(x,b) Grafo di ricerca on(a,b), on(b,c) stack(a,b) holding(a), clear(b), on(b,c) stack(b,c) holding(b),, holding(a) pickup(a) ontable(a), clear(a) handempty, on(b,c), clear(b) putdown(a) putdown(b) stack(b,c) putdown(x) holding(b), ontable(a), clear(a), on(b,c) holding(b) ontable(a) clear(a) holding(x) ontable(a) clear(a) X a on(b,c) clear(b) stack(b,c) holding(b),, on(a,b)... handempty clear(x), on(x,a), ontable(a), FALSE on(b,c), clear(b) X b unstack(a,b) handempty, clear(a),... on(a,b), on(b,c) unstack(x,b) unstack(x,a) handempty clear(x), on(x,b), ontable(a), FALSE on(b,c), clear(a) X a Console, Botta - Dip. Informatica, Univ. Torino Planning 12

7 unstack(b,y) handempty, clear(b), on(b,y),, clear(a) ontable(a), Y a, Y c unstack(c,y) handempty, on(c,y), ontable(b), clear(b), Y b, clear(a) ontable(a), Y a... holding(b) ontable(a) clear(a) pickup(b) ontable(b), clear(b), handempty, ontable(a), clear(a) putdown(c) holding(c), ontable(b), clear(b), ontable(a), clear(a) unstack(c,a) handempty,, on(c,a) ontable(b), clear(b), ontable(a) Questo coincide con lo stato iniziale putdown(a)... holding(a), ontable(b), clear(b), Console, Botta - Dip. Informatica, Univ. Torino Planning 13 Un problema: interacting goals Quando due (o più) goal interagiscono possono sorgere dei problemi ci possono essere problemi di interazione tra le due soluzioni goal G1, G2 pianifico azioni per G2 poi mi trovo però nella situazione che per risolvere G1 devo smontare tutto, compreso lo stato che avevo prodotto con G2 risolto Esempio stato iniziale C A B goal: on(b,c), on(a,b) azione per risolvere on(b,c) porta a stato in cui per risolvere l altro goal devo smontare tutto Risolvere due goal indipendentemente non funziona A1 G1 devo considerarli insieme G2 sia A1 dopo A2 che A2 dopo A1 non A2 funzionano Console, Botta - Dip. Informatica, Univ. Torino Planning 14

8 Soluzione completa. provare tutti gli ordinamenti dei goal dei loro sottogoal Soluzione efficiente (pratica) provare a risolverli indipendemente verificare che la soluzione funzioni se non funziona, provare gli ordinamenti possibili uno alla volta Console, Botta - Dip. Informatica, Univ. Torino Planning 15 Algoritmo STRIPS Planner basato su ricerca backward appena discussa Utilizza due strutture dati stack di goal - descrizione S dello stato corrente Algoritmo while stack non è vuoto do if top(stack) = a and aθ = a θ con a S then elimina a dallo stack ed esegui sost θ sullo stack; if top(stack) = a1 a2 an then push(ai1), push(ai2),, push(ain) in un qualche ordine (punto di scelta non deterministica; si noti che la congiunzione rimane sullo stack e verrà riverificata dopo - interacting goals) if top(stack) = a then - seleziona regola R con a Addlist(R) - pop(a); push(r), push(precond(r)) if top(stack) = R then applica R trasformando lo stato S Console, Botta - Dip. Informatica, Univ. Torino Planning 16

9 Esempio state goal clear(b) on(c,b) on(a,c) a c on(c,a) ontable(a) b ontable(b) handempty a c state clear(b) on(c,a) ontable(a) b ontable(b) handempty goal on(a,c) on(c,b) on(c,b) on(a,c) a c state clear(b) on(c,a) ontable(a) b ontable(b) handempty goal on(c,b) on(a,c) on(c,b) on(a,c) a c state goal clear(b) holding(a) stack(a,c) on(c,a) on(c,b) ontable(a) on(c,b) on(a,c) b ontable(b) handempty... state goal clear(b) clear(b) holding(c) stack(c,b) on(c,a) on(a,c) ontable(a) on(c,b) on(a,c) b ontable(b) handempty Console, Botta - Dip. Informatica, Univ. Torino Planning 17 a c... a c a c state goal clear(b) holding(c) clear(b) on(c,a) clear(b) holding(c) ontable(a) stack(c,b) b ontable(b) on(a,c) handempty on(c,b) on(a,c) state goal clear(b) handempty on(c,y) on(c,a) unstack(c,y) ontable(a) clear(b) b ontable(b) clear(b) holding(c) handempty stack(c,b) on(a,c) on(c,b) on(a,c) con {a/y} la congiunzione unifica con S (evito ordini) a c state goal clear(b) unstack(c,a) clear(b) on(c,a) clear(b) holding(c) ontable(a) stack(c,b) b ontable(b) on(a,c) handempty on(c,b) on(a,c) eseguo azione unstack(c,a) c a state clear(b) clear(a) ontable(a) ontable(b) b holding(c) verificato goal e congiunz. c a state clear(b) clear(a) ontable(a) ontable(b) b holding(c) goal clear(b) clear(b) holding(c) stack(c,b) on(a,c) on(c,b) on(a,c) goal stack(c,b) on(a,c) on(c,b) on(a,c) eseguo stack Console, Botta - Dip. Informatica, Univ. Torino Planning 18

10 a a a state goal on(a,c) clear(a) on(c,b) on(a,c) ontable(a) c ontable(b) b on(c,b) handempty state goal holding(a) clear(a) stack(a,c) ontable(a) on(c,b) on(a,c) c ontable(b) b on(c,b) handempty vero in S c b state clear(a) ontable(a) ontable(b) on(c,b) handempty goal holding(a) holding(a) stack(a,c) on(c,b) on(a,c) a a state goal ontable(a) clear(a) clear(a) handempty ontable(a) pickup(a) c ontable(b) holding(a) b on(c,b) stack(a,c) handempty on(c,b) on(a,c) cong OK eseguo pickup c b state ontable(b) on(c,b) holding(a) cong OK eseguo stack goal holding(a) stack(a,c) on(c,b) on(a,c) state goal clear(a) on(c,b) on(a,c) ontable(b) a on(c,b) c on(a,c) b handempty elimino goal, stack vuoto Console, Botta - Dip. Informatica, Univ. Torino FINITO Planning 19 Ricostruendo da configurazione iniziale a finale ho una soluzione unstack(c,a) stack(c,b) pickup(a) stack(a,c) Ricerca abbiamo visto un cammino varie alternative scelte non deterministiche ordinamento dei goal più operatori applicabili per ridurre un goal Strategie euristiche strategie di ricerca strategie per scegliere quale goal ridurre e quale operatore MEANS-ENDS ANALYSIS cercare la differenza più significativa tra stato e goal ridurre quella differenza per prima Console, Botta - Dip. Informatica, Univ. Torino Planning 20

11 Ricerca nello spazio dei piani STRIPS: ricerca nello spazio delle situazioni approccio alternativo: ricerca nello spazio dei piani rappresentazione di piani parziali operatori di trasformazione di piani Piano: Insieme delle azioni che lo costituiscono con precondizioni Ordine parziale tra le azioni: Si p Sj Link causali tra azioni: Si c Sj l azione Si produce come effetto la precondizione c di Sj Piano iniziale: due azioni : senza precondizioni : con precondizione il goal del planner p Console, Botta - Dip. Informatica, Univ. Torino Planning 21 Esempio: piano per mettersi le scarpe azioni mettiscarpadx: PRECOND: calzadx(on) EFFECT scarpadx(on) mettiscarpasx: PRECOND: calzasx(on) EFFECT scarpasx(on) metticalzadx: PRECOND: - EFFECT calzadx(on) metticalzasx: PRECOND: - EFFECT calzasx(on) Piano iniziale Piano finale scarpadx(on) scarpasx(on) metticalzadx calzadx(on) mettiscarpadx metticalzasx calzasx(on) mettiscarpasx scarpadx(on) scarpasx(on) Console, Botta - Dip. Informatica, Univ. Torino Planning 22

12 Osservazioni piano con ordine parziale, non vengono imposti ordinamenti non richiesti Least Commitment: non imporre mai più vincoli di quelli strettamente necessari non fare scelte quando don t care evita molti backtracking Linearizzazione: trasformazione da ordine parziale a ordine totale in generale molte soluzioni Algoritmo: ricerca nello spazio dei piani operatori per costruire e trasformare un piano Console, Botta - Dip. Informatica, Univ. Torino Planning 23 Algoritmo di partial order planning (intuitivo) While (piano non terminato) do seleziona una azione SN che ha una precondizione C non soddisfatta seleziona una azione S che abbia C tra i suoi effetti aggiungi il vincolo di ordine S p SN aggiungi il vincolo d ordine Start p S p Stop aggiungi il legame causale S --C --> SN risolvi eventuali violazioni a legami causali end ognuno dei passi di selezione è non-deterministico in caso di fallimento si può avere backtracking su selezioni non deterministiche Console, Botta - Dip. Informatica, Univ. Torino Planning 24

13 Violazioni a vincoli causali S1 c S2 S3 c ordine Legame causale Due possibili soluzioni (ma a volte non funziona nessuna delle due, altro punto di fallimento) demotion promotion S1 c S2 S3 c S1 S2 c Console, Botta - Dip. Informatica, Univ. Torino Planning 25 S3 c Esempio: pianificazione di acquisti stato iniziale: at(home), sells(hws,drill), sells(sm,milk), sells(sm,banana) Goal: at(home), have(drill), have(milk), have(banana) azioni go(y): PRECOND: at(x) EFFECT: at(y), at(x) buy(y) PRECOND: at(s), sells(s,y) EFFECT: have(y) at(home), sells(hws,drill), sells(sm,milk), sells(sm,banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 26

14 Primo passo: seleziono una azione e precondizione: have(drill) seleziono azione che ha la precondizione come effetto: buy(drill) modifico il piano at(home), sells(hws,drill), sells(sm,milk), sells(sm,banana) at(x), sells(x,drill), buy(drill) have(drill), have(milk), have(banana), at(home) Legame causale tra buy(drill) e per proteggere have(drill) Console, Botta - Dip. Informatica, Univ. Torino Planning 27 Secondo e terzo passo: procedo in modo analogo per gli altri acquisti at(home), sells(hws,drill), sells(sm,milk), sells(sm,banana) at(x), sells(x,drill) buy(drill) at(x), sells(x,milk) buy(milk) at(x), sells(x,banana), buy(banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 28

15 Passi successivi: seleziono sells(hws,drill), sells(sm,milk), sells(sm,banana) già veri nello stato iniziale devo quindi solo proteggerli con legami causali at(home) at(hws), sells(hws,drill) buy(drill) at(sm), sells(sm,milk) buy(milk) at(sm), sells(sm,banana), buy(banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 29 Passo successivo: seleziono at(hws) precondizione di buy(drill) seleziono azione go(hws) at(x) go(hws) at(home) at(hws), sells(hws,drill) buy(drill) at(sm), sells(sm,milk) buy(milk) at(sm), sells(sm,banana), buy(banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 30

16 Passo successivo: seleziono at(x) precondizione di go(hws) soddisfatta in con at(home) per cui lo proteggo at(home) go(hws) at(hws), sells(hws,drill) buy(drill) at(sm), sells(sm,milk) buy(milk) at(sm), sells(sm,banana), buy(banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 31 Passo successivo: procedo in modo analogo per at(sm) at(home) go(hws) at(home) go(sm) at(hws), sells(hws,drill) buy(drill) sells(sm,milk), at(sm) buy(milk) sells(sm,banana), at(sm) buy(banana) have(drill), have(milk), have(banana), at(home) Console, Botta - Dip. Informatica, Univ. Torino Planning 32

17 A questo punto ci sono problemi violazioni di vincoli causali tra le azioni go(hws) e go(sm) se agente esegue go(hws), non può essere at(home) per fare azione go(sm) e viceversa spostare ordine tra le azioni non funziona si deve fare backtracking su ultimo passo risoluzione di at(sm) semplicemente da proteggendo at(home) eseguire go(sm) partendo da hws Console, Botta - Dip. Informatica, Univ. Torino Planning 33 at(home) go(hws) at(hws) go(sm) Due passi prima at(x)... at(hws), sells(hws,drill) buy(drill) sells(sm,milk), at(sm) buy(milk) sells(sm,banana), at(sm) buy(banana) have(drill), have(milk), have(banana), at(home) Ordine tra buy(drill) e go(sm) in quanto at(hws) è protetto legame causale go(hws) buy(drill) at(hws) Console, Botta - Dip. Informatica, Univ. Torino Planning 34

18 Ultimo passo risolvere at(home) di : unico modo è di metterla prima di at(home) go(hws) at(hws) go(sm) at(hws), sells(hws,drill) buy(drill) sells(sm,milk), at(sm) buy(milk) go(home) at(sm) sells(sm,banana), at(sm) buy(banana) have(drill), at(home), have(milk), have(banana) Console, Botta - Dip. Informatica, Univ. Torino Planning 35 Ossia: una sola scelta non ordinata at(home) go(hws) at(hws), sells(hws,drill) buy(drill) sells(sm,milk), at(sm) buy(milk) at(hws) go(sm) at(sm) go(home) at(sm), sells(sm,banana buy(banana) have(milk), at(home), have(banana), have(drill) Console, Botta - Dip. Informatica, Univ. Torino Planning 36

19 Algoritmo partial order planning function POP(initialGoal, operators) returns plan plan := INITIAL_PLAN(,, initialgoal) loop if SOLUTION(plan) then return plan; SN, C := SELECT_SUBGOAL(plan); CHOOSE_OPERATOR(plan, operators, SN, C); RESOLVE_THREATS(plan) end function SELECT_SUBGOAL(plan) seleziona azione SN da STEPS(plan) con una condizione C non ancora risolta; return SN, C Console, Botta - Dip. Informatica, Univ. Torino Planning 37 procedure CHOOSE_OPERATOR(plan, operators, SN, C) seleziona S da operators o da STEPS(plan) che abbia C come effetto; if non esiste S con tali proprietà then fail; aggiungi il link causale S C SN aggiungi il vincolo di ordinamento S p SN if S è un nuovo operatore aggiunto al piano then aggiungi S a STEPS(plan) aggiungi il vincolo Start p S p Stop procedure RESOLVE_THREAT(plan) for each azione S che viola il vincolo causale Si C choose either promotion: aggiungi il vincolo S p Si demotion: aggiungi il vincolo Sj p S if NOT_CONSISTENT(plan) then fail endfor Sj Console, Botta - Dip. Informatica, Univ. Torino Planning 38

20 Osservazioni più efficiente dell approccio alla STRIPS possibilità di definire operatori più complessi effetti condizionali Esempio: mondo dei blocchi move(b,x,y) PRECOND: on(b,x), clear(b), clear(y) EFFECT: on(b,y), clear(x), on(b,x), clear(y) if Y table operatori logici effetti disgiuntivi o negazione nel goal Esempio: moneta FLIP(C) EFFECT testa(c) croce(c) quantificazione universale Esempio: operatore per trasportare un insieme di oggetti carry(bag, X, Y) PRECOND: bag(bag), at(bag,x) EFFECT: at(bag, Y), at(bag,x), Z in(z, BAG) (at(z, Y), at(z,x)) Console, Botta - Dip. Informatica, Univ. Torino Planning 39 Planning in pratica Molte applicazioni in domini complessi aereospaziale, industriale,. Algoritmi visti vanno bene, ma problemi di efficienza in caso di molti operatori Tecniche per rendere più efficiente il processo di pianificazione Planning gerarchico definire operatori a diversi livelli di astrazione pianificare ad livello alto sostitituire macro azioni con loro espansione (magari già precompilata) Esempio planning per comprare al supermercato come visto azioni elementari di spostamento di un robot portano a dover pianificare più in dettaglio le azioni (macro) go e buy Sharing di azioni usare una stessa azione per raggiungere più obiettivi Console, Botta - Dip. Informatica, Univ. Torino Planning 40

21 Planning gerarchico Definizione di operatori a diverso livello di dettaglio Espansione di piani astratti in piani concreti pianificando parti astratte in termini di azioni più specifiche macro-espansione di piani già precostruiti adattamento di piani (schemi di piani) già precostruiti Rappresentazione operatori astratti come gli altri operatori: PRECOND, EFFECT se macro (già costruiti) anche loro decomposizione in piani più elementari Esempio Construction PRECOND: ownland, havemoney EFFECT: havehouse DECOMPOSITION: S1: build(foundation), S2: build(frame), S3: build(roof), S4:build(walls), S5: build(interior) ORDER: S1 p S2 p S3, S2 p S4, S3 p S5, S4 p S5 S1 foundation S2 frame frame Console, Botta - Dip. Informatica, Univ. Torino Planning 41 S3 S4 roof walls S5 Buy Land Get Loan Own Land Have Money Build House Have(House) Move In decomposes to Buy Land Get Loan Own Land Obtain Permit Hire Builder Construction Have Money Pay Builder Have(House) Move In Console, Botta - Dip. Informatica, Univ. Torino Planning 42

22 Un planner gerarchico Stesso algoritmo POP di prima, ma ad ogni passo si può scegliere tra selezionare un operatore ed estendere il piano (compresi operatori macro) espandere un macro step del piano (usando function HD_POP(initialGoal, methods, operators) returns plan plan := INITIAL_PLAN(,, initialgoal) loop if SOLUTION(plan) then return plan; choose between SN, C := SELECT_SUBGOAL(plan); CHOOSE_OPERATOR(plan, operators, SN, C); SnonPrim := SELECT_STEP_NON_PRIMITIVO(plan) CHOOSE_DECOMPOSITION(SnonPrim, methods, plan) RESOLVE_THREATS(plan) end Console, Botta - Dip. Informatica, Univ. Torino Planning 43 Condizioni su planning gerarchico Affinché planning gerarchico funzioni, devono essere garantite alcune proprietà Vincoli sulla decomposizione Se azione macro A ha come effetto X e viene espansa con piano P X deve essere effetto di almeno una delle azioni in cui A viene decomposta e deve essere protetta fino alla fine del piano P ogni precondizione delle azioni in P deve essere garantita dai passi precedenti A nel piano oppure deve essere una precondizione di A le azioni di P non devono violare vincoli causali quando P viene sostituito ad A nel piano che si sta costruendo Solo in questo modo si può sostituire la azione macro A con il piano P Sostituzione di A con P Si devono mettere a posto sia le relazioni d ordine che i link causali Ordine s per ogni B tale per cui B p A si impone B p first(p) (prima azione di P) per ogni B tale per cui A p B si impone last(p) p B (ultima azione di P) Console, Botta - Dip. Informatica, Univ. Torino Planning 44

23 Link causali se S C A era un link nel piano, allora si deve sostituire con una serie di link S C Si dove Si sono le azioni di P che hanno C come precondizione e nessun altro passo di A prima di Si ha C come precondizione se A C S era un link nel piano, allora si deve sostituire con una serie di link Si C S dove Si sono le azioni di P che hanno C come effetto e nessun altro passo di P dopo Si ha C come effetto Correttezza e completezza della pianificazione gerarchica Completezza: ogni volta che una macro azione A viene scartata dal planner come inconsistente, allora tutte le sue espansioni devono portare a inconsistenza Correttezza: ogni volta che una macro azione A viene inserita in un piano, allora almeno una delle sue espansioni deve portare ad un piano consistente Console, Botta - Dip. Informatica, Univ. Torino Planning 45 Gestione di risorse limitate Spesso in planning necessità di trattare vincoli su risorse tempo: vincoli temporali sulle attività durata delle attività ritardi tra attività vincoli sulla terminazione del piano vincoli sull uso di risorse altre risorse quali: denaro: ad esempio in planning su acquisti materie prime: in planning su produzione Tempo: integrazione tra planning e gestione di vincoli temporali sulle attività e sulle risorse vincoli temporali su goal ogni azione comporta vincoli temporali mantenimento della consistenza dei vincoli inconsistenza fa fallire il piano Console, Botta - Dip. Informatica, Univ. Torino Planning 46

24 Esempio: planning di attività con scadenze goal: prodottop entro le 12:00 azioni producep PRECOND: liberomaccm(t), materieprime(t1) EFFECT: prodottop(t2) VINCOLI: T1 before (T), T2 = end(t)+0:10, T lasting 2:00 dato goal prodottop(12:00) si ha che azione producep può essere usata per raggiungere goal ma vincoli temporali liberomacchm(t), materieprime(t1) T between 9:50 and 11:50 T1 before 9:50 ProduceP prodottop(12:00) Nuovi goal devono essere soddisfatti rispettando i vincoli temporali Integrazione tra planner e temporal reasoner Console, Botta - Dip. Informatica, Univ. Torino Planning 47 Altre risorse: un possibile approccio variabili che memorizzano stato della risorsa azioni possono specificare condizioni sulle variabili modifiche di valore delle variabili Esempio variabile $ per tener traccia dei soldi disponibili assegnamento iniziale $=2000 buy(y) PRECOND: at(s), sells(s,y), cost(y,c), $ > C EFFECT: have(y), $ := $-C Planner deve tener traccia delle variabili e aggiornarle durante la costruzione del piano Console, Botta - Dip. Informatica, Univ. Torino Planning 48

25 Planning and acting Tecniche viste fino ad ora permettono di costruire piani per raggiungere goal Piani vengono poi eseguiti da agente Esecuzione può portare a problemi: alcune condizioni possono essere diverse da come previsto conoscenza incompleta o non corretta del planner condizioni inaspettate trasformazioni del mondo effetti delle azioni possono essere diversi dal previsto, anche per errori dell esecutore Agente in grado di percepire, pianificare agire Due possibili approcci Planning condizionale Monitoring della esecuzione e re-planning Console, Botta - Dip. Informatica, Univ. Torino Planning 49 Piano costituito da Planning condizionale azioni verifica di condizioni comportamento condizionale a seconda dei risultati delle verifiche Esempio: sostituzione ruote in una auto remove(x) PRECOND: on(x) EFFECT: off(x), clearhub(x), on(x) puton(x) PRECOND: off(x), clearhub(x) EFFECT: on(x), clearhub(x), off(x) inflate(x) PRECOND: intact(x), flat(x) EFECT: inflated(x), flat(x) checktire(x) PRECOND: tire(x) EFFECT: knowswhether(intact(x)) situazione iniziale:on(tire1), flat(tire1), inflated(spare) goal: on(x), inflated(x) Console, Botta - Dip. Informatica, Univ. Torino Planning 50

26 Planning tradizionale produrrebbe il seguente piano: on(tire1) flat(tire1) inflated(spare) on(x) inflated(x) on(tire1) flat(tire1) inflated(spare) flat(tire1) Inflate(tire1) intact(tire1) on(tire1) inflated(tire1) A questo punto c è la condizione intact(tire1) che non può essere ottenuta con nessuna azione fallimento nel piano usare le azioni che permettono di fare verifiche e costruire un piano condizionale Console, Botta - Dip. Informatica, Univ. Torino Planning 51 on(tire1) on(tire1) flat(tire1) inflated(tire1) inflated(spare) [intact(tire1)] flat(tire1) inflate(tire1) check(tire1) intact(tire1) [intact(tire1)] Problemi [ intact(tire1)] intact(tire1) vale in una delle possibili risposte alla verifica in un contesto in quel contesto il piano è a posto però si devono considerare anche tutti gli altri possibili contesti e costruire piani anche per quei casi Generare una copia del goal del piano per ogni altro possibile contesto in questo modo si avrà un piano condizionale che può funzionare in diversi contesti Console, Botta - Dip. Informatica, Univ. Torino Planning 52

27 check(tire1) on(tire1) flat(tire1) inflated(spare) flat(tire1) inflate(tire1) intact(tire1) [intact(tire1)] on(tire1) inflated(tire1) [intact(tire1)] intact(tire1) on(x) inflated(x) [ intact(tire1)] Si costruisce quindi il piano on(tire1) flat(tire1) inflated(spare) flat(tire1) inflate(tire1) check(tire1) intact(tire1) [intact(tire1)] intact(tire1) remove(tire1) puton(spare) on(tire1) inflated(tire1) [intact(tire1)] on(spare) inflated(spare) [ intact(tire1)] Console, Botta - Dip. Informatica, Univ. Torino Planning 53 Algoritmo per conditional planning function CPOP (initialgoal, operators) returns plan INITIAL_PLAN(,, initialgoal) loop if non ci sono precondizioni non soddisfatte o contesti non analizzati then return plan; if sono stati generati piani per i contesti C1, Cn then aggiungi nuovo goal con contesto (C1... Cn); seleziona uno step SN con precondizione C; seleziona S da operatori che aggiunge C oppure che permette di verificare C ed è compatibile con contesto corrente; if non esiste una tale azione then fail; aggiungi S C SN ai legami causali; aggiungi S p SN ai vincoli di ordinamento; if S è una nuova azione then aggiungi S a step(plan), aggiungi il vincolo p S p Console, Botta - Dip. Informatica, Univ. Torino Planning 54

28 end risoluzione threats: for each azione S che viola il vincolo causale Si C Sj choose either promotion: aggiungi il vincolo S p Si demotion: aggiungi il vincolo Sj p S conditioning: trovare uno step condizionale Scond in cui il contesto di Scond è compatibile con S e Sj Scond ha possibili risultati compatibili uno con Si e un altro con Sj; aggiungere link condizionali da Scond a Si e da Scond a Sj if nessuna scelta consistente then fail endfor Console, Botta - Dip. Informatica, Univ. Torino Planning 55 Integrazione tra planning ed esecuzione dei piani Pianificazione avviene per poi eseguire le azioni Esecuzione delle azioni può avvenire in modo corretto senza problemi In molti casi tuttavia si deve tener conto di eventuali situazioni anomale che possono avvenire durante l esecuzione di un piano errori nell esecuzione di azioni da parte dell agente modifiche impreviste allo stato per effetto di azioni di altri agenti o della natura (che può essere vista come un altro agente) Necessità di integrazione tra pianificazione ed esecuzione di piani verificare effetto di ogni azione ripianificare se vi sono stati problemi correggere i piani se avvengono azioni esterne impreviste Un esempio pianificazione nel mondo dei blocchi con azioni esterne errori di esecuzione Console, Botta - Dip. Informatica, Univ. Torino Planning 56

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

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

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

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

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

Un programma GOLOG è un azione complessa, che viene ridotta ad azioni primitive, corrispondenti ad azioni reali nel dominio di applicazione.

Un programma GOLOG è un azione complessa, che viene ridotta ad azioni primitive, corrispondenti ad azioni reali nel dominio di applicazione. GOLOG GOLOG è un linguaggio di programmazione ad altissimo livello che permette di modellare comportamenti complessi in un mondo che evolve dinamicamente. Nei linguaggi di programmazione standard i programmi

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

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

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

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

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

Logica del primo ordine

Logica del primo ordine Logica del primo ordine Sistema formale sviluppato in ambito matematico formalizzazione delle leggi del pensiero strette relazioni con studi filosofici In ambito Intelligenza Artificiale logica come linguaggio

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

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

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

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

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti

Testing. Definizioni. incomprensione umana nel tentativo di comprendere o risolvere un problema, o nell uso di strumenti Definizioni Problemi del testing:criterio di selezione dei casi di test Test Funzionale: suddivisione in classi di equivalenza e analisi dei valori limite Test Strutturale: basato sul flusso di controllo

Dettagli

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015

Visual Basic for Applications (VBA) Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Francesco Brun Fondamenti di Informatica a.a. 2014/2015 Scopo di questo approfondimento Lo scopo di questo approfondimento è rispondere alla domanda: e se nella vita mi troverò a dover utilizzare un linguaggio

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

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

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

Ancora su diagnosi. Lezione 9 giugno. Conoscenza incompleta e senso comune. Frameworks per il ragionamento basato su assunzioni

Ancora su diagnosi. Lezione 9 giugno. Conoscenza incompleta e senso comune. Frameworks per il ragionamento basato su assunzioni Ancora su diagnosi Lezione 9 giugno Ancora su diagnosi Conoscenza incompleta, senso comune e ragionamento basato su assunzioni Cenni su pianificazione Abbiamo accennato alla diagnosi di guasti. Occorre

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

Tecnologia di un Database Server (centralizzato) Introduzione generale

Tecnologia di un Database Server (centralizzato) Introduzione generale Introduzione Basi di Dati / Complementi di Basi di Dati 1 Tecnologia di un Database Server (centralizzato) Introduzione generale Angelo Montanari Dipartimento di Matematica e Informatica Università di

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

Sommario della lezione

Sommario della lezione Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione

Dettagli

/* Goal a b c */ goal(s) :- ontable(c,s), on(a,b,s), on(b,c,s), clear(a,s). È necessario controllare la ricerca del piano

/* Goal a b c */ goal(s) :- ontable(c,s), on(a,b,s), on(b,c,s), clear(a,s). È necessario controllare la ricerca del piano Il motore di inferenza del Prolog potrebbe non trovare soluzioni /* file: simpleproblem3.pl */ /* Initial Situation a b c */ ontable(b,s0). ontable(c,s0). on(a,b,s0). clear(a,s0). clear(c,s0). /* Goal

Dettagli

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti

Middleware Laboratory. Dai sistemi concorrenti ai sistemi distribuiti Dai sistemi concorrenti ai sistemi distribuiti Problemi nei sistemi concorrenti e distribuiti I sistemi concorrenti e distribuiti hanno in comune l ovvio problema di coordinare le varie attività dei differenti

Dettagli

1. Considerazioni generali

1. Considerazioni generali 1. Considerazioni generali Modelli di shop scheduling In molti ambienti produttivi l esecuzione di un job richiede l esecuzione non simultanea di un certo numero di operazioni su macchine dedicate. Ogni

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

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI

L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI L INNOVAZIONE SCIENTIFICO-TECNOLOGICA NEI PROCESSI PRODUTTIVI Scienza ed industria hanno oggi costituito legami molto forti di collaborazione che hanno portato innovazione tecnologica sia a livello organizzativo-amministrativo

Dettagli

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete

Funzioni in due variabili Raccolta di FAQ by Andrea Prevete Funzioni in due variabili Raccolta di FAQ by Andrea Prevete 1) Cosa intendiamo, esattamente, quando parliamo di funzione reale di due variabili reali? Quando esiste una relazione fra tre variabili reali

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

SVILUPPO DI UN SISTEMA DI SORVEGLIANZA MEDIANTE ROBOT MOBILI.

SVILUPPO DI UN SISTEMA DI SORVEGLIANZA MEDIANTE ROBOT MOBILI. SVILUPPO DI UN SISTEMA DI SORVEGLIANZA MEDIANTE ROBOT MOBILI. 1. ABSTRACT In questo progetto si intende costruire un sistema di sorveglianza mediante l uso di robot mobili. L idea base è quella di usare

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

Trattamento degli errori

Trattamento degli errori Corso di Laurea Magistrale in Ingegneria Informatica A.A. 2011-2012 Linguaggi Formali e Compilatori Trattamento degli errori Giacomo PISCITELLI Trattamento degli errori Comunemente gli errori di programmazione

Dettagli

Introduzione alla teoria dello scheduling

Introduzione alla teoria dello scheduling 1. Generalità I problemi di scheduling riguardano l allocazione di risorse limitate ad attività nel tempo. In generale il processo di decisione associato richiede la determinazione dell ordine in cui l

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Il concetto di Algoritmo e di Calcolatore Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Cos

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

3. SOFTWARE MANAGEMENT

3. SOFTWARE MANAGEMENT 3. SOFTWARE MANAGEMENT Introdurre caratteristiche e problematiche della direzione di progetto software (software management) Discutere la pianificazione di un progetto e la temporizzazione (scheduling)

Dettagli

Tecniche di DM: Link analysis e Association discovery

Tecniche di DM: Link analysis e Association discovery Tecniche di DM: Link analysis e Association discovery Vincenzo Antonio Manganaro vincenzomang@virgilio.it, www.statistica.too.it Indice 1 Architettura di un generico algoritmo di DM. 2 2 Regole di associazione:

Dettagli

Contenuto e scopo presentazione. Vehicle Scheduling. Motivazioni VSP

Contenuto e scopo presentazione. Vehicle Scheduling. Motivazioni VSP Contenuto e scopo presentazione Vehicle Scheduling 08/03/2005 18.00 Contenuto vengono introdotti modelli e metodi per problemi di Vehicle Scheduling Problem (VSP) Scopo fornire strumenti di supporto alle

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

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 2 Dispensa 12 ADT: Lista, Pila, Coda A. Miola Marzo 2008 http://www.dia.uniroma3.it/~java/fondinf2/ ADT: Lista, Pila, Coda 1 Contenuti!Tipo

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

Caso e probabilità. Il caso. Il caso. Scommesse e probabilità Fenomeni aleatori Probabilità

Caso e probabilità. Il caso. Il caso. Scommesse e probabilità Fenomeni aleatori Probabilità Introduzione Il caso Il caso commesse e probabilità Il caso i chiama evento casuale quello che si verifica in una situazione in cui gli eventi possibili sono più d uno, ma non si sa a priori quale si verificherà.

Dettagli

Basi di Dati prof. A. Longheu. 5 Progettazione fisica

Basi di Dati prof. A. Longheu. 5 Progettazione fisica Basi di Dati prof. A. Longheu 5 Progettazione fisica Progettazione Fisica Per effettuare la progettazione fisica, ossia l implementazione reale del modello logico creato nella fase della progettazione

Dettagli

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza

Sono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di

Dettagli

INGEGNERIA DEL SOFTWARE

INGEGNERIA DEL SOFTWARE INGEGNERIA DEL SOFTWARE DESIGN Avvertenza: gli appunti si basano sul corso di Ingegneria del Software tenuto dal prof. Picco della facoltà di Ingegneria del Politecnico di Milano (che ringrazio per aver

Dettagli

Sistemi di Controllo Real Time

Sistemi di Controllo Real Time Sistemi di Controllo Real Time Automazione 13/10/2015 Vincenzo Suraci STRUTTURA DEL NUCLEO TEMATICO SISTEMI REAL TIME CLASSIFICAZIONE DEI SISTEMI REAL TIME PARALLELISMO E PROGRAMMAZIONE CONCORRENTE SISTEMI

Dettagli

Tipi astratti di dato e loro realizzazione in Java

Tipi astratti di dato e loro realizzazione in Java Unità 13 Tipi astratti di dato e loro realizzazione in Java Sommario Tipo astratto di dato Specifica di tipi astratti Astrazione di valori e astrazione di entità Realizzazione di tipi astratti in Java

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

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza:

70555 Informatica 3 70777 Sicurezza 2. 70555 Mario Rossi 70777 Anna Bianchi. Esempio istanza: DOMANDE 1) Definire i concetti di schema e istanza di una base di dati, fornendo anche un esempio. Si definisce schema di una base di dati, quella parte della base di dati stessa che resta sostanzialmente

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

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.

Semantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue

Dettagli

Le tecniche di scheduling (1)

Le tecniche di scheduling (1) Le tecniche di scheduling (1) Sono la base di tutto il processo di pianificazione, e fornisco al management gli elementi per decidere come utilizzare le risorse per raggiungere gli obiettivi di costo e

Dettagli

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

Livello di Rete. Prof. Filippo Lanubile. Obiettivo Livello di Rete Circuiti virtuali e datagram La funzione di instradamento Costruzione della tabella di routing Algoritmi di routing adattivi: distance vector routing e link-state routing Routing gerarchico

Dettagli

Progettaz. e sviluppo Data Base

Progettaz. e sviluppo Data Base Progettaz. e sviluppo Data Base! Introduzione ai Database! Tipologie di DB (gerarchici, reticolari, relazionali, oodb) Introduzione ai database Cos è un Database Cos e un Data Base Management System (DBMS)

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

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata

1 introdurre le monete per l importo necessario. 2 selezionare la quantità di zucchero. 3 selezionare la bevanda desiderata Esempi di Problema: Prendere un Caffè al Distributore Università degli Studi di Udine Facoltà di Ingegneria CORSO DI LAUREA IN SCIENZE dell ARCHITETTURA Elementi di Informatica, e Programmi D. Gubiani

Dettagli

Gestione dei Progetti (2005-2006)

Gestione dei Progetti (2005-2006) Gestione dei Progetti (2005-2006) Alessandro Agnetis DII Università di Siena (Alcune delle illustrazioni contenute nella presentazione sono tratte da PMBOK, a guide to the Project Management Body of Knowledge,

Dettagli

Reti sequenziali e strutturazione firmware

Reti sequenziali e strutturazione firmware Architettura degli Elaboratori, a.a. 25-6 Reti sequenziali e strutturazione firmware Alla parte di corso sulle reti sequenziali è apportata una sensibile semplificazione rispetto a quanto contenuto nel

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione 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

Dettagli

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE Andrea Bobbio Anno Accademico 2000-2001 Algebra Booleana 2 Calcolatore come rete logica Il calcolatore può essere visto come una rete logica

Dettagli

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione Normalizzazione Normalizzazione Introduzione Forma normale di Boyce Codd Decomposizione in forma normale Normalizzazione Introduzione La normalizzazione è un procedimento che, a partire da uno schema relazionale

Dettagli

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure

Esempi di errori/difetti. algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure COLLAUDO Esempi di errori/difetti algoritmi sintassi calcolo e precisione documento stress capacità ricovery sistema hardware e software standard e procedure Verifica e Validazione Validazione Requisiti

Dettagli

Dall italiano alla logica proposizionale

Dall italiano alla logica proposizionale Rappresentare l italiano in LP Dall italiano alla logica proposizionale Sandro Zucchi 2009-10 In questa lezione, vediamo come fare uso del linguaggio LP per rappresentare frasi dell italiano. Questo ci

Dettagli

Introduzione ai Sistemi Esperti. Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56126 PISA

Introduzione ai Sistemi Esperti. Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56126 PISA Introduzione ai Sistemi Esperti Prof. Beatrice Lazzerini Dipartimento di Ingegneria della Informazione Via Diotisalvi, 2 56126 PISA SISTEMI ESPERTI ARCHITETTURA TIPICA DI UN SE Un sistema esperto (SE)

Dettagli

02: Project Management

02: Project Management 02: Project Management Le tre P del project management Persone motivate / esperte SEI PM-CMM (People Management Capability Maturity Model) assunzione / selezione addestramento / cultura di gruppo stipendio

Dettagli

Linguaggi Elementari

Linguaggi Elementari Linguaggi Elementari Marzo 2007 In questi appunti verranno introdotte le conoscenze essenziali relative ai linguaggi del primo ordine e alla loro semantica. Verrà anche spiegato come preprocessare un problema

Dettagli

Ingegneria dei Requisiti

Ingegneria dei Requisiti Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Ingegneria dei Requisiti E. TINELLI Contenuti I requisiti del software Documento dei requisiti I processi

Dettagli

LA KB delle logiche descrittive. Che tipo di ragionamenti? Problemi decisionali per DL. Sussunzione. Soddisfacilità di concetti (CS)

LA KB delle logiche descrittive. Che tipo di ragionamenti? Problemi decisionali per DL. Sussunzione. Soddisfacilità di concetti (CS) Ragionamento nelle logiche descrittive M. Simi, 2014-2015 LA KB delle logiche descrittive K = (T, A) T (T-BOX), componente terminologica A (A-BOX), componente asserzionale Una interpretazione I soddisfa

Dettagli

Getting started. Creare una applicazione in Modbus Rtu con moduli IOlog SS3000

Getting started. Creare una applicazione in Modbus Rtu con moduli IOlog SS3000 Getting started Creare una applicazione in Modbus Rtu con moduli IOlog SS3000 Revisioni del documento Data Edizione Commenti 22/06/2010 1.0 - Sielco Sistemi srl via Roma, 24 I-22070 Guanzate (CO) http://www.sielcosistemi.com

Dettagli

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira

FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira FONDAMENTI di INFORMATICA Prof. Lorenzo Mezzalira Appunti del corso 1 Introduzione all informatica: algoritmi, linguaggi e programmi Indice 1. Introduzione 2. Risoluzione automatica di problemi - Algoritmi

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 18 marzo 2011 Problema basato su 10.5 del libro di testo La CINA (Compagnia Italiana per il Noleggio di Automobili) dispone di

Dettagli

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini

Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini Introduzione all utilizzo di Visual Basic for Application Utilizzo del linguaggio Basic utilizzando l interfaccia di Excel Silvia Patacchini PROGRAMMAZIONE Insieme delle attività da svolgersi per creare

Dettagli

Variabili e tipi di dato

Variabili e tipi di dato Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per

Dettagli

Gli algoritmi: definizioni e proprietà

Gli algoritmi: definizioni e proprietà Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da

Dettagli

Schedulazione di attività in presenza di attività interrompibili

Schedulazione di attività in presenza di attività interrompibili Schedulazione di attività in presenza di attività interrompibili Maria Silvia Pini Resp. accademico: Prof.ssa Francesca Rossi Università di Padova Attività FSE DGR 1102/2010 La gestione dell informazione

Dettagli

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard)

BOZZA. cin per la comunicazione dal dispositivo di input standard, la tastiera, al programma (stream di input standard) Capitolo 6 Input/output su file BOZZA 6.1 Stream e file L input/output in C ++, in particolare quello su file, avviene tramite stream. stream. Uno stream è un astrazione di un canale di comunicazione,

Dettagli

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame

Ingegneria del Software MINR. Esercitazione: esempi di esercizi di esame Ingegneria del Software MINR Esercitazione: esempi di esercizi di esame EserciziEsame.1 Struttura del compito 2/3 ore di tempo esercizi su Function point Test scatola nera Test scatola bianca Pianificazione

Dettagli

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima

Tecniche Reticolari. Problema: determinare l istante di inizio di ogni attività in modo che la durata complessiva del progetto sia minima Project Management Tecniche Reticolari Metodologie per risolvere problemi di pianificazione di progetti Progetto insieme di attività A i di durata d i, (=,...,n) insieme di relazioni di precedenza tra

Dettagli

La programmazione. Sviluppo del software

La programmazione. Sviluppo del software La programmazione problema Sviluppo del software idea (soluzione informale) algoritmo (soluzione formale) programma (traduzione dell algoritmo in una forma comprensibile da un elaboratore elettronico)

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 Introduzione Intelligenza Artificiale - CSP Tiziano Papini - 2011

Dettagli

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:!

I Valori del Manifesto Agile sono direttamente applicabili a Scrum:! Scrum descrizione I Principi di Scrum I Valori dal Manifesto Agile Scrum è il framework Agile più noto. E la sorgente di molte delle idee che si trovano oggi nei Principi e nei Valori del Manifesto Agile,

Dettagli

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota Attributi e domini Assumiamo un universo infinito numerabile U = {A 0, A 1, A 2...} di attributi. Denotiamo gli attributi con A, B, C, B 1, C 1... e gli insiemi di attributi con X, Y, Z, X 1,... per brevità

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

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto

Obiettivi della Lezione. Project Management. Software Project Management. Che cos è un progetto Project Management Dott. Andrea F. Abate e-mail: abate@unisa.it Web: http://www.dmi.unisa.it/people/abate Gestione di Progetti Software: Pianificazione delle attività e rappresentazioni grafiche Obiettivi

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

Evoluzioni di Ontologie in Frame Logic

Evoluzioni di Ontologie in Frame Logic Evoluzioni di Ontologie in Frame Logic Francesco Mele 1, Antonio Sorgente 1, Giuseppe Vettigli 1 1 C.N.R. Istituto di Cibernetica E. Caianiello, Via Campi Flegrei, 34 Pozzuoli, Naples, Italy. {f.mele,

Dettagli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture

Dettagli

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi Capitolo 6 - Alberi binari di ricerca Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Ingegneria del Software Testing. Corso di Ingegneria del Software Anno Accademico 2012/2013

Ingegneria del Software Testing. Corso di Ingegneria del Software Anno Accademico 2012/2013 Ingegneria del Software Testing Corso di Ingegneria del Software Anno Accademico 2012/2013 1 Definizione IEEE Software testing is the process of analyzing a software item to detect the differences between

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

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

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche

Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche Implementazione dei monitor tramite semafori Attesa condizionale Sincronizzazione nei sistemi operativi reali Transazioni atomiche 5.1 Implementazione dei monitor con i semafori Un monitor è un tipo di

Dettagli

È fatta male? Perché? Come si può correggere?

È fatta male? Perché? Come si può correggere? UNA TABELLA N Inv Stanza Resp Oggetto Produttore Descrizione 1012 256 Ghelli Mac Mini Apple Personal Comp 1015 312 Albano Dell XPS M1330 Dell Notebook 2 GHZ 1034 256 Ghelli Dell XPS M1330 Dell Notebook

Dettagli

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli Attività svolta 1. UNITÀ DI APPRENDIMENTO 1: RIPASSO E APPROFONDIMENTO DEGLI ARGOMENTI PRECEDENTI 1.1. Concetti elementari di informatica Algoritmo, Dato, Informazione Campi di applicazione e classificazione

Dettagli