develop.uap-core.de/git
/
petrinet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixes non-deterministic selection of enabled transitions
[petrinet.git]
/
src
/
main
/
java
/
de
/
yasc
/
example
/
petrinet
/
Petrinet.java
diff --git
a/src/main/java/de/yasc/example/petrinet/Petrinet.java
b/src/main/java/de/yasc/example/petrinet/Petrinet.java
index
f8882f2
..
994a037
100644
(file)
--- a/
src/main/java/de/yasc/example/petrinet/Petrinet.java
+++ b/
src/main/java/de/yasc/example/petrinet/Petrinet.java
@@
-74,7
+74,7
@@
public final class Petrinet {
if (enabledTransitions.isEmpty()) {
return false;
} else {
if (enabledTransitions.isEmpty()) {
return false;
} else {
-
t
ransitions.get(prng.nextInt(enabledTransitions.size())).fire();
+
enabledT
ransitions.get(prng.nextInt(enabledTransitions.size())).fire();
return true;
}
}
return true;
}
}
@@
-92,7
+92,7
@@
public final class Petrinet {
public Integer[] getMarking() {
final var marking = new ArrayList<Integer>();
for (int p = 0 ; p < places.length ; p++) {
public Integer[] getMarking() {
final var marking = new ArrayList<Integer>();
for (int p = 0 ; p < places.length ; p++) {
-
Collections.nCopies(places[p].tokens, p).forEach(marking::add
);
+
marking.addAll(Collections.nCopies(places[p].tokens, p)
);
}
return marking.toArray(new Integer[0]);
}
}
return marking.toArray(new Integer[0]);
}