Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
abramov_s_a_lekcii_o_slozhnosti_algoritmov.doc
Скачиваний:
136
Добавлен:
11.05.2015
Размер:
2.74 Mб
Скачать

Глава 7. Сводимость

У >i

х

Рис. 23. Сведение сортировки чисел xt,x2, ■■■,хп, отмеченных на оси абсцисс, к построению выпуклой оболочки точек (хих*), {х2,х\),..., {хп,х2п).

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

Из результатов § 14 следует, что любая сортировка с помощью сравнений массивов длины п имеет сложность не менее log2 п\. Но при построении выпуклой оболочки используются как сравнения, так и арифметические операции. Можно ли, привлекая помимо опера­ций сравнения еще и арифметические операции, предложить алго­ритм сортировки массивов вещественных чисел, сложность которого по числу сравнений была бы меньше, чем log2 п\, пусть даже при том, что потребовалось бы очень большое число арифметических опера­ций? Ниже мы обосновываем отрицательный ответ на этот вопрос.

Дополнительное использование четырех арифметических опера­ций означает, что сравниваться могут не только числа хъх2, ■■■,хп, заданные изначально, но и значения рациональных функций от этих чисел. В качестве знаков сравнения могут использоваться

<, >, =, фу ^, ;>.

Каждая рациональная функция F{хъ х2, ■ ■ ■, хп) записывается как отношение двух полиномов

р(х1,х2,...,хп)

(29.1)

q(x1,x2,...,xn)

F(x1,x2,...,xn)

§ 29. Линейная сводимость и нижние границы сложности 193

(в этом параграфе мы рассматриваем рациональные функции и полиномы с вещественными коэффициентами). Каждый полином f ( x 1, x2,..., xn) можно рассматривать как рациональную функцию

f(x1,x2,...,xn) 1 .

Предполагается, что если алгоритм предписывает сравнение, в кото­ром участвует значение рациональной функции (29.1), то ее знамена­тель q(x1,x2, ...,xn) не обращается в 0 при рассматриваемых значе­ниях x 1,x2, ...,xn. Неравенство F1(x1,x2,...,xn)<F2(x1,x2,...,xn) рав­носильно, очевидно, неравенству F( x 1,x2, ...,xn) <0, где

F(x1,x2,...,xn)=F1(x1,x2,...,xn)-F2(x1,x2,...,xn).

То же самое для сравнений со знаками >, =, ф, ^, ^.

Далее будут использоваться два свойства рациональных функций:

(R1) Множество точек (x1,x2,...,xn)еГ, для которых данная ра­циональная функция (29.1) неопределена или равна нулю, является замкнутым; в свою очередь, те точки, в которых эта функция опреде­лена и имеет значение большее (меньшее) нуля, образуют открытое множество. Это следует из того, что рациональная функция непре­рывна на своем множестве определения.

(R2) Если рациональная функция (29.1) определена и равна нулю всюду на некотором непустом открытом подмножестве множества Жn, то ее числитель p( x 1, x2, ...,xn) является нулевым полиномом (см. за­дачу 147).

Предложение 29.1. Функция f(n) = [log2 n!] является нижней гра­ницей сложности по числу сравнений алгоритмов сортировки масси­вов длины n попарно различных вещественных чисел c помощью срав­нений и четырех арифметических операций.

Доказательство.г Каждой из перестановок a = (a1, a2, ...,an)еПn сопоставим сектор Sa — подмножество пространства Жn такое, что ( x 1,x2, ...,xn) eSa, если и только если числа x 1,x2, ...,xn попарно раз­личны и их относительный порядок совпадает с относительным по­рядком чисел a1,a2, ...,an. Любой сектор является открытым множе­ством в Жn. Каждому массиву вещественных чисел с попарно раз­личными элементами x 1,x2, ...,xn соответствует точка некоторого

!Идея элементарного доказательства сообщена автору С.П.Поляковым. Наиболее раннее (довольно трудное для понимания) доказательство было опубликовано H. Фрид­маном в [49].

194

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]