Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Максимизировать сумму произведения вершин и ребер 
:(
    Опции темы
nettby
Дата 10.5.2009, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2009

Репутация: нет
Всего: нет



Всем привет!

Знает ли кто небудь как можно решить такую задачу:

Есть граф G=(V, E).
Каждой вершине v из V присвоена метка l_v из множества A={1, 0, -1}.
У каждого ребра e из E есть вес w_e.

Выберем все вершины с меткой равной 0 и обозначим это множество V0.

Надо так перемаркировать вершины из V0 (присвоить или 1 или -1), чтобы следующая сумма была максимальной:

с(G) = СУММА(w_e * l_v * l_u), где e=(u, v) in E


Надо найти алгоритм который решит данную задачу за полиномиальное время или доказать что задача (есть параметр k и граф G, можно ли выполнить перемаркировку вершин V0 из G, так что с(G)>=k) является NP-полной.

Любые идеи или комментарии приветствуются.
PM MAIL   Вверх
maxdiver
Дата 10.5.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Иными словами, нужно раскрасить вершины графа в два цвета (при том, что он уже частично раскрашен) так, чтобы максимизировать сумму весов рёбер, оба конца которых одного цвета.

Почему-то кажется, что задача NP-полная, но никаких доводов у меня пока нет. Надо думать... smile
PM MAIL WWW ICQ   Вверх
maxdiver
Дата 10.5.2009, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



А, блин, вот если бы не было никакой предварительной раскраски графа (т.е. если бы V0 = V), то это же в точности задача минимального разреза, которая решается алгоритмом нахождения максимального потока (или специальным алгоритмом, например, Stoer-Wagner) полиномиально.

Осталось понять, не ухудшает ли ничего предварительная раскраска...
PM MAIL WWW ICQ   Вверх
nettby
Дата 10.5.2009, 18:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2009

Репутация: нет
Всего: нет



Цитата

А, блин, вот если бы не было никакой предварительной раскраски графа (т.е. если бы V0 = V), то это же в точности задача минимального разреза, которая решается алгоритмом нахождения максимального потока (или специальным алгоритмом, например, Stoer-Wagner) полиномиально.

Осталось понять, не ухудшает ли ничего предварительная раскраска... 


Ага, мне уже тоже подсказали на другом форуме что эта задача сводится к задаче минимального разреза.
PM MAIL   Вверх
maxdiver
Дата 10.5.2009, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 29.1.2008
Где: Саратов

Репутация: 16
Всего: 18



Цитата
Осталось понять, не ухудшает ли ничего предварительная раскраска...

Можно попробовать ввести две фиктивные вершины для каждого цвета, и соединить каждую из предварительно раскрашенных вершин с фиктивной ребром веса "бесконечность" (чтобы вершины одного цвета уж точно попали в одну группу), а две фиктивные вершины соединить ребром веса "минус бесконечность" (чтобы вершины одного цвета случайно не попали в одну группу). Но тогда возникает проблема, что возникают рёбра отрицательного веса, поэтому многие алгоритмы неприменимы. Поэтому проблема с пред-раскраской остаётся...

Цитата
Ага, мне уже тоже подсказали на другом форуме что эта задача сводится к задаче минимального разреза.

По всем форумам рассылку что ли сделал? smile

Это сообщение отредактировал(а) maxdiver - 10.5.2009, 20:44
PM MAIL WWW ICQ   Вверх
nettby
Дата 11.5.2009, 01:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 10.5.2009

Репутация: нет
Всего: нет



Цитата

По всем форумам рассылку что ли сделал?

Неа, в двух спросил. В этом и еще в другом smile

Я думаю что завтра напишу полное решение и напишу сюда, вдруг кому пригодится.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0442 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.