graph_adversarial_attack icon indicating copy to clipboard operation
graph_adversarial_attack copied to clipboard

Question on the "isTerminal" function

Open lijianwen96 opened this issue 4 years ago • 1 comments

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.

lijianwen96 avatar Jan 03 '21 03:01 lijianwen96

In the paper we only modify one edge, which corresponds to two steps (choosing two ends of the edge).

Do you mind to elaborate more on why this is inconsistent with the paper?

Hanjun-Dai avatar Jan 17 '21 05:01 Hanjun-Dai