You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* The offensive planner is responsible for making decisions about the offensive actions of the agent by creating a tree of actions,
862
862
finding the best chain of actions, and executing the first action in the chain, when the agent is ball owner.
863
863
* The best action is an action with best incomming predicted state.
864
-
* The best predicted state is the state that has the best evalution value by using this formula: value = ball.x + max(0.0, 40.0 - ball.dist(opponent goal center))
864
+
* The best predicted state is the state that has the best evaluation value by using this formula: value = ball.x + max(0.0, 40.0 - ball.dist(opponent goal center))
865
865
* Due to the complexity of the not simple actions, the agent can not calculate the best action in the first layer of the tree. So, the agent can use the simple actions in the first layer of the tree.
866
866
* To create the tree, the planner create all possible edges (actions) and create the next state of the agent by using each action.
867
867
Then the planner starts to create the next layer of the tree by using the next state of the agent. The planner continues to create the tree until
The difault value is 4. So, if you do not set this value, the agent will create the tree with 4 depth. Due to the default value of rpc, 0 means the default value. */
940
940
int32max_nodes=12; /** The maximum number of nodes in the tree. The agent will create the tree with this number of nodes.
941
941
The difault value is 500. So, if you do not set this value, the agent will create the tree with 500 nodes. Due to the default value of rpc, 0 means the default value. */
942
-
PlannerEvalutionevalution=13; /** The evalution methods to evaluate the actions[predicted states] in the tree. */
942
+
PlannerEvaluationevaluation=13; /** The evaluation methods to evaluate the actions[predicted states] in the tree. */
943
943
}
944
944
945
945
/**
946
-
* PlannerEvalution is the message that represents the evalution methods to evaluate the actions[predicted states] in the tree.
946
+
* PlannerEvaluation is the message that represents the evaluation methods to evaluate the actions[predicted states] in the tree.
947
947
* Using this method causes the predicted state eval to be decreased based on the distance or reach steps of the opponent players to the position of the ball in the predicted state.
948
948
* Each variable in the message is a list of float values.
949
949
* For example, if you want to decrease the predicted state eval if the distance of the opponent player to the ball is less than 5,
950
950
You can set the negetive_effect_by_distance variable with the value of [-9.0, -8.5, -7.2, -6.1, -3.8]. It means the predicted state eval will be decreased by 9.0 if the distance is less than 1,
951
951
8.5 if the distance is less than 2, 7.2 if the distance is less than 3, 6.1 if the distance is less than 4, 3.8 if the distance is less than 5.
repeatedfloatnegetive_effect_by_distance=1; /** The list of float values that represents the negetive effect of the distance of the opponent player to the ball in the predicted state.
@@ -961,10 +996,48 @@ message OpponentEffector {
961
996
}
962
997
963
998
/**
964
-
* ActionTypeEfector is the message that represents coefficients of the action types in the tree to calculate the predicted state evalution.
999
+
* ActionTypeEffector is the message that represents coefficients of the action types in the tree to calculate the predicted state evaluation.
965
1000
* Each number should start from 0.0. For example, if evaluation of an action-state is 10, the action is direct pass, and value of direct_pass is 0.5, so the final evaluation of the action-state will be 5.
map<int32, float> coefficients=1; /** The map of the coefficients of the teammates. The key of the map is the uniform number of the teammate, and the value is the coefficient of the teammate.
OpponentEffectoropponent_effector=1; /** The effector of the opponent players. You can set the negetive effect of the distance or reach steps of the opponent players to the ball in the predicted state.
996
-
By using this effector, the proxy agent will decrease the predicted state evalution based on the distance or reach steps of the opponent players to the ball in the predicted state. */
997
-
ActionTypeEfectoraction_type_effector=2; /** The effector of the action types. You can set the coefficients of the action types in the tree to calculate the predicted state evalution.
998
-
By using this effector, the proxy agent will update the predicted state evalution based on the coefficients of the action types in the tree. */
999
-
TeammateEffectorteammate_effector=3; /** The effector of the teammates. You can set the coefficients of the teammates in the tree to calculate the predicted state evalution.
1000
-
By using this effector, the proxy agent will update the predicted state evalution based on the coefficients of the teammates in the tree. */
1001
-
}
1147
+
messagePlannerEvaluationEffector {
1148
+
OpponentEffectoropponent_effector=1; /** The effector of the opponent players. You can set the negetive effect of the distance or reach steps of the opponent players to the ball in the predicted state.
1149
+
By using this effector, the proxy agent will decrease the predicted state evaluation based on the distance or reach steps of the opponent players to the ball in the predicted state. */
1150
+
ActionTypeEffectoraction_type_effector=2; /** The effector of the action types. You can set the coefficients of the action types in the tree to calculate the predicted state evaluation.
1151
+
By using this effector, the proxy agent will update the predicted state evaluation based on the coefficients of the action types in the tree. */
1152
+
TeammateEffectorteammate_effector=3; /** The effector of the teammates. You can set the coefficients of the teammates in the tree to calculate the predicted state evaluation.
1153
+
By using this effector, the proxy agent will update the predicted state evaluation based on the coefficients of the teammates in the tree. */
1002
1154
}
1003
1155
1004
1156
/**
1005
1157
* HeliosFieldEvaluator is the message that represents the field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree.
1006
1158
* If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree.
1007
1159
* This field evaluator calculate the value of the predicted state by using this formula:
* MatrixFieldEvaluator is the message that represents the matrix field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree.
1207
+
* If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree.
1208
+
* This field evaluator calculate the value of the predicted state by using a matrix of float values.
1209
+
* ---------------------
1210
+
* | 10 | 20 | 30 | 40 |
1211
+
* | 15 | 25 | 35 | 45 |
1212
+
* | 10 | 20 | 30 | 40 |
1213
+
* ---------------------
1214
+
* In this example matrix, the value of each point in the opponent pernaly area is 45.
* PlannerFieldEvaluator is the message that represents the field evaluator of the proxy agent to evaluate each node (predicted state) in the planner tree.
1258
+
* If you dont set the field evaluator, the proxy agent will use the default field evaluator (HeliosFieldEvaluator) to evaluate each node in the planner tree.
1259
+
* This field evaluator calculate the value of the predicted state by using helios_field_evaluator or/and matrix_field_evaluator.
1260
+
* Note: if you just use the matrix_field_evaluator, value of all target in each square of the matrix should be the same, so it causes that the player choosing hold ball action instead of dribble in that area.
1261
+
* To avoid this issue, you can use the helios_field_evaluator with the matrix_field_evaluator together.
1262
+
*/
1024
1263
messagePlannerFieldEvaluator {
1025
-
oneoffield_evaluator {
1026
-
HeliosFieldEvaluatorhelios_field_evaluator=1;
1027
-
MatrixFieldEvaluatormatrix_field_evaluator=2;
1028
-
}
1264
+
HeliosFieldEvaluatorhelios_field_evaluator=1;
1265
+
MatrixFieldEvaluatormatrix_field_evaluator=2;
1029
1266
}
1030
1267
1031
-
messagePlannerEvalution {
1032
-
repeatedPlannerEvaluationEfectoreffectors=1;
1033
-
repeatedPlannerFieldEvaluatorfield_evaluators=2;
1268
+
/**
1269
+
* PlannerEvaluation is the message that represents the evaluation methods to evaluate the actions[predicted states] in the tree.
1270
+
* Using this method causes the predicted state eval to be calculated based on field evaluators and effected by effectors.
0 commit comments