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
x10 и двоично
1
x20 и целочислено
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
x10 и целочислено
x20 и непрекъснато 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
x10 , x20 и целочислени
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