Skip to content

Commit 1edacf6

Browse files
committed
make convert_i_o_traces_for_RPNI deterministic
1 parent 40b98b4 commit 1edacf6

1 file changed

Lines changed: 12 additions & 4 deletions

File tree

aalpy/utils/HelperFunctions.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,20 +285,28 @@ def convert_i_o_traces_for_RPNI(sequences, automaton_type="mealy"):
285285
Eg. [[(1,'a'), (2,'b'), (3,'c')], [(6,'7'), (4,'e'), (3,'c')]] to
286286
[((1,), 'a'), ((1, 2), 'b'), ((1, 2, 3), 'c'), ((6,), '7'), ((6, 4), 'e'), ((6, 4, 3), 'c')]
287287
"""
288-
rpni_sequences = set()
288+
rpni_sequences = []
289+
seen = set()
289290

290291
if automaton_type not in ["mealy", "moore", "dfa"]:
291292
raise ValueError()
292293

293294
for s in sequences:
294295
if automaton_type in ["moore", "dfa"]:
295-
rpni_sequences.add((tuple(), s[0]))
296+
key = (tuple(), s[0])
297+
if key not in seen:
298+
seen.add(key)
299+
rpni_sequences.append(key)
296300
s = s[1:]
301+
297302
for i in range(len(s)):
298303
inputs = tuple([io[0] for io in s[:i + 1]])
299-
rpni_sequences.add((inputs, s[i][1]))
304+
key = (inputs, s[i][1])
305+
if key not in seen:
306+
seen.add(key)
307+
rpni_sequences.append(key)
300308

301-
return list(rpni_sequences)
309+
return rpni_sequences
302310

303311

304312
def visualize_classification_tree(root_node):

0 commit comments

Comments
 (0)