Automatyczne wyznaczanie złożoności obliczeniowej algorytmów Promotor dr inż. Roman Starosolski Autor Krzysztof Pawełczyk
Plan wystąpienia Cel pracy Wymagania wobec rozwiązania Możliwe rozwiązania Struktura rozwiązania Stan prac Podsumowanie
Cel pracy Wyznaczanie złożoności obliczeniowej za pomocą metod analitycznych. Chęć sprawdzenia szacunków. Poznanie faktycznych złożoności dla praktycznych danych. 1. Da się wyznaczyć złożoność, a właściwie tylko jej przybliżenie. Ograniczenie się do liczenia operacji dominujących.
Wymagania wobec rozwiązania Łatwość użycia i niska ingerencja w kod algorytmu Zliczanie wszystkich operacji Obsługa liczb stało- i zmiennopozycyjnych, znaków Tablice jedno- i wielowymiarowe
Możliwe rozwiązania Implementacja wymaganego minimalnego zbioru klas „na sztywno”. Wykorzystanie szablonów klas. +Możliwość całkowitego zamknięcia kodu klas w bibliotece lib. – Brak elastyczności, zamknięty zbiór typów danych Elastyczność. Nie można zamknąć kodu w bibliotece lib.
Struktura rozwiązania Predefiniowane typy danych Szablony typów danych Integer DataTypeTemplate Char Counter BasicDataTypeTemplate Control Predefiniowane typy danych zbudowane na bazie sazblonów. Szablon podstawowy zawiera statyczny obiekt typu Counter, który rejestrowany jest w obiekcie Control. Obiekt Control jest singletonem, zawiera adresy wszystkich counterów. MathDataTypeTemplate XMLWriter Table
Stan prac Pozostało: XMLWriter. Predefiniowane typy danych. Testowanie (UnitTesty). Przeanalizowanie działania na podstawie dwóch algorytmów. Napisanie pracy inżynierskiej.
Podsumowanie Zestaw szablonów klas i klas. Zliczanie wszystkich operacji. Wynik w postaci pliku XML.
Podsumowanie Mała ingerencja w kod:
Podsumowanie Mała ingerencja w kod:
Dziękuję za uwagę