Wstęp - IPI PAN

Transkrypt

Wstęp - IPI PAN
Wstęp
O czym jest ta książka? Co znaczy kluczowe słowo „metaheurystyki” użyte w tytule? Aby odpowiedzieć na te pytania, należy najpierw ustalić, jakie
znaczenie przypisywane jest prostszemu słowu heurystyka, które stanowi najważniejszy składnik tytułowego klucza.
Heurystyka (z greckiego heurisko – znajduję) to zbiór specyficznych reguł,
które mogą pomóc w zgadywaniu jak najlepszego rozwiązania dla danego problemu lub grupy problemów.
Z powyższego zdania wynika po pierwsze, że będę pisał o tym, jak szukać
dobrych i bardzo dobrych rozwiązań dla różnych problemów. Po drugie, będę
chciał wskazać na pewne zbiory reguł, które pomagają w dotarciu do tych
najlepszych rozwiązań. Po trzecie, reguły nie będą gwarantowały znalezienia
najlepszego rozwiązania, ale, jak to podczas zgadywania bywa, czasem będzie to
rozwiązanie trafione w stu procentach, a czasem tylko dostatecznie bliskie tym
najlepszym. Im skuteczniejsze reguły, tym większe szanse na to, że rozwiązania
pierwszego rodzaju będą trafiały się częściej.
Zanim jednak o tym opowiem, na początek chciałbym podać przykład,
przedstawiający pewną życiową sytuację, w której, świadomie lub nie, stosujemy różnego rodzaju heurystyki, aby uzyskać satysfakcjonujące nas rozwiązanie.
Mam nadzieję, że przykład szukania sklepu z najniższą ceną przemówi
wszystkim do wyobraźni, ponieważ sytuacja taka zdarza się co jakiś czas w zasadzie każdemu. Przychodzi dzień, kiedy dochodzimy do wniosku, że potrzebny jest nam nowy ... (tu należy wpisać nazwę dowolnego produktu. Musi on
z punktu widzenia portfela nabywcy stanowić zakup dostatecznie duży, aby nie
kupować go w pierwszym napotkanym sklepie. Cena ma być na tyle znacząca,
aby warto było zadać sobie odrobinę trudu i znaleźć ten jeden sklep, gdzie ów
produkt można kupić taniej, a może nawet najtaniej). Na początku wybieramy markę i model (wersję, typ) albo przynajmniej określony zbiór wymagań,
który precyzuje grupę kilku marek i ich modeli, spośród których następuje wybór. Wszystkie sklepy, o których wiemy, że można w nich zakupić ów produkt,
stanowią dziedzinę, czyli przestrzeń poszukiwań. Wśród nich znajduje się ten
jeden, w którym pożądany produkt jest dostępny w najniższej cenie. Stanowi
on optimum, którego szukamy.
Kiedy opisywałem ten przykład, ogarnęła mnie refleksja, iż pewnie jeszcze
20 lat temu musiałbym umieścić we wstępie coś zupełnie innego, ponieważ zadanie szukania tego samego produktu w najniższej cenie mogło być potraktowane
jako żart. Szczęśliwie jednak obecnie sytuacja wygląda mniej więcej tak, jak
8
Wstęp
to opisałem i szczerze życzyłbym sobie, żeby mój przykład jeszcze przez długi
czas nie tracił na aktualności.
Dla tak postawionego zadania optymalizacyjnego można zaproponować kilka reguł postępowania. Na początek można zastosować przeszukiwanie zachłanne, polegające na przejrzeniu wszystkich dostępnych rozwiązań, czyli odwiedzić
wszystkie wytypowane sklepy. Bywa jednak tak, że choć zadanie to jest wykonalne, to czas jego realizacji jest dla nas nie do zaakceptowania. W takim przypadku warto pomyśleć o jakiejś heurystyce, czyli prostej regule, która zbliżyłaby
nas do optimum. Godzimy się tym samym na rozwiązanie suboptymalne, czyli
bardzo bliskie optymalnemu, w imię tego, żeby jednak postawiony cel osiągnąć.
Wychodzimy tu z założenia, że lepiej kupić prawie najtaniej coś, co jest nam
potrzebne, niż nie kupić wcale.
W naszym przykładzie najprostsza z reguł mogłaby być taka: odwiedź tyle
sklepów, na ile wystarcza ci czasu, wybierz ten, gdzie było najtaniej, wróć
tam i zrób zakupy. To rozwiązanie jest łatwe w implementacji, ale ma pewne
słabości. Po pierwsze wybór sklepów jest w tym rozwiązaniu losowy, więc może się zdarzyć, że odwiedzimy trzy sklepy należące do jednej sieci handlowej,
w której realizowana jest strategia jednakowych cen. W rezultacie po prostu
zmarnujemy czas, ponieważ już odwiedzenie pierwszego sklepu dało nam informacje o cenach w pozostałych. Szybko należy więc dodać drugą regułę, aby
te losowo wybrane sklepy należały do różnych właścicieli. Można by do tego
zastosować strategię lokalnego dostrajania uzyskanych rozwiązań, która w przypadku zadania zakupów polegałaby na próbie negocjacji ceny u sprzedawcy, co
w przypadku zakupu przedmiotów o dość sporej wartości nieraz może okazać
się niespodziewanie korzystne dla kupującego.
Generalnie więc szukanie heurystyczne to efektywne łączenie dwóch działań: eksploracji i eksploatacji. Eksploracją jest proces przeszukiwania dziedziny w poszukiwaniu tych obszarów, w których może znajdować się optimum.
Eksploatacją jest dostrojenie się do najlepszego rozwiązania, dostępnego w obszarze, w którym aktualnie znajduje się poszukujący. W zależności od heurystyki i optymalizowanego zadania sposób realizacji tych działań różni się od
siebie, jednak oba zawsze występują w każdym z omawianych w następnych
rozdziałach przypadków, a ich zrównoważenie jest kluczem do sukcesu: szybkiego znalezienia optimum na zadanej dziedzinie bez zbędnego zatrzymywania
się w optimach lokalnych.
Heurystyki, które będą nas interesowały najbardziej, to te, gdzie jest możliwość prowadzenia iteracyjnego procesu szukania poprzez sprawdzenie serii
kolejno proponowanych rozwiązań. Dzięki zdobytym informacjom eliminujemy
z wybranego obszaru poszukiwań najmniej obiecujące regiony, a skupiamy się
na tych, co do których spodziewamy się, że zawierają optimum. Ponadto heurystyki dają możliwość włączenia w proces szukania również wiedzy nieformalnej
na temat problemu, tj. wiedzy pochodzącej od ekspertów, która często nie
jest w żaden sposób usystematyzowana, jednak włączona w zbiór reguł szukania może uczynić ten proces jeszcze bardziej efektywnym. Wykorzystując tak
skonstruowane reguły, które nie gwarantują co prawda znalezienia optimum,
9
ale dają możliwość sukcesywnego poprawiania istniejącego rozwiązania, można
tworzyć nowe algorytmy optymalizacyjne. Są one nazywane algorytmami heurystycznymi. Czasami też algorytmy te są nazywane krótko heurystykami, jako
że wyrażają sobą zbiór reguł tworzących daną heurystykę, tylko że dodatkowo
reguły te są zapisane za pomocą okreśolnego formalizmu, tj. np. pseudokodu.
Idąc dalej, można powiedzieć, że metaheurystyka to reguły dotyczące sposobu generowania reguł – takich, które mogą najbardziej pomóc w zgadnięciu
dobrego rozwiązania. Metaheurystykami nazywa się więc ramy i zasady generowania reguł dla konkretnych algorytmów heurystycznych. W ramach jednej
metaheurystyki można zawsze zaproponować przynajmniej kilka algorytmów
heurystycznych, będących wariantami pewnego ogólnego podejścia. Dlatego,
używając pojęć programistycznych, określamy też algorytmy jako instancje 1
metaheurystyk. Algorytmy opisane w niniejszej książce to algorytmy iteracyjne,
zbliżające się do optimum w powtarzających się krokach. Dla większości tych
algorytmów można udowodnić, że dla liczby kroków dążącej do nieskończoności
są one w stanie odnaleźć optimum.
W książce Hansena i Mladenovića[27] znajduje się lista właściwości, którymi
powinna cechować się każda metaheurystyka:
— prostota — metaheurystyka powinna być oparta na prostej i jasnej zasadzie, która powinna mieć szerokie zastosowanie,
— precyzja — kolejne kroki metaheurystyki powinny być sformułowane za
pomocą precyzyjnych matematycznych wyrażeń, niezależnie od tego, z jakiego fizycznego lub biologicznego zjawiska czerpią inspirację,
— spójność — wszystkie kroki heurystyki służącej do rozwiązania konkretnego problemu powinny być zgodne z ogólną zasadą metaheurystyki, z której
ona pochodzi,
— skuteczność — heurystyki dla ustalonych klas problemów powinny dostarczać suboptymalnych rozwiązań dla wszystkich lub przynajmniej dla
większości rzeczywistych problemów należących do danej klasy,
— efektywność — heurystyki zastosowane dla poszczególnych problemów powinny dostarczać rozwiązań suboptymalnych już przy umiarkowanym koszcie obliczeniowym,
— żywotność — wyniki działania heurystyki powinny być podobne dla wszystkich problemów danej klasy, tj. nie może być tak, że heurystyka dobrze radzi
sobie na jednym lub kilku zbiorach testowych, ale jej wyniki stają się wyraźnie gorsze, kiedy zostaje zastosowana do rozwiązywania innych problemów
tej samej klasy,
— dostępność — heurystyka powinna być przyjazna użytkownikowi, tj. sformułowana w sposób jasny i łatwy do zrozumienia oraz powinna być łatwa
w zastosowaniu. Oznacza to, że powinna mieć jak najmniej parametrów,
a najlepiej wcale,
— innowacyjność — najlepiej, gdyby zasada metaheurystyki lub skuteczność
lub przynajmniej efektywność tych heurystyk, które się z niej wywodzą,
dawały możliwość nowych jakościowo zastosowań.
1
Obiekt dynamiczny utworzony na podstawie wcześniej zdefiniowanej klasy.
10
Wstęp
W dalszej części tekstu znajdują się omówienia dziewięciu wybranych metaheurystyk. Pierwszą jest strategia prostego przeszukiwania lokalnego, przedstawiona zarówno w wersji podstawowej, jak też z kilkoma rozwinięciami. Jest
to jednocześnie wprowadzenie do opisu wszystkich pozostałych, którymi są:
— algorytm Lin-Kernighan i algorytmy 2-opt i 3-opt (przedstawione co prawda jako podrozdział w rozdziale na temat optymalizacji lokalnej, jednak
ze względu na swoją oryginalność traktowane przeze mnie jako oddzielna
metaheurystyka),
— symulowane wyżarzanie,
— przeszukiwanie z tabu,
— przeszukiwanie rozproszone,
— algorytmy ewolucyjne,
— systemy mrówkowe,
— rój cząsteczek,
— sztuczne systemy immunologiczne.
Dla każdej z tych metaheurystyk przedstawione zostały przykłady ich wykorzystania w rozwiązywaniu różnych klasycznych zadań optymalizacyjnych: rzeczywistoliczbowych i kombinatorycznych.
Aby nie rozgraniczać, które polskie określenia poszczególnych pojęć występujących w niniejszym tekście są już powszechnie uznane, a które jeszcze
funkcjonują tylko w środowiskach lokalnych i mogą się zmieniać w zależności
od ośrodka naukowego, który je stosuje, w kilku miejscach zamieściłem obok
polskich nazw również nazwy angielskie. Ponieważ jako pierwsze w większości
przypadków powstawały nazwy angielskie, z którymi czytelnik mógł się zetknąć
wcześniej, chciałem w ten sposób sprawić, aby miał on pewność, że ma na myśli
to samo pojęcie co autor. Drugi powód to ułatwienie przeszukiwania zasobów
sieci WWW w celu znalezienia aktualnych prac dotyczących tematów poruszonych w tekście. Prace te są najczęściej publikowane w sieci w języku angielskim
i jedynym sposobem ich znalezienia jest użycie właściwego słowa kluczowego,
w tym przypadku angielskiego odpowiednika danego pojęcia.
Na koniec wstępu chciałem podziękować Małgorzacie Długoborskiej za jej
wszystkie uwagi i korekty, które prostowały meandry mojego potoku myśli i skojarzeń przelanego na papier i przekazanego jej w celu uładzenia i przywrócenia
powszechnie uznawanym regułom przekazu informacji. Chciałem także podziękować prof. Zbigniewowi Michalewiczowi oraz prof. Sławomirowi T. Wierzchoniowi za ich uwagi, które znacząco wpłynęły na kształt niniejszej książki.
Krzysztof Trojanowski

Podobne dokumenty