Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разбитие одного графа на несколько 
:(
    Опции темы
Mayk
Дата 28.6.2005, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



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

У кого какие идеи как это можно сделать?

Это сообщение отредактировал(а) Mayk - 29.6.2005, 10:30


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
SoWa
Дата 29.6.2005, 03:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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



А это граф или орграф? Это имеет значение.


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
~FoX~
Дата 29.6.2005, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



SoWa
Скорее всего имеется ввиду ориентированный граф.


Mayk
Если есть кусок/ки котрый нельзя пройти не проходя два раза по ребру его и делай отдельным графом и исключай из исходного. Проверяй оба графа на "проходимость"........Количество полученных графов будет равно количеству "непроходимых" кусков.


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Mayk
Дата 29.6.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



SoWa
Граф не ориентированый. Хотя про ориентированный тоже было бы интересно послушать. Задача представляет теоретический интерес.

~FoX~
А не может случиться так, что в один кусок можно поместить два и более ребра, через которые нельзя было пройти в исходном графе?



--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
~FoX~
Дата 29.6.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


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

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



Цитата(Mayk @ 29.6.2005, 11:30)
Граф не ориентированый. Хотя про ориентированный тоже было бы интересно послушать. Задача представляет теоретический интерес.

Что за граф который нельзя обойти?

Цитата(Mayk @ 29.6.2005, 11:30)
А не может случиться так, что в один кусок можно поместить два и более ребра, через которые нельзя было пройти в исходном графе?

Так вот и выдиляй "непроходимое" ребро и еще одно в отдельный граф.



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
esperant0
Дата 29.6.2005, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата
Цитата(Mayk @ 29.6.2005, 11:30)
Граф не ориентированый. Хотя про ориентированный тоже было бы интересно послушать. Задача представляет теоретический интерес.

Что за граф который нельзя обойти?


Обычный не Эйлеровский граф. Возьмите хотя бы задачу о мостах в Кенисберге.


--------------------
 
 Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer 

Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором  а затем стерто и которое он - пользователь не мог видеть. 
PM MAIL   Вверх
Mayk
Дата 29.6.2005, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Цитата
Что за граф который нельзя обойти?

...пройдя через каждое ребро лишь раз. Например тетраэдр. Или (топологически равный ему) значок мерса(грубо говоря, буква Y вписанная в окружность). Это нельзя нарисовать не отрывая карандаш от бумаги.

Цитата
Так вот и выдиляй "непроходимое" ребро и еще одно в отдельный граф.

Определить то, что одно ребро мешает можно достаточно просто. А как определить, что если подцепить еще пару ребёр, то исходному графу полегчает?


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
poor_yorik
Дата 1.7.2005, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Шаг 1. Выделяешь все копоненты связности. Для каждой делаешь шаг 2. Ответы сумируешь.
Шаг 2. А) Если все вершины графа имеют парную степень, то значит можно обойти по одному разу. Ответ - 1. То же и для графа с одной вершиной.
Б) Если есть вершины нечетной степени, то ответ - (количество вершин нечетной степени/2).

Задача из Всеукраинской олипиады по программированию этого года. smile
--------------------
Семь раз отмерь, один раз - откомпиль.... Семь раз отпей, один раз - отлей... Семь раз отъешь, один раз - не жадничай и другим дай...
PM MAIL YIM   Вверх
Mayk
Дата 1.7.2005, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Цитата(poor_yorik @ 1.7.2005, 12:16)
Если все вершины графа имеют парную степень, то значит можно обойти по одному разу

Вообще-то, если нечетных вершин две, то тоже можно за раз обойти. Нужно начать с нечетной вершины. Пример: квадрат и треугольник, у которых одна сторона общая.

Цитата(poor_yorik @ 1.7.2005, 12:16)
То же и для графа с одной вершиной

В моём случае граф с одной вершиной гарантированно имеет ноль ребер. Задача стукнула в голову после непродолжительного рисования линий в OpenGL'е(там линии можно рисовать так- координата 0 и координата 1 определяет первую линию, координата n-1 и координата n, где n >= 2 определяют последующую линию).

Это сообщение отредактировал(а) Mayk - 1.7.2005, 21:34


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
poor_yorik
Дата 2.7.2005, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Mayk, как раз это и правильно. Мой алгоритм находит минимальное количество частей на которые нужно разбить даный граф, чтобы в каждом из полученых графов можно было обойти все ребра по одному разу.
А если у графа две непарные вершины, то начиная с одной из них мы можем обойти все ребра по разу и закончить в другой вершине. Значить граф нужно разбить на один граф ( smile ), что аналогично тому, чтобы даный граф ни на что не разбивать.
Алгоритм правильный, это я гарантирую. smile

--------------------
Семь раз отмерь, один раз - откомпиль.... Семь раз отпей, один раз - отлей... Семь раз отъешь, один раз - не жадничай и другим дай...
PM MAIL YIM   Вверх
Guest
Дата 12.7.2005, 17:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











poor_yorik
Вроде работает, но на счет связности кусуов не очень очевидно получается smile
(при условии связности исходного графа)
  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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