202
с/к “Эффективные алгоритмы” Лекция 21: Алгоритмы, обрабатывающие вход по мере поступления А. Куликов Computer Science клуб при ПОМИ http://logic.pdmi.ras.ru/infclub/ А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 1 / 42

20080406 efficientalgorithms kulikov_lecture21

Embed Size (px)

Citation preview

Page 1: 20080406 efficientalgorithms kulikov_lecture21

с/к “Эффективные алгоритмы”Лекция 21: Алгоритмы, обрабатывающие вход по

мере поступления

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 1 / 42

Page 2: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 2 / 42

Page 3: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 2 / 42

Page 4: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 2 / 42

Page 5: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 3 / 42

Page 6: 20080406 efficientalgorithms kulikov_lecture21

Введение

Введение

Все рассмотренные нами до сегодняшнего дня алгоритмыполучали свои входные данные сразу.На практике же сущесвуют задачи, которые нужно решать, незная заранее все входные данные.Например, системная программа, контролирующая работуоперационной системы, должна производить некоторые действия(принимать решения, записывать что-то на выход) до того, какпоступят все данные.Такие алгоритмы называются алгоритмами, работающими вреальном времени, или online-алгоритмами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 4 / 42

Page 7: 20080406 efficientalgorithms kulikov_lecture21

Введение

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

На практике же сущесвуют задачи, которые нужно решать, незная заранее все входные данные.Например, системная программа, контролирующая работуоперационной системы, должна производить некоторые действия(принимать решения, записывать что-то на выход) до того, какпоступят все данные.Такие алгоритмы называются алгоритмами, работающими вреальном времени, или online-алгоритмами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 4 / 42

Page 8: 20080406 efficientalgorithms kulikov_lecture21

Введение

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

Например, системная программа, контролирующая работуоперационной системы, должна производить некоторые действия(принимать решения, записывать что-то на выход) до того, какпоступят все данные.Такие алгоритмы называются алгоритмами, работающими вреальном времени, или online-алгоритмами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 4 / 42

Page 9: 20080406 efficientalgorithms kulikov_lecture21

Введение

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

Такие алгоритмы называются алгоритмами, работающими вреальном времени, или online-алгоритмами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 4 / 42

Page 10: 20080406 efficientalgorithms kulikov_lecture21

Введение

ВведениеВсе рассмотренные нами до сегодняшнего дня алгоритмыполучали свои входные данные сразу.На практике же сущесвуют задачи, которые нужно решать, незная заранее все входные данные.Например, системная программа, контролирующая работуоперационной системы, должна производить некоторые действия(принимать решения, записывать что-то на выход) до того, какпоступят все данные.Такие алгоритмы называются алгоритмами, работающими вреальном времени, или online-алгоритмами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 4 / 42

Page 11: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

Оценка эффективности

Как правило, online-алгоритм получает последовательностьзапросов.По каждому из запросов он должен предоставить некоторыйсервис до того, как получит следующий запрос.Обычно есть несколько возможностей предоставить сервис,каждой из которых сопоставлена некоторая стоимость.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 5 / 42

Page 12: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

Оценка эффективностиКак правило, online-алгоритм получает последовательностьзапросов.

По каждому из запросов он должен предоставить некоторыйсервис до того, как получит следующий запрос.Обычно есть несколько возможностей предоставить сервис,каждой из которых сопоставлена некоторая стоимость.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 5 / 42

Page 13: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

Оценка эффективностиКак правило, online-алгоритм получает последовательностьзапросов.По каждому из запросов он должен предоставить некоторыйсервис до того, как получит следующий запрос.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 5 / 42

Page 14: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

Оценка эффективностиКак правило, online-алгоритм получает последовательностьзапросов.По каждому из запросов он должен предоставить некоторыйсервис до того, как получит следующий запрос.Обычно есть несколько возможностей предоставить сервис,каждой из которых сопоставлена некоторая стоимость.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 5 / 42

Page 15: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

Определение

Online алгоритм A называется c-оптимальным (c-competitive),если для любой последовательности запросов r и любогоалгоритма B , которому вся последовательност запросов даетсясразу,

costA(r) ≤ c · costB(r) + c1.

Коэффициентом оптимальности (competitiveness coefficient) cAалгоритма A называется инфимум таких c , что A c-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 6 / 42

Page 16: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

ОпределениеOnline алгоритм A называется c-оптимальным (c-competitive),если для любой последовательности запросов r и любогоалгоритма B , которому вся последовательност запросов даетсясразу,

costA(r) ≤ c · costB(r) + c1.

Коэффициентом оптимальности (competitiveness coefficient) cAалгоритма A называется инфимум таких c , что A c-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 6 / 42

Page 17: 20080406 efficientalgorithms kulikov_lecture21

Оценка эффективности

ОпределениеOnline алгоритм A называется c-оптимальным (c-competitive),если для любой последовательности запросов r и любогоалгоритма B , которому вся последовательност запросов даетсясразу,

costA(r) ≤ c · costB(r) + c1.

Коэффициентом оптимальности (competitiveness coefficient) cAалгоритма A называется инфимум таких c , что A c-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 6 / 42

Page 18: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыж

Представьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 19: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.

Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 20: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).

У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 21: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.

Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 22: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.

С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 23: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.

Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 24: 20080406 efficientalgorithms kulikov_lecture21

Аренда лыж

Аренда лыжПредставьте себя на горнолыжном курорте.Вы решили кататься, пока позволяет погода, поэтому заранее незнаете, сколько именно (вы не верите прогнозам погоды).У вас нет лыж, но есть две возможности: арендовать лыжи за 10руб. в сутки или купить лыжи за 150 руб.Если вы купите лыжи в первый же день, а на следующий день всерасстает, вы потратите много денег.С другой стороны, если вы решите каждый день брать лыжи напрокат, то за два месяца вы потратите стоимость четырех парлыж.Что же вам делать?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 7 / 42

Page 25: 20080406 efficientalgorithms kulikov_lecture21

Поиск припаркованной машины

Поиск припаркованной машины

Рассеянный профессор, выйдя из института, осознал, что непомнит, где припарковал свою машину.Будем считать, что здание института круглое и машинаприпаркована рядом с ним.Что же делать профессору?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 8 / 42

Page 26: 20080406 efficientalgorithms kulikov_lecture21

Поиск припаркованной машины

Поиск припаркованной машиныРассеянный профессор, выйдя из института, осознал, что непомнит, где припарковал свою машину.

Будем считать, что здание института круглое и машинаприпаркована рядом с ним.Что же делать профессору?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 8 / 42

Page 27: 20080406 efficientalgorithms kulikov_lecture21

Поиск припаркованной машины

Поиск припаркованной машиныРассеянный профессор, выйдя из института, осознал, что непомнит, где припарковал свою машину.Будем считать, что здание института круглое и машинаприпаркована рядом с ним.

Что же делать профессору?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 8 / 42

Page 28: 20080406 efficientalgorithms kulikov_lecture21

Поиск припаркованной машины

Поиск припаркованной машиныРассеянный профессор, выйдя из института, осознал, что непомнит, где припарковал свою машину.Будем считать, что здание института круглое и машинаприпаркована рядом с ним.Что же делать профессору?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 8 / 42

Page 29: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм

Online-алгоритм

Заметим, что online-алгоритм для задачи аренды лыж полностьюзадается днем N, в который нужно купить лыжи (после этогоплатить не нужно).Итак, какое же N оптимально?Если N мало, мы рискуем купить лыжи и уехать с ними наследующий день домой.Если же N велико, мы рискуем прокатать до покупки несколькостоимостей лыж.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 9 / 42

