Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
tematy_prac_inzynierskich [2015/06/09 01:20] pszwed [Edytor języka opisu architektury hurtowni danych] |
tematy_prac_inzynierskich [2021/08/23 22:58] pszwed [2021] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== Struktura pracy ===== | ||
+ | |||
+ | *[[struktura_pracy_inz|Struktura pracy]] | ||
+ | |||
+ | *[[prace_inz_uwagi|Uwagi]] | ||
+ | |||
+ | *[[proces_dyplomowania|Proces dyplomowania]] | ||
+ | |||
+ | |||
====== Tematy prac inżynierskich ====== | ====== Tematy prac inżynierskich ====== | ||
+ | |||
+ | ===== 2021 ===== | ||
+ | |||
+ | Możliwe jest zgłaszanie własnych tematów. Jednak, nie chcę prowadzić prac polegających na implementacji aplikacji webowej/ | ||
+ | z użyciem typowego stosu technologicznego, | ||
+ | |||
+ | |||
+ | |||
+ | === 1. Optymalizacja ciągła: PyTorch + algorytm pszczeli=== | ||
+ | [zajęte, MW] | ||
+ | |||
+ | === 2. Optymalizacja ciągła - algorytm mrówkowy=== | ||
+ | Obejmuje opracowanie algorytmu (specyficzna implementacja). Platforma TensorFlow lub PyTorch lub CUDA | ||
+ | Testy z użyciem funkcji testowych z konferencji CEC | ||
+ | [zajęte MS] | ||
+ | |||
+ | === 3. Inne algorytmy optymalizacji ciągłej === | ||
+ | Do ustalenia. | ||
+ | |||
+ | === 4. Baza wiedzy z rozmytymi relacjami=== | ||
+ | Na przykładzie rekomendacji dietetycznych dla różnych typów schorzeń. | ||
+ | Obejmuje: bazę, interfejs dostępu REST do odczytu i zapisu, aplikację webową. Należy wypełnić bazę przykładowymi danymi, np dla 2-3 schorzeń i produktów spozywczych. | ||
+ | |||
+ | === 5. Repozytorium danych tekstowych na potrzeby NLP === | ||
+ | Obejmuje projekt i implementację bazy danych + web scraping artykułów z wybranych 2-3 źródeł (np. PubMed), indeksowanie według wybranych terminów. | ||
+ | |||
+ | === 6. Rozpoznawanie aktywności użytkownika na podstawie odczytów czujników urządzenia mobilnego === | ||
+ | Aplikacja mobilna zbierająca i interpretująca dane. Należy zarejestrować przykłady odczytów (bieg, chód, | ||
+ | |||
+ | === 7. Predykcja szeregów czasowych z użyciem Rozmytych Map Kognitywnych === | ||
+ | Implementacja na platformie TensorFlow lub PyTorch. Najchętniej na (części) danych typu PEMS https:// | ||
+ | |||
+ | === 8. Projekt i implementacja wybranych algorytmów grupowania dla PostgreSQL=== | ||
+ | Przykładowe algorytmy to k-means, db-scan, ward. Implementacja w języku PL/pgSQL. Projekt obejmuje generację danych syntetycznych różnych rozmiarów i testy algorytmów. | ||
+ | |||
+ | === 9. Rozpoznawanie emocji w głosie=== | ||
+ | W ramach pracy należy zdefiniować kilka kategorii emocji (spokojna rozmowa, uprzejma rozmowa z klientem, kłótnia, program informacyjny, | ||
+ | [zajęte MW] | ||
+ | |||
+ | === 10. Generacja informacji o ruchu w grafie === | ||
+ | Graf sieci drogowej na podstawie mapy OSM. Rozmiar - co najmniej aglomeracja. W sieci porusza się duża liczba obiektów, dla każdego obiektu losowany jest punkt startowy i końcowy i wyznaczana droga (np. algorytmem A-star). Oprogramowanie ma zbierać informacje o koncentracji obiektów w danym miejscu i przedziale czasu (natężeniu ruchu). | ||
+ | |||
+ | === 11. Grupowanie obiektów na mapie=== | ||
+ | Implementacja algorytmu, który będzie łączył w grupy blisko położone obiekty. Odległość musi uwzględniać rzeczywistą odległość w sieci drogowej (długość drogi wyznaczonej np. algorytmem A-star). [zarezerwowane KR] | ||
+ | |||
+ | === 12. Wirtualny wyścig === | ||
+ | [Zajęte AK] | ||
+ | |||
+ | === 13. Animacja awatara === | ||
+ | [zarezerwowane AG] | ||
+ | |||
+ | <!-- | ||
+ | **Na razie nie mam propozycji tematów ** | ||
+ | |||
+ | Generalnie, nie chcę prowadzić tematów polegających na implementacji aplikacji webowej/ | ||
+ | |||
+ | Typowy zakres prac | ||
+ | * eksploracji danych/ | ||
+ | * algorytmy optymalizacji ciagłej (ale na platformie typu TensorFlow lub PyTorch) | ||
+ | * może to być implementacja systemu, który będzie miał jakiś inteligentny komponent albo będzie przydatne w tej dziedzinie - jak narzędzie do etykietowania | ||
+ | --> | ||
+ | |||
+ | ===== 2020 ===== | ||
+ | |||
+ | -Map matching :!: Zajęte | ||
+ | -Algorytmy optymalizacji (możliwych jest kilka tematów) :!: Jeden temat zajęty | ||
+ | -Grupowanie grawitacyjne :!: Zajęte | ||
+ | -Generacja i testy Negatywnych Baz Danych :!: Zajęte | ||
+ | -Analiza antyplagiatowa kodu :!: Zajęte | ||
+ | ==== 1. Map matching ==== | ||
+ | Zarezerwowane jako implementacja w Pythonie? :?: | ||
+ | |||
+ | (a) Implementacja (znanego) algorytmu rzutowania sekwencji odczytów GPS na mapę w postaci procedur składowanych dla PostgreSQL/ | ||
+ | |||
+ | Procedury mogą być zaimplementowane w | ||
+ | - [[https:// | ||
+ | - Java lub Pythonie (trudniejsze w konfiguracji i dyskusyjne wydajnościowo) | ||
+ | |||
+ | (b) Alternatywnie, | ||
+ | |||
+ | Zakres: | ||
+ | - załaduj mapę oryginalną | ||
+ | - podziel drogę na segmenty (od skrzyżowania do skrzyżowania) | ||
+ | - dodaj tabele/ | ||
+ | - dodaj tabele/ | ||
+ | - napisz procedurę, która dla nowego punktu: | ||
+ | - rozszerza graf o nowe możliwe wierzchołki // | ||
+ | - usuwa z grafu wierchołki, | ||
+ | - podprocedury powinny mieć warianty lub być sterowane parametrami | ||
+ | - Testy: | ||
+ | - jakościowe - czy ścieżki są odwzorowane poprawnie | ||
+ | - wydajnościowe - ile zapytań można przetwarzać w jednostce czasu, ewentualnie grupowanie punktów jednej ściezki | ||
+ | |||
+ | ==== 2. Algorytmy optymalizacji ciagłej z użyciem numpy ==== | ||
+ | |||
+ | To jest temat, który można rozszerzyć na kilka algorytmów. Wspólną cechą ma być: | ||
+ | |||
+ | * wykorzystanie operacji biblioteki **numpy** lub **tensorflow**. Mimo, że są funkcjami Pythona, sa zaimplementowane w C i działają wydajnie | ||
+ | * Zamiast wykonywac operacje na pojedynczych osobnikach (wektorach w R^n), maja być przeprowadzane operacje na całych macierzach (w których wiersz odpowiada osobnikowi) | ||
+ | * uzycie do testów funkcji z konferencji CEC [[http:// | ||
+ | * Z reguły algorytmy mają jakieś parametry. Dla danej funkcji | ||
+ | * Wybór macierzowej reprezentacji może powodować pewne niewielkie odstepstwa od bazowego algorytmu mające na celu przyspieszenie obliczeń | ||
+ | * Działanie algorytmu należy przetestować, | ||
+ | |||
+ | === 2.a PSO === | ||
+ | |||
+ | Implementacja algorytmu Particle Swarm Optimization. Należy zaimplementować rózne topologie: | ||
+ | * globalną | ||
+ | * sąsiedzi | ||
+ | * losowowanie grafu | ||
+ | |||
+ | === 2.b Algorytm mrówkowy === | ||
+ | |||
+ | Implementacja algorytmu mrówkowego, | ||
+ | |||
+ | === 2.c Algorytm pszczeli === | ||
+ | |||
+ | Istnieje kilka wersji... | ||
+ | |||
+ | === 2.d === | ||
+ | |||
+ | Inne do przedyskutowania..., | ||
+ | |||
+ | ==== 3. Grupowanie grawitacyjne (CUDA)==== | ||
+ | :!: Zajete | ||
+ | Grupowanie (klasteryzacja) to proces łączenia danych w grupy. Przez dane rozumiane są tu wektory w R^n. Zazwyczaj oczekuje się, że grupy będą od siebie oddalone, natomiast dane należące do jednej grupy położone blisko siebie. Przy grupowaniu grawitacyjnym wykorzystuje się model sił grawitacji - blisko położone punkty przyciągają się mocniej i skupiają w grupy. | ||
+ | Celem pracy jest implementacja kilku znanych wersji algorytmu grupowania grawitacyjnego i przetestowanie ich działania. | ||
+ | |||
+ | Platforma implementacji CUDA (NVidia). Ewentulnie porównanie z czystym C. | ||
+ | |||
+ | |||
+ | |||
+ | ==== 4. Generacja i testy Negatywnych Baz Danych ==== | ||
+ | |||
+ | :!: Zajete | ||
+ | |||
+ | Negatywne Bazy Danych (NDB) przechowują w jawnej postaci negatywną informację. Można to przeanalizować na przykładzie łańcucha bitów 101. Negatywna reprezentacja to oczywiście wyliczenie innych wariacji: 001,010, itd. Stosując symbole wieloznaczne może to być również | ||
+ | < | ||
+ | Te dwie ostatnie specyfikacje są równoważne formule logicznej | ||
+ | |||
+ | $f=b_0\wedge \neg b_2 \lor \neg b_0$. | ||
+ | |||
+ | Znalezienie ciągu zdań (bitów), dla których formuła jest prawdziwa to zagadnienie | ||
+ | |||
+ | |||
+ | ==== 5. Analiza antyplagiatowa kodu ==== | ||
+ | :!: Zarezerwowany | ||
+ | |||
+ | Celem pracy jest implementacja systemu, który będzie umożliwiał przesłanie plików źródłowych w wybranym języku programowania przez zalogowanych użytkowników, | ||
+ | |||
+ | ===== 2019 ===== | ||
+ | |||
+ | Obecnie zarezerwowanych jest 12/12 | ||
+ | |||
+ | :!: ** Nie podejmuję się prowadzenia kolejnych prac ze wzgledu na osiągnięcie limitu** :!: | ||
+ | ==== 1. Wizualizacja danych geograficznych ==== | ||
+ | :!: Rezerwacja | ||
+ | |||
+ | Przegląd oraz dobór bibliotek, pakietów do wizualizacji. Główny cel - kolorowanie odcinków dróg na podstawie danych w celu pokazania dodatkowych własności, | ||
+ | |||
+ | ==== 2. Narzędzia WebScraping ==== | ||
+ | :!: Rezerwacja | ||
+ | |||
+ | Przegląd i porównanie narzędzi WebScraping dla kilku przykładowych zadań, np. zbieranie danych z serwisu nieruchomości lub samochodów, | ||
+ | |||
+ | |||
+ | ==== 3. Map matching ==== | ||
+ | (a) Implementacja (znanego) algorytmu rzutowania sekwencji odczytów GPS na mapę w postaci procedur składowanych dla PostgreSQL/ | ||
+ | |||
+ | Procedury mogą być zaimplementowane w | ||
+ | - [[https:// | ||
+ | - Java lub Pythonie (trudniejsze w konfiguracji i dyskusyjne wydajnościowo) | ||
+ | |||
+ | (b) Alternatywnie, | ||
+ | |||
+ | Zakres: | ||
+ | - załaduj mapę oryginalną | ||
+ | - podziel drogę na segmenty (od skrzyżowania do skrzyżowania) | ||
+ | - dodaj tabele/ | ||
+ | - dodaj tabele/ | ||
+ | - napisz procedurę, która dla nowego punktu: | ||
+ | - rozszerza graf o nowe możliwe wierzchołki // | ||
+ | - usuwa z grafu wierchołki, | ||
+ | - podprocedury powinny mieć warianty lub być sterowane parametrami | ||
+ | - Testy: | ||
+ | - jakościowe - czy ścieżki są odwzorowane poprawnie | ||
+ | - wydajnościowe - ile zapytań można przetwarzać w jednostce czasu, ewentualnie grupowanie punktów jednej ściezki | ||
+ | ==== 4. Wykorzystannie reguł rozmytych do rekomendacji produktów ==== | ||
+ | :!: Rezerwacja | ||
+ | Z użyciem zbioru danych MovieLens. Implementacja Python lub Java. Celem jest wyznaczenie zbioru reguł rozmytych (a zwłaszcza parametrów funkcji przynależności o założonym kształcie) [[https:// | ||
+ | //Jeżeli X lubi kryminały i komedie, Y lubi kryminały i Y ocenił wysoko film F, to rekomenduj F dla X.// | ||
+ | |||
+ | ==== 5. Aplikacja webowa do edycji dokumentacji projektowej ==== | ||
+ | :!: Rezerwacja | ||
+ | |||
+ | Projekt w stylu [[http:// | ||
+ | Konfigurowalna struktura dokumentu: [[http:// | ||
+ | Użycie PlantUML do generacji rysunków: [[http:// | ||
+ | |||
+ | ==== 6. Optymalizacja na GPU ==== | ||
+ | |||
+ | Implementacja popularnych algorytmów optymalizacji ciągłej na GPU: CUDA lub OpenCL. //Takich prac może być wiecej...// | ||
+ | |||
+ | W ramach **jednej** pracy implementacja **jednego** z wybranych algorytmów i przeprowadzenie testów dla różnych parametrów z uzyciem funkcji opublikowanych np. na CEC 2015. | ||
+ | |||
+ | Typowy zakres: | ||
+ | - opis algorytmu (np. mrówki, pszczoły, Differential Evolution, Backtracking, | ||
+ | - opis platfromy (CUDA/ | ||
+ | - opis implmentacji (wraz z parametrami i wariantami). W zależności od platformy i dostępnego sprzetu GPU można wykorzystywać wątki lokalne wewnątrz bloku | ||
+ | - wielokrotne testy dla okolo 15-20 funkcji z benchmarku dla różnych wymiarów i ich wyniki dla różnych parametrów. | ||
+ | - porównanie czasów wykonania | ||
+ | - tabele ilustrujące wyniki (procentowa odległość od rozwiązania optymalnego, | ||
+ | - wykresy - wartość funckji celu dla kolejnych iteracji | ||
+ | - dyskusja wyników | ||
+ | |||
+ | |||
+ | |||
+ | ==== Zarezerwowane/ | ||
+ | |||
+ | - Elixir | ||
+ | - WebAssembly | ||
+ | - Rekomendacja/ | ||
+ | - Przepisy (zamienione na web crawling + walidację) | ||
+ | - Smart Mirror | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== 2018 ==== | ||
+ | - Analiza nawierzchni tras rowerowych. Aplikacja dla systemu Android. Zbieranie danych GPS oraz odczytów czujników GPS. Etykietowanie głosowe. Głównym celem jest zebranie danych oraz przetestowanie możliwości rozpoznawania stanu nawierzchni. Dane zbierane w pamięci urządzenia + możliwość przekazywania na serwer (:!: zarezerwowane) | ||
+ | - Opcjonalnie (osobny temat) : backend + wizualizacja ścieżek rowerowych na mapie. Możliwość przetwarzania danych pomiarowych online (mikroserwis) | ||
+ | - Edytor/ | ||
+ | - Aplikacja webowa umożliwiające grupie użytkowników etykietowanie danych (fragmentów tekstów /wpisów z Twittera/ | ||
+ | - Symulacja ruchu drogowego w sieci autostrad oraz dobór parametrów | ||
+ | ===== 2016 ===== | ||
+ | |||
+ | ==== Ocena stanu nawierzchni dróg na podstawie danych z czujników urządzenia mobilnego==== | ||
+ | // | ||
+ | |||
+ | |||
+ | |||
+ | Celem pracy jest projekt i implementacja aplikacji mobilnej dla systemu Android, która będzie umożliwiała równoczesne zbieranie danych z czujnika GPS oraz akcelerometru wbudowanego w urządzenie mobilne. | ||
+ | |||
+ | *[[http:// | ||
+ | *[[http:// | ||
+ | *[[http:// | ||
+ | *[[https:// | ||
===== 2015 ===== | ===== 2015 ===== | ||
==== Porównanie narzędzi przechowywania danych w postaci relacyjnej i formacie RDF ==== | ==== Porównanie narzędzi przechowywania danych w postaci relacyjnej i formacie RDF ==== | ||
+ | |||
+ | :!: Zarezerwowane | ||
+ | |||
RDF to format reprezentacji danych w postaci trójek (subject - predicate - object). Na przykład osoba może być reprezentowana jako (id,' | RDF to format reprezentacji danych w postaci trójek (subject - predicate - object). Na przykład osoba może być reprezentowana jako (id,' | ||
Line 9: | Line 272: | ||
==== Edytor języka opisu architektury hurtowni danych ==== | ==== Edytor języka opisu architektury hurtowni danych ==== | ||
+ | |||
+ | :!: Zarezerwowane | ||
+ | |||
Elementami języka są: magazyny danych, procesy, dane, warstwy, agenci, elementy infrastruktury oraz modele. Mogą być one połączone odpowiednimi relacjami, a także mogą być im nadane własności. | Elementami języka są: magazyny danych, procesy, dane, warstwy, agenci, elementy infrastruktury oraz modele. Mogą być one połączone odpowiednimi relacjami, a także mogą być im nadane własności. | ||
Line 22: | Line 288: | ||
==== Symulator zużycia energii wykorzystujący modele | ==== Symulator zużycia energii wykorzystujący modele | ||
- | Celem pracy jest opracowanie modeli zachowania użytkowników, | + | Celem pracy jest opracowanie modeli zachowania użytkowników, |
Proste przykłady są dostępne także tu: [[http:// | Proste przykłady są dostępne także tu: [[http:// | ||
+ | |||
+ | ==== Ocena niebezpieczeństw w ruchu drogowym na podstawie danych mapy ==== | ||
+ | |||
+ | :!: Zarezerwowane | ||
+ | |||
+ | Celem pracy jest zbudowanie systemu umożliwiającego wnioskowanie o potencjalnych niebezpieczeństawach dla odcinków dróg na podstawie infromacji zawartej w mapach. W szczególności wynik wnioskowania może posłużyć do ustalenia ograniczeń prędkości. | ||
+ | |||
+ | Model ma być zapisywany w postaci reguł (rozmytych) postaci (na przykład): | ||
+ | JEŚLI wpobliżu(odcinek, | ||
+ | JEŚLI nalezydo(odcinek, | ||
+ | |||
+ | Ostateczny wynik ma być ustalany w wyniku agregacji wyników reguł. | ||
+ | Źródłem map będzie OSM (Open Street Map). | ||
+ | |||
+ | Praca może być realizowana przez dwie osoby z logicznym podziałem: | ||
+ | |||
+ | 1) Obsługa, wczytywanie map OSM + implementacja zbioru predykatów (wpobliżu, kręta, zabudowania, | ||
+ | |||
+ | 2) System wnioskowania i agregacji rezultatów oraz wizualizacja wyników (OpenLayers) | ||
+ | |||
+ | ==== Automatyczna anonimizacja tekstów | ||
+ | :!: zarezerwowane | ||
+ | |||
+ | Celem pracy jest implementacja systemu, który będzie przeprowadzał anonimizację dokumentów tekstowych - czyli zastępował nazwiska osób, nazwy firm, miejscowości symbolami zastępczymi (np.. inicjałami). Celem jest automatyzacja procesu anonimizacji orzeczeń sądowych, przykłady manualnych rezultatów można znaleźć tu: [[http:// | ||
+ | |||
+ | System powinien posługiwać się słownikami (nazwisk, miejscowości) oraz pozwalać na zdefiniowanie reguł anonimizacji. Wynikiem przetwarzania powinien być dokument XML zawierający zarówno oryginalną treść, jak i wskazanie anonimizowanych treści. Należy przewidzieć także jego wizualizację (np. z wykorzystaniem XSLT). | ||
+ | |||
===== 2014 ===== | ===== 2014 ===== |