[Talk-de] Routing Fehler A3-B58

Marcus Wolschon Marcus at Wolschon.biz
Do Jun 25 04:16:55 UTC 2009


2009/6/24 Bernd Raichle <bernd at dante.de>:
> On Wednesday, 24 June 2009 14:44:23 +0200,
> marcus.wolschon at googlemail.com <marcus.wolschon at googlemail.com> writes:
>  > On Wed, 24 Jun 2009 12:50:37 +0200, Claudius <claudius.h at gmx.de> wrote:
>  > > Am 24.06.2009 12:25, marcus.wolschon at googlemail.com:
>  > > Du sagst also, dass wir die fuer die Router einfachere Taggingvariante
>  > > verwenden sollen? Ist die Unterstuetzung fuer Abbiegerelationen denn so
>  > > schwer?
>  >
>  > Ja ist es. Denn das sind Einschraenkungen/Kosten-Funktionen an Knoten
>  > statt Kanten was die meisten Routing-Algorithmen incl. den beliebten
>  > Dijstra und A* nicht vorsehen.
>
> Ist es das wirklich?  (Ich meine die _schwere_ Unterstuetzung
> ... wegen Knoten statt Kanten ...)
>
> Wenn man Durchfahrtsbeschraenkungen (wie Einbahnstrasse etc.; fuer
> eine Kante geltend) und Abbiegerelationen (wie Linksabbiegen verboten,
> nur geradeaus etc.; fuer eine Kantenfolge mit 2 und mehr Kanten
> geltend) als Kosten umsetzt, gebe ich dir recht.  Diese Dinge sind
> aber _harte_ Ausschlusskriterien, d.h. im Dijkstra sorgen die
> Durchfahrtsbeschraenkungen und Abbiegerelationen schon beim Erweitern
> des Suchbaums, dass ich diese und jene Kante gar nicht erst als
> Folgekante in Betracht ziehe (a la Gewicht=unendlich).  Damit bleibe
> ich doch weiterhin kanten-orientiert und verwende die Knoten nur dazu
> herauszufinden, welche Kante mit welche verbunden ist.

Du hast Dijkstra nicht verstanden.
Zu jedem späteren Zeitpunkt kannst du eine günstigere Route
bis zum Knoten finden. Dann kommst du aber nachträglich
aus einer anderen Richtung in die Kreuzung rein.


> Daher sollten Mapper eine Kante mit "oneway=yes/1/-1" auf keinen Fall
> durch die aequivalente Darstellung mit einer Menge von
> Abbiegebeschraenkungen von anderen Kanten in diese Kante ersetzen.

Genau.

>  > > Mal abgesehen davon: Was wuerde es denn dem Router bringen, wenn ich den
>  > > gemeinsamen Abschnitt der Autobahnauf-/abfahrt mit oneway=no taggen
>  > > wuerde. Er koennte doch immer noch von der Abfahrt auf die Auffahrt
>  > > routen.
>  >
>  > Mein Beispiel war von der Autobahn in die Auffahrt, zurueck bis zur
>  > Abfahrt und dort wieder auf die Autobahn. Das ist ein ganz anderer Fall.
>
> ... dann doch lieber ein paar zusaetzliche "oneway=yes" spendieren,
> bevor man solch ein Routing-Ergebnis erhaelt ;-)

Es steht dir frei das jederzeit auch explizit zu taggen.
Die uralte Diskussion war, dass eine Autobahn-Ausfahrt immer
implizit oneway=yes ist weil eben alle oder die meisten Ways
davon Einbahnstraßen sind.

> (Wobei man bei deinem beschriebenen Beispiel dieselbe Kante in
> derselben Richtung mehrfach befaehrt, was fast immer unsinnig ist und
> nur bei komplizierteren Abbiegebeschraenkungen vorkommen duerfte.)

Das würde jedes Mal passieren, wenn man einfach seine Ausfahrt verpasst
ohne das implizite oder explizite oneway=yes auf der Ausfahrt/Einfahrt.

Marcus




Mehr Informationen über die Mailingliste Talk-de