nieliniowe z ograniczeniami


I. Metoda programowania nieliniowego PNL.

Celem ćwiczenia jest zapoznanie się z podstawową metodą rozwiązywania nieliniowego zadania optymalizacji z ograniczeniami na przykładzie algorytmu optymalizacji lokalnej z ograniczeniami lub algorytmu genetycznego z ograniczeniami.

Algorytm optymalizacji lokalnej lub algorytm optymalizacji globalnej (algorytm genetyczny) z ograniczeniami pozwala na wyliczenie takiego wektora zmiennych decyzyjnych x, dla którego funkcja celu osiąga minimum :

0x01 graphic

Przy ograniczeniach: 0x01 graphic

--> Wstęp teoretyczny (na postawie informacji zawartych na stronie: http://pl.wikipedia.org)[Author:M]

Algorytm genetyczny to rodzaj algorytmu przeszukującego przestrzeń alternatywnych rozwiązań problemu w celu wyszukania rozwiązań najlepszych. Sposób działania algorytmów genetycznych nieprzypadkowo przypomina zjawisko ewolucji biologicznej, ponieważ ich twórca John Henry Holland właśnie z biologii czerpał inspiracje do swoich prac.

Najczęściej działanie algorytmu przebiega następująco:

  1. Losowana jest pewna populacja początkowa.

  2. Populacja poddawana jest ocenie (selekcja). Najlepiej przystosowane osobniki biorą udział w procesie reprodukcji.

  3. Genotypy wybranych osobników poddawane są operatorom ewolucyjnym:

    1. są sobą kojarzone poprzez złączanie genotypów rodziców (krzyżowanie),

    2. przeprowadzana jest mutacja, czyli wprowadzenie drobnych losowych zmian.

  4. Rodzi się drugie (kolejne) pokolenie i algorytm powraca do kroku drugiego, jeżeli nie znaleziono dostatecznie dobrego rozwiązania. W przeciwnym wypadku uzyskujemy wynik.

Działanie algorytmu genetycznego obejmuje kilka zagadnień potrzebnych do ustalenia:

  1. ustalenie genomu jako reprezentanta wyniku

  2. ustalenie funkcji przystosowania/dopasowania

  3. ustalenie operatorów przeszukiwania

II. Zadania do wykonania

1. f(x) = (x1 - 2)2 + (x2 - 2)2

Punkt optymalny: x* = [2, 2]

Wartość optymalna funkcji: f(x*) = 0

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-5, 5]

x2 = [-5, 5]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

      1. ograniczenie nieaktywne

Ograniczenie: x1 + x2 < 6

Punkt optymalny: x* = [2, 2]

Wartość optymalna funkcji: f(x*) = 0

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic

      1. ograniczenie aktywne

Ograniczenie: x1 + x2 < 2

Punkt optymalny: x* = [0.937, 1.055] x* = [1, 1]

Wartość optymalna funkcji: f(x*) = 2.023 f(x*) = 2

-5 : 5 -2:2

--> Wizualizacja rozwiązania z ograniczeniem:[Author:M]

0x01 graphic
0x01 graphic

2. f(x) = 2x12 - 2x1x2 + x22

Punkt optymalny: x* = [0, 0]

Wartość optymalna funkcji: f(x*) = 0

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-2, 2]

x2 = [-2, 2]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie nieaktywne

Ograniczenie: 4x1 + 3x2 < 12

Punkt optymalny: x* = [0, 0]

Wartość optymalna funkcji: f(x*) = 0

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic

  1. ograniczenie aktywne

Ograniczenie: - x1 - 2x2 < - 4

Punkt optymalny: x* = [1, 1.5] x* = [0.904, 1.548]

Wartość optymalna funkcji: f(x*) = 1.25 f(x*) = 1.232

-2 : 2 0 : 2

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

3. f(x) = x12 + x1x2 + 0.5x22 - x1 - x2

Punkt optymalny: x* = [0, 1]

Wartość optymalna funkcji: f(x*) = -0.5

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-2, 2]

x2 = [-2, 2]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie nieaktywne

Ograniczenie: - 2x1 + 3x2 < 6

Punkt optymalny: x* = [0, 1]

Wartość optymalna funkcji: f(x*) = - 0.5

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic

b) ograniczenie aktywne

Ograniczenie: x1 < - 1

Punkt optymalny: x* = [-1, 2] x* = [-1, 2]

