Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Вниз

Скорость просчета короткого пути   Найти похожие ветки 

 
Rentgen ©   (2006-12-28 11:58) [0]

Всем привет!
Сколько по Вашему мнению должен выполняться просчёт всех самых коротких путей в матрице с 3000 квадратами?
т.е. по результирующе таблице должно быть видно, к примеру из квадрата 705 в 1666 один путь (самый короткий) - 10 км., из 106 в 999 - 5км. итд.
есть отдельная таблица со "связанными" квадратами и соответствующими расстояниями.

***
Взялся за программку писаную не мной. Блин там пересчет расстояний выполняется около ЧАСА! Я чесно сказать ни когда не занимался подобными математическими просчетами, но кажется это слишком долго.


 
Rentgen ©   (2006-12-28 11:59) [1]

просто думаю, браться за переделывание алгоритма поиска или нестоит.


 
Ega23 ©   (2006-12-28 12:00) [2]

При чём тут "матрица"? Это обход графа с известными длинами рёбер.
"Пути Гамильтона", если мне память не изменяет.


 
Rentgen ©   (2006-12-28 12:02) [3]

>>Ega23 ©   (28.12.06 12:00) [2]
Ясно. А по сабжу?


 
Rentgen ©   (2006-12-28 12:34) [4]

Блин. Никто не знает, да? Хотябы предположения...


 
Ega23 ©   (2006-12-28 12:38) [5]


> Ясно. А по сабжу?
>


google "алгоритмы поиска путей гамильтона".
Что непонятного-то?


 
Jeer ©   (2006-12-28 12:41) [6]


> Сколько по Вашему мнению должен выполняться просчёт всех
> самых коротких путей в матрице с 3000 квадратами?


У меня под боком, например, стоит МВС-15000BM производительностью 10 терафлопс.
На пару секунд задачка.


 
Rentgen ©   (2006-12-28 12:42) [7]

>>Ega23 ©   (28.12.06 12:38) [5]
Ёмаё.
Почему бы вопрос не посмотреть???
Гугли подскажет сколько примерно займёт просчет времени????!


 
Думкин ©   (2006-12-28 12:43) [8]

Итоговая таблица, содержит порядка 4,5 миллионов записей?
То есть ищутся короткие пути, для каждой неупорядоченной пары?
Смотря на чем и как считать, но на вскидку 1 час для такого - вполне.


 
Rentgen ©   (2006-12-28 12:44) [9]

>>Jeer ©   (28.12.06 12:41) [6]
Эт конечно круто :)
у меня стандартный ПК.
Cekeron.
1800Ghz
256 Памяти.


 
Думкин ©   (2006-12-28 12:53) [10]

Хотя возможны и оптимизации. Если не считать для каждой пары с нуля.


 
TUser ©   (2006-12-28 12:55) [11]

http://lib.custis.ru/index.php/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC_%D0%A4%D0%BB%D0%BE%D0%B9%D0%B4%D0%B0-%D0%A3%D0%BE%D1%80%D1%88%D0%BE%D0%BB%D0%BB%D0%B0

3000^3=2,7*10^10, столько вот шагов, каждый шаг - сравнение двух чисел, вычисление минимума. Если считать, что выполняется млрд операций в секунду, то получается - сотни секунд, то есть априорная оценка времени - от минут, до десятков минут.


 
pasha_golub ©   (2006-12-28 13:23) [12]


> TUser ©   (28.12.06 12:55) [11]


> 3000^3=2,7*10^10, столько вот шагов,

Мудренно как-то...

Ega правильно говорил. Мне, например, проще это дело перевести в граф.

Имеем. Граф с 3000 узлами. Значить матрица инцидентности это 3000х3000, что вообщем-то совершенно не много. По моему скромному, алгоритм Дейкстры тут вполне применим. И я не верю, что он будет работать час.


 
pasha_golub ©   (2006-12-28 13:25) [13]

А пардон! Не внимательно прочел, что ищутся все пути. Тады алгоритм Флойда... Но по времени может и час.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2007.01.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
2-1167476157
ламер 2.Х
2006-12-30 13:55
2007.01.21
Indy


3-1162214995
Arm79
2006-10-30 16:29
2007.01.21
потокобезопасность класса TADOConnection


15-1166814079
Cerberus
2006-12-22 22:01
2007.01.21
Заканчивается год.


6-1155319975
anton773
2006-08-11 22:12
2007.01.21
ftp или http


2-1167834212
tio
2007-01-03 17:23
2007.01.21
MDI





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский