Tematy prac magisterskich andrzej.lachwa@uj.edu.pl
Generowanie wirtualnej populacji miasta na podstawie wskaźników statystycznych
Celem pracy jest zaprojektowanie i wykonanie generatora masowych danych osobowych tworzących wirtualną populację jakiegoś miasta na podstawie dostarczonych przez użytkownika danych, wskaźników i rozkładów statystycznych. W sieci znajdujemy generatory sztucznych danych osobowych (zob. np. www.fakenamegenerator.com), jednak masowe generowanie wirtualnych osobowości przy pomocy takich narzędzi prowadzi do tworzenia populacji, które nie mają cech charakterystycznych dla populacji naturalnych, np. związków pokrewieństwa. Nie można np.. losowo przypisywać par elementów do relacji mąż-żona czy ojciec-córka.
Zależy nam na tym, by – dla przykładu – ludzie tworzyli rodziny, posiadali mieszkania, chodzili do szkół, pracowali, posiadali rachunki bankowe, korzystali z opieki zdrowotnej etc. I aby te dane były spójne i podobne do rzeczywistych danych zebranych dla jakiegoś miasta. Użytkownik ma mieć możliwość modyfikowania sugerowanych przez aplikację wskaźników czy rozkładów statycznych (rzeczywistych), np. popularności imion w latach, rozkładu wiekowego mieszkańców, liczby dzieci w rodzinach, liczby małżeństw, liczby rozwiedzionych rodziców, liczby osób w mieszkaniach, posiadanych rachunków bankowych, kart bankowych, wykształcenia, pracy, dochodów ...
Przykłady problemów do rozwiązania w fazie projektowania aplikacji: Czy dla wdowca będziemy generować dane jego zmarłej żony? Czy wykształcenie lub charakter pracy mają mieć wpływ na roczne dochody? Czy dla bezrobotnego będziemy generować historię (np. od kiedy jest bezrobotnym)? Czy małżonek pracujący zagranicą ma być zaliczany do mieszkańców miasta i do członków gospodarstwa domowego? Czy adresy zamieszkania mamy generować na podstawie mapy miasta i rozkładów gęstości zaludnienia? Czy szkoły mają mieć adresy, a większość uczniów danej szkoły ma mieszkać w jej pobliżu?
Aplikacja ma generować populacje o wielkości kilkudziesięciu czy kilkuset tysięcy mieszkańców na komputerze osobistym w akceptowalnym przez użytkownika czasie (co najwyżej kilku godzin). Wygenerowane dane mają być zapisane w wybranym popularnym formacie, np. bazy SQLite, a parametry procesu generacji w postaci metryki tego procesu, np. w formacie txt. W takiej metryce muszą znaleźć się wszystkie dane potrzebne do procesu generowania populacji, np. rankingi imion dla poszczególnych lat, czy nazwy ulic wraz z niezbędną historią. Powtórzenie procesu generowania populacji na podstawie danej metryki nie musi prowadzić do tego samego wyniku.
Symulator rozwoju demograficznego wirtualnej populacji miasta sterowany prognozami
Mamy konkretne miasto o danej liczbie mieszkańców, ulicach, szkołach, bankach, miejscach zatrudnienia. Dla tego miasta mamy wygenerowaną wirtualną populację mieszkańców, np. na dzień dzisiejszy. Symulujemy rozwój tej populacji, np. przez 15 lat: narodziny, zgony, małżeństwa, rozwody, utratę pracy, ukończenie szkoły, zmianę dochodów, migracje etc. Proces ten prowadzimy w oparciu o rzeczywiste prognozy demograficzne i gospodarcze, które program podpowiada, a użytkownik aplikacji może dowolnie modyfikować.
Aplikacja ma symulować rozwój populacji w dowolnym okresie wskazanym przez użytkownika, np. kilkunastu lat. Okres symulacji może być podzielony na kilka części po to, by w każdej z tych części mogły być użyte inne rozkłady statystyczne bądź inne dane brzegowe. Dla każdej z tych części musi być zapamiętana metryka zawierająca wszystkie dane użytkownika służące do wykonania tej części symulacji.
Aplikacja ma działać na komputerze osobistym w czasie akceptowalnym przez użytkownika, np. kilku/kilkudziesięciu godzin. Wygenerowane dane mają być zapisane w wybranym popularnym formacie, np. bazy SQLite, a parametry procesu symulacji w postaci metryki tego procesu, np. w formacie txt. Powtórzenie procesu rozwoju populacji na podstawie danej metryki/metryk nie musi prowadzić do tego samego wyniku.
Symulator wypłat z bankomatów dla wirtualnej populacji miasta
Mamy konkretne miasto o danej liczbie mieszkańców, np. 100000 Mamy konkretne miasto o danej liczbie mieszkańców, np. 100000. W mieście są ulice i instytucje, a w nich zlokalizowane bankomaty należące do różnych banków/sieci. Większość dorosłych mieszkańców i część niepełnoletnich ma karty do bankomatów. Każda z takich osób dokonuje zwykle kilku wypłat w miesiącu i korzysta zwykle z tych samych bankomatów. Różne grupy osób mają różne zwyczaje konsumenckie, więc potrzebują różnych kwot gotówki. Aplikacja ma odzwierciedlać, w miarę dokładnie, rzeczywistość, np. brak gotówki w bankomacie, awarie, brak żądanej kwoty na koncie użytkownika karty debetowej, przekroczenie limitu ustalonego dla karty, niezgodność PINu itd. itd.