Wartość optymalna funkcji: f(x*) = 0 f(x*) = 0

-2 : 2 -2:0, 1:3

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

4. Funkcja Engwall'a f(x) = x14 + x24 - 2x12x2 - 4x1 + 3

Punkt optymalny: x* = [1,309, 0,949]

Wartość optymalna funkcji: f(x*) = -1,74109

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-2, 2]

x2 = [-2, 2]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie nieaktywne

Ograniczenie: 3x1 + 4x2 < 12

Punkt optymalny: x* = [1.31, 0.94]

Wartość optymalna funkcji: f(x*) = - 1.74

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic

b) ograniczenie aktywne

Ograniczenie: x1 + x2 < 1

Punkt optymalny: x* = [1, 0] x* = [1, 0 ]

Wartość optymalna funkcji: f(x*) = 0 f(x*) = 0

-2:2 0:2, -1:1

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

5. Zmodyfikowana funkcja Himmelblau'a f(x) = (x12 + x2 - 11)2 + (x1 + x22 - 7)2 - 200

Punkty optymalne: Cztery identycznej wartości minima lokalne

Wartość optymalna funkcji: f(x*) = -200

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-5, 5]

x2 = [-5, 5]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie nieaktywne

Ograniczenie: x12 + x22 < 25

Punkty optymalne: x1* = [3, 2] x2* = [-3.78, -3.28] x3* = [-2.81, 3.13] x4* = [3.58, -1.85]

Wartość optymalna funkcji: f(x*) = - 200

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic

b) ograniczenie aktywne

Ograniczenie: x12 + x22 < 1

Punkt optymalny: x* = [0.82, 0.57] x* = [0.78, 0.62]

Wartość optymalna funkcji: f(x*) = - 70.57 f(x*) = -70.65

-5:5 -1:1

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

--> 6. f(x) = (x1 - 2)2 + (x2 - 1)2[Author:M]

Punkt optymalny: x* = [2, 1]

Wartość optymalna funkcji: f(x*) = 0

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-2, 4]

x2 = [-2, 4]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie aktywne

Ograniczenia: x12 - x2 < 0

x1 + x2 < 2

Punkt optymalny: x1* = [1, 1] x* = [1, 1]

Wartość optymalna funkcji: f(x*) = 1 f(x*) = 1

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

-2:4 -2:2, 0:2

7. f(x) = (x1 - 1)2 + (x2 - 5)2

Punkt optymalny: x* = [1, 5]

Wartość optymalna funkcji: f(x*) = 0

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-2, 4]

x2 = [2, 8]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie aktywne

Ograniczenia: x12 - x2 < 0

x1 + x2 < 2

Punkt optymalny: x1* = [-1.127, 3.079] x* = [-1, 3]

Wartość optymalna funkcji: f(x*) = 8.216 f(x*) = 8

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

-2:4 -2:2, 0:4

7. f(x) = (x1 + 3)2 + (x2 - 1)2

Punkt optymalny: x* = [-3, 1]

Wartość optymalna funkcji: f(x*) = 0

Część programowa:

Ogólne założenia

Populacja początkowa: 40 osobników

Wybór początkowej populacji: losowy

Krzyżowanie: 60%

Mutacja: 12%

Kryterium stopu: brak postępu

Zakres zmiennych: x1 = [-5, -1]

x2 = [-1, 3]

Wizualizacja rozwiązania bez ograniczeń:

0x01 graphic

a) ograniczenie aktywne

Ograniczenia: x12 - x2 < 0

x1 + x2 < 2

Punkt optymalny: x1* = [-1.27, 1.62] x* = [-1.25, 1.56]

Wartość optymalna funkcji: f(x*) = 3.378 f(x*) = 3.379

Wizualizacja rozwiązania z ograniczeniem:

0x01 graphic
0x01 graphic

-5:-1, -1:3 -2:0, 1:3

III. Wnioski

Efektywność i dokładność obliczeniowa algorytmu genetycznego zależy głównie od prawidłowego doboru zakresu wartości zmiennych oraz w przypadku programowania nieliniowego z ograniczeniami właściwego doboru ograniczeń. Nieprawidłowy dobór obszaru z ograniczeniami nieaktywnymi (λ < 0) i bez ograniczeń (λ = 0) powoduje błędne wskazania wartości optymalnej. W przypadku zbyt dużego obszaru algorytm może idealnie nie trafić w punkt optymalny, zbyt mały obszar powoduje nie znalezienie optymalnego rozwiązania (punkt optymalny będzie znajdował się na brzegach badanego obszaru). W przypadku zadania z ograniczeniami dobór obszaru jest równie ważny, nie musimy jednak obejmować całego obszaru funkcji, wystarczy tylko aby ograniczony obszar poszukiwań w wybranych przedziałach się znajdował. Najlepiej dobrać jak najmniejszy możliwy obszar, mamy wtedy większe prawdopodobieństwo na znalezienie optimum warunkowego.

