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