Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
tematy_prac_inzynierskich [2020/03/10 14:39]
pszwed [2020]
tematy_prac_inzynierskich [2021/07/10 03:36]
pszwed [2021]
Line 1: Line 1:
-===== Szablon =====+===== Struktura pracy =====
  
-  - bez katedry (to nie ma większego znaczenia), +  *[[struktura_pracy_inz|Struktura pracy]]
-  - //Projekt dyplomowy// (a nie //Projekt inżynierski// ani //Praca dyplomowa//), +
-  - czcionka nie ma dużego znaczenia +
-  - na drugiej stronie nie ma już oświadczenia, bo są one osobno składane.+
  
-Jeżeli praca została wysłana do Wirtualnej Uczelni, nie jest konieczna jej modyfikacja. [07.01.2020]+  *[[prace_inz_uwagi|Uwagi]]
  
-===== Proces dyplomowania =====+  *[[proces_dyplomowania|Proces dyplomowania]]
  
-  - Dyplomatka/Dyplomant przesyła mailem Promotorowi pracę do poprawy  
-  - Promotor nanosi poprawki. Ten cykl może się powtarzać... 
-  - Kiedy nie ma uwag, przygotowywana jest wersja finalna w PDF i przekazywana przez Dyplomantkę/Dyplomanta do Wirtualnej Uczelni. //Proszę zwrócić uwagę, czy poprawnie podano informacje na stronie tytułowej, np. tytuł w j. angielskim, kierunek, katedrę itp.// Od tego czasu nie można wprowadzać zmian, ponieważ system przetwarza sumy kontrolne wygenerowane z PDF. Jest to także dobry moment na przesłanie kodu pracy, zbiorów danych, itp. 
-  - Praca automatycznie trafia do systemu antyplagiatowego i po jakimś czasie (liczonym na ogół w godzinach) pojawia się raport 
-  - Promotor potwierdza, że praca nie jest plagiatem, pisze opinię w systemie Baza Prac EAIiIB i wgrywa opinię do systemu Wirtualna Uczelnia. Wystawia też ocenę.  
-  - Często w tym momencie następuje wybór Recenzenta (o ile nie jest narzucony wcześniej) 
-  - Następnie praca zmienia status na //zatwierdzona// i recenzent jest powiadamiany, że może pobrać PDF i przystąpić do recenzji. Czasem recenzent nie jest wprowadzony do systemu i musi to zrobić manualnie pracownik Dziekanatu (oczywiście w dzień roboczy). 
-  - Recenzent przygotowuej recenzję w systemie Baza Prac  EAIiIB i wgrywa ją do Wirtualnej Uczelni, wystawia też ocenę. Zazwyczaj nie trwa to długo (2-3 dni), ale system zakłada 5 dni na recenzję. Czasem Recenzent może chcieć uzyskać wgląd do kodu pracy. 
-  - Recenzent i promotor drukują opinie (są to osobne kartki), podpisują je i najczęściej zostawiają na półeczce na korespondencję w sekretariacie Katedry C2 406, czynne od 9.00-15.00 
-  - Zadaniem Dyplomantki/Dyplomanta jest zebranie popdpisanych recenzji, wydrukowanie pracy i innych niezbędnych dokumentów oraz złożenie w Dziekanacie 
  
-W przypadku pomyłek, błędów, niestandardowych systuacji wszelkie interwencje dokonywane są manualnie przez administratora systemu, co zajmuje sporo czasu. Więc proszę dokładnie sprawdzać dokuemnty przed przesłaniem.+====== Tematy prac inżynierskich ======
  
-:!: Kluczowe jest zapisanie się na jakiś (realny) termin obrony. Dla prac nieukończonych, w trakcie poprawek - raczej sugerowałbym dalsze terminu.+===== 2021 =====
  
-===== Struktura pracy ======+Możliwe jest zgłaszanie własnych tematów. Jednak, nie chcę prowadzić prac polegających na implementacji aplikacji webowej/mobilnej  
 +z użyciem typowego stosu technologicznego, do której dorobiona jest specyfikacja w stylu [[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=amo:projekt_tematy|Analizy i Modelowania Oprogramowania]]. Na ogół bardzo trudno taką aplikację wypełnić danymi i później porządnie przetestować. 
  
-[[struktura_pracy_inz|Struktura pracy]] 
  
