background image

Metody rozwiązywania zadao optymalizacji 

 

Podstawowy schemat myślenia gdy natrafiamy na problem optymalizacji przebiega mniej więcej w 
ten sposób:  Sformułowanie problemu -> utworzenie funkcji celu  -> dodanie ograniczeo -> 
klasyfikacja zadania. 

 Istnieje wiele współczesnych metod optymalizacji, a dla różnych zadao jest wymyślane coraz więcej 
wyspecjalizowanych algorytmów.  Chciałbym jednak się skupid na bardziej ogólnych strategiach 
projektowania algorytmów  które potem są wykorzystywane do stworzenia algorytmów które 
rozwiązują konkretne przykłady.  

 

Algorytmy numeryczne - Obliczenie numeryczne są najważniejszym zastosowaniem 
komputerów równoległych.  Przykładem są symulacje zjawisk fizycznych, których 
przeprowadzenie sprowadza się do rozwiązania układu równao różniczkowych cząstkowych. 
Z kolei przybliżone rozwiązanie układu równao różniczkowych cząstkowych jest znajdywane 
poprzez rozwiązanie układu równao liniowych. Konkretnymi algorytmami numerycznymi są 
na przykład : metoda Newtona  jest to algorytm numeryczny mający na celu 
znalezienie minimum zadanej funkcji celu., lub Metoda Halleya – algorytm wyznaczania 
przybliżonej wartości pierwiastka funkcji y = f(x) jednej zmiennej w zadanym przedziale [a,b]. 
 

 

Przeszukiwanie wyczerpujące - czyli sprawdzenie każdego rozwiązania z przestrzeni 
rozwiązao zaletą jest to że na pewno znajdziemy rozwiązanie optymalne, natomiast wadą 
jest najczęściej duża przestrzeo rozwiązao która powoduje znaczną czasochłonnośd 
 

 

Przeszukiwanie lokalne – przeszukiwanie części przestrzeni rozwiązao w otoczeniu 
konkretnego rozwiązania, dzięki temu mamy mniejszą czasochłonnośd szczególnie jeśli 
rozmiar otoczenia jest niewielki wtedy możemy je bardzo szybko przeszukad minusem tego 
sposobu jest „pułapka” lokalnego optimum 
 
 

 

Programowanie liniowe- to klasa problemów programowania matematycznego, w której 
wszystkie warunki ograniczające oraz funkcja celu mają postad liniową. np. Algorytm 
Sympleksowy inaczej metoda sympleks(ów) to stosowana w matematyce iteracyjna metoda 
rozwiązywania zadao programowania liniowego za pomocą kolejnego polepszania 
(optymalizacji) rozwiązania. Nazwa metody pochodzi od sympleksu, figury wypukłej będącej 
uogólnieniem trójkąta na więcej wymiarów. 
 

 

Teoria programowania nieliniowego jest to przypadek programowania matematycznego, w 
którym funkcja celu bądź ograniczenia są funkcjami nieliniowymi np. Zagadnienie wyboru 
optymalnego portfela akcji
  
 

 

Programowanie dynamiczne jest alternatywą dla niektórych zagadnieo rozwiązywanych za 
pomocą algorytmów zachłannych Programowanie dynamiczne opiera się na podziale 
rozwiązywanego problemu na pod problemy względem kilku parametrów. W odróżnieniu od 
techniki dziel i zwyciężaj pod problemy w programowaniu dynamicznym nie są na ogół 
rozłączne, ale musi je cechowad własnośd optymalnej podstruktury. Programowanie 

background image

dynamiczne jest jedną z bardziej skutecznych technik rozwiązywania problemów NP-
trudnych
. Niejednokrotnie może byd z sukcesem stosowana do względnie dużych 
przypadków problemów wejściowych, o ile stałe występujące w problemie są stosunkowo 
nieduże.  Na przykład, w przypadku dyskretnego zagadnienia plecakowego jako parametry 
dynamiczne w metodzie programowania dynamicznego należy przyjąd rozmiar kolejno 
rozpatrywanych podzbiorów elementów oraz rozmiar plecaka, zmieniający się od 0 do 
wartości B danej w problemie.  
 

 

Algorytmy zachłanne- tworzą one pełne rozwiązanie za pomocą ciągu kroków, istotną zaletą 
jest prostota tych algorytmów, wystarczy przypisywad wartości wszystkim zmiennym 
problemu podejmując za każdym razem możliwie najlepszą decyzje, niestety podejmowanie 
najlepszej decyzji w poszczególnych krokach nie zawsze prowadzi do decyzji najlepszej 
 

 

Ogólnie metody działające na rozwiązaniach niepełnych w wąskim zakresie umożliwiają 
szybki i wiarygodne znalezienie rozwiązania globalnego , natomiast metody operujące na 
pełnych rozwiązaniach gwarantują osiągnięcie sukcesu  w poszukiwaniach lecz najczęściej 
odbywa się to kosztem zwiększonego czasu działania. Stąd też próby stworzenia takich 
algorytmów które unikają pułapki minimum lokalnego . Przykładem takich algorytmów może 
byd symulowane wyżarzanie lub poszukiwanie z tabu.  Wyżarzanie jest podobne do 
przeszukiwania lokalnego jednakże wprowadza się tam dodatkowy parametr zwany 
temperaturą, który zmienia prawdopodobieostwo przejścia z jednego punktu do drugiego, 
algorytm kooczy przeszukiwanie po spełnieniu warunku zakooczenia a nie znalezienia 
ulepszenia ostatniego punktu. Poszukiwanie z tabu :  algorytm o podobnej strukturze co 
wyżarzanie jednakże korzysta z historii przeszukiwania w której ostatnie punkty są punktami 
tabu i są pomijane przy podejmowaniu kolejnych decyzji.  
 
 

 

Softcomputing metody „odporne” np. algorytmy ewolucyjne które przeszukują przestrzeo 
alternatywnych rozwiązao problemu w celu odnalezienia rozwiązao najlepszych lub 
potencjalnie najlepszych. Zalicza się je do klasy algorytmów heurystycznych. Przeszukiwanie 
odbywa się za pomocą mechanizmów ewolucji oraz doboru naturalnego. W praktyce te 
słowa oznaczają, że wykorzystujemy ewolucję, aby poprzez krzyżowanie i mutacje stworzyd z 
grupy losowych zestawów danych to, co nas będzie satysfakcjonowad. Pierwszy algorytm 
ewolucyjny został zaproponowany przez Johna Hollanda w 1975 roku, który bardzo 
interesował się biologią i często czerpał z niej inspirację w swych pracach informatycznych. 
Do metod odpornych zaliczamy także sieci neuronowe czyli struktury matematyczne i ich 
programowe lub sprzętowe modele, realizujące obliczenia lub przetwarzanie 
sygnałów 
poprzez rzędy elementów, zwanych sztucznymi neuronami, wykonujących pewną 
podstawową operację na swoim wejściu. Oryginalną inspiracją takiej struktury była 
budowa naturalnych neuronów oraz układów nerwowych, w szczególności mózgu. 
 
 

 Istnieje dużo dziedzin w których jest wykorzystywana optymalizacja: 

 

Badania kosmiczne: optymalizacja konstrukcji rakiet, problemy sterowania lotem w 
stratosferze i w kosmosie. 

background image

 

Optymalizacja procesów ekonomicznych: problemy alokacji produkcji, optymalny skład 
portfela inwestycyjnego.  

 

Problemy logistyki. 

 

Optymalizacja wykorzystywania pamięci