Rozwiązywanie zadań programowania liniowego w pakiecie Matlab

Transkrypt

Rozwiązywanie zadań programowania liniowego w pakiecie Matlab
Rozwiązywanie zadań programowania liniowego w pakiecie Matlab
Do rozwiązywania zadań programowania liniowego w pakiecie Matlab możemy
wykorzystać funkcję linprog. stanowi ona element pakietu Optimization Toolbox. Funkcje
linprog można wywołać poprzez środowisko graficzne (wywołanie następuję poprzez
wpisanie w Command Window polecenia optimtool) lub też poprzez wiersz poleceń (sposób
wywołania przedstawiono poniżej).
x = linprog(f, A, b, Aeq, beq, lb, ub,x0, options)
gdzie:
 f - wektor kolumnowy stałych współczynników funkcji celu
 A - macierz, b - kolumnowy wektor współczynników ograniczeń nierównościowych
 Aeq - macierz, beq - kolumnowy wektor współczynników określających ograniczenia
równościowe
 x0 - ustala punkt startowy poszukiwań. W większości przypadków ten punkt nie jest
konieczny. Domyślnie jako punkt startowy przyjmowany jest wektor zerowy
 lb i ub - pozwalają narzucić dodatkowe, odpowiednio dolne i górne, ograniczenia na
wartości zmiennych niezależnych x. Jeżeli wymiar któregoś z wektorów jest mniejszy
od wymiaru wektora x, to ograniczenia są stosowane tylko w odniesieniu do
początkowych elementów wektora x.
 options - parametr pozwalający edytować parametry procesu optymalizacji.
W celu rozwiązania zadania programowania całkowitoliczbowego binarnego
wykorzystywana jest funkcja bintprog. Funkcje tą, podobnie jak funkcję linprog, możemy
wywołać poprzez środowisko graficzne lub też poprzez wiersz poleceń. Ogolną składnie
polecenia bintprog przedstawiono poniżej
x = bintprog(f,A,b,Aeq,beq,x0,options)
gdzie:
 f - wektor kolumnowy stałych współczynników funkcji celu
 A - macierz, b - kolumnowy wektor współczynników ograniczeń nierównościowych
 Aeq - macierz, beq - kolumnowy wektor współczynników określających ograniczenia
równościowe
 x0 - ustala punkt startowy poszukiwań. W większości przypadków ten punkt nie jest
konieczny. Domyślnie jako punkt startowy przyjmowany jest wektor zerowy
 options - parametr pozwalający edytować parametry procesu optymalizacji.
Wartości options formatujemy za pomocą funkcji optimset.
options = optimset('parametr_1', wartość_1, 'parametr_2', wartość_2,...)
Przykłady parametrów oraz dozwolonych wartości przedstawiono w tab. 1.
Tab. 1 Przykładowe parametry funkcji optimset
Parametr
Wartość
'off'
'iter'
'notify'
Opis
bez wyświetlania wyników
wyświetlanie wyników po każdej iteracji
wyświetlanie wyników w koniecznym wypadku
'Display'
wyświetlanie tylko ostatecznego rozwiązania (wartość
'finał'
domyślna)
liczba całkowita
maksymalna dozwolona liczba obliczeń wartości
'MaxFunEvals'
dodatnia
funkcji
liczba całkowita
'Maxlter'
maksymalna dozwolona liczba iteracji
dodatnia
'TolFun'
liczba dodatnia
dokładność wykonywania obliczeń funkcji
'TolX'
liczba dodatnia
dokładność wykonywania obliczeń argumentu X
W przypadku gdy wywołamy funkcję w postaci optimset('linprog') wyświetlone zostaną
nazwy parametrów oraz ich wartości domyślne dla konkretnej funkcji. W przypadku gdy
ustawimy wartość dowolnego parametru na [ ] zostanie przyjęta domyślna wartość tego
parametru.
Bibliografia
1. Mrozek Bogumiła, Mrozek Zbigniew, MATLAB i Simulink Poradnik użytkownika,
Wydawnictwo Helion, Wydanie III, Gliwice 2010
2. Optimization Toolbox. User ’s Guide, The MathWorks, Inc., 2012
3. Ostanin Aleksander, Metody Optymalizacji z MATLAB Ćwiczenia Laboratoryjne,
Wydawnictwo NAKOM, Poznań 2009
4. Ostanin Aleksander, Wasiluk Jerzy, Właściwości programowej realizacji zadania
programowania całkowitoliczbowego, Zeszyty Naukowe Politechniki Białostockiej
2008, Informatyka – Zeszyt 3
5. http://studia.elka.pw.edu.pl/pub/12Z/MZMO.A/MZMO--OBLICZENIA_OPTYMALIZACJI_LOKALNEJ-jesien2012.pdf
6. http://www.ely.pg.gda.pl/kiss/attachments/233_KWD_LAB_T3_Pomoc.pdf