Докажите или приведите контрпример: для любого связного графа G верно, что минимальное число разбиений вершин на два множества, при котором каждое ребро пересекает границу разбиения не менее одного раза, равно числу ребер мостов в G; обсудите связь этой задачи с алгоритмами поиска мостов и сложностью вычисления минимального разреза
Контрпример — утверждение неверно. Контрпримеры: - Пусть GGG — путь из четырёх вершин (три ребра). Все три ребра — мосты, их число равно 333. Но граф двудольный, поэтому одна двоичная разметка (разбиение на две доли) делает концы всех рёбер разными: достаточно одного разбиения. То есть минимальное число разбиений равно 1≠31\neq 31=3. - Треугольник C3C_3C3: мостов нет (число мостов 000), но ни одно одноразбиение не пересекает все три ребра (любое разбиение разделяет одну вершину от двух и режет ровно 222 ребра), поэтому требуется как минимум 222 разбиения; значит минимум 2≠02\neq 02=0. Обобщённая корректная формулировка и доказательство Рассмотрим задачу: найти минимальное число двоичных разбиений вершин (каждое разбиение — бит), таких что для каждого ребра есть хотя бы одно разбиение, разделяющее его концы. Если у нас ttt таких разбиений, каждому вершинному набору соответствует битовая строка длины ttt. Условие «для каждого ребра концы различаются в какой‑то бит» эквивалентно требованию, что смежные вершины имеют разные бит‑строки, т.е. все смежные вершины получают разные «цвета». Значит эти бит‑строки задают правильную раскраску вершин в не более чем 2t2^t2t цветов. Обратно, любая раскраска в kkk цветов даёт t=⌈log2k⌉t=\lceil\log_2 k\rceilt=⌈log2k⌉ битов (достаточно сопоставить каждому цвету уникальную битовую строку длины ttt). Следовательно минимальное ttt равно t=⌈log2χ(G)⌉,
t=\big\lceil \log_2 \chi(G)\big\rceil, t=⌈log2χ(G)⌉,
где χ(G)\chi(G)χ(G) — хроматическое число графа GGG. Выводы и связь с алгоритмами и сложностью - Количество мостов в графе не определяет это минимальное ttt; приведённые контрпримеры это показывают. - Нахождение мостов (алгоритм Тарьяна / DFS) делается за O(n+m)O(n+m)O(n+m), но эти сведения не дают значения ttt. - Поскольку вычисление χ(G)\chi(G)χ(G) — NP‑полная задача, вычисление t=⌈log2χ(G)⌉\;t=\lceil\log_2\chi(G)\rceilt=⌈log2χ(G)⌉
также NP‑трудно. Для частных случаев есть простые ответы: если GGG двудольный и содержит ребро, t=1t=1t=1; для полного графа KnK_nKn имеем t=⌈log2n⌉t=\lceil\log_2 n\rceilt=⌈log2n⌉. Кратко: утверждение ложно; правильная характеристика — минимальное число разбиений равно ⌈log2χ(G)⌉\lceil\log_2\chi(G)\rceil⌈log2χ(G)⌉; вычисление этого числа в общем случае NP‑трудно, тогда как поиск мостов полиномиален.
Контрпримеры:
- Пусть GGG — путь из четырёх вершин (три ребра). Все три ребра — мосты, их число равно 333. Но граф двудольный, поэтому одна двоичная разметка (разбиение на две доли) делает концы всех рёбер разными: достаточно одного разбиения. То есть минимальное число разбиений равно 1≠31\neq 31=3.
- Треугольник C3C_3C3 : мостов нет (число мостов 000), но ни одно одноразбиение не пересекает все три ребра (любое разбиение разделяет одну вершину от двух и режет ровно 222 ребра), поэтому требуется как минимум 222 разбиения; значит минимум 2≠02\neq 02=0.
Обобщённая корректная формулировка и доказательство
Рассмотрим задачу: найти минимальное число двоичных разбиений вершин (каждое разбиение — бит), таких что для каждого ребра есть хотя бы одно разбиение, разделяющее его концы. Если у нас ttt таких разбиений, каждому вершинному набору соответствует битовая строка длины ttt. Условие «для каждого ребра концы различаются в какой‑то бит» эквивалентно требованию, что смежные вершины имеют разные бит‑строки, т.е. все смежные вершины получают разные «цвета». Значит эти бит‑строки задают правильную раскраску вершин в не более чем 2t2^t2t цветов. Обратно, любая раскраска в kkk цветов даёт t=⌈log2k⌉t=\lceil\log_2 k\rceilt=⌈log2 k⌉ битов (достаточно сопоставить каждому цвету уникальную битовую строку длины ttt). Следовательно минимальное ttt равно
t=⌈log2χ(G)⌉, t=\big\lceil \log_2 \chi(G)\big\rceil,
t=⌈log2 χ(G)⌉, где χ(G)\chi(G)χ(G) — хроматическое число графа GGG.
Выводы и связь с алгоритмами и сложностью
- Количество мостов в графе не определяет это минимальное ttt; приведённые контрпримеры это показывают.
- Нахождение мостов (алгоритм Тарьяна / DFS) делается за O(n+m)O(n+m)O(n+m), но эти сведения не дают значения ttt.
- Поскольку вычисление χ(G)\chi(G)χ(G) — NP‑полная задача, вычисление
t=⌈log2χ(G)⌉\;t=\lceil\log_2\chi(G)\rceilt=⌈log2 χ(G)⌉ также NP‑трудно. Для частных случаев есть простые ответы: если GGG двудольный и содержит ребро, t=1t=1t=1; для полного графа KnK_nKn имеем t=⌈log2n⌉t=\lceil\log_2 n\rceilt=⌈log2 n⌉.
Кратко: утверждение ложно; правильная характеристика — минимальное число разбиений равно ⌈log2χ(G)⌉\lceil\log_2\chi(G)\rceil⌈log2 χ(G)⌉; вычисление этого числа в общем случае NP‑трудно, тогда как поиск мостов полиномиален.