-=====Uwagi===== 
  
-  * W tekście pracy nie używamy czasu przyszłego (opisujemy toco jest/istnieje lub to, co zostało zrobione+=== 1. Optymalizacja ciągła: PyTorch + algorytm pszczeli===  
-  * Nie piszemyże //chcemy przybliżyć// lub //ułatwić zrozumienie//. Czytelnikiem jest osoba oceniająca pracę, więc nie można sugerować, że czegoś może nie rozumieć ;-) +[zajęteMW] 
-  * W miarę mozliwosci ilustrujemy tekst rysunkamiNawet prostymi, typu przepływ danych od A do D poprzez B i C-> B -> C -> D.  + 
-  * Podczas obrony przewidziana jest trwająca około 7 min prezentacjapodczas której pokazuje się 8-12 slajdówPrezentacja jest oceniana (25% oceny obrony)Rysunki wybrane pracy są tu dobrymi kandydatami na treść slajdów. +=== 2. Optymalizacja ciągła - algorytm mrówkowy===  
-  * Prezentacja powinna obejmować: +Obejmuje opracowanie algorytmu (specyficzna implementacja). Platforma TensorFlow lub PyTorch lub CUDA 
-      - Slad tytułowy +Testy z użyciem funkcji testowych z konferencji CEC 
-      - Cel pracy + 
-      - Przedstawiennie problemu, motywacje +=== 3. Inne algorytmy optymalizacji ciągłej === 
-      Może zawierać elementu przegladu literatury (ale krótko) +Do ustalenia.   
-      Opis prac własnych (zaprojektowano, zaimplementowano, przetestowano, rezultaty). Raczej rysunkidiagramy, niewielkie tabele, mało tekstu+ 
-      Podsumowanie  +=== 4. Baza wiedzy z rozmytymi relacjami===  
-  Zła prezentacja: +Na przykładzie rekomendacji dietetycznych dla różnych typów schorzeń. 
-     Ma 20 slajdów +Obejmuje: bazęinterfejs dostępu REST do odczytu i zapisu, aplikację webową. Należy wypełnić bazę przykładowymi danyminp dla 2-3 schorzeń i produktów spozywczych. 
-     W tym 12+ to przegląd literatury i przytoczenie znanych faktów/definicji/rozwiązań/technologiia 3 slady na prace asne + 
-     Dyplomant skupia się na szczegółach +=== 5. Repozytorium danych tekstowych na potrzeby NLP ===  
-     Około 14 slajdu przewodniczący komisji przerywa i prosi o przejście do podsumowania (przed slajdami z pracami własnymi+Obejmuje projekt i implementację bazy danych + web scraping artykułów z wybranych 2-3 źródeł (np. PubMed), indeksowanie według wybranych terminów. 
-====== Tematy prac inżynierskich ======+ 
 +=== 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 (biegchód,  jazda samochodem, rowerem). Następnie przeprowadzić ekstrakcję cech (widmo częstotliwości, zero-crossing rate, itpi przeprowadzić klasyfikację.  
 + 
 +=== 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://dot.ca.gov/programs/traffic-operations/mpr/pems-source 
 + 
 +=== 8Projekt i implementacja wybranych algorytmów grupowania dla PostgreSQL===  
 +Przykładowe algorytmy to k-meansdb-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 klientem, kłótnia, program informacyjny, itp.) Dla każdej kategorii należy wyekstrahować około 100 kilkunastosekundowych przykładów różnych źródeł (filmy, podcasty). Następnie korzystając z biblioteki librosa wyekstrahować cechy i przeprowadzić klasyfikację. Patrz [[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=med:start]] 
 + 
 + 
 +=== 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 danym miejscu i przedziale czasu (natężeniu ruchu).     
 + 
 +=== 11. Grupowanie obiektów na mapie===  
 +Implementacja algorytmuktó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).  
 + 
 + 
 +<!-
 +**Na razie nie mam propozycji tematów *
 + 
 +Generalnie, nie chcę prowadzić tematów polegających na implementacji aplikacji webowej/mobilnej z użyciem typowego stosu technologicznegodo której dorobiona jest specyfikacja stylu [[http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=amo:projekt_tematy|Analizy i Modelowania Oprogramowania]]. Na ogół bardzo trudno taką aplikację wypełnić danymi i później porządnie przetestować.  
 + 
 +Typowy zakres prac 
 +  eksploracji danych/uczenie maszynowego - tu można wybrać kilka obszarów - obrazy, muzyka, NLP, szeregi czasowe, np. dane o natężeniu ruchu drogowego, notowania giełdowe  
 +  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 ===== ===== 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 ==== ==== 1. Map matching ====
-Zarezerwowane? :?:+Zarezerwowane jako implementacja w Pythonie? :?:
  
 (a) Implementacja (znanego) algorytmu rzutowania sekwencji odczytów GPS na mapę w postaci procedur składowanych dla PostgreSQL/PostGIS, na podsatwie [[https://www.researchgate.net/publication/263855222_SLIDES_An_Incremental_Map-Matching_Algorithm_Based_on_Hidden_Markov_Model]] (a) Implementacja (znanego) algorytmu rzutowania sekwencji odczytów GPS na mapę w postaci procedur składowanych dla PostgreSQL/PostGIS, na podsatwie [[https://www.researchgate.net/publication/263855222_SLIDES_An_Incremental_Map-Matching_Algorithm_Based_on_Hidden_Markov_Model]]
Line 74: Line 95:
     - jakościowe - czy ścieżki są odwzorowane poprawnie     - jakościowe - czy ścieżki są odwzorowane poprawnie
     - wydajnościowe - ile zapytań można przetwarzać w jednostce czasu, ewentualnie grupowanie punktów jednej ściezki     - 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://www.tflsgo.org/special_sessions/cec2019]]. Konieczna jest ich reimplementacja. Funkcje CEC wykorzystują kilkanascie funkcji bazowych, które następnie są zniekształcane przez przesuniecia i rotacje. W przypadku kilku prac można zestw funkcji opracować wspólnie.
 +  * Z reguły algorytmy mają jakieś parametry. Dla danej funkcji  należy przeprowadzić dobór parametrów przez losowe lub systematyczne przeszukanie przestrzeni parametrów.
 +  * 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ć, np. wyznaczajac najlepszą wartośc funkcji 10 razy, podać wartości srednie, odchylenia standardowe, itp
 +
 +=== 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, np. wykorzytsujac idee z [[https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4037618/]]
 +
 +=== 2.c Algorytm pszczeli ===
 +
 +Istnieje kilka wersji...  
 +
 +=== 2.d === 
 +
 +Inne do przedyskutowania..., np [[https://troja.uksw.edu.pl/zasoby/SL2014-ZhangSanderson2009.pdf]]
 +
 +==== 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.  Testy mają obejmować  [[https://scikit-learn.org/stable/modules/clustering.html|typowe przykłady 2D]] oraz kilkanaście zbiorów danych z repozytorium UCI. 
 +
 +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ż 
 +<code>1*0, 0**</code> 
 +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  [[https://pl.wikipedia.org/wiki/Problem_spe%C5%82nialno%C5%9Bci|SAT]], które jest problemem o złożoności NP. Jest to problem łatwy, dla 1-20 bitów (zastosowanie brute force), ale dla  64 trudny. Celem pracy jest implementacja algorytmów generacji NDB oraz przeprowadzenie testów, czy możliwe jest złamanie wygenerowanych NDB z użyciem wybranych solwerów SAT (np. [[http://minisat.se/|Mini SAT]] i  [[https://www.princeton.edu/~chaff/zchaff.html|zChaff]]).
 +
 +
 +==== 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, a następnie określał stopień podobieństwa kodu. Podstawowym narzędziem do wykorzystania jest znany algorytm określania najdłuższego wspólnego podciągu. Można zajrzeć tu [[http://home.agh.edu.pl/~pszwed/wiki/lib/exe/fetch.php?media=07-imperatywne-jezyk-c-lancuchy-znakow.pdf|str 27]]. Podobieństwo powinno być określane: na poziomie znaków oraz na poziomie symboli. Szczególnie interesująca jest modyfikacja algorytmu tak, aby uwzględnić substytucję symboli, tzn. jeżeli napotkany zostanie identyfikator x12 oraz odpowiadający mu identyfikator y10, wówczas obliczony zostanie także stopień dopasowania po zamianie x12 na y10.
 +
 ===== 2019 ===== ===== 2019 =====
  
tematy_prac_inzynierskich.txt · Last modified: 2024/06/17 14:54 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0