Realizacja zapytań wzorcowych
Transkrypt
Realizacja zapytań wzorcowych
POLITECHNIKA ŚLĄSKA INSTYTUT INFORMATYKI LABORATORIUM HURTOWNI DANYCH Realizacja zapytań wzorcowych TEORIA Marcin Gorawski Paweł Jureczek Gliwice 2009 2 1. Wprowadzenie Zapytania o wzorce służą wykrywaniu powtarzających się sytuacji w tym np. kolejnego odwiedzania tych samych miejsc w określonym czasie. Przykładem może tu być sekwencja odwiedzania przez turystów głównych atrakcji na danym obszarze. Podobna sytuacja występuje w przypadku analizy zachowań pieszych lub obserwacji przeglądanych przez użytkowników stron internetowych. Ze względu na to, że w przypadku trajektorii wykrycie różnych interesujących zależności przestrzennych byłoby trudne z punktu widzenia analizy tylko i wyłącznie współrzędnych, wzorce trajektorii bazują zazwyczaj na regionach zainteresowania RoI (Regions of Interest). Regiony zainteresowania mogą być określone na podstawie właściwości geograficznych np. sieci dróg lub popularnych miejsc często odwiedzanych przez ludność. W przypadku gdy mamy zdefiniowane regiony zainteresowania (znamy ich kształty i położenie), proces wyszukiwania wzorców składa się zazwyczaj z kilku etapów. Najczęściej najpierw przetwarzamy punkty odzwierciedlające trajektorie obiektów na określone sekwencje regionów (mapujemy punkty na regiony), po czym w procesie eksploracji danych analizujemy konkretne zachowania. Gdy regiony zainteresowania są nieznane, możemy je wyznaczyć automatycznie. Automatyczne wyznaczanie RoI opiera się na wyznaczeniu najczęściej odwiedzanych obszarów, co pociąga za sobą konieczność przeliczenia trajektorii. 1.1. Definicje [2] Celem analizy sekwencji jest odnalezienie wszystkich wzorców, które są odpowiednio częste. Formalnie mówiąc, mając zbiór sekwencji D, gdzie każda sekwencja składa się z elementów określonych w czasie, zadaniem analizy sekwencji jest wyszukanie wszystkich częstych sekwencji elementów. Przykładowo, mając sekwencje α = α1 → . . . →αk oraz β = β1 → . . . → βm możemy powiedzieć, że pierwsza sekwencja jest podsekwencją drugiej wtedy i tylko wtedy, gdy istnieją liczby całkowite 1 ≤ i1 < . . . < ik ≤ m takie, że dla ∀ 1 ≤ n ≤ k an in . Określenie częstości sekwencji następuje na podstawie wsparcia suppD(S) sekwencji S, które jest procentem transakcji zawierających tą sekwencję. Sekwencja S jest uznawana za częstą względem progu smin jeśli suppD(S) ≥ smin. Realizacja zapytań wzorcowych 3 Ogólnie wzorce możemy podzielić na FSP (ang. Frequent Sequential Pattern) oraz TAS (ang. Temporally Annotated Sequence). TAS rozszerza sekwencyjne wzorce FSP o czas przejścia pomiędzy elementami sekwencji. TAS można przedstawić w następujący sposób: n 1 1 T s0 s1 ... sn (1) gdzie s0, …, sn jest zbiorem elementów sekwencji, a a1, …, an jest zbiorem czasów przejścia pomiędzy tymi elementami. TAS oznaczany jest także T (S, A) gdzie S jest zbiorem elementów sekwencji, a A jest zbiorem czasów przejścia pomiędzy tymi elementami. Przykładem TAS jest kolejność witryn internetowych odwiedzanych przez internautę: 2 15 6 {' /' } {' www. portal1. pl ' ) ... {' www. portal 2.org '} (2) Formalna definicja wzorca trajektorii jest następująca: Definicja 1. (T−wzorzec) [2] Wzorzec trajektorii, zwany T-wzorcem, jest parą (S, A), gdzie S x0 , y0 ,..., xk , yk jest sekwencją punktów w R2, a A 1 ,..., k Rk jest (temporalnym) oznaczeniem sekwencji. T−wzorzec można również przedstawić następująco: 1 2 k ( S , A) ( x0 , y0 ) ( x1, y1 ) ... ( xk , yk ) (3) Formalny opis eksploracji wzorców trajektorii brzmi następująco: Definicja 2. (Definicja eksploracji wzorców trajektorii) [2] Dla danej bazy danych wejściowych trajektorii D, tolerancji czasowej τ, funkcji sąsiedztwa N() i minimalnego progu smin, problem eksploracji wzorców trajektorii sprowadza się do znalezienia wszystkich częstych T−wzorców, tzn. wszystkich T−wzorców (S, A) takich, że: supportD, τ, N (S, A) ≥ smin gdzie supportD, τ, N T−wzorca (S, A) jest liczbą trajektorii T D takich, że S , A N , T . S , A N , T oznacza przestrzenno─czasowe zawieranie wzorca w sekwencji. Na Rys. 1 przedstawiono sposób mapowania trajektorii na RoI.. Każdemu regionowi został przypisany czas wejścia do regionu twe i czas wyjścia z regionu twy. Na podstawie twe i twy można porównywać czas pobytu obiektu w regionie oraz czas przejścia pomiędzy regionami. 4 (x8, y8, 8) R4 (x1, y1, 1) R1 (x2, y2, 2) (x6, y6, 6) (x3, y3, 3) (x7, y7, 7) R2 R3 (x4, y4, 4) (x5, y5, 5) T={(x1, y1, t1) … (x8, y8, t8)} gdzie ti < ti+1 dla 0 < i < 8 S={(R1, twe(1), twy(2)), (R2, twe(4), twy(4)), (R3, twe(6), twy(7)), (R4, twe(8), twy(8))} Rys.1. Mapowanie trajektorii na RoI Przedstawiony dalej system charakteryzuje się następującymi cechami: (1) cała mapa dzielona jest na określoną liczbę rozłącznych regionów o takim samym rozmiarze; (2) w regionach zliczane są punkty trajektorii i na tej podstawie wyznaczane są gęste regiony – automatyczne wyznaczanie RoI; (3) każda sekwencja punktów trajektorii obiektu jest mapowana do sekwencji gęstych regionów – zapisywane są też dodatkowe informacje takie jak czas przejścia pomiędzy elementami sekwencji, czas pobytu obiektu w regionie, agregat punktów w regionie itd.; (4) przeprowadzana jest eksploracja danych. 1.2. Wyznaczanie Sekwencji Regionów Proces wyznaczania sekwencji regionów możemy podzielić na dwa etapy. W pierwszym etapie następuje wyszukanie regionów (regiony reprezentowane są przez rozłączne prostokątne komórki podziału mapy), które posiadają gęstość (liczność) punktów trajektorii większą niż gęstość zadana przez użytkownika (zobacz Rys. 2). W drugim etapie gęste regiony wykorzystywane są przez algorytm ComputeSequences do wyznaczenia sekwencji regionów. Realizacja zapytań wzorcowych 5 (a) (b) (c) (d) Rys. 2 Gęste regiony po uwzględnieniu progu dla: (a) 0%; (b) 5%; (c) 10%; (d) 15% zakresu zmiany gęstości Algorytm ComputeSequences zlicza wystąpienia kolejnych punktów trajektorii obiektu w odpowiednich regionach. Region jest uznawany za miejsce postoju na trasie obiekt, jeśli w procesie wyznaczania gęstości punktów trajektorii został on uznany za odpowiednio gęsty oraz obiekt odpowiednio długo w nim przebywał. Każdy z regionów sekwencji może przyjąć jedno z 4 oznaczeń: Start, Stop, End, StartStop. Znacznik Start oznacza, że region jest regionem, w którym obiekt rozpoczął ruch. Oznaczenie Stop mówi, że region został wyznaczony pomiędzy regionem Start i End. End jest oznaczeniem ostatniego regionu trajektorii (jeśli jednak wystąpił już w sekwencji region Start), a znacznik StartStop jest stosowany na określenie regionu, w którym znajdowała się cała trajektoria obiektu ruchomego. Ponadto każdy z regionów sekwencji regionów zawiera informację o środku ciężkości kolejnych punktów trajektorii przypadających na dany region − agregat punktów w regionie. 6 Sekwencje regionów dla 3 trajektorii zostały pokazane na Rys. 3. a) b) c) Rys. 3 Sekwencje regionów dla ograniczenia czasowego wynoszącego: a) 2, b) 7 i c) 10 kwantów czasu Ze względu na długi czas wyznaczania sekwencji regionów, dużego zbioru trajektorii, w TrDW została wprowadzona możliwość materializacji wyników, która jest realizowana za pomocą tabeli Sequences. 1.3. Eksploracja Sekwencji Regionów 1.3.1. Funkcje porównujące Po wyznaczeniu sekwencji regionów możemy je poddać eksploracji. Na potrzeby różnych analiz w TrDW zostały opracowane różne funkcje porównujące. Na Rys. 4 zostały przedstawione sposoby porównywania wzorca z sekwencją. Pierwsze podejście, zobrazowane na Rys 4a, polega na wyszukiwaniu „dokładnego” wystąpienia wzorca w porównywanej sekwencji (funkcja ExactSearch). Druga z technik (algorytm SelectiveSearch) sprawdza tylko, czy kolejne elementy wzorca znajdują się w takiej samej kolejności w sekwencji. W drugim przypadku pomiędzy elementami wzorca mogą znajdować się inne elementy. Obydwie metody mogą być w wersji dokładnej albo przybliżonej (zobacz Rys. 6). Inny zapis wzorców dla obu technik to odpowiednio A→Z→C (dla Rys. 4a) oraz *→A→*→Z→*→C→* (dla Rys. 4b), gdzie ”*” oznacza dowolną liczbę wystąpień dowolnych elementów. Realizacja zapytań wzorcowych 7 Wzorce A Z C A Z C B Y F A Z C U B A F U Z Y C Porównywane Sekwencje (a) (b) Rys.4 Techniki porównywania wzorca z sekwencją W wyniku połączenia funkcji ExactSearch z SelectiveSearch otrzymujemy funkcję MarkedSearch. W przypadku takiej funkcji określenie, czy konkretne regiony wzorca mogą zawierać między sobą inne regiony w sekwencjach regionów następuje podczas definiowania wzorca. Inną funkcją porównującą jest funkcja SimpleSearch przedstawiona na Rys. 5. A Z C Wzorzec: Porównywana Sekwencja: Z B A U F Y C Rys. 5 Proste porównanie wzorca i sekwencji W przypadku porównywania elementu (regionu) wzorca z elementem (regionem) sekwencji można również wziąć pod uwagę regiony otaczające region wzorca (promień sąsiedztwa może się zmieniać od 1 do n). Taki sposób porównywania został nazwany przybliżonym, a ideę porównywania pokazuje Rys. 6. Regiony wzorca zaznaczono na szaro, a ich obszary sąsiedztwa ukośnymi liniami. Pomimo dużego podobieństwa przestrzennego, sekwencje regionów S1 i S2 są różne (składają się z różnych regionów). Żeby w wyniku porównania znalazły się sekwencje S1 i S2 należy rozszerzyć zakres regionów biorących udział w porównaniu, co jest realizowane za pomocą funkcji przybliżonego porównywania. P1 S2 S1 Rys. 6 Przybliżone porównanie wzorca 8 Zestawienie podstawowych funkcji porównujących przedstawia Tabela 1. Druga kolumna tabeli mówi o tym czy kolejność elementów wzorca musi być zachowana w analizowanej sekwencji. Trzecia kolumna natomiast określa, czy kolejne elementy wzorca muszą wystąpić w sekwencji regionów bezpośrednio po sobie. Tabela 2 przedstawia z kolei rozszerzone funkcje porównujące. Zaprezentowane funkcje umożliwiają m.in. uwzględnienie czasu pobytu w regionie oraz czasu przejścia pomiędzy regionami sekwencji. Table 1. Podstawowe funkcje porównujące. Kolejność elementów Występowanie elementów wzorca Funkcja wzorca w sekwencji po sobie w sekwencji SimpleSearch NIE NIE ExactSearch TAK TAK SelectiveSearch TAK NIE MarkedSearch TAK TAK/NIE Table 2. Rozszerzone funkcje porównujące Przybliżone Warunki na czas porównywanie przejścia/czas pobytu Funkcja Oprócz SimpleSearch TAK NIE/TAK ExactSearch TAK TAK/TAK SelectiveSearch TAK TAK/TAK MarkedSearch TAK TAK/TAK wymienionych funkcji porównujących, zostały opracowane funkcje StatisticSearch. Zadaniem tych funkcji jest wyznaczanie liczności określonych podsekwencji wzorca. Użycie ich pozwala uzyskać informacje, które mogą zostać wykorzystane w pozostałych funkcjach porównujących. W funkcjach StatisticSearch do porównania podwzorca z sekwencją zostały użyte podstawowe funkcje porównujące. 1.3.2. Algorytmy typu Apriori W pewnych sytuacjach możemy potrzebować informacji podsumowujących o wszystkich analizowanych sekwencjach. Pożądaną informacją może być np. zbiór odpowiednio częstych podsekwencji (wzorców) wszystkich analizowanych sekwencji. W przypadku zaprojektowanej TrDW, mogą to być najczęstsze sekwencje regionów trajektorii taksówek. Wykrywanie częstych wzorców może zostać przeprowadzona za pomocą algorytmów typu Realizacja zapytań wzorcowych 9 Apriori. Do tej grupy możemy zaliczyć algorytmy: Apriori, AprioriAll i GSP. Algorytmy te charakteryzują się następującymi cechami: stosowane jest wyszukiwanie wstępujące, zasadniczo przeszukiwanie w szerz (ang. breadth-first search), w kolejnych iteracjach znajdowane są częste sekwencje (wzorce), kandydaci o długości k generowani są z kandydatów o długości k-1, kandydaci są pomijani jeżeli posiadają nieczęste podwzorce. W algorytmach typu Apriori wykorzystywane są wcześniej uzyskane wyniki do generacji częstych wzorców. W pierwszym kroku wyszukiwane są wszystkie jedno elementowe sekwencje częste, których wsparcie jest równe co najmniej minsup. Następnie w oparciu o nie generowane są potencjalnie częste dwuelementowe sekwencje kandydujące. Dla każdej sekwencji kandydującej wyznaczane jest wsparcie w oparciu o sekwencje znajdujące się w bazie danych. W każdej kolejnej iteracji generowane są sekwencje kandydujące o rozmiarze o 1 większym od sekwencji z poprzedniej iteracji. Działanie algorytmu kończy się w momencie otrzymania sekwencji o odpowiedniej długości lub po znalezieniu wszystkich częstych sekwencji. Wynikiem działania algorytmu jest suma wszystkich częstych sekwencji 1, 2, …, k-elementowych. W dalszej części instrukcji zajmiemy się szczegółowo algorytmem AprioriAll. 1.3.3. Algorytm AprioriAll Zgodnie z tym co zostało wcześniej powiedziane algorytm AprioriaAll można podzielić na kilku etapów wykonywanych w kolejnych iteracjach. W każdej iteracji wyznaczane są wzorce, które posiadają wsparcie większe od minimalnego. W tym przypadku wsparcie wzorca mówi nam w ilu sekwencjach wystąpił dany wzorzec. Sekwencja elementów posiadająca minimalne wsparcie zwana jest również sekwencją częstą lub liczną. Ogólna postać algorytmu AprioriAll została pokazana na Rys. 7. W każdym przejściu algorytm ten pracuje na częstym zbiorze L wyznaczonym w poprzednim przejściu. Zbiór ten jest wykorzystywany do wyznaczenia zbioru kandydatów C (linia 3), dla których wyznaczane jest następnie wsparcie na podstawie D (linie 4-7). Pod koniec każdego przejścia sprawdzane jest czy dany kandydat jest częsty (linia 9). 1) L1 = {zbiór częstych 1 elementowych sekwencji}; 2) for ( k = 2; Lk-1 ≠ Ø ; k++ ) do begin 3) Ck = apriori-gen(Lk-1); // Nowi kandydaci 4) forall transakcji t D do begin 5) Ct = subset(Ck, t); // Kandydaci występujący w t 10 forall kandydatów c Ct do 6) 7) c.count++; 8) end 9) Lk = {c Ck | c.count ≥ minsup} 10) end 11) Wynik = k Lk ; Rys. 7 Algorytm AprioriAll Działanie algorytmu apriori-gen jest następujące. W pierwszym etapie następuje złączenie ze sobą częstych sekwencji (k - 1) elementowych, w wyniku czego otrzymujemy sekwencje k elementowe. W kolejnym etapie pomijamy te sekwencje k elementowe, których odpowiednie (k - 1) elementowe sekwencje nie są w Lk-1. Złączenie Lk-1 z Lk-1 odbywa się to w następujący sposób: insert into Ck select p.item1, p.item2, . . ., p.itemkk-1, q.item k-1 from L k-1 p, L k-1 q where p.item1 = q.item1, . . ., p.item k-2 = q.item k-2; Rys. 8 Złączenie Lk-1 z Lk-1 W przypadku sekwencji wynikowych algorytmu AprioriAll mamy maksymalne sekwencje, czyli sekwencje, które nie zawierają się w żadnej innej oraz częste sekwencje, dla których wsparcie jest większe niż wsparcie minimalne. Na Rys. 9 i 10 został przedstawiony przykład działania algorytmu AprioriAll. W celu uproszenia, niektóre etapy działania algorytmu zostały połączone z innymi. Na czerwono oznaczeni zostali odrzuceni kandydaci. Realizacja zapytań wzorcowych 11 Sekwencje wejściowe: ETAP 1: S1< B C D N O> S2< A B C D E F I J K L M N O> Zbiór częsty <B> <C> <D> <N> <O> S3< B A C D J K L N O> minsupp = 3 Kandydaci <B C> <B D> <B N> <B O> <C B> <C D> <C N> <C O> <D B> <D C> <D N> <D O> <N B> <N C> <N D> <N O> <O B> <O C> <O D> <O N> Rys. 9 Przykład działania algorytmu AprioriAll ETAP 3: ETAP 2: Zbiór częsty <B C> <B D> <B N> <B O> <C D> <C N> <C O> <D N> <D O> <N O> Kandydaci <B C D> <B C N> <B C O> <B D C> <B D N> <B D O> <B N C> <B N D> <B N O> <B O C> <B O D> <B O N> <C D N> <C D O> <C N D> <C N O> <C O D> <C O N> <D N O> <D O N> Zbiór częsty <B C D> <B C N> <B C O> <B D N> <B D O> <B N O> <C D N> <C D O> <C N O> <D N O> ETAP 4: Kandydaci Zbiór częsty <B C D N> <B C D O> <B C N D> <B C N O> <B C O D> <B C O N> <B C D N> <B C D O> <B C N O> <B D N O> <C D N O> Kandydaci <B C D N O > <B C D O N> <B D N O> <B D O N> <C D N O> <C D O N> Rys. 10 Przykład działania algorytmu AprioriAll W celu znalezienia najdłuższych sekwencji wynikowych w AprioriAll stosowana jest „Maximal phase”, w której następuje usunięcie sekwencji będących podsekwencjami innych sekwencji. Etap ten odpowiada znalezieniu maksymalnych sekwencji. Ponieważ usunięte sekwencje znajdują się w wygenerowanym wyniku posiadają żądane wsparcie. 12 1.3.4. Algorytm GSP Algorytm AprioriAll charakteryzuje się satysfakcjonującą wydajnością przy analizowaniu sekwencji o niewielkiej długości. Wada ta w przypadku konieczności porównania np. linii autobusowych liczących niejednokrotnie dziesiątki przystanków może się okazać nie do przyjęcia. Przyczyną nieradzenia sobie algorytmu z długimi sekwencjami jest potrzeba sprawdzenia wszystkich wariacji elementów. Z tego też powodu został zaimplementowany algorytm GSP. Różnica w wygenerowanych wzorcach dla obu algorytmów została przedstawiona na Rys. 11 (minsupp = 3). AprioriAll: GSP: a) Sekwencje wejściowe: a) Sekwencje wejściowe: S1< A F B Z D> S1< A F B Z D> S2< A B Z D F E> S2< A B Z D F E> S3< G A F S B Z D> S3< G A F S B Z D> b) Wynik: < A B Z D> b) Wynik: < B Z D> Rys. 11 Porównanie AprioriAll z GSP Algorytmy typu Apriori dla porównywania przybliżonego zostały przedstawione w pracy [5]. 2. Schemat Trajektoryjnej Hurtowni Danych TrDW Na Rys. 12 został przedstawiony uproszczony schemat zaprojektowanej TrDW. Przedstawiony schemat posiada budowę modułową, tzn. część z jego elementów może istnieć samodzielnie, a część może zostać wprowadzona jako rozszerzenie. System składa się z 4 modułów: 1) Modułu pozwalającego przeprowadzać proste analizy. Moduł ten stanowi podwaliny dla innych modułów. Składa się on z tabele LINE, VEHICLE, DRIVER, RIDE i SUBRIDE. 2) Modułu dotyczącego ilościowego przepływu pasażerów − wymaga on istnienia czujników zliczających pasażerów w autobusach. Związany jest on z tabelą PASSENGER_RATE_MEASUREMENT. 3) Modułu trajektorii pasażerów. Moduł ten aby zaistnieć wymaga zapisywania informacji o pasażerach za pomocą kasowników. Moduł reprezentowany jest przez tabelę faktów PASSANGER_TRAJECTOTY. 4) Modułu taksówek. Ponieważ dane o przejazdach taksówkami mają specyficzny charakter należy je obsłużyć za pomocą oddzielnej tabeli faktów. Realizacja zapytań wzorcowych 13 TRANSACTION PASSENGER STREET QUARTER PASSANGER_ TRAJECTOTY CITY TICKET PROVINCE YEAR COUNTRY DISCOUNT TICKET_TYPE H_ADDRESS ROUTE COMPLAINTS COLLISIONS SEGMENT FINE_TICKET COMPLAINT TYPE SUBTYPE LINE SUBRIDE DRIVER SEGMENT_OF_ROUTE STRETCHE_TYPE STOPPING_PLACE STRETCHE PASSENGER_RATE_ MEASUREMENT CONDITION POINT RIDE COMPANY FAILURE VEHICLES SERVICE_ WORKSHOP STATUS SCHEDULE SECOND MINUTE HOUR H_TIME VALIDATE DAY VEHICLE_ MODELS WORKSHOP MONTH QUARTER CONDITION SQUARE_POINT SQUARE VEH_LOC_HIS YEAR H_DATE VEH_LOC Rys. 12 Schemat TrDW 2.1. Sekwencje w TrDW W tym podrozdziale zostały omówione struktury bazodanowe, na podstawie których tworzone są sekwencje. Sekwencje poddawane są eksploracji zgodnie z podrozdziałem 1.3. 2.1.1. Sekwencje regionów dla trajektorii taksówek W TrDW w celu przechowywania sekwencji RoI (będących przetworzonymi trajektoriami obiektów) została stworzona tabela Sequences. Tabela Sequences służy materializacji wyników i posiada następujące atrybuty: (a) OID – identyfikator obiektu ruchomego; (b) SEQID – identyfikator sekwencji regionów; (c) REGNR – numer regionu w sekwencji; (d) REGROW i REGCOL –współrzędne gridowe regionu; (e) X i Y − współrzędne ciężkości punktów trajektorii, które znajdowały się w regionie; (f) COUNT − liczba punktów trajektorii w regionie; (g) STAYTIME − czas pobytu obiektu w regionie; (h) ENTERTIME – czas, w którym obiekt pojawił się w regionie; (i) EXITTIME − czas wyjścia obiektu z regionu; (j) STATUS – typ regionu np. START, STOP, END itd.; (k) SEQUENCES_SAVE_ID – identyfikator materializacji. 2.1.2. Sekwencje Postojów dla Trajektorii Linii Sekwencje postojów powstają w wyniku złączenia tabel przedstawionych na Rys. 13. Tabele ROUTES i STOPPING_PLACES tworzą hierarchię dla tabeli faktów pomiarów 14 pasażerów (nieumieszczonej na rysunku). Tabela ROUTES przechowuje identyfikatory i typy linii, a tabela STOPPING_PLACES odzwierciedla przystanki na nich. W rozkładach (tabela SCHEDULES) czas jest zaokrąglany do pełnych minut i dotyczy planowego odjazdu pojazdu z przystanku. POINTS ROUTES ID : NUMBER TYPE: NUMBER …………… ID : NUMBER X: NUMBER/FLOAT Y:NUMBER/FLOAT …………… STOPPING_PLACES ID : NUMBER ROUTE_ID:NUMBER POINT_ID: NUMBER NUM: NUMBER …………… SCHEDULES ID : NUMBER TIME_ID: NUMBER STOPPING_PLACE_ID …………… Rys. 13 Tabele wykorzystywane przy generowaniu danych dla tras Ponieważ sekwencje przystanków są uproszczeniem sekwencji regionów część istniejących funkcji porównania nie znajduje tu zastosowania. W przypadku tras nie występuje pojęcie czasu postoju, chociaż pojazd spędza określony czas na danym przystanku − rozkład zawiera tylko czas odjazdu z niego. Oprócz tego, w przeciwieństwie do trajektorii taksówek nie musimy wyznaczać sekwencji regionów, gdyż są nimi właśnie przystanki na danej linii. Możliwe funkcje SelectiveSearch, porównania MarkedSearch, są następujące: StatisticSearch. SimpleSearch, Ponieważ przystanki ExactSearch, w sposób jednoznaczny identyfikują dany postój nie są stosowane funkcje przybliżające wyszukiwanie. 2.2. Sekwencje postojów dla trajektorii pasażerów Do przechowywania informacji o trajektoriach pasażerów zostały wykorzystane tabele przedstawione na Rys. 14. Tabela PASSENGER_TRAJECTORY jest tabelą faktów jednej z gwiazd kaskadowych systemu TrDW. Jej tabelami wymiarów są m.in. TICKETS oraz STOPPING_PLACES. Tabela PASSENGER_TRAJECTORY gromadzi następujące informacje o trajektoriach pasażerów: (a) identyfikator biletu; (b) numer przesiadki na trasie całego przejazdu; (c) identyfikatory przystanków linii, na których pasażer wsiadł i wysiadł; (d) czas rozpoczęcia i zakończenia podróży na danym odcinku linii. Tabela TICKETS przechowuje identyfikatory biletów, które w celu uproszczenia identyfikują jednocześnie Realizacja zapytań wzorcowych 15 pasażera danego środka transportu. Tabela STOPPING_PLACES wskazuje przystanek na danej linii. Niewykorzystane atrybuty zostały pominięte. PASSENGER_TRAJECTORY ID : NUMBER TICKET_ID: NUMBER START_STOPPING_PLACE_ID: NUMBER END_STOPPING_PLACE_ID: NUMBER START_TIME: NUMBER END_TIME: NUMBER NUM: NUMBER …………… TICKETS ID : NUMBER PASSENGER_ID: NUMBER TICKET_TYPE …………… STOPPING_PLACES ID : NUMBER ROUTE_ID:NUMBER POINT_ID: NUMBER NUM: NUMBER …………… Rys. 14 Tabele tras pasażerów Trajektorie pasażerów są podobne do trajektorii linii. Dodatkowo w przypadku trajektorii pasażerów możemy użyć funkcje, które uwzględniają czas pobytu na przystankach. Przykładowe zapytanie może wyglądać następująco: „Sprawdź czy na danym przystanku pasażerowie musieli czekać na jakiś autobus dłużej niż 15 minut”. Możliwe są następujące funkcje porównania: SimpleSearch, ExactSearch, SelectiveSearch, MarkedSearch, StatisticSearch. 3. Aplikacja 3.1.1. Interfejs wprowadzania wzorców Na Rys. 15, 16, 17 został przedstawiony interfejs definiowania wzorca. Aplikacja umożliwia zdefiniowanie wzorca na dwa sposoby. Pierwszy, Rys 15, umożliwia zdefiniowanie wzorca przez kolejne wybieranie regionów za pomocą myszki. 16 Rys. 15 Wprowadzanie danych za pomocą myszki Wzorzec można także zdefiniować za pomocą przygotowanego edytora, Rys. 16 Edytor współpracuje z wprowadzaniem wzorca z użyciem myszki. Pozwala on m.in. na zmianę położenia regionu we wzorcu (bez konieczności ponownego wprowadzania regionów), dodanie lub usunięcie regionu, edycję dodatkowych parametrów regionów. Interfejs określania dodatkowych parametrów wzorca został przedstawiony na Rys. 17. Rys. 16 Edytor wzorców Parametr Continuity z Rys. 17 określa np. czy region występujący po danym, musi się bezpośrednio po nim znajdować (parametr ten wykorzystywany jest w „MarkedSearch” oraz w funkcjach porównujących czas przejścia oraz czas pobytu w regionie). Rys. 17a przedstawia panel edycji parametrów elementu wzorca dla sekwencji regionów, a Rys. 17b dla sekwencji linii i pasażerów. Realizacja zapytań wzorcowych 17 b) a) Rys. 17 Interfejs definiowania parametrów regionów dla a) taksówek b) linii/pasażerów W programie istnieje możliwość zapisu do bazy wygenerowanych sekwencji regionów, co odpowiada prostej materializacji wyników. Widok prostego menadżera odczytu sekwencji został przedstawiony na Rys. 18. Materializacja wyników pozwala skrócić czas oczekiwania na określone często wykorzystywane zbiory sekwencji. Rys. 18 Zapis wygenerowanych sekwencji regionów LITERATURA 1. Luis Otavio Alvares, Vania Bogorny, Bart Kuijpers, Jose Antonio Fernandes de Macedo, Bart Moelans, Alejandro Vaisman: A Model for Enriching Trajectories with Semantic Geographical Information. GIS 2007: Seattle, Washington, USA 18 2. Fosca Giannotti, Mirco Nanni, Dino Pedreschi, Fabio Pinelli: Trajectory Pattern Mining. KDD 2007: 330-339 3. Rakesh Agrawal, Ramakrishnan Srikant: Fast Algorithms for Mining Association Rules. VLDB 1994: 487-499 4. Rakesh Agrawal, Ramakrishnan Srikant: Mining Sequential Patterns. ICDE 1995: 3-14. 5. Using Apriori-like Algorithms for Spatio-Temporal Pattern Queries – 4th International Symposium Advances in Artificial Intelligence and Applications (AAIA'09)