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.