W niniejszym podręczniku akademickim przedstawiono metody i algorytmy rozwiązywania problemów optymalizacyjnych, które występują w najróżnorodniejszych sferach działania człowieka, zwłaszcza jednak we wszystkich dziedzinach techniki, w nauce o przesyłaniu i przetwarzaniu informacji, w inżynierii finansowej czy w zarządzaniu. Autor adresuje go do inżynierów oraz pracowników naukowych, spotykających w swojej praktyce zagadnienia optymalizacji. Z podręcznika mogą również korzystać studenci różnych wydziałów szkół wyższych.
Podręcznik zatem wypełnienia luki między teorią optymalizacji a praktyką jej stosowania. Przejście od opracowań teoretycznych do stosowania efektywnych i niezawodnych algorytmów, służących do rozwiązywania praktycznych (z punktu widzenia techniki komputerowej) zadań optymalizacji, wymaga wielu doświadczeń numerycznych. W niniejszej książce mamy opis teoretyczny i jednocześnie algorytmy wybranych metod optymalizacji, które pozwalają rozwiązywać wiele zadań programowania liniowego oraz nieliniowego.
Struktura książki została pomyślana tak, by mógł z niej korzystać każdy inżynier, który zna podstawowe pojęcia z zakresu optymalizacji oraz umie programować w językach wysokiego poziomu (np. C++, Fortran, Pascal, Matlab i in.).
Spis treści:
Przedmowa
1. Główne określenia i zadania związane z ekstremami
1.1. Wprowadzenie
1.2. Optymalizacja i zadania poszukiwania ekstremum
1.3. Sformułowanie zadania ekstremalnego
1.4. Postać zadań ekstremalnych
1.5. Niektóre zadania sprowadzające się do ekstremalnych
1.5.1. Zadanie projektowania (minimalizacja ciężaru belki)
1.5.2. Identyfikacja modelu matematycznego
1.5.3. Zadanie sterowania
2. Analityczne metody rozwiązywania ekstremalnych zadań
2.1. Funkcje jednej zmiennej
2.2. Wiadomości pomocnicze
2.3. Funkcje kilku zmiennych
2.4. Zastosowanie metody mnożników Lagrange'a do rozwiązywania zadań ekstremalnych
2.5. Warunki optymalności Kuhna-Tuckera
3. Programowanie liniowe
3.1. Ogólne pojęcia
3.2. Zadania sprowadzające się do PL
3.2.1. Zadanie o maksymalizacji podnoszonego ciężaru
3.2.2. Zadanie o obciążeniu obrabiarek
3.2.3. Optymalizacja parametrów skrawania
3.3. Główne określenia
3.4. Rozwiązanie układu równań liniowych metodą Jordana-Gaussa
3.4.1. Algorytm rozwiązywania równań metodą eliminacji Jordana-Gaussa
3.5. Simpleksowa metoda rozwiązania ZPL
3.5.1. Algorytm metody simpleksowej
3.6. Dwufazowa metoda simpleksowa
3.6.1. Algorytm dwufazowej metody simpleksowej
3.7. Dualna metoda rozwiązywania ZPL
3.7.1. Algorytm dualnej metody simpleksowej
4. Minimalizacja funkcji jednowymiarowych
4.1. Właściwości funkcji jednej zmiennej
4.2. Analiza w ``statyce`` i ``dynamice``
4.2.1. Modele funkcji celu
4.3. Metody odnajdywania ekstremum lokalnego-funkcji jednowymiarowych (metody lokalnych poszukiwań)
4.3.1. Metody oparte na zasadzie eliminacji przedziałów
4.3.1.1. Metoda dzielenia przedziału na połowę (metoda dwudzielności)
4.3.1.2. Metoda złotego podziału
4.3.1.3. Metoda Fibonacciego
4.3.1.4. Porównanie metod dzielenia przedziałów
4.4. Metody wykorzystujące aproksymację funkcji celu
4.4.1. Metoda punktu środkowego
4.4.2. Metoda Newtona-Rawsona
4.4.3. Metoda siecznych
4.4.4. Metoda aproksymacji kwadratowej (algorytm Powella)
4.4.5. Metoda poszukiwań z wykorzystaniem aproksymacji trzeciego rzędu i pochodnych
5. Minimalizacja funkcji wielu zmiennych
5.1. Funkcje wielu zmiennych
5.2. Kryteria optymalności
5.3. Metody bezpośrednich poszukiwań
5.3.1. Metody poszukiwań opartych na simpleksie
5.3.2. Metoda poszukiwań Hooke'a-Jeevesa
5.3.3. Metoda kierunków sprzężonych Powella
5.4. Metody gradientowe
5.4.1. Metoda najszybszego spadku (Metoda Cauchy'ego)
5.4.2. Metoda Newtona
5.4.3. Zmodyfikowana metoda Newtona
5.4.4. Metoda Markwardta
5.4.5. Metoda gradientów sprzężonych
5.4.5.1. Metody Fletczera-Reevesa
5.4.5.2. Metoda Polaka-Ribiera
5.4.6. Metody zmiennej metryki
5.4.6.1. Metody quasi-newtonowskie
5.4.6.2. Metoda Davidona-Fletchera-Powella (DFP)
5.4.7. Uogólniony algorytm gradientowy
5.4.8. Numeryczna aproksymacja gradientów
5.5. Porównanie metod i rezultaty obliczeniowych przykładów
6. Programowanie nieliniowe z ograniczeniami
6.1. Podstawowe założenia
6.2. Metoda sekwencyjnego programowania kwadratowego (SQP)
6.3. Podzadanie programowania kwadratowego (QP)
6.4. Realizacja metody SQP
6.5. Poprawka macierzy hesjanu
6.6. Rozwiązanie zadania programowania kwadratowego
6.7. Inicjalizacja
6.8. Liniowe poszukiwanie i funkcja jakości
7. Optymalizacja wielokryterialna
7.1. Wprowadzenie w zagadnienia optymalizacji wielokryterialnej
7.2. Metoda sum ważonych
7.3. Metoda epsiloo-ograniczeń
7.4. Metoda programowania celowego
7.5. Algorytmiczne poprawienie metody programowania celowego
8. Pakiet Optimization Toolbox
8.1. Dlaczego Matlab?
8.2. Biblioteka procedur Optimization Toolbox
8.2.1. Przeznaczenie i możliwości pakietu Optimization Toolbox
8.2.2. Parametry funkcji biblioteki Optimization Toolbox
8.2.3. Poszukiwanie maksimum
8.3. Przykady demonstracyjne pakietu Optimization Toolbox
Literatura