Page 30: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм

Online-алгоритмЗаметим, что online-алгоритм для задачи аренды лыж полностьюзадается днем N, в который нужно купить лыжи (после этогоплатить не нужно).

Итак, какое же N оптимально?Если N мало, мы рискуем купить лыжи и уехать с ними наследующий день домой.Если же N велико, мы рискуем прокатать до покупки несколькостоимостей лыж.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 9 / 42

Page 31: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм

Online-алгоритмЗаметим, что online-алгоритм для задачи аренды лыж полностьюзадается днем N, в который нужно купить лыжи (после этогоплатить не нужно).Итак, какое же N оптимально?

Если N мало, мы рискуем купить лыжи и уехать с ними наследующий день домой.Если же N велико, мы рискуем прокатать до покупки несколькостоимостей лыж.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 9 / 42

Page 32: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм

Online-алгоритмЗаметим, что online-алгоритм для задачи аренды лыж полностьюзадается днем N, в который нужно купить лыжи (после этогоплатить не нужно).Итак, какое же N оптимально?Если N мало, мы рискуем купить лыжи и уехать с ними наследующий день домой.

Если же N велико, мы рискуем прокатать до покупки несколькостоимостей лыж.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 9 / 42

Page 33: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм

Online-алгоритмЗаметим, что online-алгоритм для задачи аренды лыж полностьюзадается днем N, в который нужно купить лыжи (после этогоплатить не нужно).Итак, какое же N оптимально?Если N мало, мы рискуем купить лыжи и уехать с ними наследующий день домой.Если же N велико, мы рискуем прокатать до покупки несколькостоимостей лыж.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 9 / 42

Page 34: 20080406 efficientalgorithms kulikov_lecture21

2-оптимальный online-алгоритм

2-оптимальный online-алгоритм

2-оптимальный алгоритм: брать лыжи в прокат первые 14 дней, ана 15-й день купить их.Легко видеть, что данный алгоритм 2-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 10 / 42

Page 35: 20080406 efficientalgorithms kulikov_lecture21

2-оптимальный online-алгоритм

2-оптимальный online-алгоритм2-оптимальный алгоритм: брать лыжи в прокат первые 14 дней, ана 15-й день купить их.

Легко видеть, что данный алгоритм 2-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 10 / 42

Page 36: 20080406 efficientalgorithms kulikov_lecture21

2-оптимальный online-алгоритм

2-оптимальный online-алгоритм2-оптимальный алгоритм: брать лыжи в прокат первые 14 дней, ана 15-й день купить их.Легко видеть, что данный алгоритм 2-оптимален.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 10 / 42

Page 37: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.Покажем, что данный алгоритм 9-оптимален.Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 38: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.

Покажем, что данный алгоритм 9-оптимален.Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 39: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.Покажем, что данный алгоритм 9-оптимален.

Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 40: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.Покажем, что данный алгоритм 9-оптимален.Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.

В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 41: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.Покажем, что данный алгоритм 9-оптимален.Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.

Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 42: 20080406 efficientalgorithms kulikov_lecture21

Online-алгоритм для поиска припаркованной машиныOnline-алгоритм для поиска припаркованной машины

Рассмотрим такой алгоритм: профессор сходит направо нарасстояние 1, потом вернется и сходит налево на расстояние 2,потом опять вернется и сходит направо на расстояние 4, и такдалее до тех пор, пока не найдется машина.Покажем, что данный алгоритм 9-оптимален.Неприятнее всего профессору тогда, когда он не дошелмаленького 𝜖 до своей машины на одной из итераций.В такой ситуации ему придется вернуться назад, сходить впротивоположную сторону и только потом найти машину.Пусть расстояние до машины равно 2i+1 + 𝜖. Тогда ему придетсяпройти

2·(1+2+· · ·+2i+2)+2i+1+𝜖 = 2·(2i+3−1)+2i+1+𝜖 = 9·2i+1+𝜖−2.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 11 / 42

Page 43: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 12 / 42

Page 44: 20080406 efficientalgorithms kulikov_lecture21

Задача кэширования (paging problem)Задача кэширования (paging problem)

У компьютера есть два вида памяти: дисковая, большая пообъему, но медленная, и оперативная, быстрая, но меньше пообъему.Все операции над данными (в частности, запуск программ)производятся в оперативной памяти; дисковая памятьиспользуется лишь для их хранения.Если обращения к одному и тому же месту дисковой памятиповторяются, можно сэкономить время на том, что выделить воперативной памяти определенное место (кэш), в которойсохранять считанные данные.Поскольку объем кэша ограничен, периодически придется стиратьиз него данные (записывать на их место другие); качествоалгоритма определяется тем, насколько он сможет предугадать,какие данные еще понадобятся (и их не следует стирать), акакие — нет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 13 / 42

Page 45: 20080406 efficientalgorithms kulikov_lecture21

Задача кэширования (paging problem)Задача кэширования (paging problem)

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

Все операции над данными (в частности, запуск программ)производятся в оперативной памяти; дисковая памятьиспользуется лишь для их хранения.Если обращения к одному и тому же месту дисковой памятиповторяются, можно сэкономить время на том, что выделить воперативной памяти определенное место (кэш), в которойсохранять считанные данные.Поскольку объем кэша ограничен, периодически придется стиратьиз него данные (записывать на их место другие); качествоалгоритма определяется тем, насколько он сможет предугадать,какие данные еще понадобятся (и их не следует стирать), акакие — нет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 13 / 42

Page 46: 20080406 efficientalgorithms kulikov_lecture21

Задача кэширования (paging problem)Задача кэширования (paging problem)

У компьютера есть два вида памяти: дисковая, большая пообъему, но медленная, и оперативная, быстрая, но меньше пообъему.Все операции над данными (в частности, запуск программ)производятся в оперативной памяти; дисковая памятьиспользуется лишь для их хранения.

Если обращения к одному и тому же месту дисковой памятиповторяются, можно сэкономить время на том, что выделить воперативной памяти определенное место (кэш), в которойсохранять считанные данные.Поскольку объем кэша ограничен, периодически придется стиратьиз него данные (записывать на их место другие); качествоалгоритма определяется тем, насколько он сможет предугадать,какие данные еще понадобятся (и их не следует стирать), акакие — нет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 13 / 42

Page 47: 20080406 efficientalgorithms kulikov_lecture21

Задача кэширования (paging problem)Задача кэширования (paging problem)

У компьютера есть два вида памяти: дисковая, большая пообъему, но медленная, и оперативная, быстрая, но меньше пообъему.Все операции над данными (в частности, запуск программ)производятся в оперативной памяти; дисковая памятьиспользуется лишь для их хранения.Если обращения к одному и тому же месту дисковой памятиповторяются, можно сэкономить время на том, что выделить воперативной памяти определенное место (кэш), в которойсохранять считанные данные.

Поскольку объем кэша ограничен, периодически придется стиратьиз него данные (записывать на их место другие); качествоалгоритма определяется тем, насколько он сможет предугадать,какие данные еще понадобятся (и их не следует стирать), акакие — нет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 13 / 42

Page 48: 20080406 efficientalgorithms kulikov_lecture21

Задача кэширования (paging problem)Задача кэширования (paging problem)

У компьютера есть два вида памяти: дисковая, большая пообъему, но медленная, и оперативная, быстрая, но меньше пообъему.Все операции над данными (в частности, запуск программ)производятся в оперативной памяти; дисковая памятьиспользуется лишь для их хранения.Если обращения к одному и тому же месту дисковой памятиповторяются, можно сэкономить время на том, что выделить воперативной памяти определенное место (кэш), в которойсохранять считанные данные.Поскольку объем кэша ограничен, периодически придется стиратьиз него данные (записывать на их место другие); качествоалгоритма определяется тем, насколько он сможет предугадать,какие данные еще понадобятся (и их не следует стирать), акакие — нет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 13 / 42

