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

advertisement
Аппроксимационные схемы
Определение Алгоритм A называется  - аппроксимационной схемой, если
для любого ]0,1[ и любых исходных данных I задачи верно
z A ( I )  (1   ) z  ( I )
Другими словами, алгоритм A является (1–)-приближенным алгоритмом для
всех ]0,1[.
Алгоритм H
1. l := min { 1/ – 2, n}, z A := 0
2. Для всех подмножеств L J, |L|  l–1
if (  w j  c) and (  p j  z A ) then z A :
jL
1
jL
 pj
jL
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
3. Для всех подмножеств L J, |L| = l
if (  w j  c) then
jL
 Применить алгоритм AMG к задаче с множеством предметов
{j | pj  min {pi, iL}}\ L и вместимостью рюкзака c 
wj
jL
 if
 p j  z MG  z A then
jL
z A :
 p j  z MG .
jL
Теорема Алгоритм H является -аппроксимационной схемой.
2
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Доказательство.
Если оптимальное решение z  содержит не более l
предметов, то z A  z  и утверждение верно.
Пусть в
оптимальном решении более чем l предметов. Выберем в нем
подмножество L из l предметов с наибольшими весами pj. Рассмотрим
подзадачу S с множеством предметов { j | pj  min {pi, i L } }\ L и
вместимостью рюкзака c   w j . Оптимальное решение этой подзадачи
jL
обозначим через z S . Тогда z   z S 

jL
p j . Приближенное решение,
полученное алгоритмом AMG, обозначим через z SMG .
По определению z A 
MG 1 
MG
z
 2 zS .
и,
кроме
того,
p

z
 j S
S
jL
3
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Рассмотрим два случая:
1.
l z  . Тогда z A 
p

 j l 2
jL

jL
2.
p j  12 ( z 


jL


jL
pj) 
l z  . Тогда в
p

 j l 2
p j  z SMG 
1 ( z
2


jL

jL
pj) 
p j  12 z S 
1 ( z
2
l 1 

l
 l 2 z ) 
z
l2
L найдется предмет с
jL
p j  l 12 z  . По
определению в подзадаче S все предметы имеют вес не более
Применяя свойство 2 для LP-релаксаций, получаем
z    p j  z S   p j  z SMG  l 12 z   z A  l 12 z  .
jL
1 z.
l 2
jL
Итак, в обоих случаях получаем z A  ll12 z  . Величина ll12 растет с ростом l
l  1 1  1

 1 . ■
и
1
l2

T = O(n nl) = O(nl+1). П = O(n).
4
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
1 
1 
Пример. Положим n     1, c    M и
 
 
p1 =2, p2 = p3 =…= pn = M,
w1 = 1, w2 = w3 =…= wn = M.
Оптимум z* = M(l + 2), l = n – 3, zA = (l +1)M + 2 и
zA / z*  (l+1) / (l+2)
при
M  .
Определение. -аппроксимационная схема A называется полиномиальной,
если ее трудоемкость полиномиально зависит от длины записи исходных
данных.
TH = O(nl+1) = O(n1/ –1) — полиномиальная зависимость при заданном .
Если  = 0.1, то TH = O(n9), то есть алгоритм H является полиномиальной аппроксимационной схемой для задачи о рюкзаке.
Определение. -аппроксимационная схема A называется полностью
полиномиальной, если ее трудоемкость полиномиально зависит от длины
записи исходных данных и величины 1/.
5
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Теорема Для задачи о рюкзаке существует полностью полиномиальная
-аппроксимационная схема.
Доказательство Для примера I = {p1,…, pn, w1,…, wn, c} построим новый
p
пример I , в котором c  c, w j  w j , p j   Kj  для некоторой константы
 
K > 0, которую определим позже. Для примера I применим алгоритм ДП и
найдем оптимальный набор предметов X . Скорее всего он будет
отличаться от оптимального набора X  для примера I. Оценим разность
между полученным значением z A и оптимальным z  :
pj

z   pj   K K  K
 
jX
jX
A

pj 
  K 

jX

pj
K( K
jX 
 1) 


(
p

K
)

z

|
X
| K.
 j
jX 
Второе неравенство в этой цепочке следует из оптимальности X для I .
6
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Мы хотим получить
z  z A
z
Следовательно, K 
  z
| X |


| X | K
z

 .
. Так как n  |X *| и z*  pmax , то
  z
  z
  pmax


n
n
| X |
и, полагая K    pmax n , получим нужное значение для параметра K.
Трудоемкость алгоритма определяется трудоемкостью ДП. Если вместо
исходной задачи решать обратную к ней, то T = O(Un), где U — верхняя
оценка на оптимальное значение целевой функции z  
 p j.
jX
max
Очевидно, что z   npmax , но pmax  K
 n , то есть z   n2 /  .
p
Полагая U = n2/ , получаем T  O(n3  1 ) , П = O(Un)  O(n3  1 ) . ■
7
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Задача о ближайшем соседе
Дано:
функция f (x, y)  0 — затраты на обслуживание отрезка дороги
от x до y,
0  x  y  M,
x, y — целочисленные точки,
n — число отрезков.
Найти: оптимальное разбиение сегмента [0,M] на n отрезков.
Математическая модель:
n
min  f ( xk 1, xk )
k 1
0 = x0  …  xn = M
8
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Алгоритм динамического программирования
Sk(y) — минимальные затраты на обслуживание k отрезков для сегмента [0, y].
Рекуррентные соотношения:
S1(y) = f (0,y), y = 1,…, M
S k ( y )  min {S k 1 ( x)  f ( x, y )}, y = 1,…, M, k = 2,…, n.
1 x  y
T = O(nM 2)
9
П = O(nM)
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Оптимизация числа отрезков
Для каждого n = 1,…, M найти Sn(M) и выбрать наименьшее значение
T = O(M 3), П = O(M 2).
Модифицированный вариант
~
S ( y) — минимальные затраты на обслуживание сегмента [0, y].
Рекуррентные соотношения:
~
S (0)  0,
~
~
S ( y )  min {S ( x)  f ( x, y )}, y = 1,…, M.
0 x y 1
T = O(M 2), П = O(M).
10
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Замена оборудования
Дано:
g — начальная стоимость оборудования,
 (t) — относительная остаточная стоимость на год t
 (t) — эксплуатационные затраты за все года от 0 до t.
S(t) = g(1 –  (t)) +  (t) — суммарные затраты за все года от 0 до t.
 (t) = S(t)/t — удельные затраты
Критерий оптимизации
 (t  )  min  (t )
t 0
Будем менять оборудование через каждые t* лет.
11
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Случай 1. S(t) — вогнутая растущая функция.
Пусть  (t) — выпуклая убывающая функция  (0) = 1,  (t)  0;
 (t) — вогнутая растущая функция  (0) = 0.
Покажем, что  (t) убывает с ростом t.
g
 (t)
Так как S(t) — вогнутая функция, то
для любого  [0,1] и t0 < t2 имеем
(1–)S(t0) + S(t2)  S((1–)t0+ t2).
Для t1 < t2 положим  = t1/t2, t0 = 0.
g (t)
Тогда S(t0)=0 и t1S(t2)  t2S(t1),
t
то есть  (t1)   (t2). Следовательно, оборудование выгодно эксплуатировать
как можно дольше.
12
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Случай 2.
 (t) = e– t,  (t) = k (e t –1),  > 0, k > 0,  > 0.
Тогда  (t) = [g(1 – e– t) + k (e– t –1)]/t — выпуклая функция.
и t* можно найти методом дихотомии за
O(log(T/)) операций, где  —
требуемая точность, T — оценка сверху на t*.
1
 (t)
 (t)
t
13
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Задача замены оборудования с учетом
дисконтирования затрат
Приведение затрат к начальному моменту
Пусть  — банковский процент, или коэффициент эффективности
капиталовложений (годовая норма дисконта).
Если S1 — капитал в начальный год, то по истечении года эта сумма станет
равной S2 = S1(1 + ), а в конце t-го года St = S1(1 + )t–1.
Если в год t хотим потратить сумму St, то в начальный год должны иметь
St
S1 
. Затраты St в год t, будучи приведенными к начальному
t 1
(1   )
моменту t =1, равны
~
S   t 1  St ,
где   11 — коэффициент дисконтирования, 0 <   1.
14
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Если в течении T лет производились траты S1, S2,…, St
приведенные затраты вычисляются по формуле:
то суммарные
~ T t 1
S   St .
t 1
Пример. Рассмотрим распределение капитала в 8 млн. руб. в течение 8 лет
при банковском проценте  = 0.1 ( = 0.91) и трех стратегиях:
1) все траты в 1-й год;
2) равномерные траты;
3) все траты в последний год.
Стратегия
1
2
3
15
Год
1
8
1
–
2
–
1
–
3
–
1
–
4
–
1
–
5
–
1
–
6
–
1
–
7
–
1
–
8
–
1
8
Суммарные
приведенные затраты
8.0
5.9
4.2
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Постановка задачи
g — начальная стоимость оборудования;
ct — стоимость эксплуатации оборудования в t год, ct+1  ct;
Система функционирует бесконечно, оборудование периодически заменяется.
T — период замены оборудования;
ST — суммарные затраты при фиксированном периоде замены T :
T
T
T
t 1
t 1
t 1
ST  g   t 1ct   T g   T  t 1ct   2T g   2T  t 1ct  ... .
за первые T лет
за вторые T лет
………….
Благодаря дисконтированию затрат ( < 1) величина ST конечна:
T
T
t 1
t 1
ST  ( g    t 1ct )(1   T   2T  ...)  ( g    t 1ct ) /(1   T )   .
Задача отыскания оптимального периода замены оборудования:
16
ST  min
T 0
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Теорема. Если эксплуатационные затраты ct не убывают со временем, то
оптимальный период замены T*, если он существует,
определяется
следующим соотношением
T*=min {T | cT+1> (1– )ST , T >0, целое}.
Оборудование не рекомендуется заменять до тех пор, пока эксплуатационные
расходы следующего года не превысят средневзвешенную сумму уже
произведенных затрат.
17
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Лемма 1.
ST 1  ST 1  ST  KT , (cT 1  (1   ) ST ),
где KT ,   T /(1   T 1 ),
Доказательство.
ST 1  ( g 
T  1.
T 1
t 1
T 1

c
)
/(
1


)  ST 

t
t 1
ST (1   T )   T cT 1  ST (1   T 1 )
1   T 1
T

(c
 (1   ) ST ). ■
T 1 T 1
1
Следствие 1. При T > 0
ST+1 > 0  cT + 1 > (1 – )ST .
18
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Лемма 2.
Пусть существует T* = min {T | ST+1 > 0}. Тогда
последовательность {ST}, T = T*, T*+1, T*+2,… — монотонно возрастающая.
Доказательство проведем индукцией по T.
При T = T* имеем ST*+1 > 0 и ST* < ST*+1. Пусть ST* < ST*+1 < …< ST , T > T*.
Покажем, что ST < ST+1.
Учитывая неубывание последовательности {ct} и положительность ST, по
лемме 1 имеем
ST 1  ST  KT , (cT 1  (1   ) ST )  KT , (cT  (1   ) ST ) 
 K T , (cT  (1   ) ST 1  (1   )ST )  K T , ST /( K T 1, )  (1   )ST  
 (1   T 1 )

ST  0 . ■
T 1
1
Утверждение теоремы вытекает из следствий 1 и леммы 2. Если T* не
существует, то затраты ST — невозрастающая функция и оборудование
заменять не следует. ■
19
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Применение динамического программирования
Рассмотрим систему, функционирующую в течение T лет, причем решение о
замене оборудования принимается каждый год.
Дано: {1,…, m} — набор типов оборудования;
g ti — стоимость оборудования i-го типа, купленного в год t;
cti ( ) — стоимость годовых эксплуатационных затрат на оборудование
i-го типа, купленного в год t и проработавшего  лет;
ti ( ) — остаточная стоимость оборудования i-го типа возраста ,
купленного в год t;
n — максимально допустимый возраст оборудования;
i0, 0 — тип и возраст оборудования в начале функционирования;
Пусть Sti ( ) — минимальные суммарные затраты в интервале [t, T],
приведенные к началу t-го года, при условии, что в начале t-го года было
i
оборудование типа i возраста . Требуется найти S10 ( 0 ) .
20
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Рекуррентные соотношения:
cTi  (  1)   Ti  (  1),
если замены нет,

i
ST ( )  min 
k
k
k
i
min
[
g

c
(
1
)



(
1
)]


T
T
T  ( ), в случае замены,
1k m T
1    n, 1  i  m,
cti  (  1)  Sti1 (  1),

Sti ( )  min 
k
k
k
i
min
[
g

c
(
1
)


S
(
1
)]


t
t 1
t  ( ),
1 k  m t
если продолжаем
эксплуатировать
оборудование
если заменяем оборудование
1    n, 1  i  m, 1  t < T.
Алгоритм может быть реализован с трудоемкостью T = O(m2nT), и памятью
П = O(mnT).
21
Лекция 5. Задачи о рюкзаке (продолжение) + задача о ближайшем соседе
Download