Rozwiązanie dyskretnego problemu plecakowego z użyciem

Transkrypt

Rozwiązanie dyskretnego problemu plecakowego z użyciem
Rozwiązanie dyskretnego problemu plecakowego z użyciem
schematu algorytmu genetycznego (AG) - wersja β
1
Schemat AG
Schemat działania AG.
1. Inicjacja - losowo wygeneruj populację początkową o liczebności N .
2. Powtarzaj tworzenie kolejnych pokoleń dopóki nie zostanie osiagnięty warunek stopu
(zatrzymania działania algorytmu):
(a) Dla każdego osobnika oblicz funkcję przystosowania.
(b) Przeprowadź selekcję (wybór osobników do reprodukcji).
(c) Zastosuj operatory genetyczne.
(d) Utwórz nową populację o liczebności N .
2
Projektowanie
W celu zastosowania AG do rozwiązania dowolnego problemu należy określić:
1. Kodowanie rozwiązań (określenie chromosomu osobnika). W tym celu należy określić sposób reprezentacji rozwiązania rozpatrywanego problemu w postaci ciągu liczb
(np. binarnych). Reprezentacja musi spełniać trzy podstawowe wymagania stawiane
każdej reprezentacji (a) spójność, (b) możliwość odtworzenia i (c) możliwość wykonywania operacji (wnioskowania).
2. Funkcję przystosowania (ang. fittnes function), której wartość pozwala na ocenę przystowania każdego osobnika do wymagań zadania, tzw. jakości rozwiązania. Im wyższa
wartość ff, tym rozwiązanie reprezentowane przez osobnika jest lepsze - bliższe optymalnemu.
1
3. Operatory genetyczne (krzyżowanie i mutacja) odpowiednie do wybranego sposobu
kodowania osobników. Operatory genetyczne muszą również uwzględniać (być odpowiednio skonstruowane) specyfikę problemu. Na przykład (proste) operatory krzyżowania i mutacji spełniające swoją rolę w AG rozwiązującym problem plecakowy nie
mają zastosowania w AG rozwiązującym problem TSP (problem komiwojażera).
4. Metodę (metody) selekcji populacji rodzicielskiej (ang. mating pool ) o liczebności N .
Najprostsza metoda selekcji to metoda ruletki (ang. roulette-wheel selection).
5. Warunki stopu - zatrzymanie działania algorytmu: (a) po uzyskaniu żądanej wartości
(w problemach optymalizacji jest to wartość minimalna lub maksymalna ff ), (b) po
uzyskaniu wartości ff o określonej dokładności, (c) po wykonaniu określonej liczby
iteracji (wygenerowaniu określonej liczby pokoleń), (d) w przypadku braku uzyskania
poprawy rozwiązania najlepszego w określonej liczbie pokoleń.
3
Zadanie
3.1
Dane wejściowe
Dany jest ciąg n elementów S = s1 , s2 , . . . , sn , gdzie s to para atrybutów (wi , ci ), wi , to
waga (rozmiar) elementu, ci to wartość wi . Przez B oznaczamy pojemność plecaka.
3.2
Problem
Znaleźć podzbiór S A ⊂ S taki, że suma wartości wszystkich elementów w podzbiorze
SA(
X
cj ) → max
j∈S A
jest maksymalizowana, a suma wag elementów z podzbioru S A jest mniejsza lub równa B
X
wj ¬ B
j∈S A
3.3
3.3.1
Wymagania
Dla programu
Dane wejściowe do programu mają być wprowadzane z pliku zewnętrznego (np. tekstowego
w formacie liczba elementów N , wartość elementu ci i waga elementu wi (dla każdego
Strona 2 z 4
elementu w osobnej linii), liczba iteracji). Powinna istnieć możliwość modyfikacji zawartości
plików z danymi. Jeżeli dane będą pochodziły ze źródła zewnętrznego (np. strona www),
wtedy możliwość modyfikacji nie jest wymagana. Wyniki gromadzone mają być w pliku
tekstowym w formacie liczba elementów N , wartość elementu ci i waga elementu wi (dla
każdego elementu w osobnej linii), liczba iteracji, numer iteracji i wartość najlepszego
rozwiązania (każde w osobnej linii).
3.3.2
Dla sprawozdania
W sprawozdaniu należy:
1. Opisać rozwiązywany problem.
2. Określić założenia podstawowe
• wybrany wariant rozwiązania,
• użyte metoda(y) selekcji,
• użyte operatory genetyczne,
• funkcja przystosowania,
• sposób kodowania,
• warunki stopu,
3. Dla każdej próby określać:
• prawdpodobieństwo krzyżowania pk ,
• prawdopodobieństwo mutacji pm ,
• wielkosć populacji,
• liczbę iteracji
4. Dla każdej próby narysować wykres zależności wartości ff najlepszego osobnika względem liczby iteracji.
5. Dla każdej próby narysować wykres zależności średniej wartości ff populacji względem
liczby iteracji.
6. Przeprowadzić analizę otrzymanych wyników pod kątem odpowiedzi na pytania:
(a) Jaki wpływ na uzyskiwane wyniki mają:
• prawdopodobieństwo krzyżowania pk ,
Strona 3 z 4
• prawdopodobieństwo mutacji pm ,
• wielkość populacji,
• metody selekcji (dla wariantów Rozszerzonego i Eksremalnego),
• metody krzyżowania (dla wariantów Rozszerzonego i Eksremalnego)?
(b) Jaki jest błąd uzyskiwanego rozwiązania dla różnych instancji problemu?
(c) Jaka jest efektywność AG w przypadku problemu plecakowego?
3.4
3.4.1
Warianty
Podstawowy (na 4,0)
Wariant podstawowy (wystarczający na zaliczenie zadania) obejmuje zaprojektowanie i implementację algorytmu genetycznego zgodnie z punktami wymienionymi w pkt. 1.
Należy wybrać jedną metodę selekcji (np. koła ruletki), krzyżowania (np. jednopunktowe)
i mutacji. Należy wykonać sprawozdanie wg. wytycznych podanych w pkt. 3.3.2.
3.4.2
Rozszerzony (na 5,0)
W wariancie rozszerzonym należy wybrać co najmniej dwie metody selekcji i krzyżowania.
W sprawozdaniu należy powrównać efektywność wybranych metod.
3.4.3
Ekstremalny (na 5,5)
Wariant ekstremalny obejmuje rozwiązanie problemu z wieloma plecakami, gdzie danych
jest m plecaków o pojemnościach C1 , C2 , . . . , Cm . Podobnie jak w wariancie rozszerzonym
należy wybrać co najmniej dwie metody selelkcji i dwie metody krzyżowania.
Literatura
1. L. Rutkowski, Metody i techniki sztucznej inteligencji, Wydawnictwo naukowe PWN,
Warszawa 2006.
Strona 4 z 4