AntClass: grupowanie danych liczbowych
Transkrypt
AntClass: grupowanie danych liczbowych
AntClass: grupowanie danych liczbowych poprzez połączenie kolonii mrówek z algorytmem Kmeans N. Monmarche, M.Slimane, G. Venturini tłumaczenie na język polski: Tomasz Rostań ski Laboratoire d'Informatique, Ecole d'Ingenieurs en Informatiąue pour 1'Industrie (E3i), Universite de Tours, 64 av. Jean Portalis, 37200 Tours, France monmarche,slimane,venturini@univtours.fr Phone: +33247361414 Fax: +33247361422 Raport wewnętrzny Nr 213, E3i, styczeń 1999 Abstract W tym dokumencie przedstawimy nowy hybrydowy algorytm dla grupowania danych. Algorytm odkrywa grupy w danych liczbowych bez wcześniejszej wiedzy o prawdopodobnej liczbie klas, bez początkowego podziału i bez żmudnych ustawień parametrów. Algorytm wykorzystuje stochastyczne i i eksploracyjne właściwości kolonii mrówek w połączeniu z heurystycznymi zasadami algorytmu Kmeans. Mrówki poruszają się po 2wymiarowej tablicy i mogą podnosić i upuszczać obiekty. upuszczanie i podnoszenie obiektu z istniejącej sterty zależy od podobieństwa pomiędzy obiektem a stertą. Algorytm Kmeans zostaje użyty w celu poprawienia zbieżności grupowania. Powtarzamy 2 stochastyczne/deterministyczne kroki i wprowadzamy hierarchiczne grupowanie na stertach obiektów traktując je tak samo jak obiekty. Wprowadzamy również inne udoskonalenia, takie jak zastosowanie heterogenicznej populacji mrówek w celu uniknięcia kompleksowych ustawień parametrów i wprowadzenie lokalnej pamięci mrówki. Zastosowaliśmy algorytm na standardowych bazach danych daje bardzo dobre wyniki w porównaniu z algorytmami Kmeans i ISODATA. Sukcesem zakończyło się również stworzenie rzeczywistej aplikacji. Słowa kluczowe ant algorithm, unsupervised clustering, numeric data. Spis treści 1 Wprowadzenie 3 2 Bieżące mrówkowo zorientowane podejście do grupowania danych 2.1Prawdziwe mrówki ........................................................................................... 2.2Praca pionierska ................................................................................................. 2.3Przyszły rozwój .................................................................................................. 4 4 4 4 3 Podstawowa notacja i heurystyki w AntClass 3.1Motywacje ......................................................................................................... 3.2Obiekty i ich miara ........................................................................................... 3.32wymiarowa tablica ......................................................................................... 3.4Sterty obiektów .................................................................................................. 3.5Mrówki ............................................................................................................. 3.5.1Kolonia .................................................................................................. 3.5.2Mrówkowozorientowane serce algorytmu ............................................ 3.5.3Podnoszenie obiektów ............................................................................ 3.5.4Upuszczanie obiektów ............................................................................ 3.5.5Pamięć lokalna mrówki ........................................................................... 3.5.6Heterogeniczne parametry mrówki ......................................................... 3.5.7Zagubione wartości .................................................................................. 5 5 5 6 6 7 7 8 8 9 9 11 12 4 Hybrydyzacja 4.1Motywacje ......................................................................................................... 4.2Połączenie z alg. Kmeans w AntClass................................................................. 12 12 13 5 Hierarchiczne grupowanie 5.1Motywacje ......................................................................................................... 5.2Grupowanie stert obiektów przez mrówki ........................................................ 5.3Końcowy hierarchiczny hybrydowy algorytm AntClass .................................... 13 13 13 14 6 Wyniki eksperymentów 6.1Ustawienia eksperymentów i bazy danych ....................................................... 6.2Wyniki otrzymane na sztucznych zestawach danych ....................................... 6.3Rezultaty otrzymane na prawdziwych zestawach danych .................................. 6.4Badania porównawcze ....................................................................................... 14 14 15 16 16 7 Wnioski 18 1 Wprowadzenie Kilka ostatnich dokumentów podkreślało wydajność stochastycznego podejścia opartego na koloniach mrówek przy rozwiązywaniu problemów. Obejmują one np. problemy optymalizacji kombinatorycznej jak problem komiwojażera (Dorigo i Gambardella 1997), problem przypisań kwadratowych (??) (Gambardella et al. 1997), problemy trasowania połączeń (Di Caro i Dorigo 1997) (Bullnheimer et al. 1997), problem plecakowy (Bilchev 1996) czy układanie planu zajęć (Forsyth and Wren 1997). Problemy optymalizacji numerycznej były rozwiązywane także przez wirtualne mrówki (Bilchev and Parmee 1996), tak samo jak roboty (Deneubourg et al. 1990) (Goss and Deneubourg 1991). Grupowanie danych jest także jednym z tych problemów w którym można wzorować się na rzeczywistych mrówkach. Jednym z pierwszych studiów tego dotyczącym został przeprowadzony przez (Deneubourg et al. 1990), gdzie populacja mrówkowopodobnych agentów mogła poruszać się po 2wymiarowej tablicy i mogła przenosić i grupować proste przedmioty. Metoda ta została później rozwinięta przez (Lumer and Faieta 1994), z prostymi obiektami równocześnie przez (Kuntz and Snyers 1994) (Kuntz et al. 1997) gdzie rzeczywisty problem grupowania jest badany w celu osiągnięcia dobrej efektywności algorytmu. Bazując na tych pracach, przeprowadzamy badania nad grupowaniem przez mrówki z punktu widzenia odkrywania danych w celu rozwiązywania rzeczywistych problemów. W tego typu problemach zakładamy, że ekspert domenowy zebrał zestaw danych i że chciałby otrzymać ich podział na grupy. Wymaga to odkrycia interesującego podziału bez żadnej początkowej informacji i wiedzy o liczbie potrzebnych klas. W dodatku musimy działać na nieznanych wartościach parametrów, często występujących w problemach rzeczywistych. Chcemy również uniknąć skomplikowanych ustawień parametrów, ponieważ większość ekspertów domenowych nie jest informatykami i nie ma pojęcia o dostrajaniu parametrów danej metody klasyfikacji. Jak zobaczymy, w celu otrzymania tego stworzyliśmy nowy bazujący na mrówkowym algorytm dla grupowania, nazwany AntClass. Algorytm używa kolonii mrówek do grupowania danych liczbowych. Wprowadza dodatkowo grupowanie hierarchiczne, dzięki umożliwieniu mrówkom grupowania stert obiektów. Idąc dalej wprowadziliśmy hybrydyzację z algorytmem Kmeans w celu rozwiązania drobnych problemów wynikających z pracy mrówek, jak np. grupowania wolnych obiektów czy uzyskiwania szybciej lepszego skupienia poprzez usuwanie 'oczywistych' błędów. AntClass składa się z 4 kroków: grupowania mrówkowego tworzącego odpowiedni podział początkowy wykorzystany w 2 kroku przez algorytm Kmeans, a następnie przeprowadzenie grupowania hierarchicznego przez mrówki i ponownie użytego algorytmu Kmeans. Nasze motywacje przedstawimy również w tym dokumencie. Zawartość tego dokumentu jest podzielona następująco: rozdział 2 opisuje podejście mrówkowe do grupowania obiektów, rozdział 3 przedstawia heurystyki kolonii mrówek w AntClass. Rozdziały 4 i 5 przedstawiają część hybrydową algorytmu AntClass, tj. współpracę z algorytmem Kmeans i grupowanie hierarchiczne. Rozdział 9 opisuje przeprowadzone przez nas eksperymenty na sztucznych i prawdziwych zestawach danych. Rozdział 7 opisuje przyszłe nasze zamiary dotyczące rozwinięcia AntClass. 2 Bieżące mrówkowo zorientowane podejście do grupowania danych 2.1 Prawdziwe mrówki Klasycznym zachowaniem mrówczym jest przenoszenie różnego typu obiektów, takich jak jedzenie, jaja, w celu rozwiązywania problemów w otaczającym je środowisku. Odnosi się to do zachowań indywidualnych dotyczących przenoszenia obiektu, jak np. samotnicza strategia Pachycondyla apicalis (Fresneau 1985) gdzie mrówka poluje samotnie i przynosi zdobycz do gniazda. Jednakże bardzo często transport obiektu przez rzeczywistą mrówkę może wymagać bardziej złożonych zachowań, wymagających współdziałania wielu mrówek i podziału ról pomiędzy nie. Dla przykładu pojedynczy obiekt może być zbyt ciężki by zostać przeniesiony przez jedną mrówkę. Wówczas mrówka może zwerbować do pomocy inne i razem mogą przenieść przedmiot, jak to ma miejsce w przypadku mrówek Ectatomma ruidum (Schaltz et al. 1997). W dwóch poprzednich przykładach mrówka mogła nieść tylko jeden przedmiot, ale można rozwiązywać bardziej skomplikowane problemy gdzie wiele obiektów różnego typu może być zgrupowane w jeden obiekt i przeniesione. 2.2 Praca pionierska O ile wiemy wstępna praca z wykorzystaniem sztucznych mrówek do grupowania obiektów została wykonana przez Deneubourga i jego kolegów (Deneubourg et al. 1990). W tej pracy populacja robotów jest zdolna grupować razem obiekty używając mrówkowopodobnej heurystyki bez konieczności centralnej kontroli. 2.3 Przyszły rozwój Ta praca została użyta jako podstawa dalszych badań nad grupowaniem obiektów przez sztuczne mrówki. Pierwszy poważny program był stworzony w technologii VLSI (Kuntz and Snyers 1994) (Kuntz et al. 1997). Problem polegał na znalezieniu odpowiedniego podziału grafu. W tym celu zamieniono go na problem grupowania rozwiązywany przez sztuczne mrówki. Próbują one przenosić obiekty na 2wymiarowej tablicy, zgodnie z lokalną miarą gęstości. Otrzymane wyniki mogą być ocenione np. poprzez miarę przestrzennej entropii. Kolejna aplikacją wykorzystującą mrówki do grupowania, bliższą naszemu podejściu, polegała na pozwoleniu mrówkom na grupowanie ze sobą zestawów danych (Lumer and Faieta 1994). Obiekty były porozrzucane losowo na 2wymiarowej tablicy. Mrówki przy podejmowaniu decyzji również kierowały się miarą lokalnej gęstości. Ta praca jest ważna dlatego, że wprowadza zasady grupowania obiektów przez mrówki w problemie analizy i algorytm AntClass może być uznany za jego rozszerzenie. Usprawnieniami opisywanymi w tym dokumencie, są: wprowadzenie bardziej krzepkiej mrówkowej heurystyki z nieprzypisanymi obiektami przyspieszy współdziałanie z algorytmem Kmeans, użycie hierarchicznego grupowania na stertach obiektów. Wyniki w ten sposób otrzymane na kilku rzeczywistych zestawach danych zaowocowało lepszymi wynikami do otrzymanych przy użyciu algorytmów Kmeans i ISODATA. Objects Oi On Al ... 1.32 ? Ak 3.67 2.75 Figurę 1: Format zestawów danych na których działa AntClass. 3 Podstawowa notacja i heurystyka w AntClass 3.1 Motywacje Chcemy przypomnieć czytelnikowi o naszej motywacji do użycia mrówkowo podobnego algorytmu do problemu grupowania. Wiele z algorytmów grupowania danych (min. Kmeans i ISODATA) wymagają początkowego podziału danych, co jest wielką wadą tych algorytmów. Godne odnotowania jest to, że podejście mrówkowozorientowane nie wymaga pierwotnego podziału, dzięki czemu dokładnie ten sam algorytm może być zastosowany dla różnej liczby klas. Dodatkowo w przypadku algorytmów wymagających początkowego podziału, jeśli ten podział jest źle zrobiony (np. zła liczba przewidywanych klas), poprawny podział nie zostanie znaleziony. Właśnie dlatego postanowiliśmy wykorzystać podejście mrówkowe. Należy również zauważyć, że wiele algorytmów heurystycznych dla grupowania danych działa bardzo szybko, ale bardzo często są jedynie optymalne lokalnie. Jedną z metod poprawy tej sytuacji jest stosowanie stochastycznego przeszukiwania zamiast deterministycznego, które może być zrobione z GA (Jones and Beltrano 1991) (Cucchiara 1993) i kolonią mrówek. W dodatku te algorytmy mogą być realizowane równolegle. Wreszcie można stwierdzić, że użycie sztucznych mrówek do grupowania zamiast GA jest dokładniejsze, ponieważ jest analogiczne do problemów rozwiązywanych przez prawdziwe mrówki. Toteż w pewnym sensie model ze sztucznymi mrówkami jest bliższy problemowi grupowania niż model genetyczny, toteż oczekujemy że będzie działał lepiej i szybciej. Jednakże w tym dokumencie nie porównujemy algorytmu AntClass z podejściem genetycznym ale raczej z algorytmami Kmeans i ISODATA. 3.2 Obiekty i ich miara Zakładamy, że zestaw E = {O1,.., On} n danych bądź obiektów które zostały zebrane przez eksperta domenowego, gdzie każdy jest wektorem o k liczbowych wartościach v1,...,v k które odpowiadają k liczbowym atrybutom A 1 ,...,A k (patrz figurę 1). Rozważamy również możliwość wystąpienia zagubionych wartości atrybutów. Są one oznaczone poprzez "?" w bazie danych. Ważnym elementem odziedziczonym z algorytmów grupujących jest sposób mierzenia podobieństwa między obiektami. W naszym przypadku użyjemy euklidesowej miary odległości pomiędzy wektorami, oznaczonej przez D, ale należy zaznaczyć, że AntClass może wykorzystywać inne miary odległości, jak odległości Minkowskiego czy Hamminga. My przyjmiemy, że Dmax będzie oznaczało maksymalną odległość między dwoma obiektami z E, tj.: Początkowo wszystkie obiekty będą losowo rozrzucone na 2wymiarowej tablicy opisanej w następnym rozdziale. Później mrówki będą mogły podnosić i upuszczać przedmioty w celu tworzenia stert obiektów tj. grup w naszym zadaniu grupowania. 3.3 2wymiarowa tablica Podobnie jak to miało miejsce w poprzednich programach bazujących na algorytmach mrówkowych, przyjmujemy, że mrówki będą się poruszać po 2wymiarowej tablicy. Tablica ta będzie traktowana jak 2wymiarowa macierz C o rozmiarze m x m. Będzie ona traktowana jako cykliczna w celu ułatwienia mrówkom poruszania się. Ważny jest sposób automatycznego obliczenia rozmiaru tablicy, co jest istotne ponieważ jak wspomnieliśmy, chcemy uniknąć skomplikowanych ustawień parametrów. Liczba pól macierzy musi być większa od liczby obiektów (m2 > n). Ale jeśli tablica będzie zbyt duża, wówczas mrówki zmarnują wiele czasu (ruchów) zanim napotkają obiekt lub stertę. Dlatego rozsądnie jest przyjąć, że rozmiar tablicy musi być funkcją od liczby obiektów. Jednakże nie ma żadnych ani teoretycznych ani doświadczalnych wskazań odnośnie jak taka zależność mogłaby wyglądać, toteż przyjęliśmy następującą relację pomiędzy m i n: m 2 = n × 4 Oznacza to, że jakakolwiek by nie była liczba obiektów, prawdopodobieństwo, że losowo poruszająca mrówka znajdzie obiekt jest niezależne od n. W naszym przypadku wynosi początkowo 50% ponieważ mrówka spogląda na 8 sąsiednich pól w swoim sąsiedztwie. Zaobserwowaliśmy doświadczalnie, że takie podejście daje bardzo dobre wyniki. 3.4 Sterty obiektów Jak się przekonamy w następnym rozdziale, mrówki będą mogły tworzyć, rozbudowywać i niszczyć sterty. Sterta H jest rozważana jako zgrupowanie co najmniej dwóch obiektów. Sterta jest zlokalizowana w pojedynczej komórce, a nie jako rozmieszczenie obiektów w sąsiednich polach (co przedstawia figurę 2). Główna zaletą takiego podejścia w porównaniu z (Lumer i Faieta 1994) jest to, że sterta albo grupa może być łatwo zlokalizowana, podczas gdy w poprzednim podejściu grupy mogły się stykać ze sobą , co utrudnia identyfikację. Czytelnik może zajrzeć na figurę 6 w (Lumer and Faieta 1994) co wytłumaczy na przykładzie to zjawisko. Kolejną zaletą tej techniki jest to że pozwala ona zdefiniować dokładne (rozbudowane) heurystyki dla upuszczania i podnoszenia obiektów, co zostanie szerzej opisane w późniejszym rozdziale. Dla przykładu, mrówki mogą zabierać najbardziej niepasujące obiekty z jednej sterty i dokładać do innej elementy pasujące. W tym celu musimy zdefiniować następujące notacje dla danej sterty H o n obiektach: Figurę 2: Definicja grupy obiektów wprowadzona w AntClass. Po lewej stronie reprezentowana grupa obiektów (Lumer and Faieta 1994). Grupa jest więc przestrzennym zgrupowaniem obiektów. Po prawej stronie widzimy reprezentację grupy wprowadzoną w AntClass, która rozwiązuje poprzedni problem. Dmax{H) jest maksymalną odległością pomiędzy obiektami z H: Ocenter (H) jest środkiem masy obiektów w H: Obiekty są rozważane jako wektory o k liczbowych wartościach. Należy zauważyć, że także Ocenter(H) nie odnosi się do rzeczywistych obiektów. Odissim(H) oznacza najbardziej niepasujący obiekt z H, czyli taki co maksymalizuje D(., Ocenter(H)), D m ean (H) to odległość między obiektami z H i centrum masy Ocenter(H): 3.5 Mrówki 3.5.1 Kolonia Kolonia składa się z p mrówek ant 1 ...,ant p . Każda z nich jest umieszczona na jednym polu tablicy. Początkowe pozycje mrówek są wybierane losowo. Oczywiście nie ma żadnej centralnej kontroli nad mrowiskiem. 1.Rozmieść losowo mrówki na pozycjach, 2.Powtarzaj 3.Dla każdej mrówki ant i wykonuj (a)Przesuń mrówkę ant i (b)Jeżeli anti nie niesie żadnego obiektu To rozejrzyj się po sąsiednich 8 polach wokół pozycji anti i prawdopodobnie podnieś obiekt (patrz algorytm w figure 4), (c)Jak nie (ant i już niesie obiekt O) rozejrzyj się po są siednich polach i prawdopodobnie upuść obiekt O (zobacz algorytm w figure 5), 4. Dopóki kryterium stopu. Figure 3: Rdzeń algorytmu AntClass. 3.5.2 Mrówkowo zorientowane serce algorytmu AntClass Jądro algorytmu jest przedstawione na figure 3. Początkowo mrówki są rozrzucane losowo na 2wymiarowej tablicy. Następnie każda z nich wykonuje ruch i prawdopodobnie podniesie albo upuści przedmiot. Ruch mrówki nie jest całkowicie losowy. Początkowo mrówka wybiera losowy kierunek z 8 możliwych. Następnie kontynuuje ruch w tym kierunku z prawdopodobieństwem Pdirection albo losowo generuje nowy kierunek. Dodatkowo mrówka posiada parametr Speed który określa ile może wykonać ruchów w wybranym kierunku zanim się zatrzyma ponownie. Podczas swojego ruchu mrówka może podnieść albo upuścić obiekt jak opisano w kolejnych rozdziałach. Kryterium stopu to po prostu liczba iteracji. 3.5.3 Podnoszenie obiektu Gdy mrówka nie niesie żadnego przedmiotu, patrzy na 8 sąsiednich pól wcelu znalezienia możliwego do zabrania obiektu. Gdy tylko w polu widzenia znajdzie się jakiś obiekt lub sterta rozpatrywane są 3 warianty: na polu znajduje się pojedynczy obiekt, sterta dwuelementowa, sterta o większej liczbie obiektów. W pierwszym przypadku mrówka posiada pewne prawdopodobieństwo podniesienia go, w drugim (w przypadku tylko 2 elementów), mamy następującą własność: (Ddissim(H),Ocenter(H)) = Dmean(H). Więc nie można zastosować żadnej heurystyki bazującej na odległości D. Dlatego dajemy mrówce prawdopodobieństwo zniszczenia sterty Pdestroy przez podniesienie przedmiotu. W trzecim przypadku mrówka podnosi najbardziej niepasujący obiekt ze sterty zgodnie z podanym granicznym Tremove. Współczynnik niedopasowania jest liczony jako stosunek odległości obiektu od centrum i odległością wszystkich obiektów od centrum masy. Jest to bardzo prosta ale i skuteczna heurystyka owocująca bardzo homogeniczną stertą. 1.Oznacz 8 pól wokół anti jako “niezbadane”, 2.Powtarzaj (a)Rozważ wszystkie pola c wokół ant i w następującej kolejności: pole1 = przed ant i, pole 2 = po lewej, pole 3 = po prawej, itd. (b)Jak c jest niepuste To Podejmij jedną z czynności: i. Jak c zawiera pojedynczy obiekt O, To podnieś go z prawdopodobieństwem Pload , ii. Jak c zawiera stertę dwuelementową To podnieś jeden z obiektów z prawdopodobieństwem Pdestroy, iii.Jak c zawiera stertę H więcej niż dwuelementową, To podnieś najmniej pasujący obiekt zgodnie ze wzorem: (c)Oznacz c jako „zbadany” 3. Dopóki nie zbadano wszystkich 8 pól lub podniesiono przedmiotu Figure 4: Algorytm podnoszenia obiektów. 3.5.4 Upuszczanie obiektu Gdy mrówka niesie obiekt, wówczas spogląda na 8 sąsiednich pól. Należy rozpatrzyć 3 przypadki: pole jest puste, pole zawiera tylko jeden element, zawiera więcej niż dwa elementy. W pierwszym przypadku mrówka odłoży obiekt z prawdopodobieństwem Pdrop. W drugim odłoży obiekt, tworząc stertę, tylko wtedy gdy niesiony obiekt jest podobny do znajdującego się tam. W 3 przypadku mrówka doda element na stertę tylko gdy jest do niej bardziej podobny od najmniej podobnego obiektu sterty. Żeby uniknąć noszenia obiektów zbyt długo (z powodu jego niepodobieństwa do innych), mrówka upuści obiekt automatycznie po Maxcarry iteracjach na pierwszym napotkanym wolnym polu. 3.5.5 Lokalna pamięć mrówki Ponieważ prawdziwe mrówki potrafią zapamiętywać miejsca ze swojego środowiska (np. Fresneau 1985), dodaliśmy pamięć do każdej z nich w celu przyspieszenia klasyfikacji, w podobny sposób do (Lumer and Faieta 1994). Gdy mrówka napotka jakąkolwiek stertę H, zapamiętuje jej położenie w tablicy, podobnie jak jej Ocenter(H) i D(Odissim(H),Ocenter (H)). Wtedy algorytm z tab. 5 dla upuszczania obiektu korzysta z tego w następujący sposób: algorytm definiuje ruchy wykonywane przez mrówkę w ten sposób, że gdy mrówka niesie obiekt wyszukuje w pamięci sterty H na którą mogłaby upuścić obiekt. Gdy mrówka po drodze napotka jakąś stertę, aktualizuje informacje o stertach i mrówka pójdzie do lokacji sterty H. 1.Oznacz 8 pól otaczających anti jako “niezbadane” 2.Powtarzaj (a) Rozważ kolejne pola c wokół ant i w następującej kolejności: pole 1 = z przodu, pole2 = z lewej, pole3 = po prawej, itd. i prawdopodobnie wykonaj jedno z: i. Jeśli c jest puste wówczas upuść obiekt O z prawdopodobieństwem Pdrop, albo ii. Jeśli c posiada jeden obiekt O' to połóż O na O' by stworzyć stertę zgodnie ze wzorem: albo iii.Jak c posiada stertę H to upuść obiekt O na H zgodnie z: D(O,Ocenter(H)) < D(Odlsslm(H),Ocenter(H)) (b) Oznacz c jako “zbadane” 3.Dopóki wszystkie pola nie zostaną zbadane lub nie zostanie położony przedmiot Figure 5: Algorytm odkładania obiektu. Dodatkowo mrówka upuści przedmiot gdy będzie go nosić po więcej niż Max carry iteracjach. Parametr Speed Pdirection Maxcarry Pload Pdestroy Tremove Tcreate Rola # amplituda ruchów (?) prawdop. ruchu w jednym kierunku maks. czas noszenia obiektu prawdop. podniesienia obiektu prawdop. zniszczenia sterty 2 el. min. niedopasowanie dla usunięcia obiektu ze sterty maks. niedopasowanie pozwalające stworzyć stertę 2el. Zakres wartości [1,10] [0.5,1[ [20, 200] [0.4,0.8] [0,0.6] [0.1,0.2] [0.05,0.2] Figure 6: Parametry mrówek w AntClass. Wszystkie parametry, kluczowe dla otrzymanego wyniku, są generowane losowo. Jeśli mrówka nie upuści obiektu po drodze do H, wówczas upuści go na H jeśli H jest poprawna tzn. nie została zniszczona albo zmodyfikowana przez inne mrówki. Mrówki mogą pamiętać tylko lokacje 4 stert. Dlatego jeśli napotkają nową stertę, informacja o najstarszej jest zastępowana informacją o nowej. Rezultatem wprowadzenia tej pamięci jest zwiększenie proporcji obiektów które są przypisywane do stert oraz przyspieszenie tego przypisania. 3.5.6 Heterogeniczne parametry mrówki Jak wspomniano wcześniej, chcemy uniknąć żmudnych ustawień parametrów, by możliwie uprościć użycie AntClass przez domenowych ekspertów. Jest to bardziej niż konieczne ponieważ, co pokazano w tab. 6, parametry kontrolujące mrówki są liczbowe, bez wspominania o parametrach potrzebnych do działania algorytmu Kmeans i grupowania hierarchicznego które będzie przedstawione w rozdziałach 4 i 5. Sposobem na rozwiązanie problemu jest, zainspirowanie żywymi mrówkami, wprowadzenie populacji heterogenicznej z podziałem na role. Ustawienie tych samych parametrów dla mrówek ma dwie wady: (1) trudno jest znaleźć odpowiednie parametry szczególnie że zależą one od typu przetwarzanych danych i właściwości algorytmu przetwarzającego i (2) jeśli parametry zostaną źle dobrane wówczas osiągnięte rezultaty mogą być mizerne. Tak się początkowo zdarza przy używaniu algorytmów ISODATA (patrz rozdział 6.4). Początkowo parametry mrówek będą generowane losowo z zakresów przedstawionych w tab.6. Takie wartości były używane podczas wszystkich testów na danych przedstawionych w tym dokumencie. Zostały one wyznaczone poprzez testy przeprowadzone na sztucznych zestawach danych. Lumer i Faieta również zasugerowali inne i nieheterogeniczne parametry. Uogólniliśmy ten pomysł do innych parametrów mrówek. 1.Weź jako początkowy podział P z zestawu danych znalezionych przez mrówki w formie k stosów: Hi, ...,Hk , 2.Powtarzaj (a)Oblicz Ocenter(H1),..., Ocenter(Hk), (b)Zabierz wszystkie obiekty ze wszystkich stert, (c)Dla każdego obiektu Oi z E: i. Niech Hj, j j ∈[1, k ] jest stertą o centrum najbliższym do O i, ii. Przypisz Oi do Hj, (d) Oblicz nowy podział P = Hi,..., Hk poprzez likwidację wszystkich pustych stosów, 3. Dopóki kryterium stopu. Figure 7: Algorytm Kmeans . 3.5.7 Zagubione wartości Użyliśmy bardzo prostej i standardowej metody postępowania z zagubionymi wartościami. Zastępujemy "?" w bazie danych średnią wartością odpowiadającego mu atrybutu. 4 Hybrydyzacja 4.1 Motywacje Poprzedni algorytm bazujący na samych mrówkach ma olbrzymią zaletę polegającą na dokonywaniu odpowiedniego (relewantnego) podziału danych bez konieczności posiadania inicjującej informacji o przyszłej klasyfikacji. Jakkolwiek 2 ważne problemy pozostają. Pierwszy z nich wynika z tego że nie wszystkie obiekty znajdują się na stertach w momencie zakończenia algorytmu, co nazywamy “wolnymi” obiektami. Odpowiada to sytuacji gdy przedmiot jest w niesiony przez mrówkę albo pozostaje samotny na jakimś polu. Drugi problem polega na tym, że gdy obiekt został przypisany do złej sterty, może upłynąć wiele czasu zanim znajdzie się na odpowiedniej. Rozwiązaniem takiej sytuacji będzie więc połączenie dwóch dopełniających się algorytmów, tj. mrówkowego algorytmu grupującego i algorytmu Kmeans. Pierwszy używa losowych zasad eksploatacji przy wyszukiwaniu odpowiednich grup, bez wcześniejszej o nich wiedzy. Drugi używa deterministycznych/heurystycznych zasad i wymaga początkowego podziału bliskiego rzeczywistemu. Podejście mrówkowe jest bardzo dobry ponieważ omija optima lokalne ale uzyskanie spójności jest długotrwałe i trudne do otrzymania. Jest udowodnione matematycznie że algorytm Kmeans ją zapewnia. Wierzymy, że algorytm Kmeans szybko usunie błędy i zapewni szybkie i wydajne heurystyki do przypisywania “wolnych” obiektów. 4.2 Integracja z Kmeans w AntClass Kmeans jest iteracyjnym algorytmem wymagającym początkowego podziału danych. Podział ten jest dostarczany przez mrówki. Algorytm działa następująco (patrz fig.7): oblicza środek każdej grupy a następnie oblicz nowy podział poprzez przypisanie każdego obiektu do sterty której środek jest mu najbliższy. Ten cykl jest powtarzany podaną liczbę iteracji albo dopóki przypisanie w ciągu jednego cyklu nie wprowadzi zmian. Eksperymenty opisane w rozdziale 6.2 pokazują, że ta hybrydyzacja jest cenna ponieważ efektywnie usuwa błędy złej klasyfikacji. Jakkolwiek algorytm Kmeans nie jest optymalny, dlatego nie jest w stanie odnaleźć poprawnej liczby klas. W celu wyeliminowania tej niedogodności wprowadziliśmy hierarchiczne grupowanie opisane w następnym rozdziale. 5 Hierarchiczne grupowanie 5.1 Motywacje Podczas eksperymentów zauważyliśmy, że dwa poprzednie kroki (mrówki + Kmeans) dają dobre rezultaty pod względem błędów klasyfikacji. Jakąkolwiek liczba klas by nie była zawsze jest skończona. Zauważyliśmy, że dwa pierwsze kroki tworzą wiele małych ale bardzo homogenicznych stert. Dlatego, co zaprezentujemy w następnym rozdziale, postanowiliśmy potraktować otrzymane sterty jako obiekty i ponownie przeprowadzić grupowanie za pomocą mrówek. Jakkolwiek hierarchiczne grupowanie jest standardową techniką klasyfikacji, kolejną motywacją była chęć przetestowania czy może być z powodzeniem wykonane przez mrówki. 5.2 Grupowanie stert przez mrówki Rozważmy hybrydowy algorytm będący połączeniem mrówek z Kmeans który przeprowadził grupowanie na k stert obiektów. W celu pozwolenia mrówkom na działanie na stertach jak na obiektach po prostu zaadoptowaliśmy wcześniej opisany algorytm: mrówki będą mogły przenosić całą stertę obiektów. Algorytm podnoszenia stert jest globalnie taki sam. Mrówki podnoszą sterty z tym samym prawdopodobieństwem Pload. Dodaliśmy jednak mechanizm zapobiegający przenoszeniu stert przez mrówki jednocześnie, ponieważ jak zobaczymy w następnym rozdziale liczba stert będzie jedynie się zmniejszała. Dlatego gdy pozostanie zaledwie kilka stert, ważne jest żeby nie były przenoszone w tym samym czasie, bo mrówka nie będzie mogła odnaleźć potrzebnej jej do połączenia grupy. Więc jak grupa zostanie upuszczona, jest oznaczana czymś w rodzaju feromonu, co ma zabezpieczyć przed podniesieniem jej przez inne mrówki przez określony czas (500 iteracji). Mrówka upuści stertę H 1 na inną stertę H 2 zgodnie ze wzorem: Baza danych Obiektów Atrybutów Artif. 1 Artif. 2 Artif. 3 Artif. 4 Iris Wine Glass Soybean Thyroid Breast cancers Soybean 1 % Soybean 5 % 80 270 200 150 178 178 214 47 215 699 47 47 2 2 2 10 4 13 9 21 5 9 21 21 % nietrafionych Liczba klas 0 0 0 0 0 0 0 0 0 0.25 1 5 4 9 4 3 3 3 26 4 3 2 4 4 Table 1: 12 zestawów danych rozpatrywanych w tym dokumencie. Soybean 1% oznacza, że losowo dodaliśmy 1% zagubionych wartości w bazie. Gdy H1 i H 2 są połączone ze sobą tworzą nową stertę H3 . Oznacza to, że jak dwie sterty zostaną połączone, nie będą mogły zostać później rozdzielone. Przyśpiesza to proces grupowania. 5.3 Końcowy hybrydowy i hierarchiczny algorytm AntClass Sprawdziliśmy doświadczalnie, że opisany w poprzednim rozdziale algorytm (mrówki grupujące sterty) daje poprawną liczbę klas ale może wprowadzić małe błędy złej klasyfikacji. Toteż w celu ich usunięcia używamy po raz kolejny algorytmu Kmeans co pokazano na figure 7. Więc algorytm składa się z 4 głównych kroków: (1) algorytm mrówkowy dla grupowania obiektów poprzedzający (2) algorytm Kmeans wykorzystujący otrzymany podział początkowy, następnie (3) mrówkowe grupowanie otrzymanych uprzednio stert i ostatecznie (4) kolejne przeprowadzenie algorytmu Kmeans. Powinniśmy jeszcze dodać, że wszystkie wartości atrybutów są normalizowane, w celu uniknięcia problemów skalowania pomiędzy atrybutami, poprzez rzutowanie liniowe wartości atrybutów na przedział [0,1]. 6 Wyniki eksperymentów 6.1 Ustawienia eksperymentów i zestawy danych Zastosowaliśmy AntClass do kilku numerycznych baz danych, wliczając w to sztuczne, podobne do tych używanych przez Lemera i Faiete, prawdziwych baz z Machine Learning Repository, które są często używane jako testowe i prawdziwych problemów we współpracy z przemysłem. Nie będziemy jednak opisywać tej ostatniej aplikacji, ponieważ to jest tajne (zastrzeżone), ale możemy wspomnieć, że otrzymane rezultaty otrzymane przez AntClass są zbieżne z tymi otrzymanymi przez SAS, co jest bardzo pozytywnym wynikiem. Informacje na temat użytych baz danych można znaleźć w tab.1. Jak zobaczymy w tym rozdziale, “Artif.1 do “Artif. 4” zostały użyte do zbadania zachowania algorytmu na bazach o znanych parametrach. W tych bazach danych przykłady są generowane zgodnie z prawami Gaussa. W celu sprawdzenia osiągniętych rezultatów grupowania (czy też sprawdzenia algorytmów Kmeans i ISODATA w badaniach porównawczych w rozdziale 6.4) ustaliliśmy następującą metodę. Użyliśmy baz danych do uczenia z nadzorem (??) tj. baz gdzie poprawne klasy są znane dzięki atrybutowi “Class”. Atrybut ten nie jest znany algorytmowi grupującemu i służy tylko do sprawdzenia otrzymanych wyników. W celu oceny wydajności grupowania zdefiniowaliśmy dwie miary bliskości otrzymanego wyniku z rzeczywistym. Pierwsza z nich, współczynnik błędu klasyfikacji. Wszystkie obiekty z H nie należące do tej klasy są rozważane jako niezaklasyfikowane. Współczynnik błędu to po prostu stosunek pomiędzy całkowitą liczbą niesklasyfikowanych obiektów (dla wszystkich stert) a całkowitą liczbą obiektów w E. Drugim parametrem jest liczba otrzymanych grup. Wszystkie testy zostały przeprowadzone na standardowym komputerze PC (Pentium 166). Każdy kończył się w przeciągu kilku sekund (zazwyczaj od 10 do 20 sekund). Prezentowane wyniki są uśrednione z 50 prób. Na zakończenie ważne zaznaczenia jest to, że wszystkie parametry mrówek w AntClass były zawsze takie same dla wszystkich zestawów danych, tj. generowane losowo z tych samych zakresów (patrz figure 6). Mrówki były symulowane przez 2000 iteracji przy klasyfikacji obiektów i 50000 przy grupowaniu stert. Liczba iteracji algorytmu Kmeans w AntClass była ustawiona na 10. 6.2 Rezultaty otrzymane na sztucznych zestawach danych Sztuczne zestawy danych są pomocne w pokazaniu wydajności AntClass na danych o znanych właściwościach i trudności grupowania. Dają też empiryczną zachętę do używania naszego hierarchicznego hybrydowego algorytmu. Osiągnięte wyniki są przedstawione w table 2. Przedstawiliśmy wyniki pośrednie po każdym z 4 kroków by pokazać postęp w prowadzonej klasyfikacji. Pierwszy krok mrówkowy jedynie tworzy inicjujący podział z błędami klasyfikacji i z naprawdę za dużą liczbą otrzymanych grup. Dobre skupienie podejścia stochastycznego jest czasochłonne. Musi on działać też na obiektach które pozostały same na tablicy bądź były niesione przez mrówki. Na końcu drugiego kroku AntClass, tj. użycia algorytmu Kmeans na początkowym podziale znalezionym wcześniej przez mrówki (patrz tab.2 linia 2) liczba błędów jest silnie zredukowana ale liczba grup pozostaje wciąż wysoka. Bierze się to stąd, że Kmeans jest bardzo zależny od początkowego podziału. Toteż jeśli ten podział zawiera za dużo grup, wówczas wynik nie jest optymalny. W tym kroku każdy obiekt jest przypisany do grupy. Zestaw danych Artif. 1: błędów liczba klas: Artif. 2: błędów liczba klas: Artif. 3: błędów liczba klas: Artif. 4: błędów liczba klas: 1: Mrówki na 2: Kmeans 3: Mrówki na 4: Kmeans obiektach na obiektach stertach na stertach : : : : 11.58 % 8.15 17.24 % 22.30 20.35 % 15.06 22.23 % 5.22 0.21 % 7.76 0.52 % 17.07 6.32 % 14.98 3.32 % 5.18 0.42 % 4.24 0.00 % 4 2.22 % 10.46 6.93 % 5.42 2.68 % 2.94 0.00 % 9.02 4.66 % 4.42 1.33 % 2.96 Table 2: Pośrednie i końcowe wyniki otrzymane przez AntClass dla 4 sztucznych baz danych. Po przeprowadzeniu trzeciego kroku otrzymane wyniki są bardzo bliskie pożądanym pod względem liczby klas, a to dzięki traktowaniu stert jako obiektów i ich grupowaniu. Jednakże pewne błędy klasyfikacji pozostają. Użycie algorytmu Kmeans po raz kolejny ponownie zmniejsza liczbę błędów klasyfikacji. Ale tym razem otrzymany początkowy podział jest bardzo bliski optymalnemu, więc Kmeans znajdzie optymalne lub bliskie optymalnemu rozwiązanie. 6.3Rezultaty otrzymane na prawdziwych zestawach danych Rezultaty osiągnięte na prawdziwych bazach zostały przedstawione w tab.3. Dobre wyniki na sztucznych danych zostały potwierdzone na prawdziwych bazach danych, z wyjątkiem może bazy Fishers Iris gdzie otrzymana liczba klas jest poprawna ale nie współczynnik błędu. Jedna z 3 klas, klasa Setosa, jest zupełnie inna od dwóch pozostałych. Jednakże pozostałe dwie klasy są bardzo trudne do rozróżnienia, co powoduje duży współczynnik błędu. Na pozostałych bazach współczynnik błędu klasyfikacji są bardzo dobre (patrz następny rozdział). Dodatkowo AntClass osiąga prawdziwą liczbę klas. Dla bazy Glass można zdefiniować od 2 do 6 klas. AntClass wyznacza 6 naturalnych klas, które pokazują regularność w zestawie danych. 6.4 Badania porównawcze W tym rozdziale opisujemy rezultaty otrzymane przez algorytmy Kmeans i ISODATA (Ball i Hall 1965). Każdy algorytm jest inicjowany z 10 klasami i obiektami losowo do nich przypisanymi. Algorytm Kmeans jest użyty przez 10 iteracji i został opisany wcześniej w rozdziale 4.2. ISODATA jest zmodyfikowaną wersją Kmeans, która potrafi: • usuwać klasy mające mniej niż Min obj obiektów, Zestaw danych Liczba klas (rzeczywista) Artif. 1 4 Artif. 2 9 Artif. 3 4 Artif. 4 3 Iris 3 Wine 3 Glass 26 Soybean 4 Thyroid 3 Breast cancers 2 Soybean 1 % 4 Soybean 5 % 4 Liczba klas Liczba klas (średnia) (najczęściej) 4 4 9.02 9 4.42 4 2.96 3 3.02 3 3.06 3 7.7 8 4.82 5 3.28 3 4.6 4 4.84 5 4.44 5 Błąd klasyfikacji 0.00 % 0.00 % 4.66 % 1.33 % 15.4 % 5.38 % 4.48 % 0.13 % 6.38 % 3.50 % 0.00 % 3.02 % Table 3: Rezultaty otrzymane przez AntClass na sztucznych i prawdziwych bazach danych. “Soybean 1%” i “Soybean 5%” oznaczają bazę danych Soybean do której losowo dodaliśmy 1% i 5% zaginionych wartości. Zestaw danych Artif. 1 Artif. 2 Artif. 3 Artif. 4 Iris Wine Glass Soybean Thyroid Breast cancers Liczba klas Liczba klas (rzeczywista) (średnia)) 4 5.63 9 9.73 4 7.26 3 9.60 3 6.95 3 8.98 26 7.06 4 7.93 3 8.77 2 9.39 Błąd klasyfikacji 2.15 % 12.78 % 7.30 % 0.00 % 4.63 % 8.57 % 50.16 % 3.89 % 8.26 % 3.68 % Table 4: Rezultaty otrzymane przez Kmeans. Tutaj zagubione wartości są rozpatrywane podobnie jak w AntClass. Zestaw danych Artif. 1 Artif. 2 Artif. 3 Artif. 4 Iris Wine Glass Soybean Thyroid Breast cancers Liczba klas (rzeczywista) 4 9 4 3 3 3 26 4 3 2 Błąd Liczba klas (średnia) klasyfikacji 5.59 1.45 % 6.46 28.22 % 6.70 7.89 % 9.56 0.00 % 6.52 6.93 % 9.36 5.42 % 9.39 42.39 % 8.73 2.72 % 7.24 8.23 % 10.06 3.13 % Table 5: Wyniki otrzymane przez algorytm ISODATA. •podzielić klasę na dwie gdy odchylenie w klasie jest powyżej Max dev, •połączyć ze sobą dwie klasy gdy ich odległość jest mniejsza niż Min dist. Użyliśmy następujących wartości: Minobj = 1, Maxdev = 1.027 i Mindist = 0.117. Te dwie ostatnie wartości zostały znalezione dzięki wykorzystaniu atrybutu "Class", co jest rzeczywistym ułatwieniem w ISODATA, ponieważ reprezentuje ważną początkową informację jaka nie była znana w AntClass. W celu obliczenia Maxdev dane muszą zostać znormalizowane poprzez rzutowanie na przedział [0,1] i dla każdej z klas obliczyliśmy odchylenie obiektów wokół centrum od ich rzeczywistej klasy. Te wartości były takie same na wszystkich bazach danych w celu obliczenia Maxdev. Mindev natomiast był obliczony w ten sam sposób poprzez rozważenie dla każdej bazy minimalnej odległości między centrami dwóch klas. Również ISODATA działał 10 iteracji. Sprawdziliśmy również wyniki przy większej ich liczbie, ale były bardzo podobne. Rezultaty otrzymane przez Kmeans i ISODATA są przedstawione w tab.4 i tab.5. Jak możemy zauważyć AntClass przewyższa oba algorytmy zarówno pod względem liczby błędów i poprawnej liczbie klas. Jedynym wyjątkiem jest baza Fisher's Iris gdzie AntClass znajduje wszystkie 3 klasy ale popełnia pewne błędy klasyfikacyjne. Uogólniając można powiedzieć, że Kmeans i ISODATA przeszacowują liczbę klas. Można także oczekiwać w tym przypadku, że liczba błędów będzie mała, ale tak nie jest. 7 Wnioski Przedstawiliśmy w tym dokumencie nowy mrówkowozorientowany algorytm hybrydowy dla grupowania danych, nazwany AntClass. Główne cechy tego algorytmu są następujące: AntClass działana danych liczbowych. Nie wymaga początkowej informacji o przyszłej klasyfikacji, podziału początkowego czy szacowanej liczby klas. AntClass wprowadza heurystyki dla kolonii mrówek i hybrydyzację z algorytmem Kmeans w celu poprawienia zbieżności. Wprowadziliśmy również hierarchiczne grupowanie gdzie mrówki mogą przenosić sterty obiektów a nie tylko obiekty. Dodatkowo AntClass używa heterogenicznej populacji mrówek w celu uniknięcia złożonych ustawień algorytmu dokonywanej przez eksperta domenowego. AntClass był testowany z sukcesem na kilku bazach danych wliczając te rzeczywiste i pokonał takie algorytmy jak Kmeans i ISODATA. Był również z sukcesem porównany z SAS iw prawdziwej ale tajnej aplikacji. Nasza przyszła praca będzie polegała na testowaniu jak ten model skaluje się do dużych baz danych, zawierających kilka tysięcy obiektów i powstaniem drugiej aplikacji, nad którą obecnie pracujemy. Rozważamy również inne źródła inspiracji żywymi mrówkami do problemu grupowania. Dla przykładu mrówki mogłyby spotykać się na tablicy i wymieniać obiektami. Literatura Ball G.H. and Hall D.J., ISODATA, a novel method of data analysis and pattern classification, Technical report, Stanford Research Institute, 1965. Bilchev G. and Parmee I. (1996), Constrained Optimisation with an Ant Colony Search Model, Proceedings of ACEDC'96, Adaptive Computing in Engineering, Design and Control, Second Conference March 1996, Plymouth UK. Bilchev G. (1996), Evolutionary Metaphors for the Bin Packing Problem, Proceedings of the Fifth Annual Conference on Evolutionary Programming. Bullnheimer B., Hartl R.F. and Strauss C. (1997), Applying the ant system to the vehicle routing problem, Third International Conference on Metaheuristics. Cucchiara R. (1993), Analysis and comparison of different genetic models for the clustering problem in image analysis, Proceedings of the International Conference on Artificial Neural Networks and Genetic Algorithms, R.F. Albrecht, C.R. Reeves, et N.C. Steele (Eds), Springer Verlag, pp 423427. Deneubourg J.L., Goss S., Franks N., SendovaFranks A., Detrain C. and Chretien L. (1990), The dynamic of collective sorting robotlike ants and antlike robots, Proceedings of the first Conference on Simulation of Adaptive Behavior 1990, J.A. Meyer et S.W. Wilson (Eds), MIT Press/Bradford Books, pp 356363. Di Caro G. and Dorigo M. (1997), AntNet: A mobile agents approach for adaptive routing, Technical Report, IRIDIA 9712. Dorigo M. and Gambardella L.M. (1997), Ant colony system: a cooperative learning approach to the travelling salesman problem, IEEE Transactions on Evolutionary Computation, 1, 1, pp 53 66. Forsyth P. and Wren A. (1997), An Ant System for Bus Driver Scheduling, Presented at the 7th International Workshop on ComputerAided Scheduling of public Transport, Boston. Fresneau D. (1985), Individual foraging and path fidelity in a ponerine ant, Insectes Sociaux, Paris, 1985, Volume 32, n 2, pp 109116. Gambardella L.M., Taillard E.D. and Dorigo M. (1997), Ant Colonies for the QAP, Tech. Rep. No. IDSIA 974, IDSIA, Lugano, Switzerland. Goss S. and Deneubourg J.L. (1991), Harvesting by a group of robots, Proceedings of the first European Conference on Artificial Life 1991, F.J. Varela et P. Bourgine (Eds), MIT press/Bradford Books, pp 195204. Jones D.R. et Beltrano M.A. (1991), Solving partitioning problems with genetic algorithms, Proceedings of the fourth International Conference on Genetic Algorithms, 1991, R.K. Belew and L.B. Booker (Eds), Morgan Kaufmann, pp 442449. Kuntz P. et Snyers D. (1994), Emergent colonization and graph partitioning, Proceedings of the third International Conference on Simulation of Adaptive Behavior: From Animals to Animats 3 (SAB94), D. Cliff, P. Husbands, J.A. Meyer, S.W. Wilson (Eds), MITPress, pp 494500. Kuntz P., Layzell P. et Snyers D. (1997), A colony of Antlike agents for partioning in VLSI technology, Proceedings of the fourth European Conference on Artificial Life 19941, P. Husbands et I. Harvey (Eds), MIT press, pp 417424. Lumer E.D. et Faieta B.(1994), Diversity and Adaptation in Populations of Clustering Ants, Proceedings of the third International Conference on Simulation of Adaptive Behavior: From Animals to Animats 3 (SAB94), D. Cliff, P. Husbands, J.A. Meyer, S.W. Wilson (Eds), MIT Press, pp 501508. Schatz B., Lachaud J.P. and Beugnon G. (1997), Graded recruitment and hunting strategies linked to prey weight and size in the ponerine ant Ectatomma ruidum, Behav. Ecol. Sociobiol. (1997) 40:337349, Springer Verlag.