Page 49: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачи

Вся память (и дисковая, и оперативная) разбита на блоки равнойдлины.Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.На очередном шаге к нам поступает запрос на какой-то блок сдиска; если этот блок в кэше уже имеется, нам достаточносообщить его номер в кэше; если нет, нам надо предварительнорешить, в какое место кэша записать этот блок и сделать это,считав блок с диска.Время работы алгоритма измеряется количеством считываний сдиска.Будем считать, что в начальный момент времени кэш пуст.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 50: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачиВся память (и дисковая, и оперативная) разбита на блоки равнойдлины.

Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.На очередном шаге к нам поступает запрос на какой-то блок сдиска; если этот блок в кэше уже имеется, нам достаточносообщить его номер в кэше; если нет, нам надо предварительнорешить, в какое место кэша записать этот блок и сделать это,считав блок с диска.Время работы алгоритма измеряется количеством считываний сдиска.Будем считать, что в начальный момент времени кэш пуст.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 51: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачиВся память (и дисковая, и оперативная) разбита на блоки равнойдлины.Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 52: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачиВся память (и дисковая, и оперативная) разбита на блоки равнойдлины.Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.На очередном шаге к нам поступает запрос на какой-то блок сдиска; если этот блок в кэше уже имеется, нам достаточносообщить его номер в кэше; если нет, нам надо предварительнорешить, в какое место кэша записать этот блок и сделать это,считав блок с диска.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 53: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачиВся память (и дисковая, и оперативная) разбита на блоки равнойдлины.Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.На очередном шаге к нам поступает запрос на какой-то блок сдиска; если этот блок в кэше уже имеется, нам достаточносообщить его номер в кэше; если нет, нам надо предварительнорешить, в какое место кэша записать этот блок и сделать это,считав блок с диска.Время работы алгоритма измеряется количеством считываний сдиска.

Будем считать, что в начальный момент времени кэш пуст.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 54: 20080406 efficientalgorithms kulikov_lecture21

Формальная постановка задачи

Формальная постановка задачиВся память (и дисковая, и оперативная) разбита на блоки равнойдлины.Блоки пронумерованы, причем кэш состоит из k блоков, а диск —из t блоков.На очередном шаге к нам поступает запрос на какой-то блок сдиска; если этот блок в кэше уже имеется, нам достаточносообщить его номер в кэше; если нет, нам надо предварительнорешить, в какое место кэша записать этот блок и сделать это,считав блок с диска.Время работы алгоритма измеряется количеством считываний сдиска.Будем считать, что в начальный момент времени кэш пуст.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 14 / 42

Page 55: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристики

Когда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.Стандартные эвристики выбора такого блока:Least Recently Used, LRU: стереть блок, последний запрос на

которой был раньше всего.First-in, First-out, FIFO: стереть блок, находящийся в кэше

дольше всего.Least Frequently Used, LFU: стереть блок, который запрашивался

реже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 56: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристикиКогда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.

Стандартные эвристики выбора такого блока:Least Recently Used, LRU: стереть блок, последний запрос на

которой был раньше всего.First-in, First-out, FIFO: стереть блок, находящийся в кэше

дольше всего.Least Frequently Used, LFU: стереть блок, который запрашивался

реже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 57: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристикиКогда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.Стандартные эвристики выбора такого блока:

Least Recently Used, LRU: стереть блок, последний запрос накоторой был раньше всего.

First-in, First-out, FIFO: стереть блок, находящийся в кэшедольше всего.

Least Frequently Used, LFU: стереть блок, который запрашивалсяреже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 58: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристикиКогда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.Стандартные эвристики выбора такого блока:Least Recently Used, LRU: стереть блок, последний запрос на

которой был раньше всего.

First-in, First-out, FIFO: стереть блок, находящийся в кэшедольше всего.

Least Frequently Used, LFU: стереть блок, который запрашивалсяреже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 59: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристикиКогда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.Стандартные эвристики выбора такого блока:Least Recently Used, LRU: стереть блок, последний запрос на

которой был раньше всего.First-in, First-out, FIFO: стереть блок, находящийся в кэше

дольше всего.

Least Frequently Used, LFU: стереть блок, который запрашивалсяреже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 60: 20080406 efficientalgorithms kulikov_lecture21

Известные эвристики

Известные эвристикиКогда приходит запрос на блок, которого нет в кэше,online-алгоритму приходится стереть какой-нибудь блок из кэша ина его место записать запрошенный блок.Стандартные эвристики выбора такого блока:Least Recently Used, LRU: стереть блок, последний запрос на

которой был раньше всего.First-in, First-out, FIFO: стереть блок, находящийся в кэше

дольше всего.Least Frequently Used, LFU: стереть блок, который запрашивался

реже всего.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 15 / 42

Page 61: 20080406 efficientalgorithms kulikov_lecture21

Оптимальный offline-алгоритм

Алгоритм MINПри запросе блока, которого нет в кэше, стереть из кэша тот блок,запрос на который будет в будущем позже всего.

УпражненияПусть диск состоит из t = k + 1 блока.

Показать, что для любого детерминированного offline-алгоритмаA для задачи кэширования существует последовательность из Nзапросов r , такая что costA(r) = N.Показать, что для любой последовательности из N запросов rcostMIN(r) = N/k .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 16 / 42

Page 62: 20080406 efficientalgorithms kulikov_lecture21

Оптимальный offline-алгоритм

Алгоритм MINПри запросе блока, которого нет в кэше, стереть из кэша тот блок,запрос на который будет в будущем позже всего.

УпражненияПусть диск состоит из t = k + 1 блока.

Показать, что для любого детерминированного offline-алгоритмаA для задачи кэширования существует последовательность из Nзапросов r , такая что costA(r) = N.Показать, что для любой последовательности из N запросов rcostMIN(r) = N/k .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 16 / 42

Page 63: 20080406 efficientalgorithms kulikov_lecture21

Оптимальный offline-алгоритм

Алгоритм MINПри запросе блока, которого нет в кэше, стереть из кэша тот блок,запрос на который будет в будущем позже всего.

УпражненияПусть диск состоит из t = k + 1 блока.

Показать, что для любого детерминированного offline-алгоритмаA для задачи кэширования существует последовательность из Nзапросов r , такая что costA(r) = N.

Показать, что для любой последовательности из N запросов rcostMIN(r) = N/k .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 16 / 42

Page 64: 20080406 efficientalgorithms kulikov_lecture21

Оптимальный offline-алгоритм

Алгоритм MINПри запросе блока, которого нет в кэше, стереть из кэша тот блок,запрос на который будет в будущем позже всего.

УпражненияПусть диск состоит из t = k + 1 блока.

Показать, что для любого детерминированного offline-алгоритмаA для задачи кэширования существует последовательность из Nзапросов r , такая что costA(r) = N.Показать, что для любой последовательности из N запросов rcostMIN(r) = N/k .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 16 / 42

Page 65: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательстваМы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.За каждый период A делает k считываний с диска, а B — всегоодин.Последовательность строится по алгоритму A (каждыйследующий запрос всегда можно сделать на блок, которого точнонет в кэше алгоритма A).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 66: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательства

