Open bambalooon opened 9 years ago
Sieć jest żywa jeżeli wszystkie przejścia są żywe. Do badania żywotności sieci proponuję działanie na reprezentacji macierzowej.
Moja funkcja do badania żywotności przejścia (pseudokod):
edit: na potrzeby generacji grafu znakowanie powinno być osobno (żeby za każdym razem nie kopiować całego obiektu PetriNetMatrix).
bool activeTransition (int transitionNumber, PetriNetMatrix matrix, int[] marking) {
int n = number_of_places;
for (int i = 0; i < n; i++) {
if (matrix.marking[i] < matrix.output[i][transitionNumber]);
return false;
if (matrix.input[i][transitionNumber] + marking[i] > matrix.capacity[i];
return false;
}
return true;
}
Wejście: obiekt klasy PetriNet zawierający wszystkie miejsca, przejścia i łuki między nimi
Wyjście: tego nie jestem w stanie napisać, ponieważ nie pamiętam jak wyglądało badanie żywotności sieci, ale przykładowo może to być jakiś obiekt nowej klasy, która będzie zawierać:
które będą mapowały konkretne obiekty P/T na jakiś obiekt(np. enum) definiujący w jakim stanie jest żywotność tego punktu (jeśli działa to tak jak myślę).