Kolejnym istotnym problemem jest dobór algorytmu selekcji, ponieważ od nich zależy dokładność odszukanego optimum. Jednak w wybranym programie nie mieliśmy możliwości wyboru algorytmu selekcji.

Ważnym parametrem jest rozmiar populacji. W zadaniach opracowywanych w tym ćwiczeniu optymalna liczba osobników w populacji powinna mieścić się w granicach 30 - 50. Na szybkość i efektywność algorytmu genetycznego poza algorytmem selekcji ma wpływ jakość osobników w początkowej populacji. A więc dobre losowanie (w przypadku zastosowania takiej metody wyboru początkowej populacji) ma bardzo duży wpływ na osiągnięcie optymalnego rozwiązania.

Decydujący wpływ na końcowe rozwiązanie ma kryterium stopu, czyli warunek decydujący o zatrzymaniu pracy algorytmu. Zdecydowanie najlepszym wyborem (naszym zdaniem) jest kryterium na brak postępu, ponieważ w miarę szybko znajduje optymalne rozwiązanie. W przypadku wyboru kryterium na liczbę generacji musimy orientować się jak dobrać tą liczbę. Zbyt mała liczba spowoduje, że algorytm nie dojdzie do rozwiązania optymalnego, natomiast zbyt duża liczba znacznie wydłuży czas wyszukiwania optimum.

Głównym zadaniem tego ćwiczenia był odpowiedni dobór ograniczeń, aby uzyskać ograniczenia aktywne (przesuwające punkt optymalny funkcji celu) i nieaktywne (nie mające wpływy na wartość optymalną funkcji celu). Po przeanalizowaniu wybranych funkcji i ograniczeń stwierdziliśmy, że ćwiczenie zostało wykonane poprawie, potwierdziła to również analiza analityczna (załącznik: przykładowe obliczenia).

Laboratorium

Technika optymalizacji

Autorzy:

  1. Dawid Tomasz (140517)

  2. Garbicz Marcin (140547)

Kier.: EiT Spec.: ESA

Wrocław, dnia 13.11.2006

Prowadzący:

Dr inż. Ewa Szlachcic

Ćwiczenie V

Zadanie programowania nieliniowego z ograniczeniami

Algorytmy optymalizacji lokalnej i algorytmy optymalizacji globalnej

12

Napisać zdecydowanie ambitniejszy wstęp + opisać ogólnie wpływ ograniczeń.

Komentarz do wszystkich wizualizacji!!!

Podpisać obrazki (dla jakich zakresów zmiennych widoczna wizualizacja) - u nas ręcznie to było zrobione.

Poniżej dodatkowe OBOWIĄZKOWE zadania z zajęć wymyślone przez prowadzącą .



Wyszukiwarka

Podobne podstrony:
Funkcje nieliniowe?z ograniczeń
nieliniowe?z ograniczen
Optymalizacja Cw 4 Programowanie nieliniowe z ograniczeniami
Zadanie programowania nieliniowego?z ograniczeń Optymalizacja lab3
Optymalizacja Cw 3 Zadanie programowania nieliniowego bez ograniczeń algorytmy optymalizacji lokaln
Optymalizacja nieliniowa bez ograniczeń sprawozdanie
Metoda podzialu i ograniczen
W 3 RCDS,RNC,SRCD ograniczenia RCDS,REJESTRACJA
MOO wyklad 2 ekstrema bez ograniczen
Ograniczenia wytrzymałościowe pętli skonstruowanych z taśm
82 Nw 07 Ogranicznik pradu
ogranicznik drzwi reanimacja
NAI Regresja Nieliniowa
Oddziaływanie ograniczników przepięć na inne urządzenia w instalacji elektrycznej w obiekcie bu
Jak ograniczyć zużycie tarcicy
Stacjonarny laptop, BHP - darmowy transfer bez ograniczeń !!!!, BHP, ergonomia, ERGONOMIA(1)

więcej podobnych podstron