26 lines
1.2 KiB
Plaintext
26 lines
1.2 KiB
Plaintext
Do poprawy (optymalizacje):
|
|
- sposob zwracania przez f-cje prod_loc_acts akcji wykonalnych z okr.
|
|
lokacji jest tragiczny i jest paskudna strata pamieci i czasu ;)
|
|
|
|
- z kazda aktualizacja DBM przeliczam PK, co moze sie okazac bez sensu
|
|
|
|
- przy obliczaniu pre_e wystepuje powtarzajace sie guard(e) n I(s),
|
|
ktore jest niezmienne dla dodanego przejscia. Mozna zapisac
|
|
obliczony wynik wraz z zapisanym przejsciem e. Dodatkowo mozna
|
|
traktowac NULL jak strefe bez ograniczen, co pozwoli nam
|
|
przyspieszyc obliczenia i jednoczesnie nie zuzyje zbyt wiele pamieci
|
|
(zakladajac ze nie wszedzie sa okreslone niezmienniki/guardy).
|
|
|
|
- sprawdzanie pustosci przeciecia dwoch stref bez alokowania zadnych
|
|
DBM-ow, np. wykorzystywac zawsze ten sam tymczasowy DBM
|
|
|
|
- tam gdzie przekazujemy argument do funkcji wskazujacy na zbior
|
|
reachstable, moze warto wprowadzic zmienne globalne? Z punktu
|
|
widzenia zlozonosci rozni sie to tylko o pewna stala.
|
|
|
|
- Sprawdzanie czy Z n Z' = Z mozna zrealizowac w wydajniejszy sposob, bo
|
|
nie potrzeba obliczac dokladnego wyniku, tylko sprawdzac czy minimum
|
|
jest rowne temu co jest w Z. Odpada wtedy alokowanie dodatkowych DBM-ow
|
|
i zwalnianie ich.
|
|
|