230 likes | 360 Views
Приложно математично програмиране ЛЕКЦИЯ 7 Методи за булева и дискретна оптимизация. Prof. Boyan Bonev Ivanov, Ph.D. Email: bivanov@bas.bg Institute of Chemical Engineering-BAS. Лекции. Лекция 1 Въведение в математичното програмиране
E N D
Приложно математично програмиране ЛЕКЦИЯ7 Методи за булева и дискретна оптимизация Prof. Boyan Bonev Ivanov, Ph.D. Email: bivanov@bas.bg 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. Симплексен метод
Обща постановка на задачите с дискретни и булеви променливи Линейни целочислени задачи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxnb1 a21x1 + a22x2 + … + a2nxnb2 … am1x1 + am2x2 + … + amnxnbm x1 0, x2 0, …, xn 0 x1 0, x2 0, …, xn 0 - са цели числа
x2 3 2 1 x1 1 2 Пример на задача LIP Оптимално LP решение x1 = 8/3 x2 = 4/3 ZLP* = 104 Оптимално LIP решение x1 = 2 x2 = 3 ZIP* = 102 Max Z = 33x1 + 12x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x1, x2 0 са цели числа Възможно и оптимално Приблизително LP решение x1 = 2 x2 = 1 ZRLP* = 78 НЕвъзможно, субоптимално Възможно, НЕоптимално
Обща постановка на задачите с дискретни и булеви променливи Линейни задачи с булеви променливи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxnb1 a21x1 + a22x2 + … + a2nxnb2 … am1x1 + am2x2 + … + amnxnbm x1 0, x2 0, …, xn 0 x1 0, x2 0, …, xn 0 - са булеви
x2 3 2 1 x1 1 2 Пример на задача LIP Оптимално LP решение x1 = 8/3 x2 = 4/3 ZLP* = 104 Max Z = 33x1 + 12x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x1, x2 0 са булеви Оптимално LIP решение x1 = 1 x2 = 1 ZIP* = 45 Приблизително LP решение x1 = 1 x2 = 0 ZRLP* = 33
Обща постановка на задачите с дискретни и булеви променливи Линейни задачи със смесен тип променливи – обща постановка Max Z = c1x1 + c2x2 + … + cnxn Subject to (s.t.) a11x1 + a12x2 + … + a1nxnb1 a21x1 + a22x2 + … + a2nxnb2 … am1x1 + am2x2 + … + amnxnbm x1 0, x2 0, …, xn 0
x2 3 2 1 x1 1 2 Пример на задача LIP Оптимално LP решение x1 = 8/3 x2 = 4/3 ZLP* = 104 Max Z = 33x1 + 12x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x1, 0 е двоично x2 0 е целочислено Оптимално LIP решение x1 = 1 x2 = 2 ZIP* = 57 Приблизително LP решение x1 = 1 x2 = 1 ZRLP* = 45
Обща постановка на задачите с дискретни и булеви променливи Вектор на независимите променливи Целева функция -нелинейна; Областни ограничения - нелинейни; Функционални ограничения- нелинейни; Нелинейни задачи със смесен тип променливи – обща постановка Целева функция Допустима област
x2 3 2 1 x1 1 2 Пример на задача MINLP Оптимално NLP решение x1 = 2.1 x2 = 3.2 ZLP* = 6.75 Max Z = x1x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x10 е двоично x20 е целочислено Оптимално MINLP решение x1 = 1 x2 = 2 ZIP* = 2
x2 3 2 1 x1 1 2 Пример на задача MINLP Оптимално NLP решение x1 = 2.1 x2 = 3.2 ZNLP* = 6.75 Оптимално MINLP решение x1 = 2 x2 = 3 ZNLP* = 6 Max Z = x1x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x10 е целочислено x20 е непрекъснато
Методи за оптимизация при задачи със дискретни и булеви променливи Метод на локалното търсене Алгоритъм на метода 1. Избира се начална дискретна точка в допустимото пространство 2. Прави се сканиране в областта около началната точка и се изчислява Ц.Ф. За точките в допустимото пространство 3. Дискретната точка с най-добър резултат се приема за начална и алгоритъма се повтаря в т.2 4. Критерия за спиране на търсенето е достигане на точка, от която не може да се намери по-добър резултат
Методи за оптимизация при задачи със дискретни и булеви променливи x2 3 2 1 x1 1 2 Оптимално NLP решение x1 = 2.1 x2 = 3.2 ZNLP* = 6.75 Метод на локалното търсене - графическа интерпретация Оптимално MINLP решение x1 = 2 x2 = 3 ZIP* = 6 Max Z = x1x2 s.t. –x1 + 2x2 4 5x1 + 2x2 16 2x1– x2 4 x10, x20 и целочислени
Методи за оптимизация при задачи със дискретни и булеви променливи 2. С прекратяване на търсенето координатите на най-добрата точка се трансформират в най-близката дискретна точка Метод на случайното търсене Алгоритъм на метода: 1. От зададена начална дискретна точка в допустимото пространство се изпълнява случайно търсене като променливите се приемат за непрекъснати 3. Около трансформираната дискретна точка се извършва сканиране по близките дискретни точки. Точката с най-добър резултат се приема за решение на задачата
Методи за оптимизация при задачи със дискретни и булеви променливи Метод на случайното търсене-графическа интерпретация x2 x2max x2min x1min x1max x1
Методи за оптимизация при задачи със дискретни и булеви променливи Симплексен метод - графическа интерпретация x2 x1
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
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,500
B&B Solution 1 10,055 (2.22, 5.56) 9,500 (2, 5) x2 5 x2 6 Z*= - 2 10,000 (2.5, 5) 9,500 (2, 5) 5 10,033 (1.33, 6) 10,000 (1,6) x1 1 x1 2 x1 2 x1 3 3 9,500 (2, 5)Fathomed 4 9,000 (3, 4) Fathomed 6 10,026 (1, 6.17) 10,000 (1,6) 7 InfeasibleFathomed Z*= 9,500 x2 6 x2 7 8 10,000 (1,6) Fathomed 9 InfeasibleFathomed Z*= 10,000