HPC.ru lite - Все форумы
Форум: PocketGPS Pro и MacCentre PocketGPS
Тема: Вариант решения глюков с прокладкой и подсказками!
Страницы: 1 2 [3]
[Ответить]
Чайни [06.09.2005 18:09] :
повторяю... прокладка маршрута реализована можно сказать безошибочно, но алгоритм - неудачный. Алгоритм неудачный в том, что учитывает точки вне перекрёстков. Вне реальных перекрёстков (не будем использовать терминологию теории графов). Отсюда лезут лишние подсказки, а если уменьшать кол-во точек прокладки, т.е. "двигать ползунок", то из-за этого начинают пропускаться реальные перекрёстки. Это - главный недостаток существующего алгоритма. Он нацелен исключительно на прокладку маршрута любой ценой, а не на то, чтобы потом на реальных перекрёстках выдавались подсказки, причём только на перекрёстках, и без пропусков перекрёстков.
О том, какие подсказки должны вообще быть, можно говорить только после решения именно той задачи, о которой я говорю. Без решения этого говорить о "качестве подсказок" не имеет смысла - система всё равно не выполняет своих функций (навигация и помощь водителю в движении) КАК НАДО.
Будет поставлена грамотно задача, будет решена, тогда можно говорить о формализации системы подсказок на разных типах перекрёстков. А сейчас нет смысла обсуждать, какая стрелка должна выдаваться водителю посреди почти ровной (с небольшим изгибом) дороги, где поворота никуда и нет, и какая стрелка должна выдаваться на перекрёстке, на котором вообще никакая стрелка не выдаётся.
Да, ядро маршрут прокладывает, но, повторяю ещё раз, оно прокладывает маршрут ТАК, что система подсказок работать правильно не может в принципе.
(ударения на словах "прокладывает", "ТАК" и "в принципе")
Довести до ума, наверное, всё же можно... но появление "галочки" - только перекрёстки - ситуацию не спасает, а лишь усложняет программу и запутывает водителя. Поэтому и внёс то предложение МАКЦЕНТРУ...
Надеюсь, я объяснил, какая проблема НА САМОМ ДЕЛЕ стоит ?
Alligator. [06.09.2005 18:20] :
Чайни писал(а):
Надеюсь, я объяснил, какая проблема НА САМОМ ДЕЛЕ стоит ?
спасибо, я тебя понял
вопрос в терминологии. просто я отделяю расстановку точек, по которым выдаются подсказки, от задачи прокладки маршрута
но терминология в конечном счёте не так важна 
однако по-моему, если поставить флажок "только развилки", то эта самая расстановка точек становится почти удовлетворительной
ты не согласен?
по крайней мере, мне кажется, что уже можно говорить о подсказках 
и заодно о том, где стоило бы поставить точку для выдачи подсказки ...
Logout [06.09.2005 18:25] :
Alligator. писал(а):
[quote:9aa8a0463d="Logout"][quote:9aa8a0463d="Alligator."]По-моему алгоритм будет плохо обрабатывать проезд перекрестка типа "ступеньки", как в на картинке.
ну почему же. Правильно скажет: "поворот налево во второй заезд".
когда ты въезжаешь на этот конкретный перекресток, есть поворот направо и чуть дальше поворот налево
что такое "второй поворот налево" в этот момент будет просто непонятно 
Наверно, я неправильно выразился. Имелся ввиду дословный перевод "take second left". То есть во второй заезд направо (первый по-моему там в туннель уходит).
Alligator. писал(а):
но важно знать, что поворачивая налево, надо оказаться в правом ряду, чтобы потом повернуть направо
т.е. это именно "связка"
ты писал про связки, но в твоем предложенном алгоритме остается неясным вопрос, как отличать "перекресток" от "связки перекрестков"
По расстоянию между ними
Как это делает мой любимый блаупункт
. Это расстояние задается константой, причем константа разная для различных видов дорог (город/трасса/автобан)
Alligator. писал(а):
мне кажется, что это вопрос непростой, и алгоритм, который, конечно, можно придумать, не всегда будет решать эту задачу правильно 
Однозначно. Есть куда стремиться.
Alligator. писал(а):
PS ещё как один вариант, часто встречаются похожие "ступеньки", но совсем маленькие
в таком случае твой алгоритм также выдаст "второй поворот налево"
но реально на перекрестке это воспринимается как движение почти прямо, т.е. подсказка будет сбивать с толку и провоцировать всё-таки повернуть налево ...
"маленькие" ступеньки можно спокойно игнорировать. Это один из уточняющих факторов предложенного мной алгоритма. Реализация, кстати, алгоритма должна предусматривать каки-либо дополнительные правила, которые можно было бы легко дополнять. То есть обработка перекрестка будет состоять из последовательно наложенных обработчиков (юнитов). При правильной рализации это будет красиво и легко расширяемо/исправляемо.
Alligator. писал(а):
мне кажется, что либо надо уметь как-то определять несколько "стандартных" траекторий, одна из которых "ступенька"
либо выдавать подсказку на каждую развилку, но группировать их в "связки"...
ИМХО второе.
Alligator. [06.09.2005 18:44] :
Logout писал(а):
[quote:f1f1e156e8="Alligator."]когда ты въезжаешь на этот конкретный перекресток, есть поворот направо и чуть дальше поворот налево
что такое "второй поворот налево" в этот момент будет просто непонятно 
Наверно, я неправильно выразился. Имелся ввиду дословный перевод "take second left". То есть во второй заезд направо (первый по-моему там в туннель уходит).
нуу, всё равно не очень понятно будет
он всё-таки не left ...
надо это рассматривать именно как связку, тогда правильно будет ...
а туннеля там нет 
Alligator. [06.09.2005 18:51] :
Logout писал(а):
[quote:879c3cd18a="Alligator."]мне кажется, что либо надо уметь как-то определять несколько "стандартных" траекторий, одна из которых "ступенька"
либо выдавать подсказку на каждую развилку, но группировать их в "связки"...
ИМХО второе.
Второе однозначно проще 
В этом случае надо просто брать некоторое расстояние, "развилки", расстояние между которыми меньше, объединять в "связки" и выдавать общую подсказку
Хотя первое мне кажется лучше 
Если научиться определять некоторое кол-во "стандартных" типов перекрестков ("ступенька", "круговое двидение", и т.п.), то можно подсказки выдавать лучше 
Чайни [06.09.2005 23:01] :
Alligator. писал(а):
вопрос в терминологии.
Не-а
Терминология заканчивается, как только мы забываем про теорию графов и говорим как пользователи-водители, проезжающие перекрёсток или едущие просто по изгибающейся улице. В разговорах "на улице" с водителями не возникает вопросов по терминологии, и все друг друга прекрасно понимают 
Alligator. писал(а):
просто я отделяю расстановку точек, по которым выдаются подсказки, от задачи прокладки маршрута
Сама по себе абстрактная задача прокладки маршрута не имеет смысла, если подсказки выдаются водителям не там, где надо, и не такие, как надо. Задача выдачи подсказок, конечно же, не совпадает с задачей прокладки маршрута, но от того, как проложен маршрут (а точнее - какие "опорные точки" на нём присутствуют), такими и будут подсказки (именно в том смысле, что я написал раньше - не там, и не то). Это означает, что от алгоритма прокладки маршрута зависит и алгоритм генерации подсказок на проложенном маршруте.
Сорри, если повторяюсь 
Alligator. писал(а):
однако по-моему, если поставить флажок "только развилки", то эта самая расстановка точек становится почти удовлетворительной
ты не согласен?
Нет. Абсолютно ! Это лишь приближает к более-менее видимому решению задачи "правильного сопровождения", но окончательно её не решает. Я уже говорил, что при нынешнем подходе задачу, может, и можно решить, но это слишком... как бы это сказать помягче... утяжеляет систему. И ресурсов больше жрёт, и настроек лишних куча, и настройки всё менее и менее будут понятны пользователю. В итоге - конфигурацией настроек делается то, что могло быть сделано программно без "заморочек". И общее название такого решение - налепить "заплаток". Эти заплатки "выпирают", буквально орут о непродуманном решении. Уж прости, но не люблю такие системы.
Alligator. писал(а):
по крайней мере, мне кажется, что уже можно говорить о подсказках 
Не-а
См. предыдущий абзац 
Alligator. писал(а):
и заодно о том, где стоило бы поставить точку для выдачи подсказки ...
В том и дело, что ОСНОВНАЯ ПРОБЛЕМА - эти точки ! Разрабатывать алгоритм на "сырой" основе - уволь
))) Предпочитаю делать и пользовать грамотные системы.
mikhalych_307 [07.09.2005 01:09] :
В ситуации, как на Самотеке, правильная система будет генерить связки, в частности по приведенному маршруту подсказки будут:
- перед первым светофором на Самотеке - go straight on, then turn left;
- перед поворотом налево - turn left, then turn right
При этом на экране появятся две стрелки вместо обычной одной.
Если плечо между поворотами достаточно длинное, то вторая связка может быть - turn left, then stay in the right lane.
Почему ТомТом это умеет делать, а ПГПСП нет? ХЗ. Но солидарен с gren, что проще дождаться прохода ТомТома, чем убедить разработчиков ПГПСП в том, что в основу функционирования их системы заложены неверные алгоритмы.
Logout [08.09.2005 12:47] :
Alligator. писал(а):
[quote:c499503a53="Logout"][quote:c499503a53="Alligator."]мне кажется, что либо надо уметь как-то определять несколько "стандартных" траекторий, одна из которых "ступенька"
либо выдавать подсказку на каждую развилку, но группировать их в "связки"...
ИМХО второе.
Второе однозначно проще 
В этом случае надо просто брать некоторое расстояние, "развилки", расстояние между которыми меньше, объединять в "связки" и выдавать общую подсказку
Хотя первое мне кажется лучше 
Если научиться определять некоторое кол-во "стандартных" типов перекрестков ("ступенька", "круговое двидение", и т.п.), то можно подсказки выдавать лучше 
В том то и дело, что правило по которому подбирать некий стандартный тип перекрестка не очень хорошо формализуется. В этом и проблема. Опять же, на все случаи жизни шаблонами не напасешься.
Logout [08.09.2005 12:50] :
Alligator. писал(а):
[quote:7735835474="Logout"][quote:7735835474="Alligator."]когда ты въезжаешь на этот конкретный перекресток, есть поворот направо и чуть дальше поворот налево
что такое "второй поворот налево" в этот момент будет просто непонятно 
Наверно, я неправильно выразился. Имелся ввиду дословный перевод "take second left". То есть во второй заезд направо (первый по-моему там в туннель уходит).
нуу, всё равно не очень понятно будет
он всё-таки не left ...
надо это рассматривать именно как связку, тогда правильно будет ...
а туннеля там нет 
Что-то я совсем потерял нить разговора. Если мы говорим о твоей картине, то я однозначно вижу там два поворота: первый поворот налево во второй заезд и затем поворот направо. Что не так?
Кстати, я оговорился, на "второй заезд направо", а "налево" (см. курсив в цитате)
Alligator. [08.09.2005 16:46] :
Logout писал(а):
Что-то я совсем потерял нить разговора. Если мы говорим о твоей картине, то я однозначно вижу там два поворота: первый поворот налево во второй заезд и затем поворот направо. Что не так?
Кстати, я оговорился, на "второй заезд направо", а "налево" (см. курсив в цитате)
да по-моему уже пора заканчивать этот флуд 
я говорил о той самой картинке
поворот налево я считал единственным (первый - это встречка)
но рассматривал вместе с последующим поворотом направо как единый перекресток
[Ответить]
[< Назад]