Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Некоторые задачи, сводящиеся к сортировке.

Читайте также:
  1. Ая основа – Хаджури назвал некоторые действия посланника Аллаха ошибкой, и сказал, что посланник Аллаха ошибся в средствах призыва.
  2. Без трещин и царапин, некоторые вообще не проигрывались, некоторые – по паре-тройке раз
  3. В характеристике других квалифицирующих признаков имеются некоторые отличия от квалифицирующих признаков убийства.
  4. Все ещё хотите большего? Некоторые советы к действию
  5. Глава 12 Политика прошлого, политика настоящего: некоторые заметки о пользе антропологии для понимания феномена новых государств
  6. Глава 7. Некоторые выдающиеся первопроходцы современности
  7. Глава 9. Некоторые важные линии развития

К задачам сортировки могут быть за линейное время сведены следующие классические задачи

 

Задача 1. Найти все различные элементы множества { A1,…,AN }, где – Ai, например, целые или вещественные числа.

Задача 2. Определить, все ли элементы в множестве A={A1,…,AN } различаются, где – Ai, например, целые или вещественные числа.

Задача 3. Определить, совпадают ли два множества { A1,…,AN } и { B1,…,BN }, где Ai, Bi, например, – целые или вещественные числа.

 

Т.о., мы получаем, что для всех трех приведенных задач верхняя оценка времени решения равна Q (N log N).

Можно задаться вопросом: а можно ли решить эти задачи быстрее? Заметим, что Задача 2 может быть за линейное время сведена к Задаче 1, поэтому если мы докажем, что нижняя оценка времени решения Задачи 2 есть Q(N log N), то тем мы докажем неулучшаемость полученной оценки для Задачи 1.

Задача 2 относится к классу задач о принятии решения. Это значит, что на выходе таких задач выдается всего один бит информации, т.е. ответ ` да ’ или ` нет ’. Мы будем рассматривать алгоритмы решения задач о принятии решений, которые сводятся к бинарному дереву принятия решений. Под деревом принятия решений имеется в виду следующее. Пусть на входе нашего алгоритма находится вектор входных данных aÎIR N. Рассмотрим бинарное дерево, в каждой вершине которого вычисляется некоторая функция от вектора a и в зависимости от знака этой функции происходит переход на правую или левую ветвь дерева. Каждая конечная вершина дерева будет называться либо принимающей либо отвергающей, в зависимости от приписанного ей соответствующего атрибута. Достижение принимающей вершины означает выдачу алгоритмом ответа ` да ’, а отвергающей, соответственно, - ` нет ’.

Дерево принятия решений называется алгебраическим деревом принятия решений степени n, если функции в вершинах дерева являются многочленами степени не выше n.

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

Введем два определения.

Разделимые множества. Множества A, B Ì IR N называются разделимыми (линейно-разделимыми) если " aÎ A, bÎ B найдется cÎ [a,b], такое что с Ï A, сÏ B.

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

Теорема. Пусть W Ì IR N – множество точек, на которых решением задачи будет `да’. Пусть # W – количество разделимых связных компонент множества W. Тогда, в рамках алгоритмов, описывающихся алгебраическими деревьями степени 1, время решения задачи есть W(log 2 #W).

Доказательство. Докажем, что количество принимающих вершин дерева принятия решений не меньше # W. Для этого докажем, что все элементы R N, относящиеся к одной принимающей вершине дерева решений находятся внутри одной разделимой связной компоненты W.

Предположим противное: существует принимающая вершина дерева принятия решений, в которую попадает алгоритм при использовании двух различных a,bÎ W, таких что a и b принадлежат различным разделимым связным компонентам Va, Vb Ì W, соответственно. Рассмотрим [a,b]. Линейные функции от N переменных обладают свойством монотонности на отрезке, поэтому все функции, вычисляющиеся в вершинах дерева принятия решений, сохраняют свой знак на [a,b]. Т.о. весь отрезок [a,b] Ì W (т.к. все точки из отрезка обязаны попасть в одно и ту же принимающую вершину). Это противоречит предположению о принадлежности a и b различным разделимым компонентам.

Итак, мы получили, что количество концевых вершин бинарного дерева принятия решений не меньше #W, из чего сразу следует, что высота дерева не меньше [log 2 #W].

¢

 

Вернемся к решению Задачи 2. Рассмотрим множество W для Задачи 2. Легко увидеть, что W – открыто. Для точки P Î IR N будем называть связной компонентой, содержащей P, множество WP, состоящие из таких точек R, для которых существует ломаная, соединяющая P и R, содержащаяся в W. В силу открытости W множество WP тоже открыто, а значит (в силу определения множества) и связно.

Рассмотрим в качестве различных вариантов входных данных задачи все перестановки последовательности {1,2,…,N}. Т.е.

Ap= {p(1), p(2),…, p(N)}, где p – некоторая перестановка.

Докажем, что каждая последовательность Ap принадлежит своей связной компоненте WAP множества W и что все WAP линейно разделимы. Тогда мы докажем, что каждая принадлежит своей разделимой связной компоненте. Действительно, допустим противное, т.е. пусть две различные последовательности Ap1 и Ap2 принадлежат одной связной компоненте W. Тогда найдутся 1 £ i, j £ N, такие что (p1(i)- p1(j)) (p2(i)- p2(j))<0, т.е. (p1(i)- p1(j)) и (p2(i)- p2(j)) имеют разные знаки. Но тогда для любой ломаной S, соединяющей точки Ap1 и Ap2 Î IR N, найдется x Î S такая, что xi = xj, что противоречит принадлежности Ap1 и Ap2 одной связной компоненте множества W.

Аналогично доказывается, что компоненты WP1 и WP2 линейно разделимы. Действительно, рассмотрим точки p1’ Î WP1 и p2’ Î WP2. Для тех же самых индексов i, j получим, что (p’1(i)- p’1(j)) (p’2(i)- p’2(j))<0, из чего сразу получаем, что на отрезке, соединяющем p’1 и p’2, найдется точка, не принадлежащая W.

В приведенном доказательстве требует объяснения следующий факт: для двух различных перестановок множества {1,2,…,N} всегда найдутся 1 £ i, j £ N, такие что (p1(i)- p1(j)) и (p2(i)- p2(j)) имеют разные знаки. Пусть для каждой перестановки p: tk – количество чисел p(i) больших p(k) для i>k. Легко увидеть, что p и t однозначно задают друг друга.

Действительно, для p(i)=N имеем t(i)=0, причем для j<i выполняется: t(j)>0. (отметим, что t(i)=0 может выполняться и для других i) Поэтому если мы найдем минимальное i такое, что t(i)=0, то сразу получим, что p(i)=N; далее мы ищем минимальное i такое, что t(i)=1, и получаем, что p(i)=N-1, и т.д.

Т.о. для двух различных перестановок p1 и p2 мы получим различные соответствующие t1 и t2. Выберем i: t1(i) ¹ t2(i). Пусть, например, t1(i) > t2(i), но тогда найдется j>i, такое что p1(j)> p1(i), но p2(j)< p2(i). Получили требуемое.

¢

 

Итак, мы доказали, что верна следующая

Теорема. Задачи 1 и 2 имеют нижнюю оценку времени решения O(NlogN) на алгоритмах, основанных на алгебраическом дереве принятия решения первой степени.

 

Для Задачи 3 также можно доказать аналогичную теорему:

 

Теорема. Задача 3 имеет нижнюю оценку времени решения O(NlogN) на алгоритмах, основанных на алгебраическом дереве принятия решения первой степени.

Для доказательства рассмотрим все пары последовательностей {1,2,…,N} и {s1,s2,…,sN} для всех перестановок s. Назовем эти последовательности A и Bs. Покажем, что количество принимающих вершин любого алгебраического дерева принятия решения первой степени, решающего заданную задачу, не меньше, чем количество всевозможных пар {A, Bs}. В этом случае мы сразу получим, что высота дерева принятия решения будет не меньше Q (log(N!))= Q (N log N), что докажет нашу теорему.

Доказательство требуемого факта тривиально. Нам достаточно доказать, что никакие две различные пары {A, Bs} и {A, Br} не могут попасть в одну принимающую вершину данного дерева принятия решений. Докажем данный факт от противного.

Пусть есть две различные пары {A, Bs} и {A, Br}. Тогда найдется индекс i для которого ri≠si. Рассмотрим пары последовательностей {A, Bst}, для которых все элементы Bst совпадают с соответствующими элементами Bs, кроме элемента с индексом i, равным t, который должен лежать в интервале (Min(ri,si), Max(ri,si)). Тогда, с одной стороны любая пара {A, Bst} должна попасть в ту же принимающую вершину (в силу проверки линейных соотношений в каждой вершине дерева), а с другой, среди возможных значений t обязательно найдется значение, не встречающееся в последовательности Br. Получаемое противоречие завершает доказательство.

¢

Заметим, что Задача 3 также, как и Задача 2, может быть сведена к Задаче 1.

 


Лекция 4


Дата добавления: 2015-10-30; просмотров: 158 | Нарушение авторских прав


Читайте в этой же книге: Алгоритмы и алгоритмические языки | Представление чисел в ЭВМ | Нижние и верхние оценки. | Постановка задачи | Сортировка пузырьком. | Сортировка слиянием с рекурсией. | Сортировка слиянием без рекурсии. | Доказательство корректности работы алгоритма. | SortB (A, N, M, B) | То return QFindStatP (A, p, j, k,N ) |
<== предыдущая страница | следующая страница ==>
Оценки времени работы алгоритма.| Сортировки и связанные с ними задачи.

mybiblioteka.su - 2015-2024 год. (0.009 сек.)