Мы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.За каждый период A делает k считываний с диска, а B — всегоодин.Последовательность строится по алгоритму A (каждыйследующий запрос всегда можно сделать на блок, которого точнонет в кэше алгоритма A).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 67: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательстваМы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.

Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.За каждый период A делает k считываний с диска, а B — всегоодин.Последовательность строится по алгоритму A (каждыйследующий запрос всегда можно сделать на блок, которого точнонет в кэше алгоритма A).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 68: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательстваМы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.

За каждый период A делает k считываний с диска, а B — всегоодин.Последовательность строится по алгоритму A (каждыйследующий запрос всегда можно сделать на блок, которого точнонет в кэше алгоритма A).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 69: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательстваМы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.За каждый период A делает k считываний с диска, а B — всегоодин.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 70: 20080406 efficientalgorithms kulikov_lecture21

Нижняя оценка для детерминированных алгоритмов

ЛеммаДля любого детерминированного алгоритма A для задачикэширования cA ≥ k .

Идеи доказательстваМы покажем, что существует offline-алгоритм B ипоследовательность запросов r со следующими условиями.Последовательность делится на периоды, где под периодомпонимается максимальная последовательность, содержащаязапросы на k различных блоков.За каждый период A делает k считываний с диска, а B — всегоодин.Последовательность строится по алгоритму A (каждыйследующий запрос всегда можно сделать на блок, которого точнонет в кэше алгоритма A).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 17 / 42

Page 71: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числа

Итак, детерминированные online-алгоритмы не особо хороши.Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 72: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числаИтак, детерминированные online-алгоритмы не особо хороши.

Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 73: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числаИтак, детерминированные online-алгоритмы не особо хороши.Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?

Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 74: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числаИтак, детерминированные online-алгоритмы не особо хороши.Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).

Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 75: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числаИтак, детерминированные online-алгоритмы не особо хороши.Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?

Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 76: 20080406 efficientalgorithms kulikov_lecture21

Случайные числа

Случайные числаИтак, детерминированные online-алгоритмы не особо хороши.Можем ли мы улучшить алгоритм, позволив ему пользоватьсяслучайными числами?Для этого сначала нужно понять, из какого класса беретсяпротивник (алгоритм, относительно которого мы оцениваем нашалгоритм).Противник выдает всю последовательность сразу? Или жепостепенно, смотря на наши ответы?Если он смотрит на наши ответы, то сразу ли он сам отвечает насвои запросы?

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 18 / 42

Page 77: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.

Забывчивый противник (oblivious adversary) порождает всюпоследовательность заранее.

Активный offline-противник (adaptive offline adversary) порождаетпоследовательность запросов, смотря на наши ответы.

Активный online-противник (adaptive online adversary) порождаетпоследовательность запросов, смотря на наши ответы, нообязан сразу выдавать ответы на свои запросы.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 78: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.

Забывчивый противник (oblivious adversary) порождает всюпоследовательность заранее.

Активный offline-противник (adaptive offline adversary) порождаетпоследовательность запросов, смотря на наши ответы.

Активный online-противник (adaptive online adversary) порождаетпоследовательность запросов, смотря на наши ответы, нообязан сразу выдавать ответы на свои запросы.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 79: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.Забывчивый противник (oblivious adversary) порождает всю

последовательность заранее.

Активный offline-противник (adaptive offline adversary) порождаетпоследовательность запросов, смотря на наши ответы.

Активный online-противник (adaptive online adversary) порождаетпоследовательность запросов, смотря на наши ответы, нообязан сразу выдавать ответы на свои запросы.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 80: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.Забывчивый противник (oblivious adversary) порождает всю

последовательность заранее.Активный offline-противник (adaptive offline adversary) порождает

последовательность запросов, смотря на наши ответы.

Активный online-противник (adaptive online adversary) порождаетпоследовательность запросов, смотря на наши ответы, нообязан сразу выдавать ответы на свои запросы.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 81: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.Забывчивый противник (oblivious adversary) порождает всю

последовательность заранее.Активный offline-противник (adaptive offline adversary) порождает

последовательность запросов, смотря на наши ответы.Активный online-противник (adaptive online adversary) порождает

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

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 82: 20080406 efficientalgorithms kulikov_lecture21

Модели противников

Модели противниковБудем считать, что все перечисленные ниже типы противников могутзнать наш алгоритм, но не знают случайных чисел, которыми мыпользуемся.Забывчивый противник (oblivious adversary) порождает всю

последовательность заранее.Активный offline-противник (adaptive offline adversary) порождает

последовательность запросов, смотря на наши ответы.Активный online-противник (adaptive online adversary) порождает

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

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 19 / 42

Page 83: 20080406 efficientalgorithms kulikov_lecture21

Забывчивый противник

Забывчивый противник

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 20 / 42

Page 84: 20080406 efficientalgorithms kulikov_lecture21

Забывчивый противник

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

Поскольку наш алгоритм вероятностный, мы будем оцениватьмат. ожидание количества сделанных им считываний с диска.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 20 / 42

Page 85: 20080406 efficientalgorithms kulikov_lecture21

Забывчивый противник

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 20 / 42

Page 86: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.Все время работы разделяется на периоды.В начале каждого периода все блоки кэша помечены 0.Если приходит запрос на блок, который есть в кэше, помечаемэтот блок 1.Если же запрошенного блока нет, случайным образом выберемблок из помеченных 0, считаем туда требуемый блок и пометимэтот блок 1.Если пришел запрос на блок, которого в кэше нет, и все блокипомечены 1, обнулим все пометки и начнем новый период.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 87: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 88: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.Все время работы разделяется на периоды.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 89: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

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

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 90: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.Все время работы разделяется на периоды.В начале каждого периода все блоки кэша помечены 0.Если приходит запрос на блок, который есть в кэше, помечаемэтот блок 1.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 91: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.Все время работы разделяется на периоды.В начале каждого периода все блоки кэша помечены 0.Если приходит запрос на блок, который есть в кэше, помечаемэтот блок 1.Если же запрошенного блока нет, случайным образом выберемблок из помеченных 0, считаем туда требуемый блок и пометимэтот блок 1.

Если пришел запрос на блок, которого в кэше нет, и все блокипомечены 1, обнулим все пометки и начнем новый период.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 92: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм Marker

АлгоритмMarker

Каждый блок кэша будем помечать 0 или 1.Все время работы разделяется на периоды.В начале каждого периода все блоки кэша помечены 0.Если приходит запрос на блок, который есть в кэше, помечаемэтот блок 1.Если же запрошенного блока нет, случайным образом выберемблок из помеченных 0, считаем туда требуемый блок и пометимэтот блок 1.Если пришел запрос на блок, которого в кэше нет, и все блокипомечены 1, обнулим все пометки и начнем новый период.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 21 / 42

Page 93: 20080406 efficientalgorithms kulikov_lecture21

Оценка оптимальности

ЛеммаАлгоритм Marker является 2Hk -оптимальным относительнозабывчивого противника.

Типы запросовПомеченный — запрос на блок, образ которого находится в кэше и

помечен 1.Устаревший — запрос на блок, образ которого находится в кэше и

помечен 0 (блок, оставшийся в кэше с предыдущегопериода), или на блок, которого в кэше нет, но которыйтам был на предыдущем периоде.

Чистый — запрос на блок, которого в кэше нет и не было напредыдущем периоде.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 22 / 42

Page 94: 20080406 efficientalgorithms kulikov_lecture21

Оценка оптимальности

ЛеммаАлгоритм Marker является 2Hk -оптимальным относительнозабывчивого противника.

Типы запросов

Помеченный — запрос на блок, образ которого находится в кэше ипомечен 1.

Устаревший — запрос на блок, образ которого находится в кэше ипомечен 0 (блок, оставшийся в кэше с предыдущегопериода), или на блок, которого в кэше нет, но которыйтам был на предыдущем периоде.

