Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Графы 
:(
    Опции темы
KIDD
Дата 29.4.2004, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Товарищи, есть у кого алгоритм доказательства двудольности графа на основе матрицы смежности, или может подскажите где это найти?

Спасибо
PM MAIL   Вверх
achmed
Дата 6.5.2004, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ну наверное надо посмотреть на определение и немного подумать ....

Шаг 1
Все вершины помечаем синим цветом.
Выбираем произвольную вершину v графа G,
помечаем ее красным цветом
Шаг 2
Ищем синюю вершину, не смежную ни одной красной вершине.
Если таковая находится, то красим ее в красный цвет повторяем, Шаг 2,
иначе переход в Шаг 3.
Шаг 3
если синих вершин не осталось, то граф двудольный (можно произвольно разбить мн-во красных вершин на две часи),
иначе,
проверяем мн-во синих вершин на смежность, если есть хоть одна пара смежных синих
вершин, то граф не двудольный, если нет, то граф двудольный.

Вот. Надеюсь понятно как эдесь используется матрица смежности smile.gif. Вместо покраски
можно использовать стек.

Интересно увидеть другие варианты, быть может более оптимальные.

Это сообщение отредактировал(а) achmed - 6.5.2004, 18:22
PM MAIL   Вверх
njn
Дата 13.5.2004, 09:10 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Подскажите, мошт глупый вопрос конечно, но все таки: Как с помошью алгоритма поиска в ширину доказать что граф двудольный.
Всем
Сенк
  Вверх
Фумска
Дата 3.6.2004, 12:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Люди!!! Помогите пожалуйста!!!
Нужно срочно решить три задачи на Паскале, а я не знаю как:
1. перебор из 0 и 1
2. Написать программу, проверяющую связность графа
3. Построить дерево кратчайших путей (из заданной вершины) в графе
Заранее всем спасибо... вы очень меня выручите...
  Вверх
Blacksnow
Дата 4.8.2004, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Перебор 0-1 векторов.
Способы:
1. Сложение
2. Коды Грея (на каждом шаге меняеться только одна компонента)
3. Цепной код
Алгоритмы:
1. берешь нулевой вектор длины n и прибавляешь 1 на каждом шаге, пока не получиться единичный. Пример:
000
001
010
011
100
101
110
111
2. в основе лежит следуящая рекурсия: зафиксируем нулевое значение m компоненты, переберем все вектора длины m-1, и сменим значение m компоненты на 1. Пример:
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
1111
1110
1011
1001
1000
3. строиться 0-1 вектор длины 2^n, затем все 0-1 вектора длины n получаються циклическим сдвигом из построенного. Пример для n=4:
0111101011001000
0011110101100100
0001111010110010
0000111101011001.
***
В каком виде представлен граф?
***
Дерево кратчайших путей строиться по алгоритму Дейкстры, Беллмана-Форда и Левита.
Описывать алгоритмы долго, поищи в инете.

Это сообщение отредактировал(а) Blacksnow - 5.8.2004, 07:24
PM MAIL ICQ   Вверх
Тиньков
Дата 9.8.2004, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



KIDD, njn
Проводим поиск в ширину, причём для каждой вершины запоминаем шаг, на котором она была этим поиском охвачена. Если нет ни одной пары смежных вершин с одинаковым значением шага, то граф - двудольный.

Фумска
2. Проводим поиск в ширину (или можно в глубину), помечая каждую охваченную вершину. Если останутся непомеченные - значит, граф несвязный.
3. Опять же поиск в ширину smile.gif) из заданной вершины, для каждой охваченной вершины запоминаем номер шага (т.е. расстояние до неё). Чтобы потом найти кратчайший путь из любой вершины, переходим из неё в любую соседку, имеющую меньший номер, до тех пор, пока не придём в начальную.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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