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  Rk 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)

Podobne dokumenty