630 likes | 854 Views
Приложно математично програмиране ЛЕКЦИЯ 6 Линейно програмиране. Prof. Boyan Bonev Ivanov, Ph.D. Email: bivanov@bas.bg Institute of Chemical Engineering-BAS. Лекции. Лекция 1 Въведение в математичното програмиране
E N D
Приложно математично програмиране ЛЕКЦИЯ 6 Линейно програмиране Prof. Boyan Bonev Ivanov, Ph.D. Email: bivanov@bas.bg Institute of Chemical Engineering-BAS
Лекции Лекция 1 Въведение в математичното програмиране Лекция 2 Оптимизация при целеви функции с един управляващ параметър Лекция 3 Нелинейно програмиране – Градиентни методиЛекция 4 Нелинейно програмиране – Директни методи Лекция 5 Нелинейно програмиране – Методи с ограничения Лекция 6Линейно програмиране Лекция 7 Методи за булева и дискретна оптимизация Лекция 8 Методи за глобална оптимизация Лекция 9 Методи за многоцелева оптимизация
Въведение в линейното програмиране
План на лекцията • История на линейното програмиране • Примери за задачи от линейното програмиране • Графическа интерпретация на задачи от линейното програмиране • Стандартна форма на записване • Основни понятия използувани в линейното програмиране • Основи на симплексния метод • Симплексен метод за решаване задачата за максимум • Алгоритъм на симплексния метод • Геометрично представяне на Алгоритъма на симплексния метод
Основоположник на линейното програмиране • George Dantzig • Junior Statistician U.S. Bureau of Labor Statistics (1937-39) • Head of USAF Combat Analysis Branch (1941-46) • PhD Mathematics, Cal Berkeley (1946) • Invented “Simplex” method for solving linear programs (1947)
Примери за LP Разпределение на запасите на суровини.За произвеждане на 3 вида продукти са необходими суровини от 4 вида. Нека aij е разходния коефициент на j-тата суровина за произвеждане на i-тия продукт. Наличните запаси от суровина са bj, а цената на всеки продукт е ciРазходните коефициенти, запасите от суровини и цените на продуктите са дадени в таблицата.
Примери за LP Задачата е да се определи колко продукт от трите вида може да се произведе при наличните запаси от суровини, така че да се получи максимална печалба.
Примери за LP Задача за съставяне на оптимални смеси.Разполага се с nвида продукти за хранене xi (i=1,…n) съответно с цени ci (i=1,…n) . Задачата е да се състави оптимална хранителна смес с минимална цена. Хранителната смес трябва да отговаря на определени изисквания за съставките (белтъчни,въглехидрати, мазнини и др.) bj (j=1,…m).Нека съдържанието на j-тата съставка в i-тия продукт е aij. Задачата е да се определят количествата от отделните продукти така, че цената на получената смес да бъде минимална.
LP Стандартна форма Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxnb1 a21x1 + a22x2 + … + a2nxnb2 … am1x1 + am2x2 + … + amnxnbm x1 0, x2 0, …, xn 0
n Max Z = cj xj Subject to (s.t.) aij xjbj i = 1, … , m xj 0 j = 1, … , m j =1 n j =1 LP Стандартна форма
Основни положения от LP • Линейна целева функция, ограничения • Пропорционалност • Адитивност • Делимост • Непрекъснатост на променливите • Сигурност • Определени параметри
Решение във вътрешна точка • Възможно ли е? ДА • Оптимално ли е? НИКОГА Решение в граничните точки Ограничение 2 Целева функция Целева функция Ограничение 1 Ограничение 3 X
LP Специални случаи • Алтернативни оптимуми • Невъзможни проблеми • Безкрайни проблеми
Алтернативни оптимуми Ограничение 2 Ограничение 1 Целева функция Ограничение 3
LP Понятия • Независими променливи • Целева функция • Ограничения • Възможни решения • Възможни области • Гранични точки на решението • Оптимално решение • Оптималност на границата
Методи за решаване на задачите на LP 1. Методи на последователното изключване Редуциране на броя на променливите, чрез последователно изключване на част от променливите в уравненията тип равенства 2. Методи на граничните точки Метода се базира на обстоятелството, че решението на задачата се намира на един от върховете на многостена, определящ допустимото пространство на търсене на решението. 3. Симплексен метод за решаване на задачата на линейното програмиране Симплексния метод в линейното програмиране представлява процедура за последователно подобряване на решението до достигане на условния екстремум. Тази процедура дава последователност от базисни решения, при които всяко следващо е по-добро от предидущото
Алгоритъм на симплексния метод: 1. Преобразуват се всички неравенствени ограничения в равенствени чрез въвеждане на фиктивни променливи. Получава се нова изходна задача с ограничения тип равенства. 2. Приемат се n свободни и m базисни (опорни) променливи. В началото управляващите променливи се приемат за свободни. Останалите m базисни се изразяват чрез тях 3. Приема се начално базисно решение за свободните управляващи параметри x=0 и се получава начално базисно решение за базисните управляващи променливи. Необходимото условие базисното решение да бъде допустимо е всички базисни променливи да бъдат положителни 4. Получените стойности за базисното решение се заместват в целевата функция и се получава началната базисна стойност за Ц.Ф. 5. Проверява се за оптималност полученото решение до този етап 6. Определя се границата, до която може да се повиши съответния управляващ параметър, докато базисните променливи остават положителни.
7. За базисна променлива се приема тази която от свободните първа води до нарушаване на условието за положителност на базисните променливи 8. Преобразува се системата, чрез новата базисна променлива 9. Преобразува се Ц.Ф. чрез новата базисна променлива 10. Получава се ново базисно решение, като в преобразуваната Ц.Ф. Се заместват новите свободни променливи с x=0 и алгоритъма се повтаря от т.5
Стандартна форма на представяне Изходна задача Max Z = 40x1+ 50x2 s.t. 1x1+ 2x2 40 4x1 + 3x2 120 x1 , x2 0 x1, x2- свободни управляващи променливи
x2 40 20 x1 30 40 1. Преобразуване на ограниченията от неравенства в равенства чрез въвеждане на базисни променливи Z=2000 Max Z = 40x1+ 50x2 s.t. 1x1+ 2x2+ s1 = 40 4x1 + 3x2+ s2= 120 Z=1360 Z=1000 s1 , s2- базисни променливи Z=0 x1, x2- свободни управляващи променливи
2. Решаване на уравненията на ограниченията спрямо базисните променливи Max Z = 40x1+ 50x2 s.t. s1 = 40-1x1- 2x2 s2= 120-4x1-3x2 x1 , x2 , s1 , s2 0 s1 , s2 - базисни променливи x1, x2- свободни управляващи променливи
x2 40 20 x1 30 40 3. Намиране на начално базисно решение за базисните променливи при x1= 0x2= 0 Max Z = 40x1+ 50x2 s.t. s1 = 40-1x1- 2x2 s2= 120-4x1-3x2 x1 , x2 , s1 , s2 0 x1 = 0 x2= 0 s1 = 40 s2= 120 Z = 0 Z=0
x2 40 20 x1 30 40 4. Проверка за оптималност на полученото решение.Ако в z има + коефициенти, то полученото решение може да се подобри. Избира се най-големия положителен член (40 или 50) >> 50 и се променя променливата пред този коефициент за случаяx2 Max Z = 40x1+ 50x2 s.t. s1 = 40-1x1- 2x2 s2= 120-4x1-3x2 x1 , x2 , s1 , s2 0 X2-става базисна променлива x1 = 0 x2= 0 s1 = 40 s2= 120 Z = 0
x2 40 20 ? x1 30 40 5. Определя се границата до която x2 може да се повишава. Уравненията се видоизменят, като x1=0. За да останат s1 и s2 положителни, то x2може да се изменя до 20. В този случай за свободна променлива се приема s1, а за базиснаx2 Max Z = 40x1+ 50x2 s.t. s1 = 40- 2x2 s2 = 120- 3x2 S1, x1-стават свободни променливи S2,X2-стават базисни променливи x1 = 0 s1 = 0 x2=20 s2=60 Z = 1,000
x2 40 20 ? x1 30 40 6. Преобразува се системата ограничения по отношение на новите базисни променливи (x2 иs2) В този случай за свободна променлива се приема s1, а за базиснаx2 x2= 40/2-1/2x1- 1/2s1 s2= 120-4x1-3x2 s2= 60-5/2x1+3/2s1 Max Z = 40x1+ 50x2 s.t. s1 = 40-1x1- 2x2 s2= 120-4x1-3x2 x1 , x2 , s1 , s2 0 x2= 20-1/2x1-1/2s1 Z = 40x1 + 50x2 Z= 1000+15x1-25s1
x2 40 20 ? x1 30 40 7. Заместваме новите свободни променливи x1=0 и s1=0и се намира новото базисно решение Z=1000 Z= MAX(1000+15x1-25s1) s2=60-5/2x1+3/2s1 x2=20-1/2x1-1/2s1 Z=1000 x1,s1-свободни променливи x2,s2-базисни променливи x1 = 0 s1 = 0 x2=20 s2=60 Z = 1,000
x2 40 20 ? x1 30 40 8. В базисните променливи има коефициент с положителен знак, което означава, че полученото решение може да се подобри само,ако се увеличи x1 s2 -Става свободен Z= MAX(1000+15x1-25s1) s2=60-5/2x1+3/2s1 5/2 по голямо от 1/2 x2=20-1/2x1-1/2s1 X1-Става базисен s1,s2-свободни променливи x1,x1-базисни променливи
x2 40 20 ? x1 30 40 9. В базисните променливи има коефициент с положителен знак, което означава, че полученото решение може да се подобри само ако се увеличи x1 Решаваме уравнението спрямо x1 и заместваме в уравнението за x2 и Z Z= MAX(1000+15x1-25s1) s2=60-5/2x1+3/2s1 5/2 по голямо от 1/2 x2=20-1/2x1-1/2s1 s1,s2-свободни променливи x1,x1-базисни променливи
x2 40 20 x1 30 40 10. След преобразованията получаваме редуцираната задача, която е във вида: Z= MAX(1360-16s1-6s2) x1=8-0.8s1+0.2s2 Z=1360 x2=24+0.6s1-0.4s2 s1,s2-свободни променливи x1,x2-базисни променливи s1 = 0 s2 = 0 x1= 8 x2=24 Z = 1,360 X1=8 X2=24
x2 40 20 x1 30 40 11. Проверява се новото базисно решение за оптималност. Изменението на която и да е от свободните променливи не може да доведе до увеличаване на Z Z= MAX(1360-16s1-6s2) Z=1360 Оптимално решение x1=8-0.8s1+0.2s2 x2=24+0.6s1-0.4s2 Оптимални стойности на управляващите променливи s1 = 0 s2 = 0 x1= 8 x2=24 Z = 1,360
Algebraic Representation • 2 equations in 4 unknowns • Multiple solutions (4 feasible) • Guided search to move to optimal solution • “Simplex Method” Max Z = 40x1+ 50x2 s.t. 1x1+ 2x2+ s1 = 40 4x1 + 3x2+ s2= 120
Algebraic Representation Max Z = 40x1+ 50x2 s.t. 1x1+ 2x2+ s1 = 40 4x1 + 3x2+ s2 = 120 Simplex Method Tableau
Simplex Method • s1 and s2 represent “basic” variables • x1 and x2 are “non-basic” variables • Basic solutions represent corner points • Systematically change basic solution to improve objective function … • … while maintaining feasibility!
Another Simplex Example Max Z = x1+ 2x2 + 2x3 s.t. 5x1+ 2x2+ 3x3 15 x1+ 4x2+ 2x3 12 2x1+3x3 8 x1 , x2,x3 0
Yet Another Simplex Example Max Z = 4,500 x1+ 4,500 x2 s.t. x1 1 x2 1 5,000x1+4,000x2 6,000 400x1+ 500x2 600 x1 , x2 0
Theory of the Simplex Method • The optimal solution of an LP must be a corner-point feasible (CPF) solution • If there are alternate optima, then at least two must be adjacent CPF solutions • There are a finite number of CPF solutions • A CPF solution is optimal if there are no other adjacent CPF solutions that are better
Interior Point Solution • Feasible? Yes • Optimal? Never Corner Point Solutions X
Finite Number of CPF Solutions Example:m=50 constraints, n=100 decision variables Greater than thenumber of atoms in Universe!
The Simplex Method Simplex Method for max problems Theory of the Simplex Method Simplex Method for other LP problems Unbounded and infeasible problems Interior point methods Agenda (review)
Other LP Problems Negative RHS’s Equality constraints Greater than constraints Negative RHS’s Minimization problems LP Solution Problems Unbounded solutions No feasible solutions Other Solution Techniques Extra Credit Two phase method Goal programming Today’s Agenda
X Finding a Feasible Solution? Minimization Problems Equality Constraints Not Feasible!
3 X 2 (2,1) 3 4 Equality Constraints Max Z = 2x1+ 3x2 s.t. 1x1+ 2x2 4 x1 + x2= 3 x1 , x2 0 Note: x1 = x2= 0 is notfeasible How to achieve feasibility?
M is a VERY big number Big M Method Strategy: Start feasible, then drive artificial variables from the basis with M Max Z = 2x1+ 3x2 s.t. 1x1+ 2x2 4 x1 + x2= 3 x1 , x2 0 Max Z = 2x1+ 3x2 - M a1 s.t. 1x1+ 2x2+ s1 = 4 x1 + x2+ a1 = 3 x1 , x2 , s1, a1 0 Add artificial variable a1 Note: x1 = x2= 0 is nowfeasible
Big M Augmented Form Max Z = 2x1+ 3x2 –M a1 = 0 s.t. 1x1+ 2x2+ s1 = 4 x1 + x2+ a1 = 3 x1 , x2 , s1, a1 0 Need toremove!