|
|
Строка 1: |
Строка 1: |
− | {| class="wikitable" align="center" style="color: red; background-color: black; font-size: 56px; width: 800px;"
| |
− | |+
| |
− | |-align="center"
| |
− | |'''НЕТ ВОЙНЕ'''
| |
− | |-style="font-size: 16px;"
| |
− | |
| |
− | 24 февраля 2022 года российское руководство во главе с Владимиром Путиным развязало агрессивную войну против Украины. В глазах всего мира это военное преступление совершено от лица всей страны, всех россиян.
| |
− |
| |
− | Будучи гражданами Российской Федерации, мы против своей воли оказались ответственными за нарушение международного права, военное вторжение и массовую гибель людей. Чудовищность совершенного преступления не оставляет возможности промолчать или ограничиться пассивным несогласием.
| |
− |
| |
− | Мы убеждены в абсолютной ценности человеческой жизни, в незыблемости прав и свобод личности. Режим Путина — угроза этим ценностям. Наша задача — обьединить все силы для сопротивления ей.
| |
− |
| |
− | Эту войну начали не россияне, а обезумевший диктатор. И наш гражданский долг — сделать всё, чтобы её остановить.
| |
− |
| |
− | ''Антивоенный комитет России''
| |
− | |-style="font-size: 16px;"
| |
− | |Распространяйте правду о текущих событиях, оберегайте от пропаганды своих друзей и близких. Изменение общественного восприятия войны - ключ к её завершению.
| |
− | |-style="font-size: 16px;"
| |
− | |[https://meduza.io/ meduza.io], [https://www.youtube.com/c/popularpolitics/videos Популярная политика], [https://novayagazeta.ru/ Новая газета], [https://zona.media/ zona.media], [https://www.youtube.com/c/MackNack/videos Майкл Наки].
| |
− | |}
| |
− |
| |
| Есть два способа проверить сеть из <tex>n</tex> компараторов на то, что она сортирующая. | | Есть два способа проверить сеть из <tex>n</tex> компараторов на то, что она сортирующая. |
| | | |
Текущая версия на 19:35, 4 сентября 2022
Есть два способа проверить сеть из [math]n[/math] компараторов на то, что она сортирующая.
Первый способ
Первый, наивный способ — перебрать все перестановки из [math] n [/math] элементов, пропустить их через сеть и проверить их на то, что они отсортированы. Этот подход потребует [math] O(n! \cdot Comp(n)) [/math] действий, где [math] Comp(n) [/math] — количество компараторов в сети из [math]n[/math] элементов. Это количество можно оценить как [math] n \log^2n [/math] (Сеть Бетчера). Таким образом, получаем асимптотику [math] O(n!n \log^2n) [/math], и при [math]n = 10[/math] проверить сеть очень проблематично.
Второй способ
Второй способ основывается на предположении, что если сеть сортирует все последовательности из нулей и единиц, то сеть является сортирующей. Если мы докажем это, то сможем проверять сеть за [math] O(2^n \cdot Comp(n)) [/math], что намного быстрее.
Доказательство 0-1 принципа
Определение: |
Функция [math] f: A \rightarrow B [/math] называется монотонной (англ. monotonous), если [math] \forall a_1, a_2 \in A : a_1 \leqslant a_2 \Rightarrow f(a_1) \leqslant f(a_2) [/math] |
Лемма: |
Пусть [math] f: A \rightarrow B [/math] — монотонная. Тогда [math] \forall a_1, a_2 \in A: f(\min(a_1, a_2)) = \min(f(a_1), f(a_2)) [/math]. |
Доказательство: |
[math]\triangleright[/math] |
Не теряя общности, предположим что [math] a_1 \leqslant a_2 [/math]. Тогда [math] f(\min(a_1, a_2)) = f(a_1) [/math]. Также, по монотонности, [math] f(a_1) \leqslant f(a_2) [/math]. Тогда [math] \min(f(a_1), f(a_2)) = f(a_1) [/math]. То есть,
[math] f(\min(a_1, a_2)) = \min(f(a_1), f(a_2)) = f(a_1) [/math]. Такие же рассуждения можно провести для случая [math] a_2 \lt a_1 [/math]. |
[math]\triangleleft[/math] |
Определение: |
Рассмотрим отображение [math] f: A \rightarrow B [/math] и последовательность [math] a = (a_0, a_1, \dots, a_{n-1}) [/math]. Определим [math] f(a) [/math] как последовательность [math] f(a_0), f(a_1), \dots , f(a_{n-1}) [/math], то есть [math] f(a_i) = f(a)_i [/math] |
Лемма: |
Пусть [math] f: A \rightarrow B [/math] — монотонная, а [math] N [/math] — сеть компараторов.
Тогда [math] N [/math] и [math] f [/math] коммутируют, то есть [math] N(f(a)) = f(N(a)) [/math]. Другими словами, неважно, применить сначала [math] f [/math] к [math] a [/math] и пропустить через сеть [math] N [/math], или пропустить через сеть [math] N [/math] последовательность [math] a [/math], а потом применить монотонную функцию [math] f [/math]. |
Доказательство: |
[math]\triangleright[/math] |
Рассмотрим произвольный компаратор [math] [i: j] [/math], сортирующий элементы [math] a_i [/math] и [math] a_j [/math]. Применим его к последовательности [math] f(a) [/math] и рассмотрим элемент с индексом [math] i [/math].
Тогда [math] [i: j]f(a)_i =[/math]
- [math] [i: j](f(a_0), \dots, f(a_{n-1}))_i [/math] (по введенному выше определению)
- [math] f([i: j](a))_i = f([i: j](a)_i) [/math] (по определению компаратора и по введенному выше определению)
- [math] \min(f(a_i), f(a_j)) = f(\min(a_i, a_j)) [/math] (по определению компаратора и по уже доказанной лемме).
Таким образом, результат не зависит от того, что мы сделаем с отдельным компаратором сначала: применим монотонную функцию или пропустим его через сеть. Те же рассуждения можно провести для всех других индексов, то есть [math] [i: j]f(a) = f([i: j](a)) [/math] для всех компараторов в сети, то есть лемма доказана. |
[math]\triangleleft[/math] |
Теорема (0-1 принцип): |
Если сеть компараторов сортирует все последовательности из нулей и единиц, то она сортирующая |
Доказательство: |
[math]\triangleright[/math] |
Рассмотрим сеть [math] N [/math], сортирующую в возрастающем порядке: [math] a_0 \leqslant a_1 \leqslant \dots \leqslant a_{n-1} [/math].
Предположим, что есть последовательность [math] a [/math], которую сеть [math] N [/math] не сортирует. Тогда после пропуска [math] a [/math] через сеть [math] N [/math], получим последовательность [math] b [/math], в которой найдется индекс [math] i [/math] такой, что [math] b_i \gt b_{i + 1} [/math].
Рассмотрим функцию [math] f(x) =
\begin{cases}
0, x \lt b_i \\
1, x \ge b_i
\end{cases}
[/math] . Очевидно, она монотонная. Заметим, что [math] f(b_i) = 1 [/math], а [math] f(b_{i + 1}) = 0 [/math], то есть [math] f(b) [/math], или [math] f(N(a)) [/math] — не отсортирована. Так как [math] f [/math] и [math] N [/math] коммутируют, [math] N(f(a)) [/math] — также не отсортирована. Но по предположению теоремы, все последовательности из нулей и единиц сеть сортировать умеет, то есть такой последовательности [math] a [/math] не найдется, то есть сеть компараторов является сортирующей. |
[math]\triangleleft[/math] |
См. также
Источники информации