Чистый — запрос на блок, которого в кэше нет и не было напредыдущем периоде.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 22 / 42

Page 95: 20080406 efficientalgorithms kulikov_lecture21

Оценка оптимальности

ЛеммаАлгоритм Marker является 2Hk -оптимальным относительнозабывчивого противника.

Типы запросовПомеченный — запрос на блок, образ которого находится в кэше и

помечен 1.

Устаревший — запрос на блок, образ которого находится в кэше ипомечен 0 (блок, оставшийся в кэше с предыдущегопериода), или на блок, которого в кэше нет, но которыйтам был на предыдущем периоде.

Чистый — запрос на блок, которого в кэше нет и не было напредыдущем периоде.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 22 / 42

Page 96: 20080406 efficientalgorithms kulikov_lecture21

Оценка оптимальности

ЛеммаАлгоритм Marker является 2Hk -оптимальным относительнозабывчивого противника.

Типы запросовПомеченный — запрос на блок, образ которого находится в кэше и

помечен 1.Устаревший — запрос на блок, образ которого находится в кэше и

помечен 0 (блок, оставшийся в кэше с предыдущегопериода), или на блок, которого в кэше нет, но которыйтам был на предыдущем периоде.

Чистый — запрос на блок, которого в кэше нет и не было напредыдущем периоде.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 22 / 42

Page 97: 20080406 efficientalgorithms kulikov_lecture21

Оценка оптимальности

ЛеммаАлгоритм Marker является 2Hk -оптимальным относительнозабывчивого противника.

Типы запросовПомеченный — запрос на блок, образ которого находится в кэше и

помечен 1.Устаревший — запрос на блок, образ которого находится в кэше и

помечен 0 (блок, оставшийся в кэше с предыдущегопериода), или на блок, которого в кэше нет, но которыйтам был на предыдущем периоде.

Чистый — запрос на блок, которого в кэше нет и не было напредыдущем периоде.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 22 / 42

Page 98: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 99: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:

I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 100: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.

I SO,i , SM,i — множества блоков в кэшах противника и нашегоалгоритма, соответственно.

I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-гопериода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 101: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.

I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-гопериода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 102: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 103: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.

Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 104: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.

Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 105: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противникаОценка кол-ва считываний противника

Обозначения:I li — кол-во чистых запросов за i-й период.I SO,i , SM,i — множества блоков в кэшах противника и нашего

алгоритма, соответственно.I dI ,i , dF ,i — значения величины |SO,i ∖ SM,i | в начале и конце i-го

периода, соответственно.

Наш алгоритм обязан подгрузить li блоков.Значит, противник подгрузит хотя бы li − dI ,i блоков: он можетвыиграть у нас только за счет того, что у него в начале периодабудут блоки, на которые поступят запросы.Это кол-во также составляет не менее dF ,i : все блоки, лежащие кконцу периода в кэше нашего алгоритма, были запрошены;значит, они должны были побывать и в кэше противника; если жекого-то из них там не оказалось, значит, на его место былзагружен другой блок; кол-во таких загрузок не менее dF ,i .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 23 / 42

Page 106: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противника (продолжение)

Оценка кол-ва считываний противника

Итак, количества считываний противника за i-й периодсоставляет не менее

max{li − dI ,i , dF ,i} ≥li − dI ,i + dF ,i

2.

Просуммировав по всем перидоам, получим нижнюю оценку наобщее число загрузок, совершенных противником:∑︁

i

li − dI ,i + dF ,i

2=

∑︁i

li2

+dF ,n

2≥ L

2,

где L =∑︀

i li .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 24 / 42

Page 107: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противника (продолжение)

Оценка кол-ва считываний противникаИтак, количества считываний противника за i-й периодсоставляет не менее

max{li − dI ,i , dF ,i} ≥li − dI ,i + dF ,i

2.

Просуммировав по всем перидоам, получим нижнюю оценку наобщее число загрузок, совершенных противником:∑︁

i

li − dI ,i + dF ,i

2=

∑︁i

li2

+dF ,n

2≥ L

2,

где L =∑︀

i li .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 24 / 42

Page 108: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний противника (продолжение)

Оценка кол-ва считываний противникаИтак, количества считываний противника за i-й периодсоставляет не менее

max{li − dI ,i , dF ,i} ≥li − dI ,i + dF ,i

2.

Просуммировав по всем перидоам, получим нижнюю оценку наобщее число загрузок, совершенных противником:∑︁

i

li − dI ,i + dF ,i

2=

∑︁i

li2

+dF ,n

2≥ L

2,

где L =∑︀

i li .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 24 / 42

Page 109: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 110: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

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

На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 111: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

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

В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 112: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.

При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 113: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).

Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 114: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.

Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 115: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.

Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 116: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.

Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 117: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритмаОценка кол-ва считываний алгоритма

Алгоритм подгружает новый блок на каждый чистый запрос.На помеченные ничего подгружать не нужно.В i-м периоде ровно k − li устаревших запросов.При устаревшем запросе мы обращаемся к блоку, который напредыдущем периоде был в кэше, но есть ли он там сейчас, мысказать не можем (он мог быть выгружен).Посчитаем вероятность того, что j-й устаревший запроспроисходит на блок, которого нет в кэше.Вспомним, что для каждого устаревшего блока в начале периодабыл соответствующий блок.Пусть X — множество позиций кэша, в которых в начале периодабыли блоки из первых j − 1 устаревших запросов.Ясно, что перед j-м устаревшим запросом все эти позициипомечены 1.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 25 / 42

Page 118: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритма

Каждая позиция из X могла быть помечена 1 либо принахождении соответствующего устаревшего блока, либо призагрузке туда чистого блока.Тогда из множества X (в котором наш блок и лежит) не более lраз производилась случайная выборка.Посчитаем веротяность того, что наш блок при этом выживет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 26 / 42

Page 119: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаКаждая позиция из X могла быть помечена 1 либо принахождении соответствующего устаревшего блока, либо призагрузке туда чистого блока.

Тогда из множества X (в котором наш блок и лежит) не более lраз производилась случайная выборка.Посчитаем веротяность того, что наш блок при этом выживет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 26 / 42

Page 120: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаКаждая позиция из X могла быть помечена 1 либо принахождении соответствующего устаревшего блока, либо призагрузке туда чистого блока.Тогда из множества X (в котором наш блок и лежит) не более lраз производилась случайная выборка.

Посчитаем веротяность того, что наш блок при этом выживет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 26 / 42

Page 121: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаКаждая позиция из X могла быть помечена 1 либо принахождении соответствующего устаревшего блока, либо призагрузке туда чистого блока.Тогда из множества X (в котором наш блок и лежит) не более lраз производилась случайная выборка.Посчитаем веротяность того, что наш блок при этом выживет.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 26 / 42

Page 122: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритма

Пусть |X | = k − j + 1 = K .Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .Значит, с вероятностью не более l

K = lk−j+1 алгоритму придется

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

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 123: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаПусть |X | = k − j + 1 = K .

Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .Значит, с вероятностью не более l

K = lk−j+1 алгоритму придется

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

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 124: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаПусть |X | = k − j + 1 = K .Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.

Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .Значит, с вероятностью не более l

K = lk−j+1 алгоритму придется

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

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 125: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаПусть |X | = k − j + 1 = K .Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .

Значит, с вероятностью не более lK = l

k−j+1 алгоритму придетсясчитать блок при j-м устаревшем запросе.Тогда мат. ожидание количества считываний при устаревшихзапросах не превосходит

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 126: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаПусть |X | = k − j + 1 = K .Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .Значит, с вероятностью не более l

