Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изображение графа на плоскости 
:(
    Опции темы
stab
Дата 21.11.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 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 - единичная длина ребра

Вопрос о том, как это сделать остаётся открытым. smile

-- Update 2

Реальный граф имеет около 850 вершин и 3000 рёбер. Каждая вершина связана, в среднем, с 5-ю другими. Максимальное число связей 103 и минимальное 1.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
marcusmae
Дата 21.11.2007, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


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

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





--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
esperant0
Дата 21.11.2007, 22:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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




M
maxim1000
решения о закрытии тем принимают (ко)модераторы, не нужно вводить людей в заблуждение...

Тут вас надо тыкнуть в Базисные знания.


НЕЛЬЗЯ минимизировать ОДНОВРЕМЕННО по ДВУМ  КРИТЕРИЯМ





вывод: в вашей постановке задеча не решабельна.
топик закрыт. Поясню, в данной постановке задача нерешаема, посему дальнейшее обсуждение исходной задачи будет профанацией. Соответсвенно надо или менять постановку задачи или закрывать топик. 

То что вам предложили выше не может быть решением ВАШЕЙ задачи

Это сообщение отредактировал(а) esperant0 - 22.11.2007, 15:39


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

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


stravaganza
**


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

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



Цитата(esperant0 @  21.11.2007,  22:44 Найти цитируемый пост)
То что вам предложили выше не может быть решением ВАШЕЙ задачи


эй, по-легче, я предложил ключевые слова поиска и не называл это решением. Вы бы лучше предложили что-нибудь по поводу минимизации пересечений рёбер. А фразу

Цитата(esperant0 @  21.11.2007,  22:44 Найти цитируемый пост)
НЕЛЬЗЯ минимизировать ОДНОВРЕМЕННО по ДВУМ  КРИТЕРИЯМ
,

пожалуйста, поясните. Что есть критерий? Функционал? = Нельзя минимизировать функционал?



--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
SaDFromSpb
Дата 22.11.2007, 05:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



stab, не знаю, вкурсе ты или нет, но есть готовая библиотека для визуализации графов. Graphviz называется. http://www.graphviz.org/Documentation.php Там у них есть ссылочка с названием Theory. 
Может быть поможет...


--------------------
"За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001)
PM   Вверх
esperant0
Дата 22.11.2007, 07:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(marcusmae @ 22.11.2007,  00:15)
Цитата(esperant0 @  21.11.2007,  22:44 Найти цитируемый пост)
То что вам предложили выше не может быть решением ВАШЕЙ задачи


эй, по-легче, я предложил ключевые слова поиска и не называл это решением.  

Cтоп. Я не говорил что вы дали решение. 

Вы дали ссылку, а условие автора не имеет решение. Каков смысл в ссылке? Никакого.

Добавлено через 2 минуты и 7 секунд
Цитата(marcusmae @ 22.11.2007,  00:15)
 

пожалуйста, поясните. Что есть критерий? Функционал? = Нельзя минимизировать функционал?

Пожалуйса.


Пусть f(x)  количество пересечений
g(x) длина ребер
s(t) набор огранечений задачи тогда


{
  f(x)  -> min
  g(x) -> min

  constraints :

}

 В общем случае нерешаема. Это известный факт.

Добавлено через 3 минуты и 12 секунд
Цитата(SaDFromSpb @ 22.11.2007,  05:05)
stab, не знаю, вкурсе ты или нет, но есть готовая библиотека для визуализации графов. 

Вряд ли это библиотека решает нерешаемую задачу. Разве что математика противоречива


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

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


Опытный
**


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

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



Цитата(marcusmae @ 22.11.2007,  00:15)
  Нельзя минимизировать функционал?

нельзя одновременно минимизировать два функции. (В общем случае)


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

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


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



marcusmae, это скорее интелу надо эту ссылочку заслать. хотя интересно smile

SaDFromSpb, спасибо, глянул. для планарных графов работает, для остальных - тихий ужас.

esperant0, наверное вы хотели сказать, что не знаете как это делается. да, действительно, это несколько сложнее решения задачи коммивояжера по букварю. специально для вас нарисовал картинку, далёкую от совершенства, т.к. на результирующем графе длину некоторых рёбер можно свести к единичной - базисной. может быть вы знаете алгоритм, который строил бы граф с заданным количеством пересечений рёбер или сообщал о невозможности его построения?



Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  graphs.gif 4,93 Kb


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
stab
Дата 22.11.2007, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



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

Цитата(esperant0 @  22.11.2007,  11:02 Найти цитируемый пост)
 В общем случае нерешаема. Это известный факт.

где можно об этом почитать?


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
esperant0
Дата 22.11.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(stab @ 22.11.2007,  08:12)
 
esperant0, наверное вы хотели сказать, что не знаете как это делается 

Нет я хочу сказать что невозможно минимизировать одновременно две функции.Не верите


Вот вам задача

2x -> min

-x - > min


10>x>-10

-------------------------


Минимум одной ф-ии в точке 10 минимум второй в точке -10.

А вот в какой точке минимум одновременно двух ф-й да не в какой.

------------

Где это написано. А в свое время рассказывал это в курсе исследования операций поищите

Добавлено через 6 минут и 22 секунды
Цитата(stab @ 22.11.2007,  08:33)
  на счёт минимизации вы сильно ошибаетесь. если есть оценочная функция от всех рёбер графа, то как она считается - дело десятое. например, как произведение кол-ва пересечений и суммарной длинны рёбер или выдаёт вектор из двух этих значений. главное чтобы существовала возможность сопоставления по принципу больше-меньше. но хотелось бы обойтись без перебора всех возможных размещений вершин на плоскости.
 

Минимизировать одновременно две фунции нельзя. ( в общем случае)


Можно минимизировать сумму этих ф-ий, но одновременно две функции минимизировать нельзя.


---------------------------

Пример:

завод

цель 1) минимизировать  количество работников
         2) минимизировать минус прибыль фирмы.


Минимизировать количество работников это никого не нанимать

Максимизировать прибыль это нанять бесконечное число работников.

-------------

Как же минимизировать одновременно две функции? 

(пример не формальный но суть ясна_


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

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


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 в ответ не входит, поскольку нашли точку лучше
PM MAIL ICQ   Вверх
stab
Дата 22.11.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



Цитата(esperant0 @  22.11.2007,  20:31 Найти цитируемый пост)
Как же минимизировать одновременно две функции? 

берёте и по отдельности каждую минимизируете. если надо одновременно, значит функции являются параметрами для целевой, которую и надо минимизировать.

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

перебор тут не выход, т.к. число вершин и рёбер велико, стохастические\генетические методы отпадают по тем же причинам, нужен итерационный алгоритм.. или доказательство того, что его не существует.

Добавлено через 6 минут и 9 секунд
.. динамическое программирование тоже мимо, т.к. задача не сводится к подзадачам, точнее они могут влиять на результаты уже решённых подзадач.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
esperant0
Дата 22.11.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(0000 @ 22.11.2007,  17:15)
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 в ответ не входит, поскольку нашли точку лучше

Я понял вашу идею. Но она не верна. Ибо, отношения порядка однозначно неопределено для пар.

Автор в своем условииопределил отношение порядка? Нет

Добавлено через 2 минуты и 33 секунды
Цитата(stab @ 22.11.2007,  19:16)
Цитата(esperant0 @  22.11.2007,  20:31 Найти цитируемый пост)
Как же минимизировать одновременно две функции? 

берёте и по отдельности каждую минимизируете. если надо одновременно, значит функции являются параметрами для целевой, которую и надо минимизировать.

 

Я дал вам конкретный пример с х. Решите его.


Поймите конь здесь не причем. Математика вещь упрямая и не терпит невежества. Т.е вы можете отвергать математику. Толку будет мало.


Еще раз. Одновременно минимизировать две ф-ии нельзя. 
Пока вы с этим не согласны, вы не согласны с математикой. Тогда что вы хотите? псевдонаучное решение?

Добавлено через 4 минуты и 27 секунд
Упрощю вам задачу. Минимизируйте следующее две ф-ии


х   -> minimum
-x -> minimum


В какой точке минимизируются обе ф-ии. Ответье пожалуйста,это очень важно


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

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


stravaganza
**


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

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



Цитата(esperant0 @  22.11.2007,  21:22 Найти цитируемый пост)
Одновременно минимизировать две ф-ии нельзя. 


на грани гениальности

Цитата(esperant0 @  22.11.2007,  21:22 Найти цитируемый пост)
Пока вы с этим не согласны, вы не согласны с математикой. Тогда что вы хотите? псевдонаучное решение?


и при этом очень пафосно

То есть, я сомневаюсь, что приведённые Вами примеры хоть сколько-нибудь переносимы на задачу, которую описал stab. С чего вы вообще взяли, что это - минимизация на функциях? Почему нельзя построить функционал и искать, скажем, седловые точки? Впрочем последний вопрос уже по постановке задачи, и пока она не будет точной и корректной, всё это будет бесполезными разговорами. Поставить задачу - это же уже полрешения smile 

Это сообщение отредактировал(а) marcusmae - 22.11.2007, 22:32


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
stab
Дата 22.11.2007, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1839
Регистрация: 1.1.2003

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



esperant0, мне понятно, что два вас неразрешимой задачей является подстановка подходящей функции вместо слова "и" в фразе "с наименьшей суммарной длинной дорог и с наименьшим количеством их пересечений". как разберётесь с этой архи-наисложнейшей неформализуемой задачей, возвращайтесь, пожалуйста, и доложите о результатах, это очень важно.


--------------------
6, 6, 6 - the number of the beast.
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

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


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

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


 




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


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

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