diff --git a/verse/analysis/verifier.py b/verse/analysis/verifier.py index aaf92b0d416e52c08dc6a11a8eb38a09a8aeac64..76dc5169213ec5b92a320e08ba5821438fbc15ee 100644 --- a/verse/analysis/verifier.py +++ b/verse/analysis/verifier.py @@ -162,6 +162,7 @@ class Verifier: # trace[:,0] += node.start_time # node.trace[agent_id] = trace.tolist() if reachability_method == "DRYVR": + pp(('tube', agent_id, mode, inits)) cur_bloated_tube = self.calculate_full_bloated_tube(agent_id, mode, inits, @@ -199,6 +200,7 @@ class Verifier: trace = np.array(cur_bloated_tube) trace[:, 0] += node.start_time node.trace[agent_id] = trace.tolist() + pp(("cached_segments", cached_tubes.keys())) node_ids = list(set((s.run_num, s.node_id) for s in cached_tubes.values())) # assert len(node_ids) <= 1, f"{node_ids}" new_cache, paths_to_sim = {}, [] @@ -208,10 +210,11 @@ class Verifier: old_node = find(past_runs[old_run_num].nodes, lambda n: n.id == old_node_id) assert old_node != None new_cache, paths_to_sim = to_simulate(old_node.agent, node.agent, cached_tubes) - # pp(("to sim", new_cache.keys(), len(paths_to_sim))) + pp(("to sim", new_cache.keys(), len(paths_to_sim))) # Get all possible transitions to next mode asserts, all_possible_transitions = transition_graph.get_transition_verify_new(new_cache, paths_to_sim, node) + pp(("transitions:", all_possible_transitions)) node.assert_hits = asserts if asserts != None: asserts, idx = asserts @@ -221,6 +224,7 @@ class Verifier: transit_map = {k: list(l) for k, l in itertools.groupby(all_possible_transitions, key=lambda p:p[0])} transit_agents = transit_map.keys() + pp(("transit agents", transit_agents)) if self.config.incremental and len(all_possible_transitions) > 0: transit_ind = max(l[-2][-1] for l in all_possible_transitions) for agent_id in node.agent: diff --git a/verse/scenario/scenario.py b/verse/scenario/scenario.py index dd7732346f44f8dcb014f1c893dd4ea70009ec64..35d7eb4d4e09b4914b9c422270fd02a61395978b 100644 --- a/verse/scenario/scenario.py +++ b/verse/scenario/scenario.py @@ -693,8 +693,9 @@ class Scenario: for agent in reset_dict: for reset_idx in reset_dict[agent]: for dest in reset_dict[agent][reset_idx]: - resets = tuple(map(list, zip(*reset_dict[agent][reset_idx][dest]))) - transition = (agent, node.mode[agent], dest, *resets) - possible_transitions.append(transition) + if list(dest) != list(node.mode[agent]): + resets = tuple(map(list, zip(*reset_dict[agent][reset_idx][dest]))) + transition = (agent, node.mode[agent], dest, *resets) + possible_transitions.append(transition) # Return result return None, possible_transitions