Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на графы / 9 сообщений из 9, страница 1 из 1
14.07.2011, 12:41
    #37351410
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
Вводные.
Есть граф из N < 100 вершин. С вершиной v0 связаны ребром* все остальные вершины. Большинство вершин связано ребрами как минимум с двумя вершинами. В среднем каждая вершина связана ребрами с большинством других вершин. У каждой вершины есть флаг, принимающий значение 1 или 0.

Задача.
Разделить граф на минимальное число пересекающихся субграфов (подграфов?), в каждом из которых все вершины будут связаны ребрами со всеми вершинами. Все субграфы должны содержать вершину v0. В каждом субграфе не должно быть более K<20 вершин с флагом 1 и не более J<20 вершин с флагом 0.

* Здесь и далее под связью ребром подразумевается прямая связь двух вершин. Связь двух вершин через третью (транзитивная?) недостаточна.

Есть у кого-нибудь мысли, как это решить?

Заранее благодарен.

P. S. Это не ВУЗовская задача. Прикладная.
...
Рейтинг: 0 / 0
14.07.2011, 12:45
    #37351428
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
Пометки насчет числа вершин сделал, чтобы было понятно, на какой размер данных должен быть ориентирован алгоритм. Пытаться применять его же на граф из миллиона вершин мне не потребуется.
...
Рейтинг: 0 / 0
14.07.2011, 13:08
    #37351520
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
an0nym,

Первое соображение: если выделить любую клику из графа за вычетом v0, то добавление к ней v0 даст клику с на единицу большим числом вершин. То есть, можно выкинуть из рассмотрения v0 и уменьшить на единицу лимит по соответствующему флагу.

Второе соображение: взять за основу алгоритм Брона-Кербоша .

Третье соображение - вернее, вопрос: нужно строго минимальное количество клик или достаточно близкого к минимальному?
...
Рейтинг: 0 / 0
14.07.2011, 13:12
    #37351532
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
AbstractionТретье соображение - вернее, вопрос: нужно строго минимальное количество клик или достаточно близкого к минимальному?Достаточно близкого. Если еще будет прикинуто, какова вероятность найти более оптимальное решение и на сколько оно будет оптимальнее - будет вообще круто. :)

Еще забыл заметить: время работы алгоритма может быть вплоть до нескольких суток - это редкая операция. Главное, чтобы не месяцы-года-века.
...
Рейтинг: 0 / 0
14.07.2011, 13:14
    #37351545
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
AbstractionПервое соображение: если выделить любую клику из графа за вычетом v0, то добавление к ней v0 даст клику с на единицу большим числом вершин. То есть, можно выкинуть из рассмотрения v0 и уменьшить на единицу лимит по соответствующему флагу. Хорошее соображение. И спасибо за "клику" - не знал, как это называется, теперь хотя бы искать можно.
...
Рейтинг: 0 / 0
14.07.2011, 13:25
    #37351582
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
an0nym,

С таким временем, N и на современных процессорах, я бы не мудрствуя лукаво развалил задачу надвое: сначала найти Броном-Кербошем все подходящие по условию клики, а потом решать задачу выбора минимального покрытия множества подмножествами (традиционно решается "жадными" алгоритмами). Памяти должно хватить.
...
Рейтинг: 0 / 0
14.07.2011, 13:28
    #37351591
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
Abstraction,

а можете ссылку на жадный алгоритм кинуть?
...
Рейтинг: 0 / 0
14.07.2011, 14:02
    #37351693
Abstraction
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
an0nym,

Ну, вот какая-то презентация, вроде даже толковая.
Задача о покрытии множества в Вики (русскоязычный вариант есть, но он несколько беднее).
...
Рейтинг: 0 / 0
14.07.2011, 14:25
    #37351756
an0nym
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Задача на графы
Abstraction,

теперь информации достаточно.

Спасибо вам, бОльшую часть задачи вы за меня решили. Осталось только выделить время и реализовать.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Задача на графы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]