Помощь в учёбе, очень быстро...
Работаем вместе до победы

Фоновый алгоритм решения двумерной задачи о доминировании

РефератПомощь в написанииУзнать стоимостьмоей работы

Поскольку на каждом слое точки упорядочены по первой координате, то для поиска такой записи у = (уьуг) в слое, что у — ближайшее слева к х можно использовать мгновенное решение задачи о близости, которое обеспечит в среднем время не больше 2 при линейных затратах памяти. Далее пока в слое имеются точки, удовлетворяющие запросу, ответ на запрос пополняется с каждым тактом. На следующем слое… Читать ещё >

Фоновый алгоритм решения двумерной задачи о доминировании (реферат, курсовая, диплом, контрольная)

В качестве примера использования введенной выше модели приведем исследование быстрого фонового алгоритма двумерной задачи о доминировании, т. е. ЗИП типа 5^от> в случае, когда п = 2. Полученный для этой задачи алгоритм для большинства библиотек будет давать среднюю временную сложность, отличающуюся от среднего времени перечисления ответа на константу, и требовать линейных затрат по памяти. Отметим, что обычный, не фоновый, алгоритм с аналогичной временной сложностью требует квадратичных затрат по памяти.

Пусть т — некоторое натуральное число и.

Фоновый алгоритм решения двумерной задачи о доминировании.

Отметим, что если — переключатель, определяемый соотношением (3.15), то Пусть.

Фоновый алгоритм решения двумерной задачи о доминировании.

— базовое множество, где Gi, G2, i7! определяются соотношениями (3.15)—(3.17) при п = 2.

Пусть на Xdom задано вероятностное пространство (Xdom-> <�т, Р) и вероятностная мера Р определяется функцией плотности вероятности р (х, у) такой, что р (х, у) ^ с.

В данном разделе предлагается некий алгоритм Л построения информационных графов, который по заданной двумерной задаче о доминировании / = (Xdom, Vi Pdom) строит информационный граф .4.(7), разрешающий задачу 7. Опишем этот алгоритм.

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

Для этого разобьем библиотеку V на слои V,…, V/ следующим образом: Фоновый алгоритм решения двумерной задачи о доминировании.

Здесь число / — это первый момент, когда Vi U • • • U V = V Неформально множества Vможно описать так. Слой Vi есть множество минимальных точек множества V. Слой V2 есть множество минимальных точек множества V Vi, и т. д. Понятно, что все точки в одном слое несравнимы.

Очевидно, к -f * • • + ki = к и VJ П Vj = 0, если i ф j.

Будем считать, что точки в каждом слое V* (i = 1,1) упорядочены в порядке возрастания первой координаты, т. е.

Фоновый алгоритм решения двумерной задачи о доминировании.

а это, как нетрудно видеть, означает, что.

Фоновый алгоритм решения двумерной задачи о доминировании.

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

Очевидно, р (х) ^ с.

Также легко заметить, что Р (А™ х [0,1]) ^ ^ для любого т из N и любого г 6 {1,т}.

Тем самым, мы находимся в условиях теоремы 19 и можем получить мгновенное решение задачи о близости.

Построим теперь граф U = А (1), разрешающий двумерную задачу о доминировании I.

Возьмем вершину /Зо и объявим ее корнем графа U. Выпустим из Ро граф U аналогичный графу U^ из раздела 2.3 и разрешающий вторую задачу о близости по первой координате для Vi, используя переключатели из множеств G и G2, причем в качестве параметра т возьмем Hi = ]c|Vi|[ = ]cA:i[.

Пусть — листья графа U1. Им приписаны записи у}1" • • • Объявим эти вершины обычными внутренними вершинами графа U и уберем приписанные им записи. Выпустим из них по одному ребру и припишем этим ребрам предикаты где * =.

= а концы этих ребер объявим листьями графа U. Назовем их.

an,…, aiki и припишем им записи у11,…, у1*1.

Теперь из каждого листа аи (г = 2, к) выпустим ребро, ведущее в лист и припишем ему номер 1.

Возьмем новую точку $, из каждого листа (г = 2, к), проведем в нее ребро и припишем ему номер 2.

Объявим листья ан (t = 2, к) точками переключения и припишем им переключатели д2 > ум-1. А из листа ап проведем ребро в вершину и припишем ему предикат f

Этот построенный граф между вершинами и 0 обозначим U1.

Теперь из вершины 0 выпустим граф (72, аналогичный уже построенному графу U но для множества и проведем для него все предыдущие построения. Эту процедуру мы проведем / — 1 раз и получим / - 1 последовательно соединенный граф О1 (г = 1, / — 1).

На 1-м шаге берем точку ft_i и выпускаем из нее граф U1 как и на предыдущих шагах. Пусть ,…, а®Л| — листья графа U. Им приписаны записи у}1,…, yj*'. Объявим эти вершины обычными внутренними вершинами графа U и уберем приписанные им записи. Выпустим из этих вершин по одному ребру и припишем этим ребрам предикаты /2,^,у" (* = 1, а концы этих ребер объявим листьями графа U. Назовем их ап,…, а/*, и припишем им записи г/1,… , ylkl.

Теперь из каждого листа ац (г = 2, &/) выпустим ребро, ведущее в лист a^i-i, и припишем ему предикат /2 > (г = 2, &/).

Этот последний граф с корнем в вершине 0i- обозначим U1.

Таким образом, мы получили граф А{1) с к листьями над базовым множеством Т.

Дадим неформальное описание алгоритма, приведенного выше.

Пусть нам дано множество V = …, уп}, в котором мы должны производить поиск. Сначала разобьем его на слои, в которых можно задать отношение линейного порядка и слои упорядочим по возрастанию в том смысле, что если для некоторого запроса х € Xdom существует у € Vji х pdom У и j > 1, то для любого г € {l9j — 1} существует у' 6 Vii х pdom У'• Теперь поиск по произвольно взятому запросу х = производится следующим образом.

По очереди для каждого слоя Vj будем находить такую запись у = = (уьУг), что уi — ближайшее слева к х. Затем проверим условие У2 ^ хг и в случае успеха выдадим у в ответ. Тогда, просматривая справа налево, начиная с у, записи ys из данного слоя, будем проверять условие у| ^ Х2 и выдавать запись в ответ. После первого невыполнения этого условия переходим к следующему слою.

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

Оценим сложность этого алгоритма.

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

Фоновый алгоритм решения двумерной задачи о доминировании.

Теорема 41. Пусть I = (XdomjV, Pdom) — двумерная задача о доминировании, где V = А; и все точки в множестве V различны, Т — базовое множество, определяемое соотношениями (3.15)—(3.17), (3.23)-(3.26). Пусть на Xdom задано вероятностное пространство (Xdomi&)P), ^ вероятностная мера Р определяется функцией плотности вероятности р (х, у) такой, что р (х, у) ^ с. Тогда, если время обработки пользователем любой записи из ответа не меньше чем т ^ 3, то

Доказательство. Покажем, что граф U = А (1), описанный выше, разрешает двумерную задачу о доминировании. Для этого докажем, что для любой записи уг G V

Фоновый алгоритм решения двумерной задачи о доминировании.

где лист, которому приписана запись у

Граф С/-7 построен таким образом, что если у* € Vj, то для любого.

Фоновый алгоритм решения двумерной задачи о доминировании.

справедливо у} ^ Х. Так как в каждый лист ведет либо предикатное ребро с приписанным предикатом либо переключательное ребро с тем же условием, то.

Фоновый алгоритм решения двумерной задачи о доминировании.

Осталось показать, что для любой записи у1 Е V Фоновый алгоритм решения двумерной задачи о доминировании.

то есть, для любого запроса х = (Х, Х2) G 0(уPdom) справедливо ?>аДя) = 1, или, иными словами, для любого запроса х, такого, что хPdom J/ существует проводящая на запросе х цепь из корня в лист а".

Доказательство проведем индукцией по числу задействованных слоев.

Базис индукции. Пусть уг G V, т. е. существует такой номер s, что у' = уь.

Пусть у3 — ответ графа U решающего вторую ЗоБ, на запросе х. Следовательно, существует проводящая ориентированная цепь, ведущая из корня в вершину и у>ао (х) = 1.

Так как Х2 ^ у23 ^ У23 > то ^ (х) = 1 и для любого ?: s < j' <

< j справедливо Х > у3 и х2 ^ уа ^ у'3 -1 ^ у3 Откуда следует, что значение переключателя д ' ij'-i, приписанного вершине на запросе х равно 1. Следовательно, проводимость цепи, ведущей от.

< до Qj, равна 1 и y?ai(x) = 1;

Шаг индукции. Пусть теперь у'Vj, где j > 1, т. е. существует такой номер s, что у1 = Покажем, что.

Фоновый алгоритм решения двумерной задачи о доминировании.

В (J — 1)-м слое существует такая запись 1,5, что y*s pdom У3 1,3 иначе у1 принадлежала бы слою Vj-.

По предположению индукции существует ориентированная цепь, ведущая в ij3, проводимость которой на запросе х равна 1. Покажем, что faj_х 9t>ctje(z) = 1. Здесь и далее fap — функция проводимости из вершины, а в вершину /3.

Так как все вершины I' = 2, fcj, переключательные и из них ребра ведут либо в либо в fij-u а из вершины ведет ребро в /%-!, то = 1.

Pj-1 — корень графа U решающего вторую ЗоБ, и у{к — ответ этого графа на запросе х. Тогда существует ориентированная цепь, ведущая в вершину а®*/, проводимость которой равна 1.

Так как х2 ^ у32 ^ yif и для любого n! s < п' < к' справедливо xi > у{п и х2 ^ у32а ^ у32'п _1 ^ у2п, то g jfi/_i (x) = 1. Следовательно, проводимость цепи, ведущей от оР-к, до acjs, равна 1 и.

Фоновый алгоритм решения двумерной задачи о доминировании.

Учитывая произвольность у мы получим, что граф U решает задачу I = (Xdom, V, pdom)•.

Оценим сложность графа U = Л (/). Для этого введем вспомогательную функцию /(/), которая определена на No = N U {0}.

Фоновый алгоритм решения двумерной задачи о доминировании.

где R = т — 3, и оценим сложности каждого из графов U' (i = 1,/).

Согласно теореме 19 из раздела 2.3, T (Ul) ^ 2. Поскольку для любого запроса в графе U1 делается по сравнению с графом U1 не более чем одно лишнее вычисление (сравнение по второй координате), то Тф (иг) ^ 3.

Рассмотрим произвольный граф U1 (г = 2,/).

Обозначим Фоновый алгоритм решения двумерной задачи о доминировании.

где ТП{ = ]cfcj[, А™* определяется соотношением (3.22). Понятно, что.

rrij.

Е hi = ki-

J=1.

Рассмотрим произвольный запрос х. Ясно, что если х? Х то Тф (Цх) = 0. Пусть х € для некоторого j € {1,т*}. Тогда проводимость корня графа U* равна 1 на запросе х. Пусть и — запас времени, имеющийся при приходе запроса х в корень графа U в течении которого пользователь будет обрабатывать записи, полученные на предыдущих шагах. Понятно, что и ^ т — 1, так как мы попадаем в корень графа U* из некоторого листа после вычисления одного переключателя или предиката. Далее после попадания запроса х в корень графа IIх до момента попадания в некоторый лист пройдет 2 + log2{lij + 1) тактов времени, после чего мы либо определяем, что записей в ответе больше нет, либо включаем новую запись в ответ. Таким образом, если 2 + log2(hj + 1) < tx, то Тф (Цх) = 0, а иначе T^(Ux) = 2 + log2(/jj + 1) — и. Следовательно,.

Фоновый алгоритм решения двумерной задачи о доминировании.

откуда.

Фоновый алгоритм решения двумерной задачи о доминировании.

тп, Оценим теперь сверху? /(*"?)• Обозначим.

;=i.

Фоновый алгоритм решения двумерной задачи о доминировании.

Покажем, что при t • 2 я ^ к < (? + 1)-2я справедливо: Фоновый алгоритм решения двумерной задачи о доминировании. Доказательство проведем индукцией по t.

Базис индукции. Если t = 0, то к < 2я и утверждение выполнено. Шаг индукции. Пусть утверждение справедливо при всех I ^ t. Проверим его для / = t + 1.

т

Пусть k = li, причем будем считать, что числа U упорядочены «=1.

по возрастанию, т. е. /1 ^ h ^ ^ /т;

Если li < 2я, то для любого i = l, m имеем U < 2я и г (к, т) = 0. Если s • 2я ^ li < (s -f 1)2Я, где s ^ 1 — целое, то.

Фоновый алгоритм решения двумерной задачи о доминировании.

Тогда Следовательно, Фоновый алгоритм решения двумерной задачи о доминировании.

Утверждение индукции доказано.

Так как, если к ^ t ? 2я, то t <, следовательно, Значит,.

Фоновый алгоритм решения двумерной задачи о доминировании.

причем, если к{ < 2я, то Тф (С/*) = 0. Таким образом,.

Фоновый алгоритм решения двумерной задачи о доминировании.

где I' — число слоев, не считая первого, у которых ki ^ 2я Отсюда, поскольку I' ^ (к — 1)/2я, получаем.

Фоновый алгоритм решения двумерной задачи о доминировании.

Осталось подсчитать объем графа U.

Поскольку, как было показано в теореме 19 из раздела 2.3, объем каждого из графов U* (j = 1,1)

Фоновый алгоритм решения двумерной задачи о доминировании.

где rij — количество листьев графа С/-7, то.

Фоновый алгоритм решения двумерной задачи о доминировании.

Поскольку помимо ребер графов U3 (j = 1,/) с каждым листом связано не более трех ребер, то Фоновый алгоритм решения двумерной задачи о доминировании.

Тем самым, теорема 41 доказана.

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

Теорема 42. Пусть вероятностная мера Р на Х^от определяется функцией плотности вероятности р (х, у) такой, что р (х, у) ^ с. Пусть время обработки пользователем любой записи из ответа не больше чем t и т = max (i, 3). Тогда существует такая двумерная задача о доминировании I = (Х^от, V, pdom), что для графа Л (1), построенного по алгоритму, А для ЗИП I, справедливо

где 01 = З3’ k = lVl;

где 01 = З3' k = lVl;

Доказательство. Пусть.

Фоновый алгоритм решения двумерной задачи о доминировании.

Выберем такое X™ = А™ х [0,1] (j? {1,ш}), что Р (Х™) ^ 1/т. Понятно, что такое X™ существует.

/41.

Рассмотрим библиотеку V — [J Vi, где V* — различные слои,.

«=1.

причем |Vi| = 1, |Vi| = г при i 6 {2,1 + 1} и, если I <1 то |V//+i| = к — — 1 — l • г, кроме того, если обозначить.

Фоновый алгоритм решения двумерной задачи о доминировании.

то выполнены следующие условия:

Фоновый алгоритм решения двумерной задачи о доминировании.
Фоновый алгоритм решения двумерной задачи о доминировании.

и если I < то Фоновый алгоритм решения двумерной задачи о доминировании.

где е и 6 малые величины, которые мы уточним в дальнейшем.

Понятно, что библиотеку, удовлетворяющую этим условиям, можно подобрать.

Обозначим.

Фоновый алгоритм решения двумерной задачи о доминировании.

Нетрудно заметить, что Фоновый алгоритм решения двумерной задачи о доминировании.

и что для любого i € 1,/' + 1 выполняется X* Э X'.

Отсюда, если взять е < ^ и 6 < то.

Фоновый алгоритм решения двумерной задачи о доминировании.

где d > 1/3 — константа.

Возьмем произвольный запрос х G X'.

Легко видеть, что JU (/)(X) =1*: * = 1,/ + 1}. Отсюда сразу следует, что для любого г € {2, / -4−1} запас времени, имеющийся при приходе запроса х в корень графа U в течении которого пользователь будет обрабатывать записи, полученные на предыдущих шагах, будет равен и ^ т — 1, и, следовательно, Тф (их) ^ 1.

Отсюда следует, что.

Фоновый алгоритм решения двумерной задачи о доминировании.

где ci — некоторая константа.

Тем самым теорема 42 доказана.

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

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

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

Итак, справедлива следующая лемма.

Лемма 46. Пусть библиотека V* получается как выборка к независимых одинаково равномерно распределенных па квадрате [0,1] х х [0,1] случайных величин. Пусть S? — есть математическое ожидание числа записей в первом слое библиотеки Vk. Тогда

и при к —> оо Фоновый алгоритм решения двумерной задачи о доминировании.

Доказательство. Найдем среднее количество точек в первом слое. Отметим, что разбиение библиотеки на слои не зависит от положения записей на квадрате, а зависит только от их взаимного расположения, причем, можно предположить, что все точки из библиотеки имеют различные абсциссы и ординаты, т. е.у[фу{ при i ф j и у ф у при х ф j. Так как, если две точки имеют одинаковую координату, то они принадлежат разным слоям, то мы можем, не нарушая взаимного расположения точек из библиотеки, немного сместить одну из этих двух точек и добиться того, что обе координаты будут разными.

Рассмотрим некую библиотеку.

Фоновый алгоритм решения двумерной задачи о доминировании.

Будем считать, что все точки библиотеки занумерованы в порядке возрастания ординат, т. е. у < у < • • • < у2 •.

Найдем рекуррентное соотношение для величины S.

Запись (2/1,У2) попадет в первый слой, если для любого номера j G {l, fc — 1} справедливо у > у*, т. е. эта точка имеет наименьшую абсциссу. Это может произойти с вероятностью и если эту точку отбросить, то останется библиотека мощности (& —1) и для нее среднее количество точек в первом слое есть величина Sjc_1. Если же найдется j такое, что у{ < yf, то эта запись не попадет в первый слой, а это произойдет с вероятностью *, и достаточно рассмотреть величину 5?_г Таким образом, получим соотношение Тогда Фоновый алгоритм решения двумерной задачи о доминировании.

Остается заметить, что при к —> оо,.

Фоновый алгоритм решения двумерной задачи о доминировании.

Тем самым, лемма доказана.

Эта лемма косвенно еще раз подтверждает «хорошесть» описанного фонового алгоритма решения двумерной задачи о доминировании. В самом деле, тот факт, что в первом слое в среднем In к точек, с учетом того что первый слой самый нижний, приводит к тому, что для большинства запросов в первом слое будет содержаться порядка In к точек, удовлетворяющих запросу, и, следовательно, чтобы исчерпать запас времени, образующийся на первом слое, мы должны в следующем слое иметь порядка к точек или в последующих порядка In к слоях этот запас неуклонно исчерпывать за счет специфики расположения точек (например, как в теореме 42). Понятно, что ни та, ни другая ситуация не типичны. Хотя первая из ситуаций «хороша» для алгоритма, поскольку сразу приводит к константному в среднем времени ожидания. О тех же запросах, которые будут содержать в первом слое мало точек, удовлетворяющих этому запросу, можно сказать, что в типичной ситуации эти запросы будут «зацеплять» малое число слоев, и, следовательно, иметь малое среднее время ожидания.

Показать весь текст
Заполнить форму текущей работой