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. 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

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

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

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

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

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

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

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

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

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

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Prolog: aritmetica e ricorsione

Prolog: aritmetica e ricorsione Capitolo 13 Prolog: aritmetica e ricorsione Slide: Aritmetica e ricorsione 13.1 Operatori aritmetici In logica non vi è alcun meccanismo per la valutazione di funzioni, che è fondamentale in un linguaggio

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

Che cosa abbiamo fatto fin ora. Perché? Agente basato su conoscenza. Introduzione alla rappresentazione della conoscenza

Che cosa abbiamo fatto fin ora. Perché? Agente basato su conoscenza. Introduzione alla rappresentazione della conoscenza Che cosa abbiamo fatto fin ora Introduzione alla rappresentazione della conoscenza ovvero Come costruire agenti basati su conoscenza e dotati di capacità di ragionamento Maria Simi, 2014/2015 Abbiamo trattato:

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

Algebra di Boole ed Elementi di Logica

Algebra di Boole ed Elementi di Logica Algebra di Boole ed Elementi di Logica 53 Cenni all algebra di Boole L algebra di Boole (inventata da G. Boole, britannico, seconda metà 8), o algebra della logica, si basa su operazioni logiche Le operazioni

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

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

LIVELLO STRATEGICO E TATTICO

LIVELLO STRATEGICO E TATTICO Corso di Laurea Triennale in INGEGNERIA GESTIONALE Anno Accademico 2012/13 Prof. Davide GIGLIO 1 ESEMPI DI PROBLEMI DECISIONALI LIVELLO STRATEGICO Capacity growth planning LIVELLO TATTICO Aggregate planning

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

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata

Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Esercizio di Sincronizzazione tra Processi: Ponte a Senso Unico Alternato con Capacità Limitata Supponiamo sempre di avere un ponte stretto che permette il passaggio delle auto solo in un verso per volta,

Dettagli

Ambienti di sviluppo integrato

Ambienti di sviluppo integrato Ambienti di sviluppo integrato Un ambiente di sviluppo integrato (IDE - Integrated Development Environment) è un ambiente software che assiste i programmatori nello sviluppo di programmi Esso è normalmente

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Esercizi sull Association Analysis

Esercizi sull Association Analysis Data Mining: Esercizi sull Association Analysis 1 Esercizi sull Association Analysis 1. Si consideri il mining di association rule da un dataset T di transazioni, rispetto a delle soglie minsup e minconf.

Dettagli

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme G Pareschi Principio di induzione Il Principio di Induzione (che dovreste anche avere incontrato nel Corso di Analisi I) consente di dimostrare Proposizioni il cui enunciato è in funzione di un numero

Dettagli

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo

Dispense di Informatica Anno Scolastico 2008/2009 Classe 3APS. Dal Problema all'algoritmo stituto Tecnico Statale Commerciale Dante Alighieri Cerignola (FG) Dispense di nformatica Anno Scolastico 2008/2009 Classe 3APS Dal Problema all'algoritmo Pr.: 001 Ver.:1.0 Autore: prof. Michele Salvemini

Dettagli

Dall italiano al linguaggio della logica proposizionale

Dall italiano al linguaggio della logica proposizionale Dall italiano al linguaggio della logica proposizionale Dall italiano al linguaggio della logica proposizionale Enunciati atomici e congiunzione In questa lezione e nelle successive, vedremo come fare

Dettagli

Il calcolo dei predicati per R.C. Agenti logici: la logica del prim ordine. Esempio: il mondo dei blocchi. Concettualizzazione

Il calcolo dei predicati per R.C. Agenti logici: la logica del prim ordine. Esempio: il mondo dei blocchi. Concettualizzazione Il calcolo dei predicati per R.C. Agenti logici: la logica del prim ordine Sintassi, semantica, inferenza Maria Simi a.a. 2014-2015 Nella logica dei predicati abbiamo assunzioni ontologiche più ricche:

Dettagli

LA PROGETTAZIONE Come fare un progetto. LA PROGETTAZIONE Come fare un progetto

LA PROGETTAZIONE Come fare un progetto. LA PROGETTAZIONE Come fare un progetto LA PROGETTAZIONE 1 LA PROGETTAZIONE Oggi il raggiungimento di un obiettivo passa per la predisposizione di un progetto. Dal mercato al terzo settore passando per lo Stato: aziende, imprese, organizzazioni,

Dettagli

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014

Processi di business sovra-regionali relativi ai sistemi regionali di FSE. Versione 1.0 24 Giugno 2014 Processi di business sovra-regionali relativi ai sistemi regionali di FSE Versione 1.0 24 Giugno 2014 1 Indice Indice... 2 Indice delle figure... 3 Indice delle tabelle... 4 Obiettivi del documento...

