Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление дорог между городами, задача на графы 
:(
    Опции темы
Чупакабро
Дата 20.2.2010, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Помогите решить задачу:
Есть N городов. Между некоторыми из них имеются дороги, которые нигде не пересекаются. Каждая дорога задаётся парой городов, которые она соединяет. Какое минимальное число дорог нужно удалить, чтобы из города с номером i нельзя было проехать в город с номером j.
Буду благодарен за подсказку, куда копать или за ссылку
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
1000000dollars
Дата 20.2.2010, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



При текущей постановке задачи от нуля до бесконечности.
Копать в теорию графов и сетей.
PM MAIL   Вверх
Чупакабро
Дата 20.2.2010, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(1000000dollars @  20.2.2010,  15:58 Найти цитируемый пост)
При текущей постановке задачи от нуля до бесконечности.

Что не так с постановкой задачи? мне нужен алгоритм, разве его не существует при такой постановке?
Цитата(1000000dollars @  20.2.2010,  15:58 Найти цитируемый пост)
Копать в теорию графов и сетей. 

Очень растяжимое понятие... Смотрел максимальный поток и минимальное сечение, но что-то это, видимо, не то.

--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
Pavia
Дата 20.2.2010, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Задача такова разделить граф на два графа путем удаления минимального числа ребер. При этом две данных вершины попа в разные подграфы.
Я бы посмотрел в сторону минимального разрезание графа (graph cut).

Если найдешь решения напиши.
PM MAIL   Вверх
maxdiver
Дата 20.2.2010, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да, это постановка задачи нахождения минимального разреза между двумя заданными вершинами. Обычное решение - с помощью графовых потоков: одну вершину делаем истоком, другую стоком, пропускные способности каждого ребра полагаем равными их стоимостям, ищем максимальный поток в полученном графе (см. алгоритм Форда-Фалкерсона), и затем к одной компоненте относим все вершины, достижимые из истока по не полностью насыщенным рёбрам, к другой компоненте относим все остальные вершины, а сами искомые рёбра, которые надо удалить - это все рёбра между разными компонентами.
PM MAIL WWW ICQ   Вверх
Чупакабро
Дата 23.2.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо всем ответившим, но окончательно вопрос так и не прояснился. Вот, посмотрите:

Присоединённый файл ( Кол-во скачиваний: 22 )
Присоединённый файл  ______.JPG 94,10 Kb
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
maxdiver
Дата 23.2.2010, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ещё раз: в первую группу отнесём вершины, достижимые из истока по не полностью насыщенным рёбрам.

Видимо, не получилось потому, что для графа с неориентированными вершинами есть тонкость: каждое неор. ребро распадается на 2 ор. ребра в обе стороны, а у каждого этого ребра есть ещё по собственному обратному ребру. По обратному ребру, согласно определению, можно пройти, если по соответствующему прямому ребру протек ненулевой поток.

Поэтому из 2 в 3 и обратно мы пройти могли - по обратным рёбрам. Ещё, скажем, мы могли бы пройти из 5 в 2 или из 6 в 3 (но они не достижимы из истока).
PM MAIL WWW ICQ   Вверх
Чупакабро
Дата 26.2.2010, 19:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(maxdiver @  23.2.2010,  23:34 Найти цитируемый пост)
По обратному ребру, согласно определению, можно пройти, если по соответствующему прямому ребру протек ненулевой поток

Ну, если так, то я программу написал правильно...
Спасибо
--------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 00459B8B in module 'Project1.exe'. Read of address 0000019C'. Process stopped. Use Step or Run to continue.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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