Prace dyplomowe

2018

Prace magisterskie

Metoda automatycznej syntezy ograniczeń modelu Programowania Kwadratowego z obserwacji stanów osiąganych przez modelowany system
Zadanie polega na wykorzystaniu algorytmu Support Vector Data Description (SVDD) do syntezy modeli programowania kwadratowego dla rzeczywistego systemu, wykorzystując zbiór obserwacji stanów osiąganych przez ten system (zbiór wektorów wartości zmiennych). SVDD umożliwia budowę modelu na podstawie zbioru przykładów dopuszczalnych reprezentujących normalne warunki pracy systemu. Ma to uzasadnienie praktyczne - uzyskanie przykładów stanów niedopuszczalnych, reprezentujących błędy i awarie, jest w praktyce bardzo kosztowne i przykłady te są rzadkie. SVDD z definicji buduje jedno ograniczenie kwadratowe i z pomocą funkcji kernelowych może przekształcić je w ograniczenie wyższego rzędu. Ograniczenia wyższego rzędu są jednak niepraktyczne ze względu na wysoką złożoność obliczeniową optymalizacji takich modeli i/lub brak solwerów. W zadaniu zaproponowano alternatywne podejście, w którym zbiór przykładów dopuszczalnych jest wpierw grupowany z wykorzystaniem wybranego algorytmu grupowania (np.: X-means), następnie dla każdej grupy zostaje utworzone ograniczenie z użyciem SVDD, i finalnie ograniczenia te są łączone przy użyciu alternatywy w model Programowania Kwadratowego z Ograniczeniami Kwadratowymi.
Literatura uzupełniająca:

Metoda przekształcania programów sekwencyjnych na programy równoległe na platformę OpenCL lub CUDA
Celem pracy jest wykorzystanie algorytmu Programowania Genetycznego (ang. Genetic Programming, GP) do syntezy programu na platformę OpenCL lub CUDA (docelowo uruchamianego na GPU) na podstawie danego programu sekwencyjnego uruchamianego na CPU. GP jest algorytmem ewolucyjnej syntezy dyskretnych struktur z dyskretnych elementów budulcowych np.: programów, wyrażeń arytmetycznych i układów elektronicznych. GP będzie mógł uruchomić zadanych program sekwencyjny dla dowolnych danych wejściowych, aby poznać charakterystykę przekształcenia argumentów programu w wyjście, a następnie utworzenia programu równoległego realizującego to przekształcenie.
Literatura uzupełniająca:

Implementacja algorytmów uczenia maszynowego rozszerzających bibliotekę Accord.NET: X-means, One-Class Very Fast Decision Tree, Least Squares Support Vector Machine, Support Vector Data Description
Zadanie polega na implementacji wybranych algorytmów uczenia maszynowego, w tym klasyfikacji i grupowania, z wykorzystaniem API (interfejsów) biblioteki Accord.NET, tym samym rozszerzając ją. Implementacje algorytmów należy uzupełnić o ich testy jednostkowe. W drugiej części zadania należy eksperymentalnie zweryfikować parametry zaimplementowanych algorytmów i porównać je z innymi, obecnymi w bibliotece Accord.NET.
Literatura uzupełniająca:

Metody heurystycznej syntezy modeli matematycznych dla systemów rzeczywistych
Celem pracy jest opracowanie algorytmu (lub algorytmów) automatycznej syntezy (indukcji) modelu systemu lub procesu rzeczywistego wyrażonego w postaci zadania Programowania Matematycznego Liniowego (ang. Linear Programming, LP) lub Nieliniowego (ang. Non-Linear Programming, NLP), wykorzystując do tego celu przykłady współwystąpienia wartości zmiennych w modelowanym systemie. Proponowanym jest użycie metod znanych z uczenia maszynowego i klasyfikacji, w tym Maszyny Wektorów Nośnych (ang. Support Vector Machine, SVM), drzew decyzyjnych C4.5/J48, Programowania Genetycznego (ang. Genetic Programming, GP) i pochodnych.
Literatura uzupełniająca:

Metody syntezy modeli matematycznych dla systemów rzeczywistych bazujące na przeszukiwaniu lokalnym
Celem pracy jest opracowanie algorytmu (lub algorytmów) automatycznej syntezy (indukcji) modelu systemu lub procesu rzeczywistego wyrażonego w postaci zbioru ograniczeń - np.: zadania Programowania Matematycznego Liniowego (ang. Linear Programming, LP) lub Nieliniowego (ang. Non-Linear Programming, NLP), wykorzystując do tego celu przykłady współwystąpienia wartości zmiennych w modelowanym systemie. Proponowanym jest użycie metod bazujących na Przeszukiwaniu Lokalnym (ang. Local Search) przestrzeni rozwiązań, takich jak algorytmy Greedy Hill Climbing, Steepest Hill Climbing, Tabu Search, Simulated Annealing i pochodne.
Literatura uzupełniająca:

Biblioteka problemów testowych dla metod automatycznej syntezy modeli matematycznych systemów
Celem pracy jest opracowanie zbioru parametrycznych problemów testowych o znanej charakterystyce (ang. Benchmark) służącego formułowaniu zadań syntezy modeli matematycznych systemów w celu oceny metod syntezy. Problemy testowe powinny skalować się ze względu na rozmiar, np.: liczbę zmiennych, liczbę ograniczeń oraz stopień złożoności ograniczeń. Ponadto problemy te powinny być wyrażalne w postaci analitycznej i pozwalać na efektywne pozyskiwanie przykładów uczących, a także porównywanie modeli uzyskanych przez metody syntezy z modelami rzeczywistymi. Pożądaną cechą jest zbieżność problemów testowych z problemami rzeczywistymi. Drugim celem pracy jest opracowanie miar (metryk) syntaktycznych i semantycznych pozwalających na porównywanie zsyntetyzowanych modeli z rzeczywistymi.

Inne tematy prac
Jestem otwarty na inne tematy prac z ogólnej tematyki: automatyczna synteza programów w popularnych językach programowania, programowanie genetyczne (genetic programming), search-based software engineering, automatyczne budowanie modeli programowania matematycznego na podstawie przykładów działania systemów rzeczywistych.

Zainteresowanych studentów proszę o kontakt w celu ustalenia szczegółów.

2017

Prace magisterskie

Patryk Kudła, One-class synthesis of Linear Programming constraints with C4.5 decision tree
Jednoklasowa synteza ograniczeń Programowania Liniowego z użyciem drzewa decyzyjnego C4.5.

Maciej Buzalski, Automatyczna synteza ograniczeń Programowania Liniowego z użyciem Maszyny Wektorów Nośnych

Daniel Sroka, Synteza ograniczeń programowania liniowego z użyciem przeszukiwania lokalnego

Arkadiusz Chorian, Synteza ograniczeń dla modeli Programowania Matematycznego z użyciem Strategii Ewolucyjnych

 

2013

Jakub Aftowicz, Jakub Bacic, Jan Łukaszewicz, Maciej Tronowski, DiSCo: System analizy wyników rozproszonych eksperymentów obliczeniowych, promotor: dr hab. inż. Krzysztof Krawiec, prof. PP, opiekun: mgr inż. Tomasz Pawlak.