Показать сообщение отдельно
  #1  
Старый 30.03.2009, 15:01
ZAPROS.LS ZAPROS.LS вне форума
Прохожий
 
Регистрация: 30.03.2009
Сообщения: 2
Репутация: 10
По умолчанию КАК НАЙТИ НАИМЕНЬШЕЕ РАСТОЯНИЕ ТОЧЕК НА КАРТЕ (прога для такси)

КАК НАЙТИ НАИМЕНЬШЕЕ РАСТОЯНИЕ ТОЧЕК НА КАРТЕ. ЕСТЬ БАЗА ДАНИХ КОТОРАЯ СОСТОИТ ИЗ КООРДИНАТ ТОЧЕР РАСПОЛОЖЕНЫХ НА КАРТЕ ГОРОДА. ФОРМАТ ТОЧКИ (№п/п, X, Y, улица1, улица2, улица3, улица4, улица5). улицы.. ОБОЗНАЧАЮТ ПЕРЕХРЕСТОК С УЛИЦ. НАПРИМЕР ТОЧКА (125, 1786, 2050, 25, 3, 0, 0, 0) - ЭТО ПЕРЕХРЕСТОК С ДВУХ УЛИЦ 25 и 3 С КООРДИНАТАМИ [1786,2050] № 125.
ВОПРОС : КАК МОЖНА ОТОБРАТЬ НАИМЕНЬШИЙ ПУТЬ ОТ ТОЧКИ №1 К ТОЧКИ №2.
ЗАГВОЗДКА В ТОМ ЧТОБЫ ЭТО РАБОТАЛО БЫСТРО. Я ПРОБЫВАЛ ГРУПИРОВАТЬ ТОЛЬКО ПЕРЕХРЕСТКИ, ОТДЕЛЬНО УЛИЦЫ (с подальшей обработкой по точкам) - ИХ НАМНОГО МЕНЬШЕ ЧЕМ ПЕРЕХРЕСТКОВ. Я ШОЛ КАК ПО ЛАБИРИНТУ УНИЧТОЖАЯ ОТРЕСКИ УЛИЦ ПО КОТОРЫМ ПРОШОЛ. ПЕРВУЮ УДАЧНЫЙ ПОХОД К КОНЦЕВОЙ ТОЧКИ Я БРАЛ КАК МИНИМАЛЬНЫЙ, И СЛЕДУЮЩИЙ ПОХОД Я КОРЕКТИРОВАЛ К МИНИМАЛЬНОЙ И ПРИ ПЕРЕБОРЕ ДЕЛАЛ ВОЗВРАТ НА ПРЕДИДУЩУЮ ТОЧКУ / ПОВОРОТ / УЛИЦУ (испытал три способа) С ПОДАЛЬШИМ ОТБОРОМ СЛЕДУЮЩЕЙ ТОЧКИ. МОЖЕТ КТОТО ЗНАЕТ ЕЩО КАКОЙТО СПОСОБ ?
Ответить с цитированием