From 68cd6d9103094fd1e46c7d34275db3fc5abe6f0d Mon Sep 17 00:00:00 2001 From: u214892 <u214892@sbb.ch> Date: Mon, 20 May 2019 14:44:55 +0200 Subject: [PATCH] a_star with sets instead of lists: cleanup --- flatland/envs/env_utils.py | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/flatland/envs/env_utils.py b/flatland/envs/env_utils.py index 3bbf4e1a..014c88df 100644 --- a/flatland/envs/env_utils.py +++ b/flatland/envs/env_utils.py @@ -54,7 +54,6 @@ def validate_new_transition(rail_trans, rail_array, prev_pos, current_pos, new_p else: # check if matches existing layout new_trans = rail_trans.set_transition(new_trans, current_dir, new_dir, 1) - # new_trans = rail_trans.set_transition(new_trans, mirror(new_dir), mirror(current_dir), 1) else: # set the forward path new_trans = rail_trans.set_transition(new_trans, current_dir, new_dir, 1) @@ -69,7 +68,6 @@ def validate_new_transition(rail_trans, rail_array, prev_pos, current_pos, new_p else: # check if matches existing layout new_trans_e = rail_trans.set_transition(new_trans_e, new_dir, new_dir, 1) - # new_trans_e = rail_trans.set_transition(new_trans_e, mirror(new_dir), mirror(new_dir), 1) if not rail_trans.is_valid(new_trans_e): return False @@ -114,12 +112,6 @@ def a_star(rail_trans, rail_array, start, end): closed_list = set() open_list.add(start_node) - # this could be optimized - def is_node_in_list(node, the_list): - if node in the_list: - return node - return None - while len(open_list) > 0: # get node with current shortest est. path (lowest f) current_node = None @@ -169,8 +161,7 @@ def a_star(rail_trans, rail_array, start, end): # loop through children for child in children: # already in closed list? - closed_node = is_node_in_list(child, closed_list) - if closed_node is not None: + if child in closed_list: continue # create the f, g, and h values @@ -183,9 +174,7 @@ def a_star(rail_trans, rail_array, start, end): child.f = child.g + child.h # already in the open list? - open_node = is_node_in_list(child, open_list) - if open_node is not None: - open_node.update_if_better(child) + if child in open_list: continue # add the child to the open list -- GitLab