bambalooon / PetriLab

0 stars 0 forks source link

2c) Badanie żywotności sieci #3

Open bambalooon opened 9 years ago

bambalooon commented 9 years ago

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ę).

wpk1124 commented 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;
}