K = lk−j+1 алгоритму придется

считать блок при j-м устаревшем запросе.

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

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 127: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаПусть |X | = k − j + 1 = K .Тогда вероятность ему выжить на первом шаге не менееK/(K − 1), на втором — не менее (K − 1)/(K − 2) и т.д.Перемножив, получим, что вероятность выжить за все l выборокхотя бы (K − l)/K .Значит, с вероятностью не более l

K = lk−j+1 алгоритму придется

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

lik

+li

k − 1+ · · ·+ li

li + 1= li · (Hk − Hli ).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 27 / 42

Page 128: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритма

Таким образом, мат. ожидание общего числа загрузок за i-йпериод (включая li чистых загрузок) будет не более

li · (1 + Hk − Hli ) ≤ li · Hk .

Просуммировав по всем периодам, получим, что мат. ожиданиеобщего числа загрузок нашего алгоритма не более L · Hk .Вспомнив, что наш противник делает хотя бы L/2 загрузок,получаем требуемую оценку на оптимальность.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 28 / 42

Page 129: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаТаким образом, мат. ожидание общего числа загрузок за i-йпериод (включая li чистых загрузок) будет не более

li · (1 + Hk − Hli ) ≤ li · Hk .

Просуммировав по всем периодам, получим, что мат. ожиданиеобщего числа загрузок нашего алгоритма не более L · Hk .Вспомнив, что наш противник делает хотя бы L/2 загрузок,получаем требуемую оценку на оптимальность.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 28 / 42

Page 130: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаТаким образом, мат. ожидание общего числа загрузок за i-йпериод (включая li чистых загрузок) будет не более

li · (1 + Hk − Hli ) ≤ li · Hk .

Просуммировав по всем периодам, получим, что мат. ожиданиеобщего числа загрузок нашего алгоритма не более L · Hk .

Вспомнив, что наш противник делает хотя бы L/2 загрузок,получаем требуемую оценку на оптимальность.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 28 / 42

Page 131: 20080406 efficientalgorithms kulikov_lecture21

Оценка кол-ва считываний алгоритма (продолжение)

Оценка кол-ва считываний алгоритмаТаким образом, мат. ожидание общего числа загрузок за i-йпериод (включая li чистых загрузок) будет не более

li · (1 + Hk − Hli ) ≤ li · Hk .

Просуммировав по всем периодам, получим, что мат. ожиданиеобщего числа загрузок нашего алгоритма не более L · Hk .Вспомнив, что наш противник делает хотя бы L/2 загрузок,получаем требуемую оценку на оптимальность.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 28 / 42

Page 132: 20080406 efficientalgorithms kulikov_lecture21

План лекции

1 Введение

2 Задача кэширования

3 Задача о покрытии множествами

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 29 / 42

Page 133: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествами

Пусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 134: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .

Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 135: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .

Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 136: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 137: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;

I на каждый элемент алгоритм должен ответить множеством из 𝒮,покрывающим этот элемент;

I противник дает алгоритму не все X , а некоторое его подмножествоX ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;

I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 138: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;

I противник дает алгоритму не все X , а некоторое его подмножествоX ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;

I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 139: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;

I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 140: 20080406 efficientalgorithms kulikov_lecture21

Online-вариант задачи о покрытии множествами

Online-вариант задачи о покрытии множествамиПусть дано множество X = {1, 2, . . . , n} и множество егоподмножеств 𝒮, |𝒮| = m, каждому из которых присвоен вес 1.Считаем, что все подмножества в объединении покрывают X .Покрытием (cover) называется множество подмножеств 𝒮, вобъединении покрывющих X .Online-вариант задачи о покрытии множествами (online set coverproblem) определяется как следующая игра между алгоритмом иего противником:

I противник дает алгоритму элементы множества X по одному;I на каждый элемент алгоритм должен ответить множеством из 𝒮,

покрывающим этот элемент;I противник дает алгоритму не все X , а некоторое его подмножество

X ⊆ X ′; алгоритм знает заранее X и 𝒮, но не знает X ′;I цель алгоритма — минимизировать количество множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 30 / 42

Page 141: 20080406 efficientalgorithms kulikov_lecture21

Оценка качества алгоритма

Оценка качества алгоритма

Эффективность алгоритма будем оценивать относительноактивного offline-противника.То есть после того, как противник выдал алгоритму все элементыиз X ′, он сам выдает некоторое решение для X ′.Мы будем доказывать верхнуюю оценку на коэффициентоптимальности алгоритма, то есть показывать, что построенноеалгоритмом множество всегда несильно больше оптимального.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 31 / 42

Page 142: 20080406 efficientalgorithms kulikov_lecture21

Оценка качества алгоритма

Оценка качества алгоритмаЭффективность алгоритма будем оценивать относительноактивного offline-противника.

То есть после того, как противник выдал алгоритму все элементыиз X ′, он сам выдает некоторое решение для X ′.Мы будем доказывать верхнуюю оценку на коэффициентоптимальности алгоритма, то есть показывать, что построенноеалгоритмом множество всегда несильно больше оптимального.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 31 / 42

Page 143: 20080406 efficientalgorithms kulikov_lecture21

Оценка качества алгоритма

Оценка качества алгоритмаЭффективность алгоритма будем оценивать относительноактивного offline-противника.То есть после того, как противник выдал алгоритму все элементыиз X ′, он сам выдает некоторое решение для X ′.

Мы будем доказывать верхнуюю оценку на коэффициентоптимальности алгоритма, то есть показывать, что построенноеалгоритмом множество всегда несильно больше оптимального.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 31 / 42

Page 144: 20080406 efficientalgorithms kulikov_lecture21

Оценка качества алгоритма

Оценка качества алгоритмаЭффективность алгоритма будем оценивать относительноактивного offline-противника.То есть после того, как противник выдал алгоритму все элементыиз X ′, он сам выдает некоторое решение для X ′.Мы будем доказывать верхнуюю оценку на коэффициентоптимальности алгоритма, то есть показывать, что построенноеалгоритмом множество всегда несильно больше оптимального.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 31 / 42

Page 145: 20080406 efficientalgorithms kulikov_lecture21

Пример применения задачи

Пример применения задачи

Рассмотрим сеть серверов.Есть потенциальное множество клиентов, и каждый серверспособен предоставить некоторый сервис какому-то подмножествуклиентов.Запуску каждого сервера присвоена некоторая цена.Клиенты присылают запросы последовательно, и отвечать на нихнужно сразу.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 32 / 42

Page 146: 20080406 efficientalgorithms kulikov_lecture21

Пример применения задачи

Пример применения задачиРассмотрим сеть серверов.

Есть потенциальное множество клиентов, и каждый серверспособен предоставить некоторый сервис какому-то подмножествуклиентов.Запуску каждого сервера присвоена некоторая цена.Клиенты присылают запросы последовательно, и отвечать на нихнужно сразу.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 32 / 42

Page 147: 20080406 efficientalgorithms kulikov_lecture21

Пример применения задачи

Пример применения задачиРассмотрим сеть серверов.Есть потенциальное множество клиентов, и каждый серверспособен предоставить некоторый сервис какому-то подмножествуклиентов.

Запуску каждого сервера присвоена некоторая цена.Клиенты присылают запросы последовательно, и отвечать на нихнужно сразу.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 32 / 42

Page 148: 20080406 efficientalgorithms kulikov_lecture21

Пример применения задачи

Пример применения задачиРассмотрим сеть серверов.Есть потенциальное множество клиентов, и каждый серверспособен предоставить некоторый сервис какому-то подмножествуклиентов.Запуску каждого сервера присвоена некоторая цена.

Клиенты присылают запросы последовательно, и отвечать на нихнужно сразу.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 32 / 42

Page 149: 20080406 efficientalgorithms kulikov_lecture21

Пример применения задачи

Пример применения задачиРассмотрим сеть серверов.Есть потенциальное множество клиентов, и каждый серверспособен предоставить некоторый сервис какому-то подмножествуклиентов.Запуску каждого сервера присвоена некоторая цена.Клиенты присылают запросы последовательно, и отвечать на нихнужно сразу.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 32 / 42

Page 150: 20080406 efficientalgorithms kulikov_lecture21

Основные идеи алгоритма

Основные идеи алгоритма

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 33 / 42

Page 151: 20080406 efficientalgorithms kulikov_lecture21

Основные идеи алгоритма

Основные идеи алгоритмаКаждому множеству присвоим некоторый вес.

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

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 33 / 42

Page 152: 20080406 efficientalgorithms kulikov_lecture21

Основные идеи алгоритма

Основные идеи алгоритмаКаждому множеству присвоим некоторый вес.При приходе очередного элемента веса всех множеств,содержащих данный элемент, некоторым образомпересчитываются.

Каждое из этих множеств будет выбрано алгоритмом на этомшаге с вероятностью, примерно пропорциональной увеличениюего веса.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 33 / 42

Page 153: 20080406 efficientalgorithms kulikov_lecture21

Основные идеи алгоритма

Основные идеи алгоритмаКаждому множеству присвоим некоторый вес.При приходе очередного элемента веса всех множеств,содержащих данный элемент, некоторым образомпересчитываются.Каждое из этих множеств будет выбрано алгоритмом на этомшаге с вероятностью, примерно пропорциональной увеличениюего веса.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 33 / 42

Page 154: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формально

Для каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.Потенциал:

Φ =∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 155: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.

В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.Потенциал:

Φ =∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 156: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.

Изначально wS = 12m для каждого S ∈ 𝒮.

Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.Потенциал:

Φ =∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 157: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.

Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.Потенциал:

Φ =∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 158: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.

Вес элемента: wj =∑︀

S∈𝒮jwS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.

Потенциал:Φ =

∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 159: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.

Потенциал:Φ =

∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 160: 20080406 efficientalgorithms kulikov_lecture21

Более формально

Более формальноДля каждого множества будем поддерживать вес wS > 0.В течение работы алгоритма веса могут только увеличиваться.Изначально wS = 1

2m для каждого S ∈ 𝒮.Через 𝒞 будем обозначать текущее покрытие, а через C —текущее множество покрытых элементов.Вес элемента: wj =

∑︀S∈𝒮j

wS , где 𝒮j = {S ∈ 𝒮 : j ∈ S}.Потенциал:

Φ =∑︁j ̸∈C

n2wj .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 34 / 42

Page 161: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.В противном случае пересчитываем веса:

I Пусть k — минимальное натуральное число, для которого 2kwj > 1(ясно, что 2kwj < 2).

I Для каждого S ∈ 𝒮j wS = 2kwS .I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значение

потенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 162: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.

В противном случае пересчитываем веса:I Пусть k — минимальное натуральное число, для которого 2kwj > 1

(ясно, что 2kwj < 2).I Для каждого S ∈ 𝒮j wS = 2kwS .I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значение

потенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 163: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.В противном случае пересчитываем веса:

I Пусть k — минимальное натуральное число, для которого 2kwj > 1(ясно, что 2kwj < 2).

I Для каждого S ∈ 𝒮j wS = 2kwS .I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значение

потенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 164: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.В противном случае пересчитываем веса:

I Пусть k — минимальное натуральное число, для которого 2kwj > 1(ясно, что 2kwj < 2).

I Для каждого S ∈ 𝒮j wS = 2kwS .I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значение

потенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 165: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.В противном случае пересчитываем веса:

I Пусть k — минимальное натуральное число, для которого 2kwj > 1(ясно, что 2kwj < 2).

I Для каждого S ∈ 𝒮j wS = 2kwS .

I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значениепотенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 166: 20080406 efficientalgorithms kulikov_lecture21

Алгоритм

АлгоритмOnline-Set-Cover(j)

Если wj ≥ 1, выйти.В противном случае пересчитываем веса:

I Пусть k — минимальное натуральное число, для которого 2kwj > 1(ясно, что 2kwj < 2).

I Для каждого S ∈ 𝒮j wS = 2kwS .I Выбрать из 𝒮j не более 4 log n множеств в 𝒞, так чтобы значение

потенциала не превосходило значения потенциала до пересчетавесов.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 35 / 42

Page 167: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

ДоказательствоДля любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .Пересчет весов происходит только в случае, если wj < 1.При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.Проскольку изначально вес каждого множества равен 1

2m , а вконце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 168: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

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

Для любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .Пересчет весов происходит только в случае, если wj < 1.При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.Проскольку изначально вес каждого множества равен 1

2m , а вконце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 169: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

ДоказательствоДля любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .

Пересчет весов происходит только в случае, если wj < 1.При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.Проскольку изначально вес каждого множества равен 1

2m , а вконце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 170: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

ДоказательствоДля любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .Пересчет весов происходит только в случае, если wj < 1.

При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.Проскольку изначально вес каждого множества равен 1

2m , а вконце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 171: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

ДоказательствоДля любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .Пересчет весов происходит только в случае, если wj < 1.При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.

Проскольку изначально вес каждого множества равен 12m , а в

конце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 172: 20080406 efficientalgorithms kulikov_lecture21

Анализ количества итераций

ЛеммаКоличество итераций, на которых происходит пересчет весов, непревосходит |𝒞opt| · (log m + 2).

ДоказательствоДля любого множества S на каждой итерации wS ≤ 2, посколькуwj ≤ 2 для всех элементов j .Пересчет весов происходит только в случае, если wj < 1.При пересчете весов вес хотя бы одного из множеств покрытия𝒞opt умножается на число, не меньшее 2.Проскольку изначально вес каждого множества равен 1

2m , а вконце — не более 2, то каждое множество может участвовать неболее чем в log(4m) увеличениях.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 36 / 42

Page 173: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

ДоказательствоДля каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.Пусть 𝛿j =

∑︀S∈𝒮j

𝛿S .Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 174: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

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

Для каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.Пусть 𝛿j =

∑︀S∈𝒮j

𝛿S .Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 175: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

ДоказательствоДля каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.

Пусть 𝛿j =∑︀

S∈𝒮j𝛿S .

Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 176: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

ДоказательствоДля каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.Пусть 𝛿j =

∑︀S∈𝒮j

𝛿S .

Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 177: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

ДоказательствоДля каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.Пусть 𝛿j =

∑︀S∈𝒮j

𝛿S .Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 178: 20080406 efficientalgorithms kulikov_lecture21

Оценка потенциала

ЛеммаВсегда найдутся такие 4 log n множеств при пересчете весов, привыборе которых потенциал не увеличится.

ДоказательствоДля каждого S ∈ 𝒮j через wS и wS + 𝛿S будем обозначать вес Sдо и после пересчета.Пусть 𝛿j =

∑︀S∈𝒮j

𝛿S .Алгоритм поддерживает неравенствоwj + 𝛿j =

∑︀S∈𝒮j

(wS + 𝛿S) ≤ 2.

Покажем теперь, что всегда найдутся нужные 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 37 / 42

Page 179: 20080406 efficientalgorithms kulikov_lecture21

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

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

Рассмотрим такую процедуру:I Повторить 4 log n раз: выбрать случайно не более одного

множества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 180: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 181: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 182: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.

Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 183: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).

Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 184: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .

При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 185: 20080406 efficientalgorithms kulikov_lecture21

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

ДоказательствоРассмотрим такую процедуру:

I Повторить 4 log n раз: выбрать случайно не более одногомножества из 𝒮j , так что каждое множество S ∈ 𝒮j выбирается свероятностью 𝛿S/2.

Такая процедура корректна, поскольку 𝛿j/2 ≤ 1.Рассмотрим элемент j ′ ∈ X , такой что j ′ ̸∈ C (то есть еще непокрыт).Его вклад в потенциал до пересчета весов равен n2wj′ .При каждом случайном выборе множества вероятность того, чтовыбранное множество не содержит j ′ равна 1− 𝛿j′

2 .

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 38 / 42

Page 186: 20080406 efficientalgorithms kulikov_lecture21

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

Вероятность же того, что ни одно из случайно выбранныхмножеств его не содержит равна(︂

1−𝛿j ′

2

)︂4 log n

≤ n−2𝛿j′ .

Таким образом, мат. ожидание вклада элемента j ′ в потенциалпосле пересчета весов равно

n−2𝛿j′ n2(wj′+𝛿j′ ) = n2wj′ .

Значит, мат. ожидание значения потенциала не превосходитзначения потенциала изначально.А тогда найдутся и соответствующие 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 39 / 42

Page 187: 20080406 efficientalgorithms kulikov_lecture21

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

Вероятность же того, что ни одно из случайно выбранныхмножеств его не содержит равна(︂

1−𝛿j ′

2

)︂4 log n

≤ n−2𝛿j′ .

Таким образом, мат. ожидание вклада элемента j ′ в потенциалпосле пересчета весов равно

n−2𝛿j′ n2(wj′+𝛿j′ ) = n2wj′ .

Значит, мат. ожидание значения потенциала не превосходитзначения потенциала изначально.А тогда найдутся и соответствующие 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 39 / 42

Page 188: 20080406 efficientalgorithms kulikov_lecture21

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

Вероятность же того, что ни одно из случайно выбранныхмножеств его не содержит равна(︂

1−𝛿j ′

2

)︂4 log n

≤ n−2𝛿j′ .

Таким образом, мат. ожидание вклада элемента j ′ в потенциалпосле пересчета весов равно

n−2𝛿j′ n2(wj′+𝛿j′ ) = n2wj′ .

Значит, мат. ожидание значения потенциала не превосходитзначения потенциала изначально.А тогда найдутся и соответствующие 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 39 / 42

Page 189: 20080406 efficientalgorithms kulikov_lecture21

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

Вероятность же того, что ни одно из случайно выбранныхмножеств его не содержит равна(︂

1−𝛿j ′

2

)︂4 log n

≤ n−2𝛿j′ .

Таким образом, мат. ожидание вклада элемента j ′ в потенциалпосле пересчета весов равно

n−2𝛿j′ n2(wj′+𝛿j′ ) = n2wj′ .

Значит, мат. ожидание значения потенциала не превосходитзначения потенциала изначально.

А тогда найдутся и соответствующие 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 39 / 42

Page 190: 20080406 efficientalgorithms kulikov_lecture21

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

Вероятность же того, что ни одно из случайно выбранныхмножеств его не содержит равна(︂

1−𝛿j ′

2

)︂4 log n

≤ n−2𝛿j′ .

Таким образом, мат. ожидание вклада элемента j ′ в потенциалпосле пересчета весов равно

n−2𝛿j′ n2(wj′+𝛿j′ ) = n2wj′ .

Значит, мат. ожидание значения потенциала не превосходитзначения потенциала изначально.А тогда найдутся и соответствующие 4 log n множеств.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 39 / 42

Page 191: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

ДоказательствоИзначально значение потенциала не превосходит n2.Потенциал также не увеличивается.Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 192: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

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

Изначально значение потенциала не превосходит n2.Потенциал также не увеличивается.Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 193: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

ДоказательствоИзначально значение потенциала не превосходит n2.

Потенциал также не увеличивается.Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 194: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

ДоказательствоИзначально значение потенциала не превосходит n2.Потенциал также не увеличивается.

Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 195: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

ДоказательствоИзначально значение потенциала не превосходит n2.Потенциал также не увеличивается.Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.

На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 196: 20080406 efficientalgorithms kulikov_lecture21

Доказательство корректности

ТеоремаАлгоритм Online-Set-Cover корректно выдает покрытие X ′

размера O(|𝒞opt log m log n|).

ДоказательствоИзначально значение потенциала не превосходит n2.Потенциал также не увеличивается.Значит, если wj ≥ 1, то n2wj ≥ 1 и j ∈ C , то есть алгоритм выдаетпокрытие.На каждой итерации выбирается не более 4 log n множеств, всегоже итераций не более |𝒞opt(log m + 2).

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 40 / 42

Page 197: 20080406 efficientalgorithms kulikov_lecture21

Что мы узнали за сегодня?

Что мы узнали за сегодня?

Online-алгоритм — алгоритм, обрабатывающий вход по мерепоступления.Эффективность online-алгоритма оценивается относительноалгоритма, заранее знающего последовательность запросов.2Hk -оптимальный относительно забывчивого противникаалгоритм для задачи кэширования.O(log m log n)-оптимальный относительно активногоoffline-противника алгоритм для задачи о покрытии множествами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 41 / 42

Page 198: 20080406 efficientalgorithms kulikov_lecture21

Что мы узнали за сегодня?

Что мы узнали за сегодня?Online-алгоритм — алгоритм, обрабатывающий вход по мерепоступления.

Эффективность online-алгоритма оценивается относительноалгоритма, заранее знающего последовательность запросов.2Hk -оптимальный относительно забывчивого противникаалгоритм для задачи кэширования.O(log m log n)-оптимальный относительно активногоoffline-противника алгоритм для задачи о покрытии множествами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 41 / 42

Page 199: 20080406 efficientalgorithms kulikov_lecture21

Что мы узнали за сегодня?

Что мы узнали за сегодня?Online-алгоритм — алгоритм, обрабатывающий вход по мерепоступления.Эффективность online-алгоритма оценивается относительноалгоритма, заранее знающего последовательность запросов.

2Hk -оптимальный относительно забывчивого противникаалгоритм для задачи кэширования.O(log m log n)-оптимальный относительно активногоoffline-противника алгоритм для задачи о покрытии множествами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 41 / 42

Page 200: 20080406 efficientalgorithms kulikov_lecture21

Что мы узнали за сегодня?

Что мы узнали за сегодня?Online-алгоритм — алгоритм, обрабатывающий вход по мерепоступления.Эффективность online-алгоритма оценивается относительноалгоритма, заранее знающего последовательность запросов.2Hk -оптимальный относительно забывчивого противникаалгоритм для задачи кэширования.

O(log m log n)-оптимальный относительно активногоoffline-противника алгоритм для задачи о покрытии множествами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 41 / 42

Page 201: 20080406 efficientalgorithms kulikov_lecture21

Что мы узнали за сегодня?

Что мы узнали за сегодня?Online-алгоритм — алгоритм, обрабатывающий вход по мерепоступления.Эффективность online-алгоритма оценивается относительноалгоритма, заранее знающего последовательность запросов.2Hk -оптимальный относительно забывчивого противникаалгоритм для задачи кэширования.O(log m log n)-оптимальный относительно активногоoffline-противника алгоритм для задачи о покрытии множествами.

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 41 / 42

Page 202: 20080406 efficientalgorithms kulikov_lecture21

Спасибо за внимание!

А. Куликов (CS клуб при ПОМИ) 21. Online алгоритмы 42 / 42