Table of Contents
Studio projektowe 2 (2017)
Propozycja kontynuacji dla grup
Analiza polskich tekstów z Twittera
- Użycie word2vec np.. z TensorFlow do zbudowania gęstej reprezentacji słów lub tagów. Tutorial: https://www.tensorflow.org/tutorials/word2vec
- Hierarchiczne grupowanie użytkowników według podobieństwa cech stylistycznych
- Analiza sentymentu - znaczne zwiększenie zbioru uczącego i dodanie klasy neutralnej
Interfejs do wprowadzania podstawowych elementów opisu wymagań projektów informatycznych i wykrywanie powiązań
Zamiast: Interfejs do wprowadzania danych dla systemu służącego do ustalania ograniczeń prędkości
- Tworzenie projektów (słów kluczowych, kategorii projektów)
- Nazwy klas + defincje, w tym atrybuty
- Nazwy aktorów + definicje
- User stories lub nazwy przypadków użycia i definicje (przebieg główny i alternatywne)
- Próba wykrycia elementów opisu zachowania z tekstu Aktor-akcja (czasownik) - klasa
Operacje na sekwencjach zdarzeń
- Uściślenie modelu - stan vs. zdarzenie.
- Poprawa translacji formuł do postaci automatów
- Integracja kodu Java po stronie serwera
Algorytm PSO
- Implementacja algorytmu PSO na platformie nd4j i porównanie z OpenCL
- Inne topologie, np. turniejowe PSO
- Pełna implementacja funkcji testowych CEC
Generacja ontologii o zadanych parametrach złożoności
W projekcie zaimplementowano miary podobieństwa reprezentacji grafowych. Zastosowanie do rzeczywistych ontologii. Główne pytanie - czy styl ich definiowania wykazuje statystyczne podobieństwo (głębokość, liczba relacji, liczba atrybutów).
Metoda - Wyszukiwane są ontologie na Swoogle. - Są przekształcane do reprezentacji grafowej (raczej kod Java) - Budowane są cząstkowe miary podobieństwa - Budowana miara sumaryczna (agregacja miar cząstkowych)
Biblioteka map matching
Map matching to rzutowanie ciągu danych GPS na rzeczywiste drogi tak, aby zbudować prawdopodobną ścieżkę ruchu pojazdu. Ten problem budzi bardzo duże zainteresowanie, ponieważ funkcja jest przydatna w wielu aplikacjach.
Celem projektu jest implementacja biblioteki (rozwiązania) dla wybranej platformy. Wymagane funkcje to (1) zdefiniowanie grafu dróg (wraz z topologią) oraz (2) implementacja właściwego algorytmu rzutowania.
Źródłem danych powinna być mapa OSM Możliwe rozwiązania: * implementacja wewnątrz Postgres + Postgis w języku PL/pgSQL (wykorzystanie gotowych narzędzi importu do Postgres), * interfejs do definiowania grafu w pamięci (lub importu) oraz implementacja algorytmu w wybranym języku programowania (Java, Python)
W obu przypadkach wskazane jest wykorzystanie biblioteki GIS do przetwarzania geometrii i zwracanie rezultatów w postaci geometrii (linestring).
Studio projektowe 2 (2016)
Terminy
Terminy spotkań: środa 12.30 ?
Organizacja
Projekty są wykonywane w grupach. Zaleca się, aby były to grupy o liczebności wskazanej przy tematach projektów. Grupa powinna wybrać temat projektu z listy i zarezerwować za pomocą formularza rejestracji. Tematy projektów muszą być unikalne. Jeżeli na liście pojawią się dwie rezerwacje tego samego projektu – późniejszy wpis zostanie usunięty.
Harmonogram
Grupa, która wybrała projekt ma zaproponować i ustalić:
- podział na zadania
- plan realizacji (termin i osoba)
- kamienie milowe (prezentacja wyników danego etapu)
Repozytoria
Dla poszczególnych projektów/grup zostaną założone repozytoria git. Mają się tam znaleźć:
- Harmonogram
- Raport z realizacji (uaktualniany nie rzadziej niż co 2 tygodnie)
- Kod źródłowy
Tematy projektów I
Poniższe tematy są częściowo związane z prowadzonymi pracami magisterskimi.
I-1. Generacja ontologii o zadanych parametrach złożoności
1-3 os
Celem projektu jest generacja ontologii (grafu) o zadanych parametrach statystycznych. Parametry należy częściowo wzorować na propozycji w publikacji http://www.nature.com/ncomms/2015/151020/ncomms9627/full/ncomms9627.html.
Podane miary należy dostosować do modelu: - krawędź grafu może być związana z relacją
- dziedziczenia (taksonomiczną)
- “zwykłą” relacją (object property) pomiędzy klasami
- relacją przynależności obiektu do klasy
- relacją pomiędzy obiektami
- parametrem jest też liczba atrybutów (klasy i obiektu)
I-2. Symulacja zmian zużycia energii
1-3 os
Celem jest zbudowanie modelu symulacyjnego i jego wizualizacja (OpenGL). Zakładamy:
- kilka profilów zachowania odbiorców, konkretny odbiorca jest ich kombinacją liniową
- rozproszenie geograficzne
- wpływ temperatury: model powinien mieć warstwę automatów komórkowych do symulacji dynamiki zmian temperatury
- wpływ pogody (podobnie)
- wpływ czasu (w cyklu dziennym, dni powszednie/świeta, miesiące)
I-3. Wektorowe reprezentacje tekstu
1-3 os
Uruchomienie i ocena narzędzi/bibliotek realizujących model word2vec. Zastosowanie do języka polskiego (z lematyzacją/bez lematyzacji wyrazów).
https://papers.nips.cc/paper/5021-distributed-representations-of-words-and-phrases-and-their-compositionality.pdf
http://deeplearning4j.org/word2vec
I-4. Graf komunikujących się agentów
3 os
Celem projektu jest zbudowanie biblioteki ogólnego przeznaczenia umożliwiającej tworzenie i uruchamianie modeli w postaci grafów komunikujących się agentów (protokół P2P). Biblioteka Akka.
Szczegółowe wymagania powinny zostać ustalone tak, aby odpowiadały one typowym zastosowaniom do optymalizacji w środowisku rozproszonym.
- różne typy/role agentów - wsparcie dla topologii zawierających hierarchie - różna postać przechowywanych i przesyłanych danych (np. typ generyczny) - sterowanie pojawianiem się i zanikaniem agentów - agent oszust?
I-5. Integracja danych geoprzestrzennych/drogowych
Grupa 1-2 os.
Celem pracy jest praktyczna realizacja integracja danych obejmujących:
- dane mapy OSM
- dane oznakowania pionowego (DBF)
- dane o wypadkach (XLS)
- dane o natężeniu z bramek autostrad (XLS)
W ramach projektu należy zaproponować model danych, utworzyć bazę i zaimportować dane. W przypadku projektu 2-osobowego dodatkowo interfejs REST/SOAP.
—
Tematy projektów II
II-1. Semantyczne repozytorium video
Repozytorium przechowuje zasoby (np. klipy wideo, ramki wideo, wydzielone obiekty) oraz implementuje kontenery typu sekwencja oraz zbiór (bag). Dodatkowo, implementuje także nazwane relacje binarne pozwalające na ustalenie powiązań. Dla każdego z elementów można zdefiniować metadane w postaci par klucz-wartość. Należy przewidzieć hierarchiczne klucze (np.. w stylu rejestrów windows), które w interfejsie mogą być np. odwzorowane na XML. Zastosowanie: wsparcie dla systemu analizy wideo.
Co może być umieszczone?
- Dane opisujące ustawienia kamery
- Obrazy tła z anotacjami czasowym
- Przetworzone ramki obrazu
- Zdefiniowane stałe obiekty sceny (typy + informacja geometryczna)
- Wydzielone segmenty obrazu (ramki, elipsy, wieloboki lub bitmapy)
- Wydzielone obiekty (ramki, elipsy, wieloboki lub bitmapy), typy obiektów
- Relacje pomiędzy obiektami (wraz z cechami)
- Wektory cech przypisanych obiektom i relacjom (pary klucz-wartość)
- Obiekty mogą być wykryte (zidentyfikowane) ale mogą to być również manualne anotacje
- Dodatkowo - powiązania między klipami, np. ta sama scena obserwowana z różnych kamer
Przykłady zbiorów podlegających obróbce:
Do zrealizowania:
- serwer (BD + usługi sieciowe)
- opracowanie przypadków użycia
- implementacja przykładowych klientów
- fasady dla serwera implementujące wybrane specyficzne interfejsy
W projekcie można wykorzystać fragmenty implementacji serwera z poprzedniego cyklu.
II-2. Agentowy system sterowania oświetleniem drogowym
Grupa 2 os. Kontynuacja
Celem projektu jest budowa systemu symulującego inteligentny obszarowe sterowanie oświetleniem dróg.
Rozważamy sieć drogową podmiejską. Przy drogach rozmieszczone są lampy diodowe, dla których można sterować natężeniem światła. Przy lampach zainstalowane są czujniki ruchu pozwalające wykryć pojazd i oszacować jego prędkość.
- Kiedy droga jest pusta, lampy świecą światłem małej mocy.
- Kiedy wykrywany jest pojazd, lampy mają przed nim rozjaśnić się z wyprzedzeniem uzależnionym od prędkości, pola widzenia, itp.
- Należy również rozważyć ruch ciągły na wybranych drogach (utrzymywane stałe natężenie)
System składa się ze sterowników (agentów) działających równolegle i zarządzających kilkunastoma lampami i czujnikami na pewnym obszarze. Agenci przekazują sobie informację o nadjeżdżającym pojeździe tak, aby “przekazać” sobie pojazd.
- Import mapy z OSM
- Manualne naniesienie lamp i zaznaczenie obszarów
- Symulacja ruchu pojazdów (różne natężenia) wraz z wizualizacją
- Implementacja pojedynczego sterownika
- Integracja kilku(nastu) sterowników wraz z wymianą komunikatów (definicja protokołu)
- Wizualizacja zmian natężenia światła podczas ruchu pojazdów
- Automatyczne rozmieszczenie lamp (w zadanym obszarze)
- Automatyczna budowa grafu połączeń
- Testy działania i dobór parametrów
II-3. Sieci Petriego XQPN
Grupa 2-3 os.
Ideą sieci XQPN jest wykorzystanie języka funkcyjnego XQuery do przetwarzania rozproszonych dokumentów XML. Umieszczone są one w miejscach sieci. Tranzycje przesyłają dane pomiędzy miejscami. W ich definicji stosowane są wyrażenia zapisane w języku Xquery.
Projekt obejmuje dwa moduły:
- Silnik wykonania sieci XQPN (z użyciem Saxon HE: http://www.saxonica.com/welcome/welcome.xml)
- Edytor sieci Petriego XQPN najchętniej na platformie Eclipse/EMF wraz z możliwością wizualizacji wykonania
Platforma Java.
Informacje o sieciach:
- Szwed, P.: XQPN – colored Petri nets for processing XML data with XQuery language Electrical Review Stowarzyszenie Elektryków Polskich ; ISSN 0033-2097. — 2010 R. 86 nr 9 s. 221–225 PDF
- Szwed, P., Wadowski, D., Paździora, K.: A framework for testing Web services based on XQPN Petri nets In IFIP 2009: Software Engineering Techniques in Progress : the 4th IFIP TC2 Central and East European Conference on Software Engineering Techniques, CEE-SET 2009 : Kraków, Poland, October 12–14, 2009 / eds. Zbigniew Huzar, Jerzy Nawrocki, Marcin Szpyrka. — Kraków : AGH University of Science and Technology Press, 2009. — ISBN 978-83-7464-259-0. — 53–66. PDF Presentation: PPT
II-4. Uczenie map kognitywnych -- predykcja ruchu drogowego
Grupa 2 os.
Motywacje: w rozwijanym systemie zbierane są parametry ruchu dla wybranych dużych skrzyżowań (np.: skrzyżowanie Czarnowiejska/Aleje). Ich źródłem są kamery wideo. Na podstawie interpretacji danych z kamer określane są takie parametry, jak prędkość ruchu, czas wykonania manewru na skrzyżowaniu lub długość kolejki pojazdów. Pokrycie pomiarami w docelowym systemie można szacować na 1% odcinków dróg. Równocześnie, system powinien dostarczać przybliżone informacje o parametrach ruchu dla dróg nieobjętych monitorowaniem.
Mapy kognitywne: http://home.agh.edu.pl/~pszwed/en/lib/exe/fetch.php?media=papers:fcm-ocena-jednostek-slides.pdf
Projekt obejmuje następujące etapy:
- Modelowanie zależności pomiędzy ruchem z wykorzystaniem map kognitywnych dla wybranego skrzyżowania
- Opracowanie algorytmu uczenia map kognitywnych dla sztucznych przebiegów czasowych (ogólnie jest to algorytm optymalizacji – do dyskusji czy dyskretnej czy ciągłej)
- Automatyczne wygenerowanie mapy kognitywnej dla wybranego obszaru mapy połączeń drogowych
- Zebranie danych symulacyjnych
- Testy algorytmu
Źródło mapy: Open Street Map (OSM)
Projekt ma wykorzystywać pakiet SUMO będący zaawansowanym narzędziem symulacji ruchu drogowego.
Możliwe wykorzystanie wyników pracy magisterskiej (w tym zbieranie danych z SUMO)
II-5. Repozytorium zdarzeń zarejestrowanych podczas wykonania procesów
Grupa 2 os. Repozytorium (o charakterze hurtowni danych, czyli danych nie usuwamy) przechowuje informacje o sekwencjach zdarzeń oraz pozwala na wykonanie zapytań, których wynikiem są sekwencje.
- Projekt i implementacja repozytorium.
- Zasilanie: pliki tekstowe w formacie XES http://www.xes-standard.org/
- Model zapytań:
- Restrykcja (ograniczenie zdarzeń w sekwencji do elementów spełniających określone warunki)
- Selekcja ciągów zawierających zdarzenia o wybranych atrybutach
- Selekcja ciągów zdarzeń spełniających warunki temporalne – formuły opisujące następstwo zdarzeń i inne operatory w stylu http://en.wikipedia.org/wiki/Linear_temporal_logic. Jest to kluczowy element projektu.
- Join: utworzenie ciągu zdarzeń na podstawie dwóch (kilku) ciągów spełniających określone warunki
Platforma, narzędzia, sposób interakcji – do ustalenia
II-6. Symulator systemu zbierania informacji taktycznych wykorzystujący reprezentację grafową
Grupa 2-3 os.
Dynamicznie zmieniające się informacje taktyczne reprezentowane są w postaci grafu z atrybutami: Wierzchołki:
- jednostki biorące udział w akcji (agenci)
- punkty terenu, bezpieczne miejsca, schronienia, miejsca zbiórki dla ewakuacji
- obszary objęte zagrożeniem
- jednostki wroga
- cywile lub ich grupy
Krawędzie (relacje):
- kontakt wzrokowy,
- bliskość, dostępność
- łącza komunikacyjne
- przepustowość
Graf sytuacyjny
- Utrzymywany i uaktualniany na szczeblu taktycznego systemu dowodzenia
- Prognozowanie w warunkach niepewności lub utraty łączności
- Agenci utrzymują częściowe grafy sytuacyjne (podgrafy). Ze względu na ograniczenia pasma następuje transmisja danych różnicowych.
Jest to projekt w pewnym sensie bliski programowaniu gier. Oczekiwana jest symulacja ruchu, np. na heksagonalnej siatce, wraz z możliwością wizualizacji stanu grafu (punkt widzenia agenta).
II-7. Obliczenia równoległe na platformie OpenCL
Celem projektu jest implementacja wybranych populacyjnych algorytmów optymalizacyjnych, np.:
- PSO (Particle Swarm Optimization)
- ACO (Ant Colony Optimization)
- BA (Bees Algorithm)
- inne?
Cechą charakterystyczną ma być implementacja na platformie obliczeń równoległych OpenCL (można także użyć biblioteki aparapi w języku Java ). Biblioteka i driver OpenCL są dostępne dla kart graficznych Intel, AMD, znacznej części kart NVIDIA, Procesorów wielordzeniowych Intela oraz Intel HD graphics. Podczas obliczeń równoległych można przetwarzać duże populacje, rzędu 10000 osobników.
II-8. Przetwarzanie danych na platformie Apache Storm
Rejestracja tematów
Uwaga Przed zarejestrowaniem tematu sprawdź, czy nie jest zajęty. Dany temat może zostać wybrany tylko przez jedną grupę.
Funkcja do rejestracji jest niestety bardzo prymitywna, za co z góry przepraszam. Działanie jej polega na dopisywaniu kolejnych wierszy do pliku tekstowego. Nanosząc ręcznie poprawki najłatwiej jest mi usuwać całe wiersze.
- Jeśli 1-2 osobowa grupa chce dodać kolejną osobę - proszę zarejestrować jeszcze raz wpisując wszystkich członków grupy. Wcześniejszy wpis zostanie usunięty
- Jeżeli grupa chce zmienić temat - proszę zarejestrować jeszcze raz grupę i nowy temat.