Dettagli

(anno accademico 2008-09)

(anno accademico 2008-09) Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato

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

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.

Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof. Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record

Dettagli

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE

DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione

Dettagli

MINIMI QUADRATI. REGRESSIONE LINEARE

MINIMI QUADRATI. REGRESSIONE LINEARE MINIMI QUADRATI. REGRESSIONE LINEARE Se il coefficiente di correlazione r è prossimo a 1 o a -1 e se il diagramma di dispersione suggerisce una relazione di tipo lineare, ha senso determinare l equazione

Dettagli

Descrizioni VHDL Behavioral

Descrizioni VHDL Behavioral 1 Descrizioni VHDL Behavioral In questo capitolo vedremo come la struttura di un sistema digitale è descritto in VHDL utilizzando descrizioni di tipo comportamentale. Outline: process wait statements,

Dettagli

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa

Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa di Ilaria Lorenzo e Alessandra Palma Cos'é Code::Blocks? Come Creare un progetto Come eseguire un programma Risoluzione problemi istallazione Code::Blocks Che cos è il Debug e come si usa Code::Blocks

Dettagli

Integrated Development Environment (IDE) DevC++ 4.9.9.2

Integrated Development Environment (IDE) DevC++ 4.9.9.2 Integrated Development Environment (IDE) DevC++ 4.9.9.2 Manuale utente Data ultima revisione: 22/10/2008 Fondamenti di informatica Università Facoltà Corso di laurea Politecnico di Bari 1 a Facoltà di

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

IL PROBLEMA DELLO SHORTEST SPANNING TREE

IL PROBLEMA DELLO SHORTEST SPANNING TREE IL PROBLEMA DELLO SHORTEST SPANNING TREE n. 1 - Formulazione del problema Consideriamo il seguente problema: Abbiamo un certo numero di città a cui deve essere fornito un servizio, quale può essere l energia

Dettagli

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Introduzione Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Il problema del massimo flusso è uno dei fondamentali problemi nell ottimizzazione su rete. Esso è presente

Dettagli

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni.

Albero semantico. Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. Albero semantico Albero che mette in corrispondenza ogni formula con tutte le sue possibili interpretazioni. A differenza dell albero sintattico (che analizza la formula da un punto di vista puramente

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore

Cicli in Visual Basic for Application. For contatore = inizio To fine istruzioni Next contatore Cicli in Visual Basic for Application Le strutture del programma che ripetono l'esecuzione di una o più istruzioni sono chiamate Cicli. Alcune strutture per i cicli sono costruite in modo da venire eseguite

Dettagli

Percorsi di matematica per il ripasso e il recupero

Percorsi di matematica per il ripasso e il recupero Giacomo Pagina Giovanna Patri Percorsi di matematica per il ripasso e il recupero 1 per la Scuola secondaria di secondo grado UNITÀ CMPIONE Edizioni del Quadrifoglio à t i n U 1 Insiemi La teoria degli

Dettagli

Principal Component Analysis (PCA)

Principal Component Analysis (PCA) Principal Component Analysis (PCA) Come evidenziare l informazione contenuta nei dati S. Marsili-Libelli: Calibrazione di Modelli Dinamici pag. Perche PCA? E un semplice metodo non-parametrico per estrarre

Dettagli

10. Insiemi non misurabili secondo Lebesgue.

10. Insiemi non misurabili secondo Lebesgue. 10. Insiemi non misurabili secondo Lebesgue. Lo scopo principale di questo capitolo è quello di far vedere che esistono sottoinsiemi di R h che non sono misurabili secondo Lebesgue. La costruzione di insiemi

Dettagli

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1

Dipartimento di Sistemi e Informatica Università degli Studi di Firenze. Dev-C++ Ing. Michele Banci 27/03/2007 1 Dipartimento di Sistemi e Informatica Università degli Studi di Firenze Dev-C++ Ing. Michele Banci 27/03/2007 1 Utilizzare Dev-C++ Tutti i programmi che seranno realizzati richiedono progetti separati

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

su web che riportano documentazione e software dedicati agli argomenti trattati nel libro, riportandone, alla fine dei rispettivi capitoli, gli

su web che riportano documentazione e software dedicati agli argomenti trattati nel libro, riportandone, alla fine dei rispettivi capitoli, gli Prefazione Non è facile definire che cosa è un problema inverso anche se, ogni giorno, facciamo delle operazioni mentali che sono dei metodi inversi: riconoscere i luoghi che attraversiamo quando andiamo

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

Non-monotonic reasoning

Non-monotonic reasoning Logica classica Non-monotonic reasoning modella alcuni aspetti del modo di ragionare umano ma richiede conoscenza completa conoscenza consistente conoscenza fissa che non varia nel tempo Ragionamento in

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

ALGEBRA I: CARDINALITÀ DI INSIEMI

ALGEBRA I: CARDINALITÀ DI INSIEMI ALGEBRA I: CARDINALITÀ DI INSIEMI 1. CONFRONTO DI CARDINALITÀ E chiaro a tutti che esistono insiemi finiti cioè con un numero finito di elementi) ed insiemi infiniti. E anche chiaro che ogni insieme infinito

Dettagli

Dispense del Corso di Algoritmi e Strutture Dati

Dispense del Corso di Algoritmi e Strutture Dati Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo Edoardo Bontà Università degli Studi di Urbino Carlo Bo Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Applicata Versione

Dettagli

CMMI-Dev V1.3. Capability Maturity Model Integration for Software Development, Version 1.3. Roma, 2012 Ercole Colonese

CMMI-Dev V1.3. Capability Maturity Model Integration for Software Development, Version 1.3. Roma, 2012 Ercole Colonese CMMI-Dev V1.3 Capability Maturity Model Integration for Software Development, Version 1.3 Roma, 2012 Agenda Che cos è il CMMI Costellazione di modelli Approccio staged e continuous Aree di processo Goals

Dettagli

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02

INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 INSTALLAZIONE E UTILIZZO DEL COMPILATORE Code::Blocks 8.02 Download Si può scaricare gratuitamente la versione per il proprio sistema operativo (Windows, MacOS, Linux) dal sito: http://www.codeblocks.org

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

STRUTTURE (O COSTRUTTI) DI CONTROLLO

STRUTTURE (O COSTRUTTI) DI CONTROLLO Le strutture di controllo Le strutture di controllo STRUTTURE (O COSTRUTTI) DI CONTROLLO determinano l ordine con cui devono essere eseguite le istruzioni sono indipendenti dalla natura delle istruzioni

Dettagli

Decomposizioni di uno schema, Decomposizioni che preservano i dati (loss-less joins) Prof.ssa Rosalba Giugno

Decomposizioni di uno schema, Decomposizioni che preservano i dati (loss-less joins) Prof.ssa Rosalba Giugno Decomposizioni di uno schema, Decomposizioni che preservano i dati (loss-less joins) Prof.ssa Rosalba Giugno Decomposizione di uno schema Dato uno schema relazionale R={A1,A2, An} una sua decomposizione

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultimo Aggiornamento: 25 giugno 2014 Copyright Copyright 2012, 2013, 2014 Moreno Marzolla. Quest'opera è stata rilasciata

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Introduzione alla Programmazione ad Oggetti in C++

Introduzione alla Programmazione ad Oggetti in C++ Introduzione alla Programmazione ad Oggetti in C++ Lezione 1 Cosa è la Programmazione Orientata agli Oggetti Metodologia per costruire prodotti software di grosse dimensioni che siano affidabili e facilmente

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

Business Process Reengineering

Business Process Reengineering Business Process Reengineering AMMISSIONE ALL'ESAME DI LAUREA Barbagallo Valerio Da Lozzo Giordano Mellini Giampiero Introduzione L'oggetto di questo lavoro riguarda la procedura di iscrizione all'esame

Dettagli

Le funzionalità di un DBMS

Le funzionalità di un DBMS Le funzionalità di un DBMS Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: DBMS.pdf Sistemi Informativi L-A DBMS: principali funzionalità Le

Dettagli

Linguaggi del I ordine - semantica. Per dare significato ad una formula del I ordine bisogna specificare

Linguaggi del I ordine - semantica. Per dare significato ad una formula del I ordine bisogna specificare Linguaggi del I ordine - semantica Per dare significato ad una formula del I ordine bisogna specificare Un dominio Un interpretazione Un assegnamento 1 Linguaggi del I ordine - semantica (ctnd.1) Un modello

Dettagli

Lezione 20: Strutture di controllo di robot. avanzati

Lezione 20: Strutture di controllo di robot. avanzati Robotica Mobile Lezione 20: Strutture di controllo di robot Come costruire un architettura BARCS L architettura BARCS Behavioural Architecture Robot Control System Strategie Strategie Obiettivi Obiettivi

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

CALCOLATORI ELETTRONICI 29 giugno 2010

CALCOLATORI ELETTRONICI 29 giugno 2010 CALCOLATORI ELETTRONICI 29 giugno 2010 NOME: COGNOME: MATR: Scrivere chiaramente in caratteri maiuscoli a stampa 1. Si disegni lo schema di un flip-flop master-slave S-R sensibile ai fronti di salita e

Dettagli

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso

Integrare le MFC con Irrlicht. Sezione 1: Creazione del progetto. by Raffaele White tiger Mancuso Integrare le MFC con Irrlicht by Raffaele White tiger Mancuso In questo topic spiegherò come integrare irrlicht in un documento singolo MFC *(1). Io ho usato il visual c++ 6 ma la procedura dovrebbe essere

Dettagli

Rappresentazione dei numeri in un calcolatore

Rappresentazione dei numeri in un calcolatore Corso di Calcolatori Elettronici I A.A. 2010-2011 Rappresentazione dei numeri in un calcolatore Lezione 2 Università degli Studi di Napoli Federico II Facoltà di Ingegneria Rappresentazione dei numeri

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Gestione dinamica di una pila

Gestione dinamica di una pila Gestione dinamica di una pila Una pila o stack è una lista lineare a lunghezza variabile in cui inserimenti (push) ed estrazioni (pop) vengono effettuate ad un solo estremo, detto testa (top) della pila.

Dettagli

Stefano Bonetti Framework per la valutazione progressiva di interrogazioni di localizzazione

Stefano Bonetti Framework per la valutazione progressiva di interrogazioni di localizzazione Analisi del dominio: i sistemi per la localizzazione Definizione e implementazione del framework e risultati sperimentali e sviluppi futuri Tecniche di localizzazione Triangolazione Analisi della scena

Dettagli

Classi ed Oggetti in JAVA

Classi ed Oggetti in JAVA Classi ed Oggetti in JAVA Dott. Ing. Leonardo Rigutini Dipartimento Ingegneria dell Informazione Università di Siena Via Roma 56 53100 SIENA Uff. 0577233606 rigutini@dii.unisi.it www.dii.unisi.it/~rigutini/

Dettagli

Process mining & Optimization Un approccio matematico al problema

Process mining & Optimization Un approccio matematico al problema Res User Meeting 2014 con la partecipazione di Scriviamo insieme il futuro Paolo Ferrandi Responsabile Tecnico Research for Enterprise Systems Federico Bonelli Engineer Process mining & Optimization Un

Dettagli

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma

Dev C++ Prerequisiti. Note di utilizzo. Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma Dev C++ Note di utilizzo 1 Prerequisiti Utilizzo di Windows Effettuare il download da Internet Compilazione di un programma 2 1 Introduzione Lo scopo di queste note è quello di diffondere la conoscenza

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi su lineare indipendenza e generatori Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v

Dettagli

Sistemi Operativi Sincronizzazione tra Processi

Sistemi Operativi Sincronizzazione tra Processi Sistemi Operativi Processi Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega 1 Processi indipendenti possono avanzare concorrentemente senza alcun vincolo

Dettagli

EQUAZIONI non LINEARI

EQUAZIONI non LINEARI EQUAZIONI non LINEARI Francesca Pelosi Dipartimento di Matematica, Università di Roma Tor Vergata CALCOLO NUMERICO e PROGRAMMAZIONE http://www.mat.uniroma2.it/ pelosi/ EQUAZIONI non LINEARI p.1/44 EQUAZIONI

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

APPLICAZIONI SU PIU FILE

APPLICAZIONI SU PIU FILE APPLICAZIONI SU PIU FILE Serve poter sviluppare applicazioni su piú file: - alcune funzioni e alcune definizioni di dati in un file - altre funzioni e dati in file diversi Perché?? 1. Se il programma è

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI

PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers

PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers PROCEDURA DI INSTALLAZIONE DI MYSQL E VolT per utenti Visual Trader e InteractiveBrokers La procedura di installazione è divisa in tre parti : Installazione dell archivio MySql, sul quale vengono salvati

Dettagli

Didattica della matematica a.a. 2009-2010 IL LINGUAGGIO DEL PROBLEM SOLVING

Didattica della matematica a.a. 2009-2010 IL LINGUAGGIO DEL PROBLEM SOLVING Didattica della matematica a.a. 2009-2010 IL LINGUAGGIO DEL PROBLEM SOLVING IL PROBLEM SOLVING nella pratica didattica attività di soluzione di problemi Che cos è un problema? 3 Che cos è un problema?

Dettagli

Il compilatore Dev-C++

Il compilatore Dev-C++ Il compilatore Dev-C++ A cura del dott. Marco Cesati 1 Il compilatore Dev-C++ Compilatore per Windows: http://www.bloodshed.net/devcpp.html Installazione Configurazione Utilizzazione 2 1 Requisiti di sistema

Dettagli