теорема бонди
Oct. 21st, 2015 06:52 pmНеожиданно красивая теорема Бонди (Bondy, 1972). Пусть есть квадратная матрица, в которой все строки попарно отличаются друг от друга хотя бы в одном столбце. Тогда из нее можно удалить один столбец, так что в оставшейся матрице все еще все строки попарно отличаются. Можно попробовать придумать контрпример для матрицы 3x3, чтобы убедиться наглядно на уровне интуиции, почему контрпримеры не работают и как это получается.
В принципе теорема следует из принципа Дирихле (нельзя посадить n кроликов в n-1 клеток, чтобы в каждой клетке был один кролик). Но прямой чисто логический вывод ее из принципа Дирихле труден - есть работы логиков, показывающие, что такое доказательство должно быть длинным. Доказательство Бонди красиво использует элементарную теорию графов следующим образом.
Пусть есть матрица размером n на n, в которой все строки попарно отличаются. Скажем, что столбец i соединяет две строки, если при удалении этого столбца они становятся идентичными. Скажем, что столбец активен, если он соединяет хоть какую-то пару строк. Мы хотим доказать, что число активных столбцов меньше n. Если это так, то любой неактивный столбец можно удалить, и в оставшейся матрице все еще строки попарно отличаются.
Мы можем прыгать от строки к строке, пользуясь соединяющими столбцами, т.е. меняя каждый раз значение в одном столбце. Таким образом строки можно рассматривать как вершины графа: две вершины соединены ребром, если есть соединяющий их столбец. Все вершины распадаются на какое-то количество компонент связности. Вообще говоря один столбец может участвовать в большом количестве ребер между разными строками. Ясно, что в любом случае
(1) число активных столбцов меньше или равно числу ребер в графе.
Предположим, что в каждой компоненте связности нет циклов, т.е. нет возможности начать из одной строки и вернуться в нее же, не пользуясь дважды одним ребром. Тогда каждая компонента - дерево, а в дереве меньше ребер, чем вершин (на 1). Суммируя по всем компонентам, получаем, что во всем графе
(2) число ребер меньше числа вершин n.
Соединяя (1) и (2), получаем то, что мы хотели доказать.
Но может оказаться, что в каких-то компонентах есть циклы. Посмотрим на любой такой цикл. В нем мы путешествуем от строки к строке, ни разу не пользуясь одним и тем же ребром. Но несомненно нам придется пользоваться дважды одним *столбцом*. Например, если первым шагом мы меняем столбец i, то чтобы вернуться в исходную строку, нам рано или поздно опять придется поменять столбец i, хоть и между другими строками. Возьмем в любом цикле два таких ребра, принадлежащих одному столбцу, и одно из этих ребер выбросим из графа. Это разобьет цикл, но оставит число активных столбцов неизменным (потому что второе ребро того же столбца мы оставили). В новом графе (1) все еще верно, и число активных столбцов в нем то же, что и раньше. Будем продолжать так разбивать циклы, пока их не останется, после чего вышеприведенный аргумент заканчивает доказательство.
Update: красивое геометрическое доказательство
hyperpov в комментариях, не пропустите!
В принципе теорема следует из принципа Дирихле (нельзя посадить n кроликов в n-1 клеток, чтобы в каждой клетке был один кролик). Но прямой чисто логический вывод ее из принципа Дирихле труден - есть работы логиков, показывающие, что такое доказательство должно быть длинным. Доказательство Бонди красиво использует элементарную теорию графов следующим образом.
Пусть есть матрица размером n на n, в которой все строки попарно отличаются. Скажем, что столбец i соединяет две строки, если при удалении этого столбца они становятся идентичными. Скажем, что столбец активен, если он соединяет хоть какую-то пару строк. Мы хотим доказать, что число активных столбцов меньше n. Если это так, то любой неактивный столбец можно удалить, и в оставшейся матрице все еще строки попарно отличаются.
Мы можем прыгать от строки к строке, пользуясь соединяющими столбцами, т.е. меняя каждый раз значение в одном столбце. Таким образом строки можно рассматривать как вершины графа: две вершины соединены ребром, если есть соединяющий их столбец. Все вершины распадаются на какое-то количество компонент связности. Вообще говоря один столбец может участвовать в большом количестве ребер между разными строками. Ясно, что в любом случае
(1) число активных столбцов меньше или равно числу ребер в графе.
Предположим, что в каждой компоненте связности нет циклов, т.е. нет возможности начать из одной строки и вернуться в нее же, не пользуясь дважды одним ребром. Тогда каждая компонента - дерево, а в дереве меньше ребер, чем вершин (на 1). Суммируя по всем компонентам, получаем, что во всем графе
(2) число ребер меньше числа вершин n.
Соединяя (1) и (2), получаем то, что мы хотели доказать.
Но может оказаться, что в каких-то компонентах есть циклы. Посмотрим на любой такой цикл. В нем мы путешествуем от строки к строке, ни разу не пользуясь одним и тем же ребром. Но несомненно нам придется пользоваться дважды одним *столбцом*. Например, если первым шагом мы меняем столбец i, то чтобы вернуться в исходную строку, нам рано или поздно опять придется поменять столбец i, хоть и между другими строками. Возьмем в любом цикле два таких ребра, принадлежащих одному столбцу, и одно из этих ребер выбросим из графа. Это разобьет цикл, но оставит число активных столбцов неизменным (потому что второе ребро того же столбца мы оставили). В новом графе (1) все еще верно, и число активных столбцов в нем то же, что и раньше. Будем продолжать так разбивать циклы, пока их не останется, после чего вышеприведенный аргумент заканчивает доказательство.
Update: красивое геометрическое доказательство
no subject
Date: 2015-10-21 04:15 pm (UTC)А как оно может быть строго меньше?!
Это бы значило что есть рёбра, т.е. (по определению ребра) что есть соединяющий столбец т.е. (по определению соединяющего столбца) что есть две строки, в которых при удалении столбца i все оставшиеся элементы одинаковы. Но ведь раз есть ребро. то оно соединяет какую-то пару вершин-строк, а значит (по определению активности) оно активно.
Что тогда такое не активные рёбра?
no subject
Date: 2015-10-21 04:19 pm (UTC)Предположим, что есть такая ситуация, и больше вообще никаких ребер нет. Тогда есть 1 активный столбец и 2 ребра.
no subject
Date: 2015-10-21 04:49 pm (UTC)no subject
Date: 2015-10-21 05:43 pm (UTC)Интересно, что такое прямой чисто логический вывод одной теоремы из другой?
no subject
Date: 2015-10-21 05:44 pm (UTC)no subject
Date: 2015-10-21 06:12 pm (UTC)no subject
Date: 2015-10-21 08:52 pm (UTC)Переведем утверждение на геометрический язык. Строки матрицы - точки в n-мерном евклидовом пространстве. По условию они попарно различны. Две строки совпадают после вычеркивания i-го столбца = проекции соответствующих точек вдоль i-го координатного направления совпадают. Иначе гворя, соединяющее их ребро имеет направление i-го базисного вектора.
Нужно всего лишь показать, что у (n-1)-симплекса в евклидовом пространстве не найдется n попарно ортогональных ребер. А это следует из того, что любые n точек содержатся в одном (n-1)-мерном подпространстве. В нем не может найтись n попарно ортогональных ненулевых векторов.
no subject
Date: 2015-10-21 09:04 pm (UTC)0 0 0
0 0 1
0 0 2
Все строки попарно отличаются друг от друга хотя бы в одном столбце?
no subject
Date: 2015-10-21 09:22 pm (UTC)no subject
Date: 2015-10-21 09:24 pm (UTC)0 0
0 1
no subject
Date: 2015-10-21 09:29 pm (UTC)no subject
Date: 2015-10-21 09:31 pm (UTC)no subject
Date: 2015-10-21 10:45 pm (UTC)no subject
Date: 2015-10-21 10:48 pm (UTC)Да, в статье Бонди теорема сформулирована в терминах подмножеств, что то же самое, что 0-1 матрицы. Но поскольку в оригинальном вопросе речь шла о любых матрицах, я решил переформулировать док-во для этого случая и постараться написать его как можно понятнее.
Не упустите красивое геометрическое док-во в комменте прямо под вашим.
no subject
Date: 2015-10-21 10:48 pm (UTC)no subject
Date: 2015-10-21 10:49 pm (UTC)no subject
Date: 2015-10-21 10:57 pm (UTC)Поскольку это тавтология, у нее есть доказательство из аксиом логики высказываний. Это доказательство "чисто логическое" в том смысле, что кроме свойств равенства и неравенства объектов, в нем не используется никакая математика, никакие свойства элементров матриц, и даже не используются кванторы существования/всеобщности, а только простая манипуляция булевых предикатов. Но это доказательство очень длинное. Если же принять принцип Дирихле (тоже формулируемый как определенная булева формула) за аксиому, т.е. позволить им пользоваться "бесплатно", то док-во теоремы Бонди становится сильно короче. Но все еще остается довольно длинным. Этот факт, говоря очень упрощенно и туманно, соответствует нашей интуиции в том смысле, что мы не видим "очевидного" док-ва теоремы Бонди в том смысле, в каком принцип Дирихле для нас "очевиден".
no subject
Date: 2015-10-21 11:03 pm (UTC)no subject
Date: 2015-10-22 04:47 am (UTC)- говоря очень упрощенно и туманно
Да, сама идея измерять сложность доказательства длиной его вывода в ИВ кажется весьма туманной. Как следует из сказанного, вывод принципа Дирихле тоже довольно длинный, особенно при больших n, хотя его очевидность кажется очевидной (и не зависящей от n).
Если при этом мы перейдём к ИП и позволим себе использовать аксиомы теории множеств, или хотя бы индукцию и некоторые свойства натуральных чисел, доказательство действительно станет коротким, и вдобавок не зависящим от n (если навесить квантор по n).
no subject
Date: 2015-10-22 06:15 am (UTC)напоминает
Date: 2015-10-22 08:39 am (UTC)- Но, учитель, предпополижим что X _не_ есть число овец.
no subject
Date: 2015-10-22 08:49 am (UTC)no subject
Date: 2015-10-22 08:55 am (UTC)no subject
Date: 2015-10-22 08:57 am (UTC)no subject
Date: 2015-10-22 09:03 am (UTC)no subject
Date: 2015-10-22 11:09 am (UTC)Установим какой-нибудь порядок между элементами матрицы, неважно какой (если они действительные числа, просто используем обычный порядок). Переставим строки матрицы так, чтобы они стояли в лексикографическом порядке слева направо. То есть, строки идут по возрастанию их первого столбца, а там, где первый столбец одинаковый, по возрастанию второго итд.
Теперь для каждой строки, начиная со второй, отметим самый левый столбец, в котором она отличается от предыдущей. Всего мы так отметим не более n-1 столбцов (возможно, меньше). Я утверждаю, что этих столбцов достаточо, чтобы различить все строки друг от друга.
Это утверждение очевидно для соседних строк, потому что для каждой пары соседей мы выбрали различающий столбец. Теперь представим себе любые две строки, например i < j, и посмотрим на все различающие столбцы, которые мы выбрали между ними - столбец, который отличает i+1 от i, i+2 от i+1 итд. до j от j-1. Из всех этих столбцов посмотрим на самый левый. Я утверждаю, что в нем i-я строка отличается от j-й. Почему? Во всех столбцах еще левее его эти строки совпадают (иначе мы бы выбрали один из них по дороге, мы всегда стремились выбрать самый левый). В самом этом столбце обязаны были быть какие-то изменения от i к j, потому что он один из различающих. Но эти изменения могли идти только "вверх" по порядку, а не вниз, из-за того, как отсортированы строки - чтобы измениться вниз, должен был измениться также один из столбцов левее. Значит, эти изменения не могли вернуться обратно к значению в i.
no subject
Date: 2015-10-22 11:23 am (UTC)no subject
Date: 2015-10-22 12:51 pm (UTC)Re: напоминает
Date: 2015-10-22 12:52 pm (UTC)no subject
Date: 2015-10-22 04:32 pm (UTC)no subject
Date: 2015-10-22 07:19 pm (UTC)I have the impression that all this complexity (properties of fields, algebra etc.) may be compartmentalized into the definition of "one cage contains one rabbit" in terms of the number of orthogonal vectors in n dimensions.
no subject
Date: 2015-10-22 07:36 pm (UTC)" Тогда из нее можно удалить один столбец, так что в оставшейся матрице все еще все строки попарно отличаются." Это предложение можно читать двояко: "можно удалить любой столбец, при этом .." и "найдется столбец, который можно удалить, при этом .."
no subject
Date: 2015-10-22 07:43 pm (UTC)no subject
Date: 2015-10-22 09:35 pm (UTC)no subject
Date: 2015-10-23 08:32 am (UTC)no subject
Date: 2015-10-23 08:41 am (UTC)no subject
Date: 2015-10-24 04:43 pm (UTC)no subject
Date: 2015-10-26 07:10 pm (UTC)