31
ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Embed Size (px)

DESCRIPTION

ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ. Задачи. Запишем оптимизационную задачу в виде. Например, булеву задачу о ранце. можно переписать, введя функции. и положив k = b . Предположим v ( S  { j })  v ( S )  0. Жадный алгоритм. - PowerPoint PPT Presentation

Citation preview

Page 1: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Page 2: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

ЗадачиЗадачи

Запишем оптимизационную задачу в виде

})(:)({min kSvScNS

Например, булеву задачу о ранце

}:{min11

bxaxcn

jjj

n

jjj

Bx n

можно переписать, введя функции

Sj

jSj

j aSvcSc )(,)(

и положив k = b.

Предположим v(S {j}) v(S) 0

Page 3: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Жадный алгоритмЖадный алгоритм

Жадный алгоритм (greedy algorithm) состоит из итераций, общее число кот. L. На каж. итерации t по текущему решению St строится новое решение. Предположим, что является недоп. и положим c() = +.

Шаг 1. Положить начальное решение S0 = и t = 1.

Шаг 3. Если реш. St-1 явл. доп., а зн. ц.ф. не уменьшилось (т.е. c(St-

1{jt}) – c(St-1) 0), то положить SG = St-1 и остановить алг. Шаг 4. Положить St = St-1{jt}. Если решение St доп., а зн. ц.ф. не уменьшилось, или t=L, то положить SG = St и остановить алг. Шаг 5. Если t=L, и не найдено ни 1 доп. реш., то остановить алг. Шаг 6. Положить t=t+1 и перейти на шаг 2.

Шаг 2. Найти)(}){(

)(}){(minarg

11

11

1

tt

tt

Sjt SvjSv

ScjScj

t

Page 4: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

ПримерПример

З. размещения: ,min)(

Sii

Jjij

SiccSc 1||)( SSv

n=|I|=4, m=|J|=6, c=(21,16,11,24)

5983114

124643

32311292

4791516

)( ijc

Шаг 1. S0=, t=1 (S0 недоп. мн. c(S0) = +). Шаг 2. c(1)= 63, c(2)= 66, c(3)= 31, c(4)= 64 jt= 3. Шаг 4. S1=S0{3}={3} – доп. мн. Зн. c(S1)= 31 уменьш.

Шаг 6. t=t+1=2 и – на шаг 2.Шаг 2. c(1,3) – c(3)=18, c(2,3) – c(3)=11, c(3,4) – c(3)=11. Шаг 3. Функционал не уменьшается полагаем SG =S1={3} – решение, построенное жадным алг. Стоп.

Жадный алг. должен быть адаптирован…Для КМ «иди в ближайший город, где еще не был»…

Page 5: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Локальный поискЛокальный поиск

Для описания алг. лок. поиска (local search) перепишем з. в виде:

},0)(:)({min

SgScNS

где g(S) 0 назовем мерой недопустимости множества S. Так v(S) k переписывается: g(S)=(k – v(S))+, где a+ = max{0,a}. Для алг. лок. поиска необходимо определить: решение S N, окрестность решения Q(S) функцию цели f(S). Функция f(S) может = c(S), если S доп., или + в прот. сл. Или можно положить f(S)=c(S)+ag(S), при нек. a > 0.

Пусть S нек. начальное решение (не обязательно доп.). Алг. лок. поиска состоит из повторения однотипных итераций.

Page 6: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Локальный поискЛокальный поиск

Итерация. Найти мн. S Q(S) : f(S ) < f(S). Если такого мн. нет, то алг. останавливается, решение SH = S явл. лок. оптимумом. Иначе, положить S = S и повторить итерацию.

Выбор подходящей окрестности реш. зависит от решаемой задачи. 1 из простых способов опред. окрестности – это добавление или удаление 1 элемента. Такая окрестность содержит O(n) элементов. Другой способ опред. окрестности, применимый в случае, когда все доп. мн. одной мощности это замена 1 элемента из S другим, кот. S. Такая окрестность имеет O(n2) решений.

Page 7: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Локальный поискЛокальный поиск

Иногда решения из окрестности Q(S) отличаются от текущего решения S 2 элементами. Например, для КМ не ГЦ, кот. отличался бы от другого ГЦ 1 ребром. Если же удалить 2 ребра ГЦ, то ! другой ГЦ, содержащий оставшиеся ребра. На этом свойстве основан 1 из алг. приближенного решения КМ на полном графе. В алг. лок. поиска для решении симметричной КМ, если S является гам. циклом, то окрестность этого решения

а функция цели

},2||,:цикл вгамильтоно{)( nSSSSSSQ

Se

ecSf )(

Полученное после остановки алг. решение наз. 2-opt туром.

Page 8: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Поиск с запретамиПоиск с запретами

Основной недостаток л.п. остановка в точке лок. оптимума. Метаэвристики…Поиск с запретами (tabu search) использует историю поиска решений. Чтобы покинуть окрестность лок. opt, разрешается осуществлять переход к след. решению окрестности, даже если оно хуже (по функционалу) предыдущего.

Недостаток возм. зацикливание, когда происходит возврат к уже просмотренному ранее решению.

Чтобы избежать зацикливания, определенные решения, или переходы от решения к решению объявляются запрещенными (табу). Для этого создается и хранится «список запретов» (СЗ), в кот. помещается информация о последних решениях, или последних изменениях решений.

Page 9: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Поиск с запретамиПоиск с запретами

Шаг 1. Положить СЗ = .Шаг 2. Найти нач. решение S.Шаг 3. Пока не вып. крит. остановки, выполнить шаги 3.1–3.3.

3.1. В окрест. текущего реш. S найти подмн. не запрещ. реш.Q(S) Q(S).

3.2. Выбрать S=argmin{f(s) : sQ(S)}.3.3. Заменить S на S и обновить СЗ.

При вып. крит. остановки, лучшее найденное реш. – результат работы алг.

Для реализации алг. следует определить: окрестность Q(S), СЗ, способ задания запретов, критерий остановки (можно задать max число итераций)

Page 10: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Поиск с запретамиПоиск с запретами

Пример окрестности

Q(S) = {s V : s =(S \ {i}) {j}, i S, j V \ S},

получаемую заменой 1 элемента другим.

СЗ может содержать последние t исключенных элементов {i1,…,it} и последние t добавленных элементов {j1,…,jt}.

Решение sQ(S) является запрещенным, если s={S\{ip}}{j} для некот. p=1,…,t, или s={S\{i}}{jq} для некот. q=1,…,t.

Page 11: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Имитация отжигаИмитация отжига

В методе «имитация отжига» (simulated annealing) новое решение замещает текущее всегда, если оно лучше (по целевой функции), и с некоторой вероятностью, зависящей от параметра, кот. принято называть температурой, если целевая функция на нем хуже.

Вероятность перехода к худшему решению обратно пропорциональна величине увеличения значения функционала на новом решении и прямо пропорциональна температуре.

Для сходимости метода на каждой последующей итерации вероятность перехода к худшему решению уменьшается. Это обеспечивается уменьшением температуры (остыванием).

Формально схему метода можно записать, например, след. обр.

Page 12: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Имитация отжигаИмитация отжига

Шаг 1. Найти начальное решение S.Шаг 2. Задать начальную температуру T и коэффициент остывания r (0,1).Шаг 3. Пока температура достаточно высока (T Tmin), выполнить шаги 3.1–3.2. 3.1. Выполнить шаги 3.1.1–3.1.4 L раз. 3.1.1. Выбрать случайно решение S из окрестности Q(S). 3.1.2. Вычислить = f(S ) – f(S). 3.1.3. Если 0, то положить S = S . 3.1.4. Если > 0, то положить S = S с вероятностью e/T. 3.2. Положить T = Tr. (Уменьшить температуру.)Шаг 4. Запомнить лучшее из найденных решений.

Конкретизация алг. зависит от специфики решаемой задачи. При этом требуется найти нач. доп. решение, определить нач. темп. T, скорость остывания r, число циклов L и критерий остановки.

Page 13: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Генетический алгоритмГенетический алгоритм

Генетический алг. на каж. итер. ищет не 1 новое решение, а целую популяцию (мн.) решений {S1,…,Sn}. Популяция развивается случайным образом, переходя от 1 поколения к следующему.Каж. итерация алг. состоит из след. шагов.

Оценка. Оцен. пригодность (качество) каж. члена популяции.Выбор родителей. На осн. качеств выбираются пары решений (родители).Скрещивание. Каж. пара родителей используется для создания 1 или 2 новых решений (потомков).Мутация. Некот. потомки изменяются (модифицируются) случ. образом.Выбор популяции. На осн. качеств особей, выбирается новая популяция, кот. частично или полностью заменяет предыдущую, сохраняя общее количество элементов n.

Page 14: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Генетический алгоритмГенетический алгоритм

Оценка. Для оценки качества решения S можно использовать 1 функционал f(S) или пару функций: стоимость c(S) и степень недопустимости g(S).

Выбор родителей. Родителей можно выбирать случайно пропорционально их качеству. Например, решение Si может быть выбрано в качестве родителя с вероятностью

.)(

)(1

1

n

jj

i

Sf

Sf

Page 15: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

СкрещиваниеСкрещивание

2-скрещивание. Заданы 2 строки x1x2 … xr и y1y2 … yr, а также целые числа p,q{1,…,r1}, p<q. 2 потомка – это строки x1 … xpyp+1 … yqxq+1 … xr и y1 … ypxp+1 … xqyq+1 … yr .

Равномерное скрещивание. Задано 2 строки x1x2 … xr и y1y2 … yr. Результат скрещивания z1z2 … zr, где каж. элемент zi случ. выбран из пары {xi, yi}, i=1,…,r.

При скрещивании используются разл. способы комбинации 2 решений. Пусть каж. решение S представимо в виде строки S=x1x2 … xr, где xi – символы нек. конеч. алфавита. Приведем 3 способа комбинации подобных строк.

1-скрещивание. Задано 2 строки x1x2 … xr и y1y2 … yr, а также целое число p{1,…,r1}. 2 потомка – это решения: x1 … xpyp+1 … yr и y1 … ypxp+1 … xr .

Page 16: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

МутацияМутация

Простая мутация решения z1z2 … zr это случ. выбор номера p{1,…,r}, а также символа m, и замена элемента zp символом m. Эта операция приводит к решению z1 … zp-1mzp+1 … zr.

Перекрестная мутация – это перестановка случ. выбранных элементов zp и zq, приводящая к новому решению z1 … zp-1zqzp+1 … zq-1zpzq+1 … zr.

Page 17: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Анализ точности приближенных алгоритмовАнализ точности приближенных алгоритмов

2 основных подхода:

1. Апостериорный анализ. Решается достаточно большое количество инд. задач и вычисляется отклонение функционала на построенных приближенным алг. решениях от opt зн. ц.ф. или оценки оптимума.

2. Априорный анализ. Ищется гарантированная оценка погрешности, кот. справедлива инд. задач и известна заранее, т.е. до применения алг. (априори).

Page 18: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Аппроксимационная схемаАппроксимационная схема

Пусть рассматривается opt задача P. инд. з. I P обоз.: W*(I) opt зн. ц.ф., WA(I) – зн. ф. на решении, построенном алг. A.

Алг. A является аппроксимационной схемой для з. P, если инд. з. I P и ≥ 0 алг. A строит доп. решение з. I с гарантированной оценкой отн. погрешности

)(

|)()(|*

*

IW

IWIWA

Page 19: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Полиномиальные аппроксимационные схемыПолиномиальные аппроксимационные схемы

Аппр. схема наз. полиномиальной (PTAS – Polynomial Time Approximation Scheme), если фикс. зн. труд. алг. полиномом от длины входа з.

|)),(|2( /1 IpOT

где p полином, а |I| вход. длина з. I, то такой алг. является PTAS.

В частности, если

Аппр. схема наз. вполне полиномиальной (FPTAS – Fully Polynomial Time Approximation Scheme), если труд. алг. полиномом от длины входа и величины 1/.

Для оценки погрешности используют также отношение)(

)(* IW

IWA

Тогда если решается з. на min, то для оценки погрешности следует искать ВГ для этого отношения. В случае же поиска max ф., интерес представляет оценка величины отношения снизу.

Page 20: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Субоптимальные решенияСубоптимальные решения

Доп. решение, имеющее гарантированную оценку отн. погр. = const, наз. -приближенным или субоптимальным.

APX – класс задач NPO, для которых полиномиальный алгоритм с гарантированной оценкой

Page 21: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Отношение между классами

NP

P

APX

PTASFPTAS

Псевдополиномиальныеалгоритмы

Page 22: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача о ранцеЗадача о ранце

},:{max11

* bxaxczn

jjj

n

jjj

Zx n

Предположим, что aj b и j

j

a

c

a

c 1

1

Тогда жадный алг. )0...,,0,/( 1abxH и zH = cxH

T = M = O(n)

Теорема. Имеет место априорная оценка: .2

1*

z

z H

Доказательство. Если отказаться от целочисл. переменных, то решением релаксированной з. явл. вектор с координатами x1=b/a1,xj=0, j 2, и ./ *

11 zabcz LP Т.к. aj b, то .1/ 1 ab

Положим .// 11 fabab Из f < 1 1/ abf

2

1

//

/

/

/

/

/

11

1

1

1

1

1

abab

ab

fab

ab

ab

ab 2

1

/

/

11

11*

abc

abc

z

z

z

zLP

HH

Page 23: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Граф G = (V, E) наз. эйлеровым, если степени всех его в. четные.

Лемма. Если G = (V, E) связный эйлеров граф и vV произв. в., то обход, начинающийся и заканчивающийся в v, в кот. ребро графа встречается 1 раз.

Теорема. Пусть задан полный взвешенный гр. H с мн. в. V, в кот. веса ребер удовл. . Пусть G=(V,E) – связный эйлеров подгр. гр. H. Тогда гр. H содержит ГЦ длины .

Eeec

Доказательство. Пусть m = |E| и v=v0,e1,v1,e2,…,em,vm=v – обход всех ребер графа G, в кот. каж. р. ei=(vi-1,vi) встречается 1 раз. Рассм. список в. в пор. их появления в обходе v0,v1,…,vm. Пусть

kiv – k-я по счету в. обхода отлич. от предыдущих. Тогда посл.

vvvvvvnn iiii 121

,,...,, – ГЦ. Оценим его длину.

Page 24: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Из длина пути между в.ki

v1ki

vи циклу ≥ длины ребра

),(1

kk iik vvf

k

k

k

j f

i

ije cc

1

1

.1 11

1

Eee

n

k

i

ije

n

kf ccc

k

k

jk

Построим реш. КМ с помощью алг., кот. состоит из след. шагов.Шаг 1. В исх. гр. найти остов min веса T. Пусть он содержит ребра ET и его вес .

TEe

eT cz

Шаг 2. Продублировать каж. ребро мн. ET, чтобы получить связный эйлеров граф.

Шаг 3. Построить ГЦ из эйлерова обхода, как это было сделано выше. Пусть длина построенного цикла равна zH.

T=M=O(n2)

Page 25: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

12

3

4

5

Page 26: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

12

3

4

5

Page 27: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Теорема. Справедлива оценка ,2*

z

z H

где z* – opt зн. ц.ф. КМ.

Доказательство. Если из ГЦ исключить 1 ребро, то получится цепь, кот. явл. частным случаем остова zT z*. Вес построенного Эйлерова графа = 2zT. Согласно , длина постр. ГЦ имеет верхнюю оценку zH 2zT

22

*

T

T

H

z

z

z

z

Приведем еще 1 приближенный алг., кот. основан на использовании min остова и совершенного паросочетания min веса.

Page 28: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Шаг 1. В исх. гр. найти min остов (V,ET). Пусть его вес .

TEe

eT cz

Шаг 2. Пусть V мн. в. построенного дерева с нечетными степенями. Заметим, что |V| четно (это известное свойство, основанное на том, что степеней в. графа четна.) Найти совершенное пар. M min веса zM в гр. G=(V,E), где E E, оба конца кот.V. Тогда (V, ET M) связ. эйлеров граф.

Шаг 3. Используя процедуру построения ГЦ, описанную выше, находим ГЦ. Обозначим его длину zC.

Page 29: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

12

3

4

5

Задача коммивояжераЗадача коммивояжера

Page 30: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Теорема. Имеет место неравенство2

3*

z

zC

Доказательство. Очевидно, zT z*. Предположим, что opt цикл – {1,2,…,n}. Пусть в. j1,j2,…,j2k V упорядочены в порядке увеличения номеров. Рассмотрим совершенные паросочетания

12

3

4

5

M1 = {(j1, j2), (j3, j4), …, (j2k-1, j2k)} веса

M2 = {(j2, j3), (j4, j5), …, (j2k-2, j2k-1), (j2k, j1)} веса

1Mz

2Mz

j1

j2

j3

j4

Page 31: ПРИБЛИЖЕННЫЕ АЛГОРИТМЫ

Задача коммивояжераЗадача коммивояжера

Из

*

1,

1

11,,,, 123221

... zccccc n

n

iiijjjjjj k

Т.к.iMM zz , i = 1, 2, то

*

,,, 12212121...2 zccczzz jjjjjjMMM k

**

*

2

3

2z

zzzzz MT

C **

*

2

3

2z

zzzzz MT

C