Table of Contents

Informatyka II stopień: Studio projektowe 1 (2016)

Uwaga: strona zawiera informacje dla studentów II stopnia Informatyki.

FIXME Nie jest jeszcze gotowa

Terminy

Terminy spotkań: poniedziałek 15.30 C2 403

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ć:

Repozytoria

Dla poszczególnych projektów/grup zostaną założone repozytoria git. Mają się tam znaleźć:

Tematy projektów

Tematy projektów odzwierciedlają aktualnie prowadzone lub planowane prace badawcze. Podana liczba osób jest orientacyjna.

1. Semantyczne repozytorium wideo

Grupa 2-3 os. :!: Kontynuacja

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?

Przykłady zbiorów podlegających obróbce:

Do zrealizowania:

W projekcie można wykorzystać fragmenty implementacji serwera z poprzedniego cyklu.

2. System/algorytm budowy grafu pomieszczeń

Grupa 2 os.

Kluczowym zadaniem jest opracowanie i implementacja algorytmu, który generuje graf opisujący układ pomieszczeń na podstawie planów zapisanych jako bitmapy. Węzły to pomieszczenia, okna, drzwi, krawędzie to połączenia. Zarówno węzłom, jak i krawędziom mogą być przypisane atrybuty, np. rozmiar pomieszczenia, kształty geometryczne.

Przykładowy algorytm:

Funkcje systemu:

3. 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ść.

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.

4. 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:

Platforma Java.

Informacje o sieciach:

5. System śledzenia obiektów wewnątrz pomieszczeń

Grupa 2 os.

Celem projektu jest przede wszystkim zaproponowanie, opracowanie i porównanie kilku wersji algorytmów.

System powinien zapewniać:

Platforma: Java+Swing

6. 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)

7. 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.

Platforma, narzędzia, sposób interakcji – do ustalenia :!:

8. 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:

Krawędzie (relacje):

Graf sytuacyjny

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).

9. Kontynuacja projektu serwer SOAP / Android

Kontynuacja zrealizowanego w zeszłym roku projektu, w którym:

9.1 Kontekstowe usługi na mobilnych urządzeniach

Grupa 2 os.

Ideą jest, aby zestaw usług oferowanych przez mobilny serwer zależał od kontekstu, w którym się znajduje. Czyli zachodzi odwzorowanie [Kontekst] → [Zbiór usług]

Przykładowe składniki kontekstu:

Należy opracować i zaimplementować sensowne przypadki użycia.

9.2 Rozproszone obliczenia Pregel na mobilnych urządzeniach

Grupa 2 os.

Celem dalszych prac jest rozszerzenie platformy o możliwość wykonania algorytmu typu Pregel http://kowshik.github.io/JPregel/pregel_paper.pdf

Wyobraźmy sobie, że urządzenia mobilne implementują usługi wykonania na węzłach wybranych algorytmów (niekoniecznie wszystkie):

Zadaniem serwera jest przydział zadań do wykonania (fragmentów grafów) oraz orkiestracja przebiegu algorytmu.

10. Obliczenia równoległe na platformie OpenCL

Celem projektu jest implementacja wybranych populacyjnych algorytmów optymalizacyjnych, np.:

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 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.

lista algorytmów i problemów

10.1. Optymalizacja ciągła

Grupa 1-2 os.

Implementacja algorytmów dla zagadnień ciągłych ze zbiorów http://www.sfu.ca/~ssurjano/optimization.htmlhttp://www.robertmarks.org/Classes/ENGR5358/Papers/functions.pdf.

10.2 Optymalizacja dyskretna

Grupa 1-2 os. Zbiory: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/ http://people.brunel.ac.uk/~mastjjb/jeb/info.html http://anjos.mgi.polymtl.ca/qaplib/inst.html

11. Symulacja zachowania odbiorców energii

Grupa 2 os.

Celem tematu jest zbudowanie systemu symulującego zachowanie odbiorców energii elektrycznej korzystających z takich urządzeń, jak lodówka żelazko, klimatyzacja, zmywarka, pralka, podgrzewacz przepływowy, oświetlenie…

Projekt obejmuje:

Funkcjonalność systemu ma umożliwić konfigurację tych danych

Dane otrzymane w wyniku symulacji (zagregowane, a także indywidualne zużycie poszczególnych urządzeń) mają trafić do specjalnie w tym celu zaprojektowanej bazy danych. System powinien także wizualizować zebrane dane.

Symulator powinien wykorzystać środowisko agentowe JADE http://jade.tilab.com/ lub Akka http://akka.io/ (ale raczej język Java :) )

12. System rekomendacji ograniczeń ruchu na podstawie danych geograficznych

2 osoby

Współczesne ogólnodostępne mapy, np. Open Street Map (OSM) zawierają takie informacje, jak:

Celem projektu jest implementacja i testy oprogramowania/algorytmu, który będzie rekomendował ograniczenia ruchu (zwłaszcza ograniczenia prędkości) dla wybranych dróg mapy… Powinien wykorzystać takie informacje, jak:

Jako system rekomendacji należy użyć reguł rozmytych:

Etapy:

13. Android: wykorzystanie czujników wbudowanych w smartfonie

2 osoby Celem projektu jest implementacja aplikacji pozwalającej na zebranie danych zwracanych przez wybrane czujniki: akcelerometr, żyroskop, kompas, odbiornik GPS…

Do ustalenia:

14. Aplikacja do edycji opisów struktur dancyh

2 osoby

Celem projektu jest implementacja aplikacji webowej umożliwiającej zarejestrowanym użytkownikom (np. uczestnikom dużego projektu) wprowadzanie opisów struktur danych. Ogólnie, poziom złoóznoscipowinien być bliski RDF Schema oraz ewentualnie diagramów ilustrujących zależności.

Główne funkcje:

Kontynuacja prac inżynierskich

http://home.agh.edu.pl/~pszwed/wiki/doku.php?id=tematy_prac_inzynierskich

Najchętniej przez dotychczasowych wykonawców.

I.1. Autentykacja użytkownika na podstawie charakterystyk czasowych interakcji z urządzeniem mobilnym (Android)

1-2 osoby Na podstawie Autentykacja użytkownika na podstawie charakterystyk czasowych uderzeń w klawisze. Rozszerzenie i zmiana platformy. Implementacja gotowej do użycia biblioteki, przeprowadzenie testów, implementacja przykładowej apliakcji.

I.2. Rekomendacja brakujących wymagań dla projektów informatycznych

1-2 osoby Do rozważenia:

I.3. Symulacja komunikujących się pojazdów 

1-2 osoby

I.4. Metryki dla architektur oprogramowania

1 osoba

W pracy z 2013 roku zaimplementowana została wtyczka do Archi (język ArchiMate) umożliwiająca obliczenie kilku wybranych metryk.

Celem jest:

Rejestracja tematów

:!: Uwaga :!: Przed zarejestrowaniem tematu sprawdź, czy nie jest zajęty. Dany temat może zostać wybrany tylko przez jedną grupę.

Zarejestruj temat

Lista zarezerwowanych tematów

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.