This section gives the input file used in example 1 of chapter 4.
/****************************************/
/* experiment configuration */
/****************************************/
/* use sampling? */
/* sampling(on,50,50). */
/* sampling(off,10,1000). */
/***********************************/
/* belief model for the blue agent */
/***********************************/
belief_model(blue_agent,[ A,
nesting_level(2,B),
nesting_level(3,C),
nesting_level(4,B),
nesting_level(5,C),
nesting_level(6,B),
nesting_level(7,C),
nesting_level(8,B),
nesting_level(9,C),
nesting_level(10,B),
nesting_level(11,C)
]) :-
belief_model(blue_agent_basis,
[A,
nesting_level(2,B),
nesting_level(3,C)
]
).
belief_model(
blue_agent_basis,
[
nesting_level(
1,
[
p(decomp(fix-car,
[ask-car-spanner,lend-car-spanner,
use-car-spanner]),1),
p(decomp(ask-car-spanner,
[ask-ambiguous]),1),
p(decomp(ask-car-spanner,
[ask-car-unambiguous]),1),
p(decomp(fix-bike,
[ask-bike-spanner,lend-bike-spanner,
use-bike-spanner]),1),
p(decomp(ask-bike-spanner,
[ask-ambiguous]),1),
p(decomp(ask-bike-spanner,[ask-bike-unambiguous]),1),
p(intend(fix-car,
[ask-car-spanner]),1),
p(intend(ask-car-spanner,
[ask-ambiguous]),1),
p(intend(ask-car-spanner,
[ask-car-unambiguous]),1),
p(intend(fix-bike,
[ask-bike-spanner]),1),
p(intend(ask-bike-spanner,
[ask-ambiguous]),0),
p(intend(ask-bike-spanner,
[ask-bike-unambiguous]),1)
]
),
nesting_level(
2,
[
p(decomp(fix-car,
[ask-car-spanner,lend-car-spanner,
use-car-spanner]),1),
p(decomp(ask-car-spanner,
[ask-ambiguous]),1),
p(decomp(ask-car-spanner,
[ask-car-unambiguous]),1),
p(decomp(fix-bike,
[ask-bike-spanner,lend-bike-spanner,
use-bike-spanner]),1),
p(decomp(ask-bike-spanner,
[ask-ambiguous]),1),
p(decomp(ask-bike-spanner,
[ask-bike-unambiguous]),1),
p(intend(fix-car,
[ask-car-spanner]),1),
p(intend(ask-car-spanner,
[ask-ambiguous]),0.5),
p(intend(ask-car-spanner,
[ask-car-unambiguous]),1),
p(intend(fix-bike,
[ask-bike-spanner]),1),
p(intend(ask-bike-spanner,
[ask-ambiguous]),0.5),
p(intend(ask-bike-spanner,
[ask-bike-unambiguous]),1)
]
),
nesting_level(
3,
[
p(decomp(fix-car,
[ask-car-spanner,lend-car-spanner,
use-car-spanner]),1),
p(decomp(ask-car-spanner,
[ask-ambiguous]),1),
p(decomp(ask-car-spanner,
[ask-car-unambiguous]),1),
p(decomp(fix-bike,
[ask-bike-spanner,lend-bike-spanner,
use-bike-spanner]),1),
p(decomp(ask-bike-spanner,
[ask-ambiguous]),1),
p(decomp(ask-bike-spanner,
[ask-bike-unambiguous]),1),
p(intend(fix-car,
[ask-car-spanner]),1),
p(intend(ask-car-spanner,
[ask-ambiguous]),0.5),
p(intend(ask-car-spanner,
[ask-car-unambiguous]),1),
p(intend(fix-bike,
[ask-bike-spanner]),1),
p(intend(ask-bike-spanner,
[ask-ambiguous]),0.5),
p(intend(ask-bike-spanner,
[ask-bike-unambiguous]),1)
]
)
]
).
/************************************************/
/* cost model */
/************************************************/
/* nb all atoms have to have a utility */
utility(ask-ambiguous,-5).
utility(ask-car-unambiguous,-10).
utility(ask-bike-unambiguous,-10).
utility(lend-car-spanner,-10).
utility(lend-bike-spanner,-10).
utility(ask-clar,-3).
utility(answer-bike,-1).
utility(answer-car,-1).
utility(use-car-spanner,0).
utility(use-bike-spanner,0).
reward(Plan,100) :-
plan_contains(Plan,fix-car),
plan_contains(Plan,use-car-spanner), !.
reward(Plan,100) :-
plan_contains(Plan,fix-bike),
plan_contains(Plan,use-bike-spanner), !.
reward(Plan,80).
seed([alternative(plan(ask-car-spanner,
[plan(ask-ambiguous,[])]),
ask-ambiguous,
null
),
alternative(plan(ask-car-spanner,
[plan(ask-car-unambiguous,[])]),
ask-car-unambiguous,
null
)
]).