Деревья и остовные деревья
Ошибка.
Попробуйте повторить позже
Дан граф на вершинах: сопоставим каждой вершине переменную . Пусть — множество остовных деревьев графа (то есть поддеревьев, содержащих все вершины). Рассмотрим остовный многочлен от переменных
Назовем связный граф хорошим, если раскладывается на линейные множители (в частности, если — тождественный ноль), иначе плохим.
1. Найдите , где — полный граф на 4 вершинах.
2. Докажите, что цикл на пяти вершинах является плохим графом.
3. Пусть — хороший граф, — некоторое подмножество его вершин. Граф состоит из всех вершин, лежащих в , и всех ребер графа , соединяющих эти вершины. Докажите, что граф тоже хороший.
4. Назовём раздвоением вершины операцию, добавляющую в граф вершину , соединенную ровно с теми же вершинами, что и . Докажите, что граф, получающийся из одной вершины операциями добавления висячей вершины, раздвоения вершины с добавлением ребра и раздвоения вершины без добавления ребра , является хорошим.
Источники:
1. В полном графе на четырех вершинах есть только 2 вида остовных деревьев: 1) цепь длины 4; 2) три вершины, "висящие"на четвертой.
Каждое дерево первого вида даст в остовный многочлен одночлен , , причем каждый одночлен будет представлен 2 раза.
Каждое дерево второго вида даст в остовный многочлен одночлен , где — "вершина"остова.
В итоге получим многочлен:
2. Распишем . Поскольку многочлен линеен по каждой переменной, получаем, что каждая из переменных живет только в одной из скобок. Тогда переменные вынуждены разбиться на скобки 2-2-1 или 3-1-1, что дает нам не более четырех мономчиков, противоречие.
3. Давайте сначала заметим, что можно последовательно выкидывать вершины по одной с сохранением связности, если связно. (Если несвязно, то просто 0 получится и все).
Для этого нужно подвесить за и поочередно удалять вершины с самого нижнего уровня. Теперь нужно понять, что при удалении только одной вершины граф остается хорошим. Для этого подставим 0 в . Получим, что все слагаемые, в которые входило в хотя бы первой степени, обнулились, а значит остались в точности те, где — висячая вершина. А все такие деревья устроены так: выбрано дерево в графе , и потом одна из вершин из окрестности соединена с . Тогда многочлен после подстановки нуля равен . Подстановка нуля сохраняет раскладываемость на множители, значит тоже раскладываемый, значит, при удалении вершины граф останется хорошим.
4. Сначала докажем вспомогательный факт про такой тип графов.
Лемма о раздвоении без добавления ребра. Пусть дан граф на вершинах. Рассмотрим граф , полученный из добавлением вершины и соединением ее со всеми вершинами из , но не самой . Тогда
Доказательство. Давайте заметим, что любое дерево в графе устройство следующим образом — на всех вершинах, кроме , берется некоторый лес, такой, что в каждой компоненте есть хотя бы одна вершина из , и потом вершина соединяется с ровно одной вершиной из каждой компоненты. Обозначим за множество всех таких лесов, за — число компонент связности в лесу , и назовем пересечения множеств с компонентами связности леса . Тогда из рассуждений выше
Теперь давайте поймём, как устроены деревья в . Там мы тоже берём лес, который содержит все вершины, кроме , , и такой, что каждая его компонента содержит хотя бы одну вершину из , после чего одна из долей соединяется с обеими вершинами из и , а каждая из остальных долей — с ровно одной из этих вершин. Тогда в тех же обозначениях получается, что
Теперь очевидно, что второй сомножитель равен , и лемма доказана. ________________________
Пусть - граф из леммы 1. Мы в лемме 1 уже выяснили как устроены деревья в графе , поэтому нужно разобраться с тем, как они устроены в . Заметим, что они устроены так: мы снова берем лес с такими же условиями, а дальше делаем одно из двух - либо не проводим ребро между и , и это слагаемое такое же как в , либо проводим, и тогда каждую из долей соединяем с ровно одной из этих вершин. Стало быть, сумма всех первых слагаемых даст нам , а сумма вторых равна
Тогда получается, что
доказали требуемое.
Ошибка.
Попробуйте повторить позже
Докажите, что если граф связен и в нём есть циклы, то в нём есть три вершины, удаление любой из которой сохраняет связность.
Выделим в исходном графе остовное дерево В нем обязательно найдутся две висячие вершины и Удаление их из графа не приведет к потере связности, поскольку удаление этих вершин не нарушает связность дерева В графе есть цикл, значит, и — различные графы. Добавлением одного ребра, имеющегося в которого нет в мы получим граф с единственным циклом
Предположим, что цикл не содержит вершин и Тогда в нем есть либо вершина, все ребра которой в — это ее ребра в цикле и тогда удаление любого из ребер, инцидентных ей, приводит к тому, что получается новое дерево в котором есть дополнительная висячая вершина, удаление которой сохраняет связность либо в этом графе такой вершины нет, что означает, что уже в дереве содержалось хотя бы три висячих вершины, каждую из которых можно удалять.
Предположим теперь, что содержит одну из вершин или (без ограничения общности можно полагать, что это вершина Тогда можно из цикла удалить любое ребро, не инцидентное с сохранением связности. Тогда получится новое дерево в котором не является висячей вершиной. Тогда в этом дереве есть висячая вершина, отличная от и что снова приводит нас к нахождению третьей вершины, удовлетворяющей условию. Пусть теперь цикл содержит обе вершины и Тогда ребро, которое мы добавили — это ребро Удалив любое другое ребро, получим новое дерево, в котором одна из вершин или не является висячей, а, следовательно, найдем еще одну вершину, которую можно будет удалить.
Ошибка.
Попробуйте повторить позже
В стране городов, причем из любого города можно проехать в любой. Докажите, что можно побывать во всех городах и вернуться в исходный город, проехав не более, чем по дорогам.
Выделим в нашем графе остовное дерево. В нём рёбер.
Докажем индукцией по количеству вершин, что можно обойти все вершины дерева, проехав не более двух раз по каждому ребру. Тогда для дерева из вершин можно сделать обход за не более, чем проездов.
Для дерева из двух вершин это очевидно.
Пусть у нас есть дерево из вершин и на втором уровне расположены вершины Будем проводить обход следующим образом: спустимся из корня в обойдём по предположению индукции дерево с корнем в затем поднимемся в корень изначального дерева, спустимся в и так дальше.
Ошибка.
Попробуйте повторить позже
Докажите, что если в связном графе на вершинах ребро, то этот граф — дерево.
Предположим, что граф не является деревом. Тогда выделим в нём остовное дерево. Ясно, что в это дерево не попали все рёбра графа, иначе наше предположение неверно. Следовательно, в остовном дереве на вершинах не более рёбер, получили противоречие с тем, что в дереве с вершинами ребро.
Ошибка.
Попробуйте повторить позже
Дан связный граф на вершинах. Известно, что при удалении ребер любого простого цикла этот граф теряет связность. Какое наибольшее число ребер может быть в этом графе?
Предположим, что в графе хотя бы ребра. Выделим в нём остовное дерево, которое будет содержать все рёбра, выходящие из какой-нибудь вершины. Покажем, что так сделать можно. Выделим какое-нибудь остовное дерево. Рассмотрим главную вершину (первый уровень дерева). Также рассмотрим какую-нибудь вершину которая не находится на втором уровне дерева и при этом в исходном графе соединена с Перенесём вершину на второй уровень. Ребро, соединяющее вершину с вершиной, находящейся уровнем выше, удалим из дерева.
Теперь рассмотрим граф без рёбер, попавших в остовное дерево. В полученном графе вершина и ребро (все рёбра вершины в остовном дереве, поэтому её можно не учитывать). Разберём случаи.
Полученный граф связен. В этом случае в нём есть цикл, притом если его удалить, исходный граф останется связным, поскольку мы выделили остовное дерево.
Полученный граф не связен, то есть состоит из нескольких компонент связности. Если каждая из компонент является деревом, то количество рёбер в графе меньше, чем Если же какая-то из компонент не является деревом, то есть имеет цикл, то мы приходим к такому же противоречию, как в первом случае.
В качестве примера на вершинах c ребрами, в котором две вершины и соединены со всеми (в том числе и друг с другом), а остальные вершины соединены только с и
Ошибка.
Попробуйте повторить позже
Докажите, что в дереве с вершинами количество рёбер равно .
Будем проводить рёбра по одному и следить за количеством несвязанных кусочков. Изначально у нас есть вершин, никак не соединённых между собой. При проведении первого ребра будут связаны две вершины. Далее, как бы мы ни проводили новые рёбра, количество несвязанных кусочков будет уменьшаться на 1: ведь если мы проведём ребро внутри связанного кусочка, у нас образуется цикл. В конце должен получиться один связанный кусочек — весь граф. Таким образом, всего будет проведено ребро.
Ошибка.
Попробуйте повторить позже
Докажите, что из любого связного графа можно выделить дерево, содержащее все его вершины (такое дерево называют остовным деревом).
Запустим такой процесс. Найдём в графе цикл (если их нет, то граф уже дерево) и удалим любое его ребро. Докажем, что при этом граф не потерял связности: в самом деле, если мы в каком-то пути использовали удалённое ребро, то вместо него можно пройти по оставшейся части цикла. Продолжим так удалять рёбра циклов, пока циклы не исчезнут. Полученный граф и будет остовным деревом.
Ошибка.
Попробуйте повторить позже
В графе на вершинах нет циклов. Сколько ребер может быть в этом графе?
Разобьем наш граф на компоненты связности, обозначим из количество через . Каждая компонента — это дерево, то есть ребер в нем на 1 меньше, чем вершин. Тогда количество ребер во всем графе равно , то есть может быть любое количество ребер, меньшее .
Ошибка.
Попробуйте повторить позже
Докажите, что в связном графе с вершинами содержится как минимум ребро.
Предположим, что в графе есть цикл. Выкинем из него произвольное ребро. Граф останется связным, а количество циклов в нем уменьшится. Так будем делать, пока в графе есть циклы. В момент, когда мы не сможем сделать очередной шаг, мы получим дерево, в котором уже ребро, откуда и в исходном графе было хотя бы ребро.
Ошибка.
Попробуйте повторить позже
В некоторой области 30 населенных пунктов, причем каждый соединен с каждым дорогой. Какое наибольшее число дорог можно закрыть на ремонт так, чтобы из каждого пункта можно было проехать в каждый?
Заметим, что после закрытия должно остаться хотя бы 29 дорог по предыдущей задаче. Тогда закрытых дорог не больше, чем .
Чтобы получить пример, достаточно оставить открытыми только дороги, идущие из некоторого фиксированного города .
Ошибка.
Попробуйте повторить позже
Докажите, что в дереве с более чем одной вершиной есть хотя бы 2 висячие вершины.
Выберем произвольную вершину. Если она висячая, то пойдем по любому ее ребру. Если вершина, в которую мы пришли, опять не является висячей, то из нее можно выйти по другому ребру в некоторую новую вершину. Если мы никогда не придем в висячую, то рано или поздно зациклимся, а значит, найдем цикл — противоречие. Поэтому мы придем в другую висячую вершину через некоторое количество шагов. Если же исходная вершина не является висячей, то будем делать то же самое, только сначала найдем одну висячую, а потом с ней проделаем те же операции.
Ошибка.
Попробуйте повторить позже
В стране 100 городов, некоторые из которых соединены авиалиниями. Известно, что от любого города можно долететь до любого другого (возможно, с пересадками). Докажите, что можно побывать в каждом городе, совершив не более 198 перёлетов.
Построим граф вершинами которого являются города, а ребрами — дороги. Как и в задаче 3 будем выкидывать ребра из графа, пока не останется дерево. Теперь будем доказывать для дерева с вершинами, что существует обход с не более чем шагами. Для дерева с 1 вершиной утверждение очевидно верно. Докажем, что утверждение верно для дерева с вершинами, если верно для дерева с вершинами. Выберем висячую вершину, выкинем ее, дальше проделаем обход для меньшего дерева. Рассмотрим этот старый обход. Когда мы первый раз попадем в соседа нашей выкинутой вершины, сходим в нее и обратно, а затем продолжим старый обход. В полученном обходе не более шагов, то есть утверждение доказано.
Ошибка.
Попробуйте повторить позже
Докажите, что в любом связном графе есть вершина, при удалении которой граф остается связным.
Выделим в графе остовное дерево. Если удалить любую его висячую вершину, граф останется связным.
Ошибка.
Попробуйте повторить позже
В связном графе вершин и ребер. Докажите, что из этого графа можно выкинуть все ребра некоторого цикла так, чтобы он остался связным.
Как и в предыдущей задаче будем выкидывать из графа ребра, пока не получим дерево. Временно не будем рассматривать ребра итого дерева и вернем выкинутые ребра. Получился граф на вершинах и ребре. По задаче 1 в этом графе найдется цикл. Если выкинуть его ребра, то останется связный граф (если вернуть ребра дерева), то есть мы добились требуемого.
Ошибка.
Попробуйте повторить позже
На Луне городов, некоторые из которых соединены платными дорогами так, что из любого города можно добраться до любого другого. Стоимость проезда по пути, проходящему через несколько городов, определяется как цена проезда по самой дорогостоящей дороге этого пути, а стоимость турпоездки из города в город — как стоимость проезда из в по самому дешевому пути. Докажите, что в прайс-листе лунного турагентства не более различных цен.
Предположим, что различных цен хотя бы . Рассмотрим граф с вершинами в наших городах и ребрами, построенными следующим образом. Для каждой цены из прайс-листа выберем произвольную пару городов, стоимость проезда между которыми равна этой цене, и проведем между ними ребро. По нашему предположению в полученном графе хотя бы ребер, а следовательно есть цикл. Рассмотрим ребро в этом цикле, соответствующее наибольшей из цен этого цикла. Тогда между соответствующими двумя вершинами существует более дешевый маршрут (достаточно последовательно пройти по остальным маршрутам нашего цикла) — противоречие.
Ошибка.
Попробуйте повторить позже
Чтобы добраться от ствола к любому листу дерева, изображённого на рисунке, нужно на каждой развилке повернуть либо налево, либо направо. Например, для того чтобы добраться до листа с буквой А, нужно пройти так: ПППЛП (буква П — это поворот на развилке вправо, буква Л — поворот влево). Напишите с помощью букв П и Л путь к листу Б.
ЛПЛП
Ошибка.
Попробуйте повторить позже
В некоторой стране есть городов, которые связаны такой сетью дорог, что из любого города в любой другой можно проехать только одним способом без разворотов. Схема сети дорог известна, развилки и перекрестки сети необязательно являются городами, всякая тупиковая ветвь сети обязательно заканчивается городом. Навигатор может измерить длину пути по этой сети между любыми двумя городами. Можно ли за таких измерений гарантированно определить длину всей сети дорог?
Подсказка 1
Города и дороги сразу же намекают нам о том, что над задачей стоит думать в формате графа. Но что это за граф такой, в котором из любой вершины в любую другую можно попасть только одним единственным способом?
Подсказка 2
Наш граф является деревом, так как он связный и в нём не может быть циклов. Заметьте, что нам доступно не более 100 измерений. А чего в дереве из ста вершин будет менее сотни?
Подсказка 3
В дереве на ста вершинах всегда будет меньше ста листов. Подумайте над обходом, который обходит последовательно все листья и позволяет нам посчитать количество всех ребер в дереве.
Подсказка 4
Подвесим наше дерево за одну из вершин, не являющуюся листом, это будет корень. Рассмотрим вариант обхода. Выбираем случайный лист и ищем следующий для него, всегда будем идти по самому правому, еще не посещенному, ведущему вниз ребру, если таких нет, то поднимаемся на уровень выше, движемся таким образом, пока не окажемся в листе.
Подсказка 5
Повторяем данный алгоритм последовательно, пока не вернемся в изначальный лист. Сколько раз в результате такого обхода будет посещено каждое ребро?
Представим описанную в условии сеть дорог в виде графа, вершинами которого являются города, развилки и перекрестки, а ребрами — дороги. Покажем, что этот граф является деревом, то есть связным графом без циклов. Связность следует из того, что из любого города можно проехать в любой другой, а любая развилка или перекресток должны быть соединены с каким-либо городом. Допустим, что в нашем графе есть цикл. Он не содержит двух и более вершин-городов, так как в этом случае, двигаясь в противоположных направлениях по циклу, мы могли бы получить два различных пути из одного города в другой. Далее, пусть между некоторыми городами и существует путь, содержащий какую-то вершину цикла. Он обязательно найдется, так как иначе эта вершина не могла бы быть в нашей сети. Но тогда, добавляя к этому пути «кольцо» вдоль цикла, мы получим еще один путь между и Значит, циклов в нашем графе быть не может и это действительно дерево.
По условию задачи все концевые вершины дерева — города. Назовем эти города концевыми. Назовем также концевой город следующим за концевым городом если по пути из в на каждой развилке выбирается самая правая дорога. Выберем какой-нибудь концевой город и измерим расстояние между ним и следующим за ним концевым городом Потом измерим расстояние между и следующим за ним концевым городом и так далее. После не более чем таких измерений мы вернемся в исходный город
Покажем, что при этом каждая дорога нашей сети будет пройдена ровно два раза в противоположных направлениях. Рассмотрим произвольную дорогу. При удалении из дерева любого ребра оно распадается на две компоненты связности и причем каждая из них содержит города. Пусть изначально мы находились в Поскольку необходимо обойти все города сети, мы должны пройти по этой дороге два раза: первый раз — когда движемся из в а второй — когда возвращаемся обратно. Процедура обхода устроена таким образом, что мы посетим все вершины компоненты до того, как покинем ее, поэтому больше проходить по дороге из в не потребуется.
Наконец, сложив измеренные величины и разделив сумму пополам, мы получим длину всей сети.
Да, можно
Ошибка.
Попробуйте повторить позже
В стране городов, каждые два города соединены (двусторонними) авиалиниями, цены всех перелетов попарно различны (для любой пары городов цена перелета «туда» равна цене «обратно»). В каждом городе находится турист. Каждый вечер все туристы переезжают: богатые туристы — по самой дорогой, бедные — по самой дешевой линии, ведущей из соответствующего города. Через дней оказалось, что в каждом городе снова по одному туристу. За это время ни один турист не посетил никакой город дважды. При каком наибольшем такое возможно?
Ясно, что во время путешествий никакие два богатых туриста (или два бедных) не могли оказаться в одном городе. С другой стороны, условие задачи не запрещает находиться в одном городе одновременно бедному и богатому туристу, важно лишь, чтобы в начальный и в конечный момент в каждом городе было по одному туристу.
Допустим, что среди туристов имеется (или более) «богачей». Нарисуем граф: вершины — это города, из каждого города проведем самый дорогой выходящий путь. Тогда этот граф представляет собой лес, в каждом дереве которого все ребра направлены к корню, за исключением единственного ребра, выходящего из корня, — это ребро в дереве как бы двустороннее. Возьмем богача, который расположен ближе всего к корню своего дерева. Этот богач будет в течение ходов самым близким к корню. Значит, он проедет по городам, в которых еще не было других богачей. Это может быть только если граф — это путь из вершин, богачи занимают первые вершин этого пути (т. е. половину) и гуськом движутся по этому пути в сторону второй половины. Отсюда следует, что богачей не может быть больше а также что количество переездов тоже не превосходит
Тогда бедных туристов тоже и они двигаются по аналогичному «бедному» пути, причем в начальный момент они занимают всю вторую половину «богатого» пути. Эти пути не имеют общих звеньев, и при этом движение бедняков таково, что с каждым ходом они должны освобождать от своего присутствия очередную вершину второй половины богатого пути, смещаясь гуськом в первую половину. Тогда движение туристов может происходить, например, следующим образом.
Обозначим города Допустим, что путь
составлен из самых дорогих авиалиний, для определенности пусть цена перелета равна рублей. А «бедный путь» пусть сначала проходит по городам с большими четными номерами, потом — по городам с большими нечетными, а далее — с малыми: сначала с четными, потом с нечетными:
Цены этих авиалинии пусть убывают от до рубля при движении вдоль этого пути. Цены остальных авиалиний назначим произвольно в диапазоне от до рублей.
При
Ошибка.
Попробуйте повторить позже
В тайном обществе членов, и у каждого есть счет в банке (на счету целое число рублей, которое может быть отрицательным). Время от времени один из членов общества переводит со своего счета на счет каждого из своих друзей, состоящих в обществе, по рублю. Известно, что с помощью цепочки таких переводов они могут перераспределить имеющиеся на счетах средства произвольным образом. Докажите, что в этом обществе ровно пар друзей.
Рассмотрим граф, вершинами которого являются члены общества, а ребрами соединены пары друзей. Докажем, что этот граф является деревом. Ясно, что граф связен, иначе невозможно было бы перемещать средства между компонентами связности. Осталось доказать, что в графе нет циклов.
Предположим противное: пусть вершины образуют цикл. Для краткости введем обозначения и По условию несколькими переводами можно переместить 1 рубль из в т. е. добиться того, что счет вершины уменьшится на вершины — увеличится на а счета остальных вершин не изменятся. Рассмотрим такой способ, в котором суммарное количество переводов — наименьшее из возможных. Ясно, что порядок переводов не важен: результат определяется тем, сколько переводов сделано из каждой вершины.
Заметим, что найдется хотя бы одна вершина, из которой переводов не делалось. Действительно, в противном случае можно было бы уменьшить на количество переводов из каждой вершины, от чего результат, как легко видеть, не изменился бы.
Назовем вершины, из которых не делалось переводов, нулевыми. Вершина не может быть нулевой, так как ее счет должен в итоге уменьшиться, а уменьшение счета происходит только при переводах из этой вершины. Рассмотрим любую нулевую вершину Если она отлична от то все ее соседи — тоже нулевые, иначе счет в этой вершине увеличился бы. Если эти соседи отличны от то, аналогично, их соседи тоже нулевые, и так далее. Поскольку можно соединить путем с отсюда следует, что вершина тоже нулевая.
В результате всех переводов счет в вершине должен увеличиться на и это увеличение уже достигается переводом из Значит, все остальные соседи вершины должны быть нулевыми. В частности, вершина — нулевая. Поскольку отлична от все ее соседи тоже нулевые, в том числе Применяя это рассуждение к вершинам цикла по очереди, в итоге получаем, что и вершина должна быть нулевой. Противоречие.
Полученное противоречие доказывает, что в графе нет циклов, следовательно, он является деревом. В любом дереве количество ребер на меньше, чем количество вершин, следовательно, в нашем графе ровно ребер, что и требовалось.
Ошибка.
Попробуйте повторить позже
Из бесконечной шахматной доски вырезана связная клетчатая фигура. Оказалось, что чёрных клеток в ней ровно в раза больше, чем белых. Докажите, что фигуру можно разрезать на одинаковые связные фигурки, состоящие из четырёх клеток.
Подсказка 1
Количество клеток, из которых состоит фигура не фиксировано. Какие существуют способы доказать задачу для произвольного числа элементов?
Подсказка 2
Будем вести доказательство методом математической индукции. Сейчас сделать это затруднительно, поэтому мы можем сделать усиление индукции. Можно доказать, что данную фигуру можно разбить на Т-тетрамино.
Подсказка 3
Для перехода индукции необходимо найти Т-тетрамино, при удалении которого фигура останется связной. Постройте дерево, вершины которых будут соответствовать клеткам исходной доски, а ребра будут связывать черные и белые вершины. Как это интерпретация помогает сделать переход?
Подсказка 4
Докажите, что вы будете удалять Т-тетрамино, частично клетки которых являются листьями дерева, то условие связности сохранится.
Лемма. Если в связной клетчатой фигуре белых клеток, то черных клеток в ней не более, чем
Доказательство. Составим дерево следующим образом: в качестве корня возьмем произвольную белую клетку фигуры, на следующий ярус поместим все соседние с ней черные, далее — все соседние с ними белые, кроме уже помещенных ранее и т.д. Из первой вершины на следующий ярус ведет не более ребер, из всех остальных — не более, чем по откуда и следует искомая оценка.
_________________________________________________________________________________________________________________________________________________________________________________
Вернемся к доказательству задачи. В нашем случае количество черных клеток лишь на меньше максимального, поэтому каждая белая клетка граничит минимум с тремя черными. Покажем индукцией по числу белых клеток, что нашу фигуру можно разрезать на Т-тетрамино. База очевидна. Пусть для белых клеток все доказано. Возьмем фигуру с белой клеткой, рассмотрим путь максимальной длины в построенном выше дереве, а в нем — предпоследние слева и справа вершины. Обе они — белые (иначе после удаления одной связанной с ней висячей белой нарушится утверждение леммы). Хотя бы с одной из них связано три висячих черных. Вместе с ней они образуют Т-тетрамино. Удалив ее, оказываемся в условиях предположения индукции.