Вопрос

Я столкнулся с следующей проблемой:

stak2is= {g имеет ровно 2 независимых наборах}

Предполагая, что данный график G, я могу найти независимый набор, как я могу проверить, имеет ли g ровно 2 независимых наборах.

(я могу проверить, содержит ли график независимый набор в O (1), а также найдите несколько независимых наборов в O (1))

Я думал о том, чтобы найти какой-то независимый набор (если есть какие-либо) размера k, а затем удалить одну вершину из набора и проверять, имеет ли график все еще независимый набор размеров k - Если я проверяю вершину вершину на график именно так, как именно.

Проблема моя идея проверяет только в том случае, если граф G содержит не менее 2 независимых наборов и не совсем.

У кого-нибудь есть идея, как я могу проверить, имеет ли график ровно 2 независимых наборах (в многочленом времени и учитывая тот факт, что найдут и проверьте, существует ли независимый набор o (1))?

Любые подсказки или идеи будут оценены :) Спасибо

Это было полезно?

Решение

Прежде всего, если вы можете определить, является ли график $ G $ , содержит независимый набор размеров $ K $ , тогда вы также можете найти такой набор эффективно. Это известно как «сокращение поиска в решении». Вот основная идея. Выберите произвольную вершину $ V $ и удалите его. Если график все еще имеет независимый набор размеров $ K $ , затем продолжайте идти. В противном случае все независимые наборы размера $ K $ содержат $ V $ . Соответственно, удалите $ V $ и все его соседи, и найдите независимый набор размеров $ k-1 $ В оставшемся графе. Таким образом, вы можете восстановить независимый набор размеров $ k $ .

Во-вторых, как проверить, содержит ли график , по меньшей мере, два независимых набора размеров $ K $ , предполагая, что $ k \ geq 2 $ . Во-первых, вы определяете, содержится ли в не менее одного. Предположим, что он делает, скажем, $ i $ . Если $ j $ - любой другой независимый набор, то $ i \ setminus j $ и $ j \ setminus i $ непустые (поскольку $ | i |= | j | $ ). В частности, если $ x \ in i \ setminus j $ и $ y $ - это любая другая вершина в $ i $ , то даже после добавления края $ (x, y) $ , установленный $ J $ будет представлять собой независимый набор.

Это приводит к следующему алгоритму: для каждой пары вершин $ x, y \ in i $ , проверьте, будет ли $ G + (x, y) $ содержит независимый набор размеров $ k $ . Если это так, этот независимый набор обязательно отличается от $ i $ . И наоборот, если независимый набор размеров $ k $ отличается от $ i $ , то обязательно это будет Быть независимым набором в $ g + (x, y) $ для некоторых $ x, y \ in i $ .

В-третьих, как проверить, содержит ли график именно два независимых набора размеров $ k $ . Это то же самое, что проверять, содержит ли графический график, по меньшей мере, три независимых множеств . Я думаю, что в этот момент лучше, если вы попытаетесь обобщить вышеупомянутый аргумент от двух до трех независимых наборов. Вы можете застревать, но вы не будете знать, пока не попробуете.

Другие советы

Если вам разрешено find a an aref
Class="Математический контейнер"> $ k $ в $ \mathcal o (1) $ , то то, что вы написали, это em> почти решение.Просто дважды найти размер размера $ K $ , а после этого проверьте, если еще есть еще один.

Но обычно для Oracle Machines вам не разрешено найти (в этом примере) находится в пределах $ \ mathcal o (1) $ time, а выДопускаются только для CHECK, если кто-то существует в $ \ mathcal o (1) $ .

Я надеюсь, что это поможет!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с cs.stackexchange
scroll top