Поиск лучшего подграфа

Я пытаюсь решить следующую проблему:

Для данного связного графа G = (V, E) и вершины t ∈ V мне нужно найти подграф G'= (V', E'), где t ∈ V'. G' должен максимизировать некоторую целевую функцию и минимизировать количество содержащихся в ней вершин.

Max f(G')
Min |V'|

В этой многокритериальной задаче оптимизации максимизация f(G') более важна, чем минимизация количества вершин.

Проверим практическую ситуацию с похожей задачей:

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

Красная точка обозначает точку доступа, подключенную к проводной сети, а черные точки обозначают остальные точки доступа. Сплошные линии между точками доступа показывают нам  как они связаны

Рис. 1. Красная точка обозначает точку доступа, подключенную к проводной сети, а черные точки обозначают остальные точки доступа. Сплошные линии между точками доступа показывают нам, как они связаны.

Граф, который формирует соединения точек доступа на рис. 1, представляет связный граф G нашей задачи, а точка доступа, подключенная к проводной сети, является узлом t. Оптимизация графа, представляющего этот первоначальный проект сети, подразумевает поиск подграфа, содержащего точку доступа, подключенную к проводной сети, и максимизацию процента охваченных клиентских устройств (Max f(G')), сводя к минимуму количество точек доступа (Min |V'| ). Как и в задаче, главной целью является максимизация процента охваченных клиентских устройств.

Возможное решение

Рис 2. Возможное решение.

Используя алгоритм грубой силы, это похоже на проблему NP-полноты; поиск оптимального решения требует изучения всех потенциальных подграфов (все они содержат узел t) и проверки возможного решения. О чем вы думаете?


person Jorge Martinez Padron    schedule 17.11.2011    source источник
comment
Если мы немного специализируем задачу, будет ли нормально найти все кратчайшие пути вершин (используя f' в качестве метрики) за O(n^3) и найти вершину с минимальной (максимальной) суммой расстояний от других вершин? И использовать эту вершину как ответ?   -  person Eugen    schedule 17.11.2011
comment
Спасибо Евгений, интересная идея найти кратчайший путь между всеми вершинами, используя функцию f в качестве метрики. Обратите внимание, что я ищу подграф, а не узел; Я не понимаю ваш последний вопрос.   -  person Jorge Martinez Padron    schedule 17.11.2011
comment
Кажется, я немного неправильно понял ваш вопрос. Хорошо, может быть, я подумаю о проблеме в один из следующих дней.   -  person Eugen    schedule 17.11.2011
comment
Как говорится сейчас, эта проблема звучит сложно. Как выглядит f? Вам, вероятно, придется использовать различные свойства f, чтобы вести поиск в пространстве решений. Еще один способ смягчить проблему: достаточно ли x-аппроксимации? Чем более конкретную информацию вы можете предоставить, тем легче вам будет помочь.   -  person blubb    schedule 22.11.2011


Ответы (1)


Это NP-полное. Пусть f(G') = 1, если G' — полный граф на k вершинах, и 0 в противном случае. Теперь эта проблема заключается в том, чтобы просто выяснить, есть ли клика G размером k.

person Pål GD    schedule 29.01.2013