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
tematy_prac_inzynierskich [2021/08/25 23:50]
pszwed [2021]
tematy_prac_inzynierskich [2023/07/13 00:59] (current)
pszwed [5. Zapytania w języku naturalnym do bazy danych (geograficznych)]
Line 9: Line 9:
  
 ====== Tematy prac inżynierskich ====== ====== Tematy prac inżynierskich ======
 +
 +===== 2023 =====
 +
 +Możliwe jest zgłaszanie propozycji własnych tematów. Ważnym dla mnie problemem jest wypełnienie rozwijanej aplikacji danymi tak, aby możliwe było przetestowanie wydajności. Raczej oczekiwane jest użycie 10000+ rekordów, a nie np. 20. 
 +
 +==== 1. Aplikacja do analizy sieci społecznościowej pracowników AGH ====
 +
 +Zarezerwowane [M.D.]
 +
 +Zakres pracy:
 +  - webscraping danych o publikacjach pracowników AGH (być może z pewnymi ograniczeniami)
 +  - zapis do bazy danych 
 +  - budowa grafów powiązań pomiędzy pracownikami (wspólne publikacje, takie same słowa kluczowe publikacji)
 +  - wizualizacja i przeglądanie danych  
 +
 +==== 2. Uczenie ze wzmocnieniem na platformie Ray ====
 +
 +Opracowanie jednego lub kilku przykładów ucznia ze wzmocnieniem korzystającego z modułów platformy [[https://www.ray.io/|Ray]]
 +Typowe zastosowanie - gra, której stan jest obserwowany i w zależności od stanu należy wydać odpowiednie polecenie. 
 +
 +Przy wsparciu biblioteki proces uczenia rozdzielony pomiędzy współbieżne zadania lub agentów. Należy zbierać dane dotyczące wydajności systemu (w tym czasów wykonania). 
 +
 +==== 3. Optymalizacja rozmieszczenia pojazdów w Car Sharing ====
 +
 +[D.K. - rezerwacja wersji z Gurobi]
 +
 +Celem jest rozwiązanie następującego zagadnienia:
 +  * mamy k lokalizacji (na przykład dzielnic) oraz pewną liczbę n pojazdów
 +  * w danym czasie t pojazdy są  rozmieszczone w lokalizacjach lub są w ruchu
 +  * Znane jest prawdopodobieństwo P(i,j,t) przejazdu z lokalizacji i do j rozpoczynającego się w czasie t. Czasy możemy zdyskretyzować , np. do 15 min.
 +  * Znany jest czas tego przejazdu T(i,j,t)
 +  * Jeżeli rozważymy pewien horyzont czasowy, np. 24h to możemy zasymulować zachowanie systemu i obliczyć E[T] - wartość oczekiwaną sumarycznego czasu ruchu samochodów w ciągu doby. W ten sposób wyznaczamy wartość funkcji celu.
 +  * W celu optymalizacji podejmujemy decyzję dotyczącą transferu pojazdu z lokalizacji i do j rozpoczętego w czasie t x_{ijt} = 0/1. Staramy przenieść samochody z lokalizacji o małym popycie do lokalizacji bardziej atrakcyjnych, niekoniecznie w danym momencie ale za kilka godzin.
 +  * Liczba przemieszczanych w danym momencie samochodów jest ograniczona (np. m=10 to liczba pracowników zajmujących się przemieszczaniem)  
 +  * Do rozważenia - platforma gurobi,  [[https://www.gurobi.com/jupyter_models/vehicle-rental-optimization/]]
 +  * lub opracowanie i implementacja własnago algorytmu heurystycznego   
 +
 +[W zasadzie może to być kilka prac,  gurobi vs. własna implementacja, różne algorytmy, implemetacja na GPU - CUDA lub OpenCL, itd.]
 +
 +==== 4. Propagacja informacji w dużym grafie (= grafie sieci drogowej) ====
 +[Zarezerwowane P.G. 02.07.2023]
 +
 +Celem pracy jest implementacja i testy oprogramowania implementującego 2-3 algorytmy propagacji informacji w grafie. Załóżmy, że utworzymy graf sieci drogowej Krakowa wydzielając kilkudziesięciometrowe odcinki dróg. Aktywacja jednego z odcinków (np. zmiana gęstości ruchu lub innego parametru) powinna być rozpropagowana w jego sąsiedztwie. Możliwe algorytmy to przesyłanie komunikatów do sąsiadów, rozwiązania wzorowane na automatach komórkowych lub losowe błądzenie po grafie (z ograniczeniem liczby kroków).
 +
 +Oczekiwana jest wizualizacja wyników (np. pogrubione/pokolorowane odcinki dróg). Możliwa implementacja na GPU (CUDA lub OpenCL).
 +
 +==== 5. Zapytania w języku naturalnym do bazy danych (geograficznych) ====
 +[Zarezerwowane A.M.]
 +
 +Interesuje nas zbiór danych przechowywanych w bazie OSM (https://www.openstreetmap.org/) dla Polski.
 +
 +Zakładamy pewną skończoną liczbę typów zapytań dotyczących różnych obiektów (około 20-30) , np.:
 + 
 +  * "miejscowość poniżej 10000 mieszkańców położone w pobliżu jeziora"  
 +  * "parkingi w Krakowie w dzielnicy Krowodrza"
 +takie zapytania należy rozpoznać i zamienić na kwerendy do BD, a następnie wyświetlić wyniki w aplikacji webowej
 +
 +  * Do przetwarzania tekstu i rozpoznawania typów zapytań i ich argumentów należy użyć biblioteki spaCy [[https://spacy.io/]] a zwłąszcza [[https://spacy.io/api/matcher]]
 +  * Aplikację można zaprojektować w architekturze backend - frontend, albo w postaci monolitycznej. 
 +  * Językiem spaCy jest Python, więc 
 +       * albo usługa będzie dostępna poprzez mikroserwis, 
 +       * albo backend będzie napisany w Pythonie (np. Flask, FastAPI)
 +       * albo cała aplikacja będzie napisana w Pythonie (np. Django lub dash)  
 + 
 +==== 6. Gra połączona z agentową symulacją świata ====
 +[Rezerwacja J.G]
 +
  
 ===== 2021 ===== ===== 2021 =====
 +
 +**Wyczerpałem limit prac inżynierskich** 
  
 Możliwe jest zgłaszanie własnych tematów. Jednak, nie chcę prowadzić prac polegających na implementacji aplikacji webowej/mobilnej  Możliwe jest zgłaszanie własnych tematów. Jednak, nie chcę prowadzić prac polegających na implementacji aplikacji webowej/mobilnej 
Line 42: Line 111:
  
 === 8. Projekt i implementacja wybranych algorytmów grupowania dla PostgreSQL===  === 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.+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. [zarezerwowane HM]
  
 === 9. Rozpoznawanie emocji w głosie===  === 9. Rozpoznawanie emocji w głosie=== 
Line 49: Line 118:
  
 === 10. Generacja informacji o ruchu w grafie ===  === 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).    +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).    [zarezerwowane SK]
  
 === 11. Grupowanie obiektów na mapie===  === 11. Grupowanie obiektów na mapie=== 
tematy_prac_inzynierskich.1629928238.txt.gz · Last modified: 2021/08/25 23:50 by pszwed
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0