46
Приближенные схемы Приближенные схемы по одноименному роману по одноименному роману Петры Схурман и Герхарда Вёгингера Петры Схурман и Герхарда Вёгингера режиссер-постановщик режиссер-постановщик Александр Кононов Александр Кононов

Приближенные схемы

  • Upload
    jara

  • View
    52

  • Download
    0

Embed Size (px)

DESCRIPTION

Приближенные схемы. по одноименному роману Петры Схурман и Герхарда Вёгингера режиссер-постановщик Александр Кононов. Проблема Кроша. Не мог бы ты составить мне план мероприятий, так чтобы я отправился в космос как можно скорее ?. Я могу, я все могу! И я думаю, что месяц - - PowerPoint PPT Presentation

Citation preview

Page 1: Приближенные схемы

Приближенные схемыПриближенные схемы

по одноименному роману по одноименному роману Петры Схурман и Герхарда ВёгингераПетры Схурман и Герхарда Вёгингера

режиссер-постановщикрежиссер-постановщикАлександр Кононов Александр Кононов

Page 2: Приближенные схемы

Проблема КрошаПроблема Кроша

Page 3: Приближенные схемы

Не мог бы ты составить мне план мероприятий,так чтобы я отправился в космос как можно скорее ?

Я могу, я все могу! И я думаю, что месяц - это оптимальный срок для такого проекта!

Отлично! Завтра же приступаю!Я зайду за планом завтра утром!

Но, я не успею найти план до утра! Пин все может, но …это потребуетдвадцать три с половиной года !!!

Page 4: Приближенные схемы

Завтра…2 месяца

Но …я хотел …1 месяц

Тогда…через23,5

года

Послезавтра 1.5 месяца

Через 3 дня …1 и 1/3 месяца

Что если я зайду ровно через X дней

1+1/X

Page 5: Приближенные схемы

Приближенный алгоритмПриближенный алгоритм

Полиномиальный алгоритм Полиномиальный алгоритм A A называется называется ρρ-приближенным -приближенным алгоритмомалгоритмом для для задачи минимизации задачи минимизации ΠΠ, , если для каждой если для каждой ее индивидуальной задачи ее индивидуальной задачи II ΩΩΠΠ ,,

A(A(II) ) ≤ ≤ ρρOPTOPT((II).).

Page 6: Приближенные схемы

Полиномиальная приближенная Полиномиальная приближенная схема (схема (PTAS)PTAS)

Семейство приближенных алгоритмов для Семейство приближенных алгоритмов для задачи задачи ΠΠ, , {A{Aεε}}εε называется называется полиномиальной полиномиальной

приближенной схемойприближенной схемой, , если алгоритм если алгоритм AAεε ― ―

(1+(1+εε)-)-приближенный алгоритм и время его приближенный алгоритм и время его работы работы ограничено полиномом от размера входа ограничено полиномом от размера входа

при фиксированном при фиксированном εε..

Page 7: Приближенные схемы

Вполне полиномиальная Вполне полиномиальная приближенная схема (приближенная схема (FPTAS)FPTAS)

Семейство приближенных алгоритмов для задачи Семейство приближенных алгоритмов для задачи ΠΠ, , {A{Aεε}}εε называется называется вполне вполне полиномиальной полиномиальной

приближенной схемойприближенной схемой, , если алгоритм если алгоритм AAεε ― ―

(1+(1+εε)-)-приближенный алгоритм и время его работы приближенный алгоритм и время его работы

ограничено полиномом от размера входа ограничено полиномом от размера входа и и 11//εε..

Page 8: Приближенные схемы

КомментарийКомментарий

ТрудоемкостьТрудоемкость PTAS: | PTAS: | I |I |2/2/εε , , | | I |I |2/2/εε1010 , (, (| | I |I |2/2/εε ))1/1/εε .. FPTAS: FPTAS: | | I |I |22//εε, , | | I |I |//εε22, , | | I |I |77//εε33..

С точки зрения точности алгоритма в С точки зрения точности алгоритма в худшем случае худшем случае FPTAS FPTAS – наилучший – наилучший результат, на который можно надеяться результат, на который можно надеяться для для NPNP--трудных задач.трудных задач.

Page 9: Приближенные схемы

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

NP

P

APX

PTASFPTAS

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

Page 10: Приближенные схемы

ИсторияИстория

Graham 1966: 2-Graham 1966: 2-прибл. для прибл. для PP||C||Cmaxmax . .

Graham 1969: PTAS Graham 1969: PTAS для для PmPm||C||Cmaxmax . . Gary, Graham, Ullman 1972: Gary, Graham, Ullman 1972: концепция концепция

приближенных алгоритмовприближенных алгоритмов Gorowitz, Sahni, Ibarra, Kim (1974-76): Gorowitz, Sahni, Ibarra, Kim (1974-76):

первые первые PTAS PTAS и и FPTAS FPTAS для задач о рюкзаке для задач о рюкзаке и задач теории расписаний. и задач теории расписаний.

Page 11: Приближенные схемы

История продолжаетсяИстория продолжается

Garey, Johnson 1978: Garey, Johnson 1978: термины термины PTAS, FPTAS.PTAS, FPTAS. Fernandez de la Vega, Lueker 1981: AFPTAS Fernandez de la Vega, Lueker 1981: AFPTAS

для задачи об упаковке в контейнеры.для задачи об упаковке в контейнеры. Hochbaum, Shmoys 1988: PTAS Hochbaum, Shmoys 1988: PTAS для для PP||C||Cmax max .. Baker 1994: PTAS Baker 1994: PTAS для задач на планарных для задач на планарных

графах (макс. независимое мн-во, миним. графах (макс. независимое мн-во, миним. вершинное покрытие, миним. домин мн-во).вершинное покрытие, миним. домин мн-во).

Arora 1996: PTAS Arora 1996: PTAS для задачи коммивояжера для задачи коммивояжера на плоскости.на плоскости.

Page 12: Приближенные схемы

Отрицательные результатыОтрицательные результаты

Sahni, Gonzalez 1976: Sahni, Gonzalez 1976: задача коммивояжера задача коммивояжера не существует не существует ρρ-прибл-прибл. алг., где . алг., где ρρ – любая – любая конст.конст.

Lenstra, Rinnoy Kan 1978: Lenstra, Rinnoy Kan 1978: PP||precprec,, p pjj=1|C=1|Cmaxmax

не существует (4не существует (4/3/3––εε))-прибл. алг.-прибл. алг. Willamson, Hall, Hoogeven, Hurkens, Lenstra, Willamson, Hall, Hoogeven, Hurkens, Lenstra,

Sevastianov, Shmoys 1997: Sevastianov, Shmoys 1997: FF||C||Cmaxmax , , OO||C||Cmaxmax не не

существует (существует (5/45/4––εε))-прибл. алг.-прибл. алг.

Page 13: Приближенные схемы

Отрицательные результатыОтрицательные результаты

Papadimitriou, Yanakakis Papadimitriou, Yanakakis 19911991: : новые идеи и новые идеи и инструменты для получения отрицательных инструменты для получения отрицательных результатов.результатов. Определение класса Определение класса APX.APX.

Arora, Lund, Motwani, Sudan, Szegedy 1992: Arora, Lund, Motwani, Sudan, Szegedy 1992: труднейшая задача в труднейшая задача в APXAPX не имеет не имеет PTASPTAS, , если если P P ≠ NP.≠ NP.

Page 14: Приближенные схемы

Цеховые задачиЦеховые задачи

Willamson, Hall, Hoogeven, Hurkens, Lenstra, Willamson, Hall, Hoogeven, Hurkens, Lenstra, Sevastianov, Shmoys 1997: Sevastianov, Shmoys 1997: FF||C||Cmaxmax , , OO||C||Cmaxmax не не

существует (существует (5/45/4––εε))-прибл. алг.-прибл. алг. Hall 1998: PTAS Hall 1998: PTAS для для FmFm||C||Cmaxmax . . Sevastianov, Woeginger 1998: PTAS Sevastianov, Woeginger 1998: PTAS для для OmOm||||

CCmaxmax . . Sviridenko, Jansen, Solis-Oba 1999: PTAS Sviridenko, Jansen, Solis-Oba 1999: PTAS

для для JmJm||C||Cmaxmax . .

Page 15: Приближенные схемы

Как построить Как построить PTASPTAS

УпрощениеУпрощение примерапримера II.. РазбиениеРазбиение пространства пространства решенийрешений. . СтруктурированиеСтруктурирование работыработы алгоритмаалгоритма

AA..

Пример I Алгоритм A Решение A(I)

Page 16: Приближенные схемы

УпрощениеУпрощение примерапримера II.. Первая идея превратить трудный примерПервая идея превратить трудный пример в более в более

простой в которомпростой в котором легче найти оптимальное решениелегче найти оптимальное решение. . Затем мы используемЗатем мы используем оптимальное решение простого оптимальное решение простого примера дляпримера для получения приближенного решения для получения приближенного решения для трудного примератрудного примера..

Упростить

Реш

ить

OPT #ВернутьсяOPT

App

I I #

Page 17: Приближенные схемы

Способы упрощенияСпособы упрощения

ОкруглениеОкругление СлияниеСлияние ОтбрасываниеОтбрасывание УсреднениеУсреднение

Page 18: Приближенные схемы

PP22||||CCmaxmax

JJ={1,..., ={1,..., nn} – } – работы.работы. {{MM11, , MM22} – } – одинаковые машины.одинаковые машины.

jj : : ppjj > 0 ( > 0 (ii=1,…, =1,…, nn)).. Каждая работа должна быть выполнена на одной Каждая работа должна быть выполнена на одной

из двухиз двух машин.машин. Минимизировать длину расписания (Минимизировать длину расписания (CCmaxmax).). Прерывания запрещены.Прерывания запрещены. Каждая машина обслуживает не более одной Каждая машина обслуживает не более одной

работы одновременно. работы одновременно.

Page 19: Приближенные схемы

Нижняя оценкаНижняя оценка

n

jjsum pp

1j

nj pp 1max max

max

*max ,

2max p

pLC sum

Page 20: Приближенные схемы

Как упростить пример? (Как упростить пример? (II II##))

Big Big = { = { jj J J | | ppj j ≥ ≥ εεLL}} Новый пример Новый пример II## содержит все большиесодержит все большие работы работы

из из I.I. Small Small = { = { j j J J | | ppj j < < εεLL}}

Пусть Пусть XX= = ΣΣjjSmall Small ppjj .. Новый пример Новый пример II## содержит содержит XX//εεLL работ работ длины длины

εεLL.. Маленькие работы, как бы склеиваются вместе и Маленькие работы, как бы склеиваются вместе и

разрезаются на маленькие одинаковые кусочки.разрезаются на маленькие одинаковые кусочки.

Page 21: Приближенные схемы

Оценка на оптимумОценка на оптимум

OPT(OPT(II##) ) (1+ (1+ εε)OPT()OPT(I I ).).

Page 22: Приближенные схемы

ДоказательствоДоказательство

XXii – – размер всех маленьких работ, выполняемых на размер всех маленьких работ, выполняемых на

машине машине MMii в оптимальном расписании для в оптимальном расписании для II. . Оставим все большие работы на тех машинах, где Оставим все большие работы на тех машинах, где

они были в оптимальном расписании.они были в оптимальном расписании. Заменим все маленькие работы на машине Заменим все маленькие работы на машине MMii на на

XXii //εεLL работ длины работ длины εεLL..

XX11 //εεLL + + XX22 //εεLL XX11 //εεLL + + XX22 //εεLL = = XX//εεLL XXii //εεLLεεL – XL – Xi i ((XXii //εεL + L + 1) 1) εεL – XL – Xi i εεLL OPT(OPT(II##) ) OPT + OPT + εεL L (1+ (1+ εε)OPT()OPT(II))

Page 23: Приближенные схемы

Как решить упрощенный пример?Как решить упрощенный пример?

Как много работ вКак много работ в II##?? ppj j ≥ ≥ εεLL для всех работ в для всех работ в II##..

Общая длина всех работ в Общая длина всех работ в II## ppsum sum 2 2LL.. Число работЧисло работ в в II## 22L/L/εεL= L= 22//εε.. Число работЧисло работ в в II## не зависит от не зависит от n n !! Найдем все возможные расписания.Найдем все возможные расписания. Число различных расписаний Число различных расписаний 2 222//εε !!

Page 24: Приближенные схемы

Как вернуться к исходной Как вернуться к исходной задаче?задаче?

Пусть Пусть σσ## – – оптимальное расписание для оптимальное расписание для II##.. LLii

## – – нагрузка машины нагрузка машины MMii в в σσ##. .

BBii##

– – общая длина больших работ на общая длина больших работ на MMii в в σσ##. .

XXii##– – размер всех маленьких работ на размер всех маленьких работ на MMii в в σσ##. .

LLii## = = BBii

## + + XXii##..

LXL

XLXX

#

2#

1

Page 25: Приближенные схемы

Алгоритм (Алгоритм ( σσ##((II##)) σσ((II)) ))

Большие работы выполняются на той же машине, Большие работы выполняются на той же машине, что и в что и в σσ##..

Выделим интервал длины Выделим интервал длины XX11## + 2+ 2εεLL на машине на машине MM11

и и XX22## на машине на машине MM22..

Будем последовательно упаковывать маленькие Будем последовательно упаковывать маленькие работы в выделенный интервал на работы в выделенный интервал на MM11, пока не , пока не

встретим работу, которая туда не поместится.встретим работу, которая туда не поместится. Оставшиеся маленькие работы упакуем в Оставшиеся маленькие работы упакуем в

выделенный интервал на выделенный интервал на MM22..

Page 26: Приближенные схемы

Оценка качестваОценка качества

max,

2max p

pLOPT sum

OPTOPTOPT

LLLXBL iiii

3121

22 ###

OPTOPTLi 1##

Page 27: Приближенные схемы

РазбиениеРазбиение пространства пространства решенийрешений

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

**

*

*

*

**

**

* *

Page 28: Приближенные схемы

Общая схемаОбщая схема

1.1. Разбиение на области. Разбиение на области.

2.2. Выбор «хорошего» представителя в Выбор «хорошего» представителя в каждой области.каждой области.

3.3. Выбор из множества хороших Выбор из множества хороших представителей наилучшего.представителей наилучшего.

Page 29: Приближенные схемы

PP22||||CCmaxmax

JJ={1,..., ={1,..., nn} – } – работы.работы. {{MM11, , MM22} – } – одинаковые машины.одинаковые машины.

jj : : ppjj > 0 ( > 0 (ii=1,…, =1,…, nn)).. Каждая работа должна быть выполнена на одной Каждая работа должна быть выполнена на одной

из двухиз двух машин.машин. Минимизировать длину расписания (Минимизировать длину расписания (CCmaxmax).). Прерывания запрещены.Прерывания запрещены. Каждая машина обслуживает не более одной Каждая машина обслуживает не более одной

работы одновременно.работы одновременно.

Page 30: Приближенные схемы

Как разбить на областиКак разбить на области

Big Big = { = { jj JJ| | ppj j ≥ ≥ εεLL}}

Small Small = { = { j j JJ| | ppj j < < εεLL}} ΦΦ – множество допустимых расписаний – множество допустимых расписаний Расписание Расписание σσΦΦ – назначение работ на машины. – назначение работ на машины. Определим области Определим области ΦΦ(1)(1), , ΦΦ(2)(2),…согласно ,…согласно

назначению больших работ: назначению больших работ: σσ11 и и σσ2 2 лежат в одной лежат в одной

области тогда и только тогда, когда каждая области тогда и только тогда, когда каждая большая работа выполняется в большая работа выполняется в σσ11 на той же на той же

машине, что и в машине, что и в σσ22..

Page 31: Приближенные схемы

Сколько получилось Сколько получилось областей?областей?

Число больших работЧисло больших работ 22L/L/εεL= L= 22//εε.. Число способов разместить большие Число способов разместить большие

работы по двум машинам работы по двум машинам 2 222//εε.. Число различных областей Число различных областей 2 222//εε !! Число различных областей зависит от Число различных областей зависит от εε

и не зависит от размера входа!и не зависит от размера входа!

Page 32: Приближенные схемы

Как выбрать «хорошего» Как выбрать «хорошего» представителя?представителя?

Назначение больших работ зафиксировано в Назначение больших работ зафиксировано в ΦΦ((ll)).. OPTOPT((ll)) – – длина оптимального расписания в длина оптимального расписания в ΦΦ((ll)).. BBii

((ll)) –– общая длина больших работ на общая длина больших работ на MMii..

T T := max{:= max{BBii((11)), , BBii

((22))} } OPT OPT((ll))

Пусть Пусть BBii((ll)) начальная загрузка машины начальная загрузка машины MMii..

Назначим маленькие работы одну за другой по Назначим маленькие работы одну за другой по следующему правилу: каждый раз работа назначается на следующему правилу: каждый раз работа назначается на машину с меньшей нагрузкой на этот момент. машину с меньшей нагрузкой на этот момент.

Полученное расписание Полученное расписание σσ((ll) ) длины длины AA((ll)) выберем выберем представителем от представителем от ΦΦ((ll))..

Page 33: Приближенные схемы

А хорош ли представитель?А хорош ли представитель?

1.1. Если Если AA((ll)) = =TT, то , то AA((ll)) = = OPT OPT((ll))..

2.2. Пусть Пусть AA((ll)) >>TT..• Рассмотрим машину с большей загрузкой в Рассмотрим машину с большей загрузкой в σσ((ll))..• Последняя назначенная на нее работа маленькая Последняя назначенная на нее работа маленькая

и ее длина меньше и ее длина меньше εεLL.. • В момент назначения этой работы загрузка этой В момент назначения этой работы загрузка этой

машины не превышала машины не превышала ppsum sum // 2. 2.

• AA((ll)) ( (ppsum sum // 2) + 2) + εεL L (1 + (1 + εε)OPT )OPT (1 + (1 + εε)OPT)OPT((ll))

Page 34: Приближенные схемы

СтруктурированиеСтруктурирование работыработы алгоритмаалгоритма

Основная идея рассмотреть точный, но Основная идея рассмотреть точный, но медленный алгоритм.медленный алгоритм.

Если алгоритм получает и перерабатывает Если алгоритм получает и перерабатывает огромное количество различных значений, огромное количество различных значений, то мы можем отбросить часть из них и то мы можем отбросить часть из них и ускорить работу алгоритма.ускорить работу алгоритма.

Page 35: Приближенные схемы

PP22||||CCmaxmax

JJ={1,..., ={1,..., nn} – } – работы.работы. {{MM11, , MM22} – } – одинаковые машины.одинаковые машины.

jj : : ppjj > 0 ( > 0 (ii=1,…, =1,…, nn)).. Каждая работа должна быть выполнена на одной Каждая работа должна быть выполнена на одной

из двухиз двух машин.машин. Минимизировать длину расписания (Минимизировать длину расписания (CCmaxmax).). Прерывания запрещены.Прерывания запрещены. Каждая машина обслуживает не более одной Каждая машина обслуживает не более одной

работы одновременно. работы одновременно.

Page 36: Приближенные схемы

Краткая запись решенияКраткая запись решения

Обозначим через Обозначим через σσkk допустимое расписание допустимое расписание

k k первых работ первых работ {1,..., {1,..., kk}. }. Закодируем расписание Закодируем расписание σσkk с нагрузками с нагрузками

машин машин LL1 1 и и LL22 двумерным вектором двумерным вектором [[LL11, , LL22].].

Пусть Пусть VVkk обозначает множество векторов, обозначает множество векторов,

соответствующих допустимым соответствующих допустимым расписаниям расписаниям k k первых работ первых работ {1,..., {1,..., kk}. }.

Page 37: Приближенные схемы

АлгоритмАлгоритм «Динамическое «Динамическое программирование»программирование»

Input Input (( JJ={1,..., ={1,..., nn}},, pp: : JJ → → ZZ++))1)1) Положим Положим VV00={[0,0]}, ={[0,0]}, ii=0.=0. 2)2) While While ii n n do:do:

для каждого вектора для каждого вектора [[xx,,yy]] VVii добавить добавить вектора вектора [[xx + + ppii ,,yy] ] и и [[xx,,y y + + ppii ]] в в VVii+1+1; ;

ii:= := i i +1;+1;

3) 3) Найти Найти [[x*x*,,y*y*]] VVnn , который минимизирует , который минимизирует величину величину max max [[xx,,yy]]VVnn

{{xx,,yy}}OutputOutput ([([x*x*,,y*y*])])

Page 38: Приближенные схемы

Трудоемкость алгоритмаТрудоемкость алгоритма

КоординатыКоординаты всех векторов целые числа от 0 до всех векторов целые числа от 0 до ppsumsum..

Число различных векторов в Число различных векторов в VVii ограничено (ограничено (ppsumsum))22.. Общее количество векторов, вычисляемых Общее количество векторов, вычисляемых

алгоритмом не превосходит алгоритмом не превосходит nn((ppsumsum))22..

Трудоемкость алгоритмаТрудоемкость алгоритма OO((nn((ppsumsum))22).).

Размер входаРазмер входа ||I| I| ограничен ограничен OO(log((log(ppsumsum)))=)=OO(ln((ln(ppsumsum))) )

или или O(n O(n log log ppmaxmax)).. Трудоемкость алгоритмаТрудоемкость алгоритма не ограничена полиномом не ограничена полиномом

от размера входа!от размера входа!

Page 39: Приближенные схемы

Как упростить множество Как упростить множество векторов?векторов?

Все вектора соответствуют точкам плоскости в Все вектора соответствуют точкам плоскости в квадрате квадрате [0, [0, ppsumsum]]××[0, [0, ppsumsum]]..

Разделим этот квадрат вертикальными и Разделим этот квадрат вертикальными и горизонтальными линиями на клетки горизонтальными линиями на клетки (квадратики).(квадратики).

В обоих направлениях линии имеют В обоих направлениях линии имеют координаты координаты ΔΔii, , где где ΔΔ = 1+ ( = 1+ (εε/2/2nn), ), i i = 1, 2, …, = 1, 2, …, KK. .

K K = = loglogΔΔ((ppsumsum))= = ln(ln(ppsumsum))/ln /ln ΔΔ= = ((1+2((1+2n n ))//εε) ) ln(ln(ppsumsum))

Page 40: Приближенные схемы

Отсев векторовОтсев векторов

Пусть два вектора Пусть два вектора [[xx11,,yy11]] и и [[xx22,,yy22]]

попали в одну клетку. попали в одну клетку. xx11//ΔΔ xx22 xx11ΔΔ и и yy11//ΔΔ yy22 yy11ΔΔ .. Из каждой клетки, имеющей непустое Из каждой клетки, имеющей непустое

пересечение с пересечение с VVii ,, выберем один вектор и выберем один вектор и

добавим его в «урезанное» множество добавим его в «урезанное» множество векторов векторов VVii

##..

Page 41: Приближенные схемы

АлгоритмАлгоритм FPTAS FPTAS

Input Input (( JJ={1,..., ={1,..., nn}},, pp: : JJ → → ZZ++))1.1. Положим Положим VV00

##={[0,0]}, ={[0,0]}, ii=0.=0.

2.2. While While ii n n do:do:• для каждого вектора для каждого вектора [[xx,,yy]] VVii

## добавить добавить

вектора вектора [[xx + + ppii ,,yy] ] и и [[xx,,y y + + ppii ]] в в VVii+1+1; ; • ii:= := i i +1;+1;• Преобразовать Преобразовать VVii в в VVii

##..

3.3. 3) Найти 3) Найти [[x*x*,,y*y*]]VVnn##

, который минимизирует , который минимизирует

величину величину max max [[xx,,yy]]VVnn##{{xx,,yy}}

OutputOutput ([([x*x*,,y*y*])])

Page 42: Приближенные схемы

Трудоемкость алгоритмаТрудоемкость алгоритма FPTASFPTAS

Множество векторов в Множество векторов в VVii## содержит не содержит не

более одного вектора из каждой клетки.более одного вектора из каждой клетки. Всего клеток Всего клеток KK22.. Трудоемкость алгоритмаТрудоемкость алгоритма FPTAS FPTAS OO((nKnK22).). nKnK22 = = nn((1+2((1+2n n ))//εε) ) ln(ln(ppsumsum))22

АлгоритмАлгоритм FPTAS FPTAS – полиномиален от – полиномиален от размера входа и размера входа и 11//εε..

Page 43: Приближенные схемы

Оценка на вектора в Оценка на вектора в VVii и и VVii##

Для каждого вектора Для каждого вектора [[xx,,yy]] VVii существует вектор существует вектор

[[xx##,,yy##]] VVii##

, такой что , такой что xx# # ΔΔiix x и и yy# # ΔΔiiy. y.

Page 44: Приближенные схемы

Доказательство (по индукции)Доказательство (по индукции)

• i =1: (x1/Δ x2 x1Δ и y1/Δ y2 y1Δ )

• i ‒1 → i: Пусть [x,y] Vi .

• Тогда [a,b] Vi-1 , и либо [x,y]= [a+pk,b], либо [x,y]= [a,b+pk].

• Тогда [a#,b#] : a# ≤ Δi ‒ 1a, b# ≤ Δi ‒ 1b .• Алгоритм FPTAS строит вектор [a#+pk ,b#] и

выбирает [α,β], такой что α ≤ Δ(a#+pk ) и β ≤ Δb# .

• Имеем α ≤ Δ(a#+pk ) ≤ Δi a + Δpk ≤ Δi(a+pk) =Δix и β ≤ Δiy.

Page 45: Приближенные схемы

Точность алгоритмаТочность алгоритма FPTAS FPTAS

OPTyxyxyx nnnnË

,max,max,max4.5

##

10 211

zz

nz

n

OPTOPTn

OPTn

n

1

21

Page 46: Приближенные схемы

ЗаключениеЗаключение Рассмотрели ли мы все приемы?Рассмотрели ли мы все приемы? Конечно, нет!Конечно, нет!

Approximation Algorithms for NP-hard problemsApproximation Algorithms for NP-hard problems, , ed. ed. D.HochbaumD.Hochbaum, PWS Publishing Company, , PWS Publishing Company, 1997.1997.

V. VaziraniV. Vazirani Approximation AlgorithmsApproximation Algorithms, , Springer-Verlag, Berlin, 2001.Springer-Verlag, Berlin, 2001.

P. Schuurman, G. WoegingerP. Schuurman, G. Woeginger, , Approximation Approximation Schemes – A TutorialSchemes – A Tutorial, chapter of the book “Lecture , chapter of the book “Lecture on Scheduling”, to appear in 2008.on Scheduling”, to appear in 2008.

D. Williamson, D. Shmoys, D. Williamson, D. Shmoys, The Design of The Design of Approximation Algorithms, Cambridge UP, 2011.Approximation Algorithms, Cambridge UP, 2011.