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@univ­tours.fr
Phone: +33­2­47­36­14­14
Fax: +33­2­47­36­14­22
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 2­wymiarowej 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.32­wymiarowa tablica .........................................................................................
3.4Sterty obiektów ..................................................................................................
3.5Mrówki .............................................................................................................
3.5.1Kolonia ..................................................................................................
3.5.2Mrówkowo­zorientowane 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ówkowo­podobnych
agentów mogła poruszać się po 2­wymiarowej 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ówkowo­podobnej 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 2­wymiarowej 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 2­wymiarowej 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ówkowo­zorientowane
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 2­wymiarowej 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
2­wymiarowa 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 2­wymiarowej tablicy. Tablica
ta będzie traktowana jak 2­wymiarowa 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 2­wymiarowej 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
dwu­elementowa, 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ę 2­el.
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
2­6
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
2­6
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
2­6
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
2­6
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ówkowo­zorientowany 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 423­427.
Deneubourg J.­L., Goss S., Franks N., Sendova­Franks A., Detrain C. and Chretien L. (1990),
The dynamic of collective sorting robot­like ants and ant­like 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 356­363.
Di Caro G. and Dorigo M. (1997), AntNet: A mobile agents approach for adaptive routing,
Technical Report, IRIDIA 97­12.
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 Computer­Aided 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 109­116.
Gambardella L.M., Taillard E.D. and Dorigo M. (1997), Ant Colonies for the QAP, Tech. Rep. No.
IDSIA 97­4, 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 195­204.
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 442­449.
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), MIT­Press, pp 494­500.
Kuntz P., Layzell P. et Snyers D. (1997), A colony of Ant­like 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 417­424.
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 501­508.
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:337­349, Springer Verlag.

Podobne dokumenty