0-1 принцип — различия между версиями
(→Доказательство 0-1 принципа) |
(→Доказательство 0-1 принципа) |
||
Строка 12: | Строка 12: | ||
{{ Определение | {{ Определение | ||
| definition = | | definition = | ||
− | Функция <tex> f: A \rightarrow B </tex> называется '''монотонной''', если <tex> \forall a_1, a_2 \in A : a_1 \leqslant a_2 \Rightarrow f(a_1) \leqslant f(a_2) </tex> | + | Функция <tex> f: A \rightarrow B </tex> называется '''монотонной''' (англ. ''monotonous''), если <tex> \forall a_1, a_2 \in A : a_1 \leqslant a_2 \Rightarrow f(a_1) \leqslant f(a_2) </tex> |
}} | }} | ||
Версия 08:21, 8 июня 2015
Есть два способа проверить сеть из
компараторов на то, что она сортирующая.Первый способ
Первый, наивный способ — перебрать все перестановки из Сеть Бетчера). Таким образом, получаем асимптотику , и при проверить сеть очень проблематично.
элементов, пропустить их через сеть и проверить их на то, что они отсортированы. Этот подход потребует действий, где — количество компараторов в сети из элементов. Это количество можно оценить как (Второй способ
Второй способ основывается на предположении, что если сеть сортирует все последовательности из нулей и единиц, то сеть является сортирующей. Если мы докажем это, то сможем проверять сеть за
, что намного быстрее.Доказательство 0-1 принципа
Определение: |
Функция | называется монотонной (англ. monotonous), если
Лемма: |
Пусть — монотонная. Тогда . |
Доказательство: |
Не теряя общности, предположим что . Тогда . Также, по монотонности, . Тогда . То есть, . Такие же рассуждения можно провести для случая . |
Определение: |
Рассмотрим отображение | и последовательность . Определим как последовательность , то есть
Лемма: |
Пусть — монотонная, а — сеть компараторов.
Тогда и коммутируют, то есть . Другими словами, неважно, применить сначала к и пропустить через сеть , или пропустить через сеть последовательность , а потом применить монотонную функцию . |
Доказательство: |
Рассмотрим произвольный компаратор , сортирующий элементы и . Применим его к последовательности и рассмотрим элемент с индексом .Тогда
|
Теорема (0-1 принцип): |
Если сеть компараторов сортирует все последовательности из нулей и единиц, то она сортирующая |
Доказательство: |
Рассмотрим сеть , сортирующую в возрастающем порядке: .Предположим, что есть последовательность Рассмотрим функцию , которую сеть не сортирует. Тогда после пропуска через сеть , получим последовательность , в которой найдется индекс такой, что . . Очевидно, она монотонная. Заметим, что , а , то есть , или — не отсортирована. Так как и коммутируют, — также не отсортирована. Но по предположению теоремы, все последовательности из нулей и единиц сеть сортировать умеет, то есть такой последовательности не найдется, то есть сеть компараторов является сортирующей. |
Источники
- Sorting networks
- Wikipedia — Sorting networks
- Дональд Кнут — Искусство программирования — Том 3 — Глава 5.3.4 — стр. 249