|
|
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
Вводные. Есть граф из N < 100 вершин. С вершиной v0 связаны ребром* все остальные вершины. Большинство вершин связано ребрами как минимум с двумя вершинами. В среднем каждая вершина связана ребрами с большинством других вершин. У каждой вершины есть флаг, принимающий значение 1 или 0. Задача. Разделить граф на минимальное число пересекающихся субграфов (подграфов?), в каждом из которых все вершины будут связаны ребрами со всеми вершинами. Все субграфы должны содержать вершину v0. В каждом субграфе не должно быть более K<20 вершин с флагом 1 и не более J<20 вершин с флагом 0. * Здесь и далее под связью ребром подразумевается прямая связь двух вершин. Связь двух вершин через третью (транзитивная?) недостаточна. Есть у кого-нибудь мысли, как это решить? Заранее благодарен. P. S. Это не ВУЗовская задача. Прикладная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 12:41 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
Пометки насчет числа вершин сделал, чтобы было понятно, на какой размер данных должен быть ориентирован алгоритм. Пытаться применять его же на граф из миллиона вершин мне не потребуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 12:45 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
an0nym, Первое соображение: если выделить любую клику из графа за вычетом v0, то добавление к ней v0 даст клику с на единицу большим числом вершин. То есть, можно выкинуть из рассмотрения v0 и уменьшить на единицу лимит по соответствующему флагу. Второе соображение: взять за основу алгоритм Брона-Кербоша . Третье соображение - вернее, вопрос: нужно строго минимальное количество клик или достаточно близкого к минимальному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 13:08 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
AbstractionТретье соображение - вернее, вопрос: нужно строго минимальное количество клик или достаточно близкого к минимальному?Достаточно близкого. Если еще будет прикинуто, какова вероятность найти более оптимальное решение и на сколько оно будет оптимальнее - будет вообще круто. :) Еще забыл заметить: время работы алгоритма может быть вплоть до нескольких суток - это редкая операция. Главное, чтобы не месяцы-года-века. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 13:12 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
AbstractionПервое соображение: если выделить любую клику из графа за вычетом v0, то добавление к ней v0 даст клику с на единицу большим числом вершин. То есть, можно выкинуть из рассмотрения v0 и уменьшить на единицу лимит по соответствующему флагу. Хорошее соображение. И спасибо за "клику" - не знал, как это называется, теперь хотя бы искать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 13:14 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
an0nym, С таким временем, N и на современных процессорах, я бы не мудрствуя лукаво развалил задачу надвое: сначала найти Броном-Кербошем все подходящие по условию клики, а потом решать задачу выбора минимального покрытия множества подмножествами (традиционно решается "жадными" алгоритмами). Памяти должно хватить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 13:25 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
Abstraction, а можете ссылку на жадный алгоритм кинуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 13:28 |
|
||
|
Задача на графы
|
|||
|---|---|---|---|
|
#18+
an0nym, Ну, вот какая-то презентация, вроде даже толковая. Задача о покрытии множества в Вики (русскоязычный вариант есть, но он несколько беднее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2011, 14:02 |
|
||
|
|

start [/forum/topic.php?fid=16&gotonew=1&tid=1342831]: |
0ms |
get settings: |
8ms |
get forum list: |
24ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
215ms |
get topic data: |
9ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 559ms |

| 0 / 0 |
