![]() |
|
|
![]()
|
|
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
Дано: граф, напоминающий карту дорог, с той лишь разницей, что относительное положение вершин-городов на плоскости роли не играет. Требуется: перемещая вершины на плоскости, построить изображение этого графа с наименьшей суммарной длинной дорог и с наименьшим количеством их пересечений. Ткните, плиз, в алгоритм решения или в научное название этой проблемы. Гуглем искал - не нашёл, похоже я просто не знаю правильных ключевых слов.
-- Update 1 Дискуссия показала, что требуется минимизировать следующую функцию: W = ( (I0 - I(g))^2 + (L0 - L(g))^2 )^1/2, I(g) - количество пересечений рёбер графа g L(g) - суммарная длинна рёбер графа g I0 = 0 - идеальное-нулевое количество пересечений L0 = |Eg| * L1 - идеальная суммарная длина рёбер L1 - единичная длина ребра Вопрос о том, как это сделать остаётся открытым. -- Update 2 Реальный граф имеет около 850 вершин и 3000 рёбер. Каждая вершина связана, в среднем, с 5-ю другими. Максимальное число связей 103 и минимальное 1. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: нет Всего: 39 |
-------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
Тут вас надо тыкнуть в Базисные знания. НЕЛЬЗЯ минимизировать ОДНОВРЕМЕННО по ДВУМ КРИТЕРИЯМ вывод: в вашей постановке задеча не решабельна. топик закрыт. Поясню, в данной постановке задача нерешаема, посему дальнейшее обсуждение исходной задачи будет профанацией. Соответсвенно надо или менять постановку задачи или закрывать топик. То что вам предложили выше не может быть решением ВАШЕЙ задачи Это сообщение отредактировал(а) esperant0 - 22.11.2007, 15:39 -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: нет Всего: 39 |
эй, по-легче, я предложил ключевые слова поиска и не называл это решением. Вы бы лучше предложили что-нибудь по поводу минимизации пересечений рёбер. А фразу , пожалуйста, поясните. Что есть критерий? Функционал? = Нельзя минимизировать функционал? -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| SaDFromSpb |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 263 Регистрация: 5.4.2006 Где: Санкт-Петербург Репутация: нет Всего: 3 |
stab, не знаю, вкурсе ты или нет, но есть готовая библиотека для визуализации графов. Graphviz называется. http://www.graphviz.org/Documentation.php Там у них есть ссылочка с названием Theory.
Может быть поможет... -------------------- "За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001) |
|||
|
||||
| esperant0 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
Cтоп. Я не говорил что вы дали решение. Вы дали ссылку, а условие автора не имеет решение. Каков смысл в ссылке? Никакого. Добавлено через 2 минуты и 7 секунд
Пожалуйса. Пусть f(x) количество пересечений g(x) длина ребер s(t) набор огранечений задачи тогда { f(x) -> min g(x) -> min constraints : } В общем случае нерешаема. Это известный факт. Добавлено через 3 минуты и 12 секунд
Вряд ли это библиотека решает нерешаемую задачу. Разве что математика противоречива -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
||||
|
|||||
| esperant0 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
нельзя одновременно минимизировать два функции. (В общем случае) -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
marcusmae, это скорее интелу надо эту ссылочку заслать. хотя интересно
SaDFromSpb, спасибо, глянул. для планарных графов работает, для остальных - тихий ужас. esperant0, наверное вы хотели сказать, что не знаете как это делается. да, действительно, это несколько сложнее решения задачи коммивояжера по букварю. специально для вас нарисовал картинку, далёкую от совершенства, т.к. на результирующем графе длину некоторых рёбер можно свести к единичной - базисной. может быть вы знаете алгоритм, который строил бы граф с заданным количеством пересечений рёбер или сообщал о невозможности его построения? Присоединённый файл ( Кол-во скачиваний: 23 )
graphs.gif 4,93 Kb-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
esperant0, на счёт минимизации вы сильно ошибаетесь. если есть оценочная функция от всех рёбер графа, то как она считается - дело десятое. например, как произведение кол-ва пересечений и суммарной длинны рёбер или выдаёт вектор из двух этих значений. главное чтобы существовала возможность сопоставления по принципу больше-меньше. но хотелось бы обойтись без перебора всех возможных размещений вершин на плоскости.
где можно об этом почитать? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| esperant0 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
Нет я хочу сказать что невозможно минимизировать одновременно две функции.Не верите Вот вам задача 2x -> min -x - > min 10>x>-10 ------------------------- Минимум одной ф-ии в точке 10 минимум второй в точке -10. А вот в какой точке минимум одновременно двух ф-й да не в какой. ------------ Где это написано. А в свое время рассказывал это в курсе исследования операций поищите Добавлено через 6 минут и 22 секунды
Минимизировать одновременно две фунции нельзя. ( в общем случае) Можно минимизировать сумму этих ф-ий, но одновременно две функции минимизировать нельзя. --------------------------- Пример: завод цель 1) минимизировать количество работников 2) минимизировать минус прибыль фирмы. Минимизировать количество работников это никого не нанимать Максимизировать прибыль это нанять бесконечное число работников. ------------- Как же минимизировать одновременно две функции? (пример не формальный но суть ясна_ -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
||||
|
|||||
| 0000 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 208 Регистрация: 11.7.2006 Где: Нижний Новгород Репутация: нет Всего: 5 |
esperant0,
ээээ...а вы не путаете минимум функции с критерием минимизации.. вы не минимум функций вычисляете, а ищите как можно меньшее значение функции... в том примере есть множество допустимых решений от -10 до 10... в соответствии с этими решениями можно вычислять значения функций f1 и f2, которые вы хотите минимизировать (не найти минимум, а минимизировать) Поскольку у вас 2 критерия - надо оценивать по ним обоим... например при x = 1 получается (f1,f2)=(2,-1) при x = 2 получается (f1,f2)=(4,-2)...по сравнению со значениями функции при (x == 1) это значение сравнивать нельзя, поскольку f2 улучшилась, а f1 ухудшилась с нашей точки зрения (для нас лучше та, что меньше, потому что критерий на минимум)...вот так и проверяешь... если ты можешь сравнить, что у тебя при каком-то x и f1 улучшилась, и f2 улучшилась по сравнению со значением в какой-то точке xo - значит точка xo в ответ не входит, поскольку нашли точку лучше |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
берёте и по отдельности каждую минимизируете. если надо одновременно, значит функции являются параметрами для целевой, которую и надо минимизировать. давайте не будем говорить про кубического коня в вакууме. есть конкретная задача, среди всего множества решений описываемых парами (кол-во пересечений, суммарная длина рёбер) есть идеальное - (0, число рёбер * единичную длину). расстояние от любого решения до идеального в пространстве решений считается по знакомой с детства формуле - корень квадратный из суммы квадратов разностей координат. вот это расстояние и надо минимизировать. перебор тут не выход, т.к. число вершин и рёбер велико, стохастические\генетические методы отпадают по тем же причинам, нужен итерационный алгоритм.. или доказательство того, что его не существует. Добавлено через 6 минут и 9 секунд .. динамическое программирование тоже мимо, т.к. задача не сводится к подзадачам, точнее они могут влиять на результаты уже решённых подзадач. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| esperant0 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 714 Регистрация: 20.5.2005 Репутация: 4 Всего: 14 |
Я понял вашу идею. Но она не верна. Ибо, отношения порядка однозначно неопределено для пар. Автор в своем условииопределил отношение порядка? Нет Добавлено через 2 минуты и 33 секунды
Я дал вам конкретный пример с х. Решите его. Поймите конь здесь не причем. Математика вещь упрямая и не терпит невежества. Т.е вы можете отвергать математику. Толку будет мало. Еще раз. Одновременно минимизировать две ф-ии нельзя. Пока вы с этим не согласны, вы не согласны с математикой. Тогда что вы хотите? псевдонаучное решение? Добавлено через 4 минуты и 27 секунд Упрощю вам задачу. Минимизируйте следующее две ф-ии х -> minimum -x -> minimum В какой точке минимизируются обе ф-ии. Ответье пожалуйста,это очень важно -------------------- Student->Teacher Assistant ->Research assistant->Microsoft Software Development Engineer Пользователь получил наказание за то, что проигнорировал замечание которое было написано модератором а затем стерто и которое он - пользователь не мог видеть. |
||||
|
|||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: нет Всего: 39 |
на грани гениальности
и при этом очень пафосно То есть, я сомневаюсь, что приведённые Вами примеры хоть сколько-нибудь переносимы на задачу, которую описал stab. С чего вы вообще взяли, что это - минимизация на функциях? Почему нельзя построить функционал и искать, скажем, седловые точки? Впрочем последний вопрос уже по постановке задачи, и пока она не будет точной и корректной, всё это будет бесполезными разговорами. Поставить задачу - это же уже полрешения Это сообщение отредактировал(а) marcusmae - 22.11.2007, 22:32 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: нет Всего: 48 |
esperant0, мне понятно, что два вас неразрешимой задачей является подстановка подходящей функции вместо слова "и" в фразе "с наименьшей суммарной длинной дорог и с наименьшим количеством их пересечений". как разберётесь с этой архи-наисложнейшей неформализуемой задачей, возвращайтесь, пожалуйста, и доложите о результатах, это очень важно.
-------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |