First Principles Planning in BDI Systems
Sebastian Sardina
Department of Computer Science and Information Technology RMIT University, Melbourne, Australia
Joint work with Lavindra de Silva and Lin Padgham
1 / 25
First Principles Planning in BDI Systems Sebastian Sardina - - PowerPoint PPT Presentation
First Principles Planning in BDI Systems Sebastian Sardina Department of Computer Science and Information Technology RMIT University, Melbourne, Australia Joint work with Lavindra de Silva and Lin Padgham 1 / 25 Motivation The B elief, D
Department of Computer Science and Information Technology RMIT University, Melbourne, Australia
1 / 25
2 / 25
3 / 25
dynamic static Beliefs Pending Events Plan library Intentions Stacks
actions events
4 / 25
5 / 25
5 / 25
5 / 25
5 / 25
5 / 25
5 / 25
6 / 25
7 / 25
7 / 25
7 / 25
7 / 25
8 / 25
8 / 25
8 / 25
8 / 25
8 / 25
8 / 25
9 / 25
9 / 25
9 / 25
9 / 25
9 / 25
10 / 25
11 / 25
12 / 25
12 / 25
12 / 25
12 / 25
13 / 25
Travel(?src, ?dst) OR Walk GoodWeather ∧ ¬Far(?src, ?dst) Walk(?src, ?dst) TakeTaxi − → (¬GoodWeather ∨ Far(?src, ?dst)) ∧ HaveMoney(?src, ?dst) HailTaxi(?src) RideTaxi(?src, ?dst) PayDriver(?src, ?dst) Event-goal BDI plan Action
13 / 25
Travel(?src, ?dst) OR Walk GoodWeather ∧ ¬Far(?src, ?dst) Walk(?src, ?dst) TakeTaxi − → (¬GoodWeather ∨ Far(?src, ?dst)) ∧ HaveMoney(?src, ?dst) HailTaxi(?src) RideTaxi(?src, ?dst) PayDriver(?src, ?dst) Event-goal BDI plan Action
13 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
ExploreSoilLocation(?dst) P0 − → Navigate(?src, ?dst) P1 − → Calibrate Move(?src, ?dst) PerformSoilExperiment(?dst) P2 − → ObtainSoilResults(?dst) P3 − → PickSoilSample(?dst) AnalyseSoilSample(?dst) P4 − → GetMoistureContent(?dst)GetSoilParticleSize(?dst) DropSoilSample TransmitSoilResults(?dst) P5 − → EstablishConn SendResults(?dst) BreakConn Event-goal BDI plan Action
14 / 25
15 / 25
(A) Calibrate (B) Move(rock1, rock2)
(A) ObtainSoilResults(rock2) (i) PickSoilSample(rock2) (ii) AnalyseSoilSample(rock2) (a) GetMoistureContent(rock2) (b) GetSoilParticleSize(rock2) (iii) DropSoilSample (B) TransmitSoilResults(rock2) (i) EstablishConn (ii) SendResults(rock2) (iii) BreakConn
(A) Calibrate (B) Move(rock2, rock3)
(A) ObtainSoilResults(rock3) (i) PickSoilSample(rock3) (ii) AnalyseSoilSample(rock3) (a) GetMoistureContent(rock3) (b) GetSoilParticleSize(rock3) (iii) DropSoilSample (B) TransmitSoilResults(rock3) (i) EstablishConn (ii) SendResults(rock3) (iii) BreakConn
15 / 25
takes too long
(A) Calibrate (B) Move(rock1, rock2)
(A) ObtainSoilResults(rock2) (i) PickSoilSample(rock2) (ii) AnalyseSoilSample(rock2) (a) GetMoistureContent(rock2) (b) GetSoilParticleSize(rock2) (iii) DropSoilSample (B) TransmitSoilResults(rock2) (i) EstablishConn (ii) SendResults(rock2) (iii) BreakConn ⇐ redundant
(A) Calibrate (B) Move(rock2, rock3)
(A) ObtainSoilResults(rock3) (i) PickSoilSample(rock3) (ii) AnalyseSoilSample(rock3) (a) GetMoistureContent(rock3) (b) GetSoilParticleSize(rock3) (iii) DropSoilSample (B) TransmitSoilResults(rock3) (i) EstablishConn ⇐ redundant (ii) SendResults(rock3) (iii) BreakConn
15 / 25
takes too long
(A) Calibrate (B) Move(rock1, rock2)
(A) ObtainSoilResults(rock2) (i) PickSoilSample(rock2) (ii) AnalyseSoilSample(rock2) (a) GetMoistureContent(rock2) (b) GetSoilParticleSize(rock2) (iii) DropSoilSample (B) TransmitSoilResults(rock2) (i) EstablishConn (ii) SendResults(rock2) (iii) BreakConn ⇐ redundant
(A) Calibrate (B) Move(rock2, rock3)
(A) ObtainSoilResults(rock3) (i) PickSoilSample(rock3) (ii) AnalyseSoilSample(rock3) (a) GetMoistureContent(rock3) (b) GetSoilParticleSize(rock3) (iii) DropSoilSample (B) TransmitSoilResults(rock3) (i) EstablishConn ⇐ redundant (ii) SendResults(rock3) (iii) BreakConn
⇑ Non-redundant + maximally- abstract
15 / 25
16 / 25
16 / 25
17 / 25
17 / 25
17 / 25
17 / 25
17 / 25
17 / 25
17 / 25
17 / 25
17 / 25
18 / 25
18 / 25
18 / 25
18 / 25
19 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
e0 P0 − → e1 P1 a1 p q ∧ u e2 P2 − → e3 OR P3 a3 q r P4 − → a2 p q a3 q r e4 P5 a4 r s e5 P6 − → a5 s r a6 s t Event-goal BDI plan Action
20 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
1 Input: Hybrid-solution h; hybrid problem H; and
2 Output: A preferred specialization of h w.r.t. H
3 σ ⇐ leaf-level primitive solution in T . 4 σ′ ⇐ Get-Perfect-Justification(σ, H). 5 π ⇐ {ai | ai ∈ σ′} 6 for ℓ ⇐ 1 to height(T ) do
7 Return π
21 / 25
22 / 25
22 / 25
22 / 25
23 / 25
24 / 25
25 / 25