Transcript x 2
Приложно математично програмиране ЛЕКЦИЯ 7 Методи за булева и дискретна оптимизация Prof. Boyan Bonev Ivanov, Ph.D. Email: [email protected] Institute of Chemical Engineering-BAS Лекции Лекция 1 Въведение в математичното програмиране Лекция 2 Линейно програмиране Лекция 3 Оптимизация при целеви функции с един управляващ параметър Лекция 4 Нелинейно програмиране – Градиентни методи Лекция 5 Нелинейно програмиране – Директни методи Лекция 6 Нелинейно програмиране – Методи с ограничения Лекция 7 Методи за булева и дискретна оптимизация Лекция 8 Методи за глобална оптимизация Лекция 9 Методи за многоцелева оптимизация План на лекцията 1. Обща постановка на задачите с дискретни и булеви променливи 1.1. Линейни целочислени задачи 1.2. Линейни задачи с булеви променливи 1.3. Линейни задачи със смесен тип променливи 1.4. Нелинейни задачи със смесен тип променливи 2. Методи за оптимизация при задачи със дискретни и булеви променливи 2.1. Метод на локалното търсене 2.2. Метод на случайното търсене 2.3. Симплексен метод 3. Метод на “Разклоненията и границите” Обща постановка на задачите с дискретни и булеви променливи Линейни целочислени задачи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxn b1 a21x1 + a22x2 + … + a2nxn b2 … am1x1 + am2x2 + … + amnxn bm x1 0, x2 0, …, xn 0 x1 0, x2 0, …, xn 0 - и целочислени Пример на задача LIP Оптимално LP решение ОптималноxLIP решение 2 x1 = 2 x2 3= 3 ZIP* = 102 Max Z = 33x1 + 12x2 s.t. –x1 + 2x2 4 2 5x1 + 2x2 16 2x1 – x2 Приблизително 4 LP решение x1, x2 0 и целочислени x1 = 2 1 x2 = 1 ZRLP* = 78 1 x1 = 8/3 x2 = 4/3 ZLP* = 104 Възможно и оптимално НЕвъзможно, субоптимално Възможно, НЕ оптимално x1 5 2 Обща постановка на задачите с дискретни и булеви променливи Линейни задачи с булеви променливи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxn b1 a21x1 + a22x2 + … + a2nxn b2 … am1x1 + am2x2 + … + amnxn bm x1 0, x2 0, …, xn 0 x1 0, x2 0, …, xn 0 - и булеви Пример на задача LIP Оптимално LP решение x2 Max Z = 33x1 + 12x2 3 s.t. –x1 + 2x2 4 2 5x1 + 2x2 16 2x1 –Оптимално x2 4 LIP решение x1 = 1 x1, x2 0 и булеви 1 x2 = 1 ZIP* = LP 45решение Приблизително x1 = 1 x2 = 0 ZRLP* = 33 x1 = 8/3 x2 = 4/3 ZLP* = 104 1 2 x1 7 Обща постановка на задачите с дискретни и булеви променливи Линейни задачи със смесен тип променливи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxn b1 a21x1 + a22x2 + … + a2nxn b2 … am1x1 + am2x2 + … + amnxn bm x1 0, x2 0, …, xn 0 X i X INTIGER X J X BINARY X K X CONTINUE Пример на задача LIP Оптимално LP решение x2 x1 = 8/3 x2 = 4/3 ZLP* = 104 Max Z = 33x1 + 12x2 3 s.t. Оптимално LIP решение –x1 + 2x2 x4 = 1 1 2 5x1 + 2x2 x16 2=2 2x1Приблизително – x2Z 4* = LP 57решение IP x1, 0 и двоично x1 = 1 1 x2 0 и целочислено x2 = 1 ZRLP* = 45 1 2 x1 9 Обща постановка на задачите с дискретни и булеви променливи Нелинейни задачи със смесен тип променливи – обща постановка Целева функция Допустима област Вектор на независимите променливи Целева функция -нелинейна; Областни ограничения - нелинейни; Функционални ограничения- нелинейни; xK X CONTINUE xi X INTIGER xJ X BINARY Оптимално NLP решение x = 2.1 Пример на задача MINLP x = 3.2 1 2 ZLP* = 6.75 x2 Max Z = x1x2 3 s.t. Оптимално MINLP решение –x1 + 2x2x =4 1 2 5x1 + 2x2x1=162 2x1 – xZ2 2*4= 2 IP x10 и двоично 1 x20 и целочислено 1 2 x111 Оптимално NLP решение x = 2.1 Пример на задача MINLP x = 3.2 1 2 ZNLP* = 6.75 x2 решение Оптимално MINLP x1 = 2 Max Z = x1x2 x2 = 33 s.t. Z *=6 –x1 + 2x2 4 NLP 2 5x1 + 2x2 16 2x1 – x2 4 x10 и целочислено x20 и непрекъснато 1 1 2 x112 Методи за оптимизация при задачи със дискретни и булеви променливи Метод на локалното търсене Алгоритъм на метода 1. Избира се начална дискретна точка в допустимото пространство 2. Прави се сканиране в областта около началната точка и се изчислява Ц.Ф. За точките в допустимото пространство 3. Дискретната точка с най-добър резултат се приема за начална и алгоритъма се повтаря в т.2 4. Критерия за спиране на търсенето е достигане на точка, от която не може да се намери по-добър резултат Методи за оптимизация при задачи със дискретни и булеви променливи Оптимално NLP решение Метод на локалното търсене - графическа интерпретация x1 = 2.1 x2 = 3.2 ZNLP* = 6.75 x 2 Оптимално MINLP решение x1 = 2 Max Z = x1x2 3 x2 = 3 s.t. ZIP* = 6 –x1 + 2x2 4 2 5x1 + 2x2 16 2x1 – x2 4 x10 , x20 и целочислени 1 1 2 x1 Методи за оптимизация при задачи със дискретни и булеви променливи Метод на случайното търсене Алгоритъм на метода: 1. От зададена начална дискретна точка в допустимото пространство се изпълнява случайно търсене като променливите се приемат за непрекъснати 2. С прекратяване на търсенето координатите на най-добрата точка се трансформират в най-близката дискретна точка xi*d ENTIER xi* 0.5 3. Около трансформираната дискретна точка се извършва сканиране по близките дискретни точки. Точката с най-добър резултат се приема за решение на задачата Методи за оптимизация при задачи със дискретни и булеви променливи Метод на случайното търсене-графическа интерпретация x2 x2max x2min x1min x1max x1 Методи за оптимизация при задачи със дискретни и булеви променливи Симплексен метод - графическа интерпретация x2 x1 17 18 19 Solving Integer Programs IP Branch and Bound • Successively solve relaxed IP problems • Determine upper and lower bounds for relaxed problems • Eliminate branches that exceed bounds • When only one “node” remains, optimal solution has been found 21 B&B Formulation Max Z = 1,000x1 + 1,500x2 s.t. 80,000x1 + 40,000x2 400,000 15x1 + 30x2 200 x1, x2 0 and integer Relaxed LP Solution x1 = 2.22 x2 = 5.56 ZLP* = 10,557 Optimal IP Solution x1 = 1 x2 = 6 ZIP* = 10,000 Rounded LP Solution x1 = 2 x2 = 5 ZRLP* = 9,50022 B&B Solution x2 5 3 9,500 (2, 5) Fathomed Z*= 9,500 x2 6 Z*= - 2 10,000 (2.5, 5) 9,500 (2, 5) x1 2 1 10,055 (2.22, 5.56) 9,500 (2, 5) x1 1 x1 3 4 9,000 (3, 4) Fathomed 5 10,033 (1.33, 6) 10,000 (1,6) 6 10,026 (1, 6.17) 10,000 (1,6) x2 6 8 10,000 (1,6) Fathomed Z*= 10,000 x1 2 7 Infeasible Fathomed x2 7 9 Infeasible Fathomed 23