bambalooon / PetriLab

0 stars 0 forks source link

II spotkanie (02.06.2015) #6

Open bambalooon opened 9 years ago

bambalooon commented 9 years ago

Na I spotkaniu Porzycki uświadomił nas, że jesteśmy bardzo w tyle - musimy wziąć się zebrać i skończyć tą apkę w końcu!

Chyba wszyscy zauważyliśmy, że to pisanie w Javie idzie opornie, a część analizy sieci jest na etapie początkowych projektów (+ chyba jakieś raporty już @annwi pisze). Jako, że @wpk1124, @Szejp tracą dużo czasu na problemy ze środowiskiem, zaznajamianie się z językiem i potem ja pomagam @annwi projektować sieć - prosiłbym żeby jedna osoba zajęła się analizą sieci i żebyśmy mieli na następne spotkanie kompletny projekt sieci i wstępne analizy - żeby posprawdzać na tych generowanych grafach czy ta sieć ma sens.

Po drugie - byłem dzisiaj u Porzyckiego i wyjaśniłem sobie z nim jak ma przy naszej sieci PT wyglądać graf pokrycia, oto moje ustalenia: a) miejsce w sieci PT może nie mieć pojemności (capacity = Inf) b) graf pokrycia sieci ma być generowany z pominięciem pojemności (jak przy uogólnionych) c) na wygenerowanym grafie pokrycia mają być zaznaczone nieskończoności, które w rzeczywistości są ograniczone przez pojemność miejsca d) graf osiągalności ma być dalej generowany z ograniczeniem liczby węzłów/głębokości i biorąc pod uwagę pojemność miejsc

Wymagania II spotkania:

  1. (!) Projekt sieci petriego systemu informatycznego do liczenia głosów w wyborach
  2. Aplikacja - wymagane: Zrobione: definicja sieci za pomocą GUI, wyświetlanie sieci, edycja sieci, wczytanie/zapis sieci, symulacja sieci, wyznaczanie reprezentacji macierzowej Małe poprawki: graf pokrycia, graf osiągalności
  3. Niewymagane na 2 spotkanie: Do zrobienia: żywotność (sieci i przejść), znakowanie (również wzg. wektora), k-ograniczenie i bezpieczeństwo, odwracalność sieci, wyświetlanie repr. macierzowej

Jak widać - do 2 spotkania w najsłabiej prezentuje się projekt sieci - dlatego chciałbym, żeby jedna osoba się zgłosiła do pomocy @annwi. Przy okazji przyśpieszy to tworzenie aplikacji, gdyż będę mógł się na tym spokojnie skupić.

Został nam tydzień - chciałbym w sobotę się spotkać i rozmawiać już o finalizowanym projekcie sieci i o opracowaniu ostatnich już funkcjonalności aplikacji.

wpk1124 commented 9 years ago

Mój komentarz do listy rzeczy do zrobienia:

  1. Żywotność
    • czy przejście jest żywe sprawdzimy po prostu przez funkcję isActiveTransition,
    • czy jest potencjalnie żywe można sprawdzić wyszukując odpowiednią krawędź w grafie pokrycia (graph.containsEdge(E edge)),
    • z siecią to samo, tylko dla wszystkich przejść.
  2. Znakowanie? Podejrzewam, że chodziło o zachowawczość. Tutaj widziałbym obliczanie sumy znakowań z każdego wierzchołka w grafie pokrycia i sprawdzanie czy jest stała. Z tym wektorem wag na razie nie mam pomysłu.
  3. K-ograniczenie - po prostu sprawdzamy maksymalną liczbę znaczników dla danego miejsca w grafie pokrycia. Jeżeli jest nieskończoność to jest nieograniczone. Sieć jest nieograniczona jeżeli dowolne z miejsc jest nieograniczone.
  4. Bezpieczeństwo - miejsce jest bezpieczne jeżeli k = 1, czyli może mieć co najwyżej jeden znacznik. Analogicznie sieć jest bezpieczna jeżeli wszystkie miejsca są bezpieczne.
  5. Co to jest odwracalność?
  6. Wyświetlanie reprezentacji macierzowej komentarza raczej nie wymaga.
bambalooon commented 9 years ago

Odwracalność - Porzycki mówił na konsultacjach, że to jest taka właściwość, że z dowolnego znakowania sieć jest w stanie wrócić do m0 (nie jestem pewien czy całkowicie dowolnego znakowania, czy tylko takiego, które sieć jest w stanie wygenerować).

bambalooon commented 9 years ago

Wykreśliłem w pierwszym poście rzeczy, które udało już nam się zrobić. Jest tam niewielki postęp. Jak wygląda projekt sieci ( @annwi, @Szejp ) i praca nad jej właściwościami ( @wpk1124 )?

bambalooon commented 9 years ago

Update - kolejne zadania ukończone (poprawki naniesione w pierwszym poście). Jak wygląda sprawa projektu sieci @annwi, @Szejp ?

wpk1124 commented 9 years ago

Krótki opis metod, które dodałem (plik Properties.java):

  1. boolean isTransitionAlive - sprawdza, czy przejście jest żywe, czyli tak naprawdę aktywne
  2. boolean isNetAlive - czy cała sieć jest żywa
  3. boolean isTransitionPotentiallyAlive - czy przejście jest potencjalnie żywe, tzn czy istnieje odpowiadająca mu krawędź w grafie pokrycia
  4. boolean isNetPotentiallyAlive - czy sieć jest potencjalnie żywa, czyli sprawdzenie wszystkich przejść
  5. boolean isNetConservative - czy sieć jest zachowawcza, tzn czy suma znaczników jest zawsze stała
  6. Double isPlaceKBounded - czy miejsce jest k-ograniczone, szuka największego znakowania w grafie pokrycia, a jeżeli wyjdzie nieskończoność to zwraca -1 (nic lepszego nie wymyśliłem w tym momencie)
  7. Double isNetKBounded - czy sieć jest k-ograniczona, sprawdza które przejście ma największe możliwe znakowanie, a jeżeli któreś jest nieograniczone to analogicznie zwraca -1
  8. boolean isPlaceSafe - czy miejsce jest bezpieczne, tzn w każdym wierzchołku grafu osiągalności jego znakowanie nie przekracza 1
  9. boolean isNetSafe - j.w., ale odnosi się do całej sieci
  10. boolean isNetReversible - sprawdza czy znakowanie początkowe jest osiągalne z każdego innego znakowania, jeżeli nie jest to zwraca false
annwi commented 9 years ago

@bambalooon projekt sieci jest opisany w issue od projektu sieci :p