Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
B
BN_GenerativeModel
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Antonio Andriella
BN_GenerativeModel
Commits
84bfd6b3
Commit
84bfd6b3
authored
4 years ago
by
Antonio Andriella
Browse files
Options
Downloads
Patches
Plain Diff
Revert "Add query for more than 1 variable"
This reverts commit
4c7c0ed0
.
parent
4c7c0ed0
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
main.py
+70
-137
70 additions, 137 deletions
main.py
with
70 additions
and
137 deletions
main.py
+
70
−
137
View file @
84bfd6b3
...
@@ -82,11 +82,11 @@ def interpret_user_output(action_id):
...
@@ -82,11 +82,11 @@ def interpret_user_output(action_id):
return
user_action
,
user_react_time
return
user_action
,
user_react_time
def
simulation
(
user_bn_model
,
user_var
s
_target_action
,
user_memory_name
,
user_memory_value
,
user_attention_name
,
user_attention_value
,
def
simulation
(
user_bn_model
,
user_var_target_action
,
user_var_target_react_time
,
user_memory_name
,
user_memory_value
,
user_attention_name
,
user_attention_value
,
user_reactivity_name
,
user_reactivity_value
,
user_reactivity_name
,
user_reactivity_value
,
task_progress_name
,
game_attempt_name
,
robot_assistance_name
,
robot_feedback_name
,
task_progress_name
,
game_attempt_name
,
robot_assistance_name
,
robot_feedback_name
,
robot_bn_model
,
robot_var
s
_action
,
robot_bn_model
,
robot_var
_ass_action
,
robot_var_feedback
_action
,
other_user_bn_model
,
other_user_var
s
_target_action
,
other_user_memory_name
,
other_user_memory_value
,
other_user_bn_model
,
other_user_var_target_action
,
other_user_var_target_react_time
,
other_user_memory_name
,
other_user_memory_value
,
other_user_attention_name
,
other_user_attention_value
,
other_user_attention_name
,
other_user_attention_value
,
other_user_reactivity_name
,
other_user_reactivity_value
,
other_user_reactivity_name
,
other_user_reactivity_value
,
epochs
=
50
,
task_complexity
=
5
):
epochs
=
50
,
task_complexity
=
5
):
...
@@ -103,63 +103,22 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -103,63 +103,22 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
#metrics we need, in order to compute afterwords the belief
#metrics we need, in order to compute afterwords the belief
'''
'''
CPD for each attempt 1 to 4 store the number of
user_action (
correct, wrong and timeout
CPD
0:
for each attempt 1 to 4 store the number of correct, wrong and timeout
'''
'''
attempt_counter_per_action
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
attempt_counter_per_action
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
'''
CPD for each game_state 0 to 2 store the number
user_action (
correct, wrong and timeout
CPD
2:
for each game_state 0 to 2 store the number
of
correct, wrong and timeout
'''
'''
game_state_counter_per_action
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
game_state_counter_per_action
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
'''
CPD for each robot feedback store the number of
user_action (
correct, wrong and timeout
)
CPD
5:
for each robot feedback store the number of correct, wrong and timeout
'''
'''
robot_feedback_per_action
=
[[
0
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
robot_feedback_per_action
=
[[
0
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
'''
CPD for each robot assistance store the number of
user_action (correct, wrong and timeout
CPD
6:
for each robot assistance store the number of
pos and neg feedback
'''
'''
robot_assistance_per_action
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
robot_assistance_per_action
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
CPD for each attempt 1 to 4 store the number of user_react_time (slow, normal and fast)
'''
attempt_counter_per_react_time
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
CPD for each game_state 0 to 2 store the number user_react_time (slow, normal and fast)
'''
game_state_counter_per_react_time
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
CPD for each robot feedback store the number of user_react_time (slow, normal and fast)
'''
robot_feedback_per_react_time
=
[[
0
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
CPD for each robot assistance store the number of user_react_time (slow, normal and fast)
'''
robot_assistance_per_react_time
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
'''
CPD for each game_state 0 to 2 the number of robot assistance
'''
game_state_counter_per_robot_assistance
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
Robot_Assistance
.
counter
.
value
)]
'''
CPD for each game_state 0 to 2 the number of robot assistance
'''
game_state_counter_per_robot_feedback
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
Robot_Feedback
.
counter
.
value
)]
'''
CPD for each attempt 1 to 4 store the number of robot_feedback
'''
attempt_counter_per_robot_assistance
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
Robot_Assistance
.
counter
.
value
)]
'''
CPD for each attempt 1 to 4 store the number of robot_feedback
'''
attempt_counter_per_robot_feedback
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
Robot_Feedback
.
counter
.
value
)]
#these are the variables of the persona bn that are dynamic and will be affected from the game evolution
#these are the variables of the persona bn that are dynamic and will be affected from the game evolution
#TODO: it might be worth to integrate them as a param in the simulation function, only the name?
#TODO: it might be worth to integrate them as a param in the simulation function, only the name?
...
@@ -176,38 +135,29 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -176,38 +135,29 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
for
e
in
range
(
epochs
):
for
e
in
range
(
epochs
):
'''
Simulation framework
'''
'''
Simulation framework
'''
#counters
#counters
task_evolution
_counter
=
0
task_evolution
=
0
attempt_counter
=
0
attempt_counter
=
0
iter_counter
=
0
iter_counter
=
0
correct_move_counter
=
0
correct_move_counter
=
0
wrong_move_counter
=
0
wrong_move_counter
=
0
timeout_counter
=
0
timeout_counter
=
0
max_attempt_counter
=
0
max_attempt_counter
=
0
robot_assistance_action
_counter
=
0
selected_
robot_assistance_action
=
0
robot_feedback_action
_counter
=
0
selected_
robot_feedback_action
=
0
user_
action_
dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_action
,
user_dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_action
,
'
game_state
'
:
game_state_counter_per_action
,
'
game_state
'
:
game_state_counter_per_action
,
'
robot_assistance
'
:
robot_assistance_per_action
,
'
robot_assistance
'
:
robot_assistance_per_action
,
'
robot_feedback
'
:
robot_feedback_per_action
}
'
robot_feedback
'
:
robot_feedback_per_action
}
user_react_time_dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_react_time
,
robot_dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_action
,
'
game_state
'
:
game_state_counter_per_react_time
,
'
game_state
'
:
game_state_counter_per_action
}
'
robot_assistance
'
:
robot_assistance_per_react_time
,
'
robot_feedback
'
:
robot_feedback_per_react_time
}
robot_assistance_dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_robot_assistance
,
'
game_state
'
:
game_state_counter_per_robot_assistance
}
robot_feedback_dynamic_variables
=
{
'
attempt
'
:
attempt_counter_per_robot_feedback
,
while
(
task_evolution
<
task_complexity
):
'
game_state
'
:
game_state_counter_per_robot_feedback
}
while
(
task_evolution_counter
<
task_complexity
):
#if then else are necessary to classify the task game state into beg, mid, end
#if then else are necessary to classify the task game state into beg, mid, end
if
task_evolution
_counter
>=
0
and
task_evolution
_counter
<=
1
:
if
task_evolution
>=
0
and
task_evolution
<=
1
:
game_state_counter
=
0
game_state_counter
=
0
elif
task_evolution
_counter
>=
2
and
task_evolution
_counter
<=
3
:
elif
task_evolution
>=
2
and
task_evolution
<=
3
:
game_state_counter
=
1
game_state_counter
=
1
else
:
else
:
game_state_counter
=
2
game_state_counter
=
2
...
@@ -217,19 +167,18 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -217,19 +167,18 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
task_progress_name
:
game_state_counter
,
task_progress_name
:
game_state_counter
,
game_attempt_name
:
attempt_counter
,
game_attempt_name
:
attempt_counter
,
}
}
query_robot_a
ction
_prob
=
bn_functions
.
infer_prob_from_state
(
robot_bn_model
,
query_robot_a
ss
_prob
=
bn_functions
.
infer_prob_from_state
(
robot_bn_model
,
infer_variable
=
robot_vars_action
,
infer_variable
=
robot_var
_as
s_action
,
evidence_variables
=
robot_vars_evidence
)
evidence_variables
=
robot_vars_evidence
)
# query_robot_feedback_prob = bn_functions.infer_prob_from_state(robot_bn_model,
query_robot_feedback_prob
=
bn_functions
.
infer_prob_from_state
(
robot_bn_model
,
# infer_variable=robot_var_feedback_action,
infer_variable
=
robot_var_feedback_action
,
# evidence_variables=robot_vars_evidence)
evidence_variables
=
robot_vars_evidence
)
flatten_query_robot_prob
,
cols
,
rows
=
bn_functions
.
flat_action_probs
(
query_robot_action_prob
)
selected_robot_assistance_action
=
bn_functions
.
get_stochastic_action
(
query_robot_ass_prob
)
selected_robot_action
=
bn_functions
.
get_stochastic_action
(
flatten_query_robot_prob
)
selected_robot_feedback_action
=
bn_functions
.
get_stochastic_action
(
query_robot_feedback_prob
)
#remember to pass the name of the variables that give us the right order to process them
selected_robot_assistance_action
,
selected_robot_feedback_action
=
bn_functions
.
interpret_action_output
(
selected_robot_action
,
cols
,
rows
,
query_robot_action_prob
.
variables
)
n_assistance_lev_per_episode
[
selected_robot_assistance_action
][
e
]
+=
1
n_assistance_lev_per_episode
[
e
][
selected_robot_assistance_action
]
+=
1
n_feedback_per_episode
[
selected_robot_feedback_action
][
e
]
+=
1
n_feedback_per_episode
[
e
][
selected_robot_feedback_action
]
+=
1
print
(
"
robot_assistance {}, attempt {}, game {}, robot_feedback {}
"
.
format
(
selected_robot_assistance_action
,
attempt_counter
,
game_state_counter
,
selected_robot_feedback_action
))
print
(
"
robot_assistance {}, attempt {}, game {}, robot_feedback {}
"
.
format
(
selected_robot_assistance_action
,
attempt_counter
,
game_state_counter
,
selected_robot_feedback_action
))
#compare the real user with the estimated Persona and returns a user action (0, 1, 2)
#compare the real user with the estimated Persona and returns a user action (0, 1, 2)
...
@@ -243,13 +192,18 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -243,13 +192,18 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
robot_assistance_name
:
selected_robot_assistance_action
,
robot_assistance_name
:
selected_robot_assistance_action
,
robot_feedback_name
:
selected_robot_feedback_action
robot_feedback_name
:
selected_robot_feedback_action
}
}
query_user_action_prob
=
bn_functions
.
infer_prob_from_state
(
other_user_bn_model
,
query_user_action_prob
=
bn_functions
.
infer_prob_from_state
(
user_bn_model
,
infer_variable
=
other_user_vars_target_action
,
infer_variable
=
user_var_target_action
,
evidence_variables
=
other_user_vars_evidence
)
evidence_variables
=
user_vars_evidence
)
query_user_react_time_prob
=
bn_functions
.
infer_prob_from_state
(
user_bn_model
,
infer_variable
=
user_var_target_react_time
,
evidence_variables
=
user_vars_evidence
)
else
:
else
:
#return the user action in this state based on the Persona profile
#return the user action in this state based on the Persona profile
user_vars_evidence
=
{
user_attention_name
:
user_attention_value
,
user_vars_evidence
=
{
other_
user_attention_name
:
user_attention_value
,
user_reactivity_name
:
user_reactivity_value
,
user_reactivity_name
:
user_reactivity_value
,
user_memory_name
:
user_memory_value
,
user_memory_name
:
user_memory_value
,
task_progress_name
:
game_state_counter
,
task_progress_name
:
game_state_counter
,
...
@@ -258,41 +212,36 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -258,41 +212,36 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
robot_feedback_name
:
selected_robot_feedback_action
robot_feedback_name
:
selected_robot_feedback_action
}
}
query_user_action_prob
=
bn_functions
.
infer_prob_from_state
(
user_bn_model
,
query_user_action_prob
=
bn_functions
.
infer_prob_from_state
(
user_bn_model
,
infer_variable
=
user_vars_target_action
,
infer_variable
=
user_var_target_action
,
evidence_variables
=
user_vars_evidence
)
query_user_react_time_prob
=
bn_functions
.
infer_prob_from_state
(
user_bn_model
,
infer_variable
=
user_var_target_react_time
,
evidence_variables
=
user_vars_evidence
)
evidence_variables
=
user_vars_evidence
)
flatten_query_user_prob
,
cols
,
rows
=
bn_functions
.
flat_action_probs
(
query_user_action_prob
)
selected_user_action
=
bn_functions
.
get_stochastic_action
(
flatten_query_user_prob
)
# remember to pass the name of the variables that give us the right order to process them
#this is needed because we are querying the system with user_react_time and user_action output is 3x3
selected_user_movement
,
selected_user_react_time
=
bn_functions
.
interpret_action_output
(
selected_user_action
=
bn_functions
.
get_stochastic_action
(
query_user_action_prob
)
selected_user_action
,
cols
,
rows
,
query_user_action_prob
.
variables
)
selected_user_react_time
=
bn_functions
.
get_stochastic_action
(
query_user_react_time_prob
)
#updates counters for user model
#updates counters for user and robot model
robot_assistance_per_action
[
selected_user_movement
][
selected_robot_assistance_action
]
+=
1
robot_assistance_per_action
[
selected_user_action
][
selected_robot_assistance_action
]
+=
1
attempt_counter_per_action
[
selected_user_movement
][
attempt_counter
]
+=
1
attempt_counter_per_action
[
selected_user_action
][
attempt_counter
]
+=
1
game_state_counter_per_action
[
selected_user_movement
][
game_state_counter
]
+=
1
game_state_counter_per_action
[
selected_user_action
][
game_state_counter
]
+=
1
robot_feedback_per_action
[
selected_user_movement
][
selected_robot_feedback_action
]
+=
1
robot_feedback_per_action
[
selected_user_action
][
selected_robot_feedback_action
]
+=
1
robot_assistance_per_react_time
[
selected_user_react_time
][
selected_robot_assistance_action
]
+=
1
#TODO create the counters for the user_react_time variables
attempt_counter_per_react_time
[
selected_user_react_time
][
attempt_counter
]
+=
1
game_state_counter_per_react_time
[
selected_user_react_time
][
game_state_counter
]
+=
1
#updates counters for simulation
robot_feedback_per_react_time
[
selected_user_react_time
][
selected_robot_feedback_action
]
+=
1
game_state_counter_per_robot_assistance
[
selected_robot_assistance_action
][
game_state_counter
]
+=
1
attempt_counter_per_robot_assistance
[
selected_robot_assistance_action
][
attempt_counter
]
+=
1
game_state_counter_per_robot_feedback
[
selected_robot_feedback_action
][
game_state_counter
]
+=
1
attempt_counter_per_robot_feedback
[
selected_robot_feedback_action
][
attempt_counter
]
+=
1
#updates counters for simulation and compute the next state
iter_counter
+=
1
iter_counter
+=
1
task_evolution
_counter
,
attempt_counter
,
correct_move_counter
,
\
task_evolution
,
attempt_counter
,
correct_move_counter
,
\
wrong_move_counter
,
timeout_counter
,
max_attempt_counter
=
compute_next_state
(
selected_user_
movement
,
wrong_move_counter
,
timeout_counter
,
max_attempt_counter
=
compute_next_state
(
selected_user_
action
,
task_evolution
_counter
,
attempt_counter
,
task_evolution
,
attempt_counter
,
correct_move_counter
,
wrong_move_counter
,
correct_move_counter
,
wrong_move_counter
,
timeout_counter
,
max_attempt_counter
)
timeout_counter
,
max_attempt_counter
)
####################################END of EPISODE#######################################
####################################END of EPISODE#######################################
print
(
"
task_evolution {}, attempt_counter {}, timeout_counter {}
"
.
format
(
task_evolution
_counter
,
iter_counter
,
timeout_counter
))
print
(
"
task_evolution {}, attempt_counter {}, timeout_counter {}
"
.
format
(
task_evolution
,
iter_counter
,
timeout_counter
))
print
(
"
robot_assistance_per_action {}
"
.
format
(
robot_assistance_per_action
))
print
(
"
robot_assistance_per_action {}
"
.
format
(
robot_assistance_per_action
))
print
(
"
attempt_counter_per_action {}
"
.
format
(
attempt_counter_per_action
))
print
(
"
attempt_counter_per_action {}
"
.
format
(
attempt_counter_per_action
))
print
(
"
game_state_counter_per_action {}
"
.
format
(
game_state_counter_per_action
))
print
(
"
game_state_counter_per_action {}
"
.
format
(
game_state_counter_per_action
))
...
@@ -301,11 +250,9 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -301,11 +250,9 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
print
(
"
correct_move {}, wrong_move {}, timeout {}
"
.
format
(
correct_move_counter
,
wrong_move_counter
,
timeout_counter
))
print
(
"
correct_move {}, wrong_move {}, timeout {}
"
.
format
(
correct_move_counter
,
wrong_move_counter
,
timeout_counter
))
#update user model
#update user model
user_bn_model
=
bn_functions
.
update_cpds_tables
(
user_bn_model
,
user_action_dynamic_variables
)
user_bn_model
=
bn_functions
.
update_cpds_tables
(
user_bn_model
,
user_dynamic_variables
)
user_bn_model
=
bn_functions
.
update_cpds_tables
(
user_bn_model
,
user_react_time_dynamic_variables
)
#update robot model
#update robot model
robot_bn_model
=
bn_functions
.
update_cpds_tables
(
robot_bn_model
,
robot_assistance_dynamic_variables
)
robot_bn_model
=
bn_functions
.
update_cpds_tables
(
robot_bn_model
,
robot_dynamic_variables
)
robot_bn_model
=
bn_functions
.
update_cpds_tables
(
robot_bn_model
,
robot_feedback_dynamic_variables
)
#reset counter
#reset counter
robot_assistance_per_action
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
robot_assistance_per_action
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
...
@@ -317,24 +264,6 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -317,24 +264,6 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
attempt_counter_per_action
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
attempt_counter_per_action
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
range
(
User_Action
.
counter
.
value
)]
robot_assistance_per_react_time
=
[[
0
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
robot_feedback_per_react_time
=
[[
0
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
game_state_counter_per_react_time
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
attempt_counter_per_react_time
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
User_Action
.
counter
.
value
)]
game_state_counter_per_robot_assistance
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
Robot_Assistance
.
counter
.
value
)]
game_state_counter_per_robot_feedback
=
[[
0
for
i
in
range
(
Game_State
.
counter
.
value
)]
for
j
in
range
(
Robot_Feedback
.
counter
.
value
)]
attempt_counter_per_robot_assistance
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
Robot_Assistance
.
counter
.
value
)]
attempt_counter_per_robot_feedback
=
[[
0
for
i
in
range
(
Attempt
.
counter
.
value
)]
for
j
in
range
(
Robot_Feedback
.
counter
.
value
)]
#for plots
#for plots
n_correct_per_episode
[
e
]
=
correct_move_counter
n_correct_per_episode
[
e
]
=
correct_move_counter
n_wrong_per_episode
[
e
]
=
wrong_move_counter
n_wrong_per_episode
[
e
]
=
wrong_move_counter
...
@@ -361,7 +290,7 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
...
@@ -361,7 +290,7 @@ def simulation(user_bn_model, user_vars_target_action, user_memory_name, user_me
#SIMULATION PARAMS
#SIMULATION PARAMS
robot_assistance
=
[
i
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
robot_assistance
=
[
i
for
i
in
range
(
Robot_Assistance
.
counter
.
value
)]
robot_feedback
=
[
i
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
robot_feedback
=
[
i
for
i
in
range
(
Robot_Feedback
.
counter
.
value
)]
epochs
=
1
0
epochs
=
4
0
#initialise the robot
#initialise the robot
robot_cpds
=
bnlearn
.
import_DAG
(
'
bn_robot_model/robot_model.bif
'
)
robot_cpds
=
bnlearn
.
import_DAG
(
'
bn_robot_model/robot_model.bif
'
)
...
@@ -372,15 +301,19 @@ persona_cpds = bnlearn.import_DAG('bn_persona_model/new_persona_model.bif')
...
@@ -372,15 +301,19 @@ persona_cpds = bnlearn.import_DAG('bn_persona_model/new_persona_model.bif')
real_user_memory
=
2
;
real_user_attention
=
2
;
real_user_reactivity
=
2
;
real_user_memory
=
2
;
real_user_attention
=
2
;
real_user_reactivity
=
2
;
real_user_cpds
=
None
#bnlearn.import_DAG('bn_other_user_model/user_model.bif')
real_user_cpds
=
None
#bnlearn.import_DAG('bn_other_user_model/user_model.bif')
game_performance_per_episode
,
robot_assistance_per_episode
,
robot_feedback_per_episode
=
\
game_performance_per_episode
,
robot_assistance_per_episode
=
\
simulation
(
user_bn_model
=
persona_cpds
,
user_vars_target_action
=
[
'
user_action
'
,
'
user_react_time
'
],
simulation
(
user_bn_model
=
persona_cpds
,
user_var_target_action
=
[
'
user_action
'
],
user_var_target_react_time
=
[
'
user_react_time
'
],
user_memory_name
=
"
memory
"
,
user_memory_value
=
persona_memory
,
user_memory_name
=
"
memory
"
,
user_memory_value
=
persona_memory
,
user_attention_name
=
"
attention
"
,
user_attention_value
=
persona_attention
,
user_attention_name
=
"
attention
"
,
user_attention_value
=
persona_attention
,
user_reactivity_name
=
"
reactivity
"
,
user_reactivity_value
=
persona_reactivity
,
user_reactivity_name
=
"
reactivity
"
,
user_reactivity_value
=
persona_reactivity
,
task_progress_name
=
"
game_state
"
,
game_attempt_name
=
"
attempt
"
,
task_progress_name
=
"
game_state
"
,
game_attempt_name
=
"
attempt
"
,
robot_assistance_name
=
"
robot_assistance
"
,
robot_feedback_name
=
"
robot_feedback
"
,
robot_assistance_name
=
"
robot_assistance
"
,
robot_feedback_name
=
"
robot_feedback
"
,
robot_bn_model
=
robot_cpds
,
robot_vars_action
=
[
"
robot_assistance
"
,
"
robot_feedback
"
],
other_user_bn_model
=
real_user_cpds
,
other_user_vars_target_action
=
[
'
user_action
'
,
'
user_react_time
'
],
robot_bn_model
=
robot_cpds
,
robot_var_ass_action
=
[
"
robot_assistance
"
],
robot_var_feedback_action
=
[
"
robot_feedback
"
],
other_user_bn_model
=
real_user_cpds
,
other_user_var_target_action
=
[
'
user_action
'
],
other_user_var_target_react_time
=
[
"
user_react_time
"
],
other_user_memory_name
=
"
memory
"
,
other_user_memory_value
=
real_user_memory
,
other_user_memory_name
=
"
memory
"
,
other_user_memory_value
=
real_user_memory
,
other_user_attention_name
=
"
attention
"
,
other_user_attention_value
=
real_user_attention
,
other_user_attention_name
=
"
attention
"
,
other_user_attention_value
=
real_user_attention
,
other_user_reactivity_name
=
"
reactivity
"
,
other_user_reactivity_value
=
real_user_reactivity
,
other_user_reactivity_name
=
"
reactivity
"
,
other_user_reactivity_value
=
real_user_reactivity
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment