The isTerminal(self) function is in located at graph_adversarial_attack/code/graph_attack/rl_common.py.
def isTerminal(self):
if self.n_steps == 2 * self.n_edges:
return True
return False
When initializing, self.n_edges is set 1, so isTerminal(self) would return true when self.n_steps is 2.
Does this mean that after the two hierarchical actions are completed, the MDP ends, and there is only one state transition for a simulation in run_simulation(self) function which is located at graph_adversarial_attack/code/graph_attack/dqn.py?
If this is the case, isn't it inconsistent with the description "Once the agent modifies m edges, the process stops." in section 3.1 of the paper?
Looking forward to your reply, thank you Hanjun.
The
isTerminal(self)function is in located atgraph_adversarial_attack/code/graph_attack/rl_common.py.When initializing,
self.n_edgesis set1, soisTerminal(self)would return true whenself.n_stepsis2.Does this mean that after the two hierarchical actions are completed, the MDP ends, and there is only one state transition for a simulation in
run_simulation(self)function which is located atgraph_adversarial_attack/code/graph_attack/dqn.py?If this is the case, isn't it inconsistent with the description "Once the agent modifies m edges, the process stops." in section 3.1 of the paper?
Looking forward to your reply, thank you Hanjun.