Kleines mathematisches Problem

Hallo,

Folgendes Problem:

Problem dabei, es gibt auf dem Weg diverse Hindernisse, also Bereiche,

Die Position der Hindernisse ist fest, ebenso die Position des Ziels (x2,y2). Lediglich die Startposition des Roboters (x1,y1) ist variabel.

Eine Idee, die mir gerade kommt geht so: Ich definiere eine Anzahl

programmierten Weg zum Ziel. Jetzt muss ich nur noch den Fixpunkt finden, den ich in gerader Linie erreichen kann und der dem Ziel am

Den kann ich dann noch optimieren.

damit schon den optimalen Weg gefunden habe...

Vieleicht kann man die Fixpunkte auch automatisch festlegen...

Hat noch jemand andere Ideen dazu?

Stefan

Reply to
Stefan
Loading thread data ...

Am 2016-02-04 um 17:49 schrieb Stefan:

Ohne das genau analysiert zu haben. Ich denke dass man dein Problem wie das "Problem des Handlungsreisenden" behandeln kann (siehe z.B. )

Dazu existiert umfassendes wissenschaftliches Material.

Bernd

Reply to
Bernd Nebendahl

"Stefan" schrieb im Newsbeitrag news:n8vvfc$nqq$ snipped-for-privacy@news.albasani.net...

Der Algorithmus heisst Lee's maze algorithmus

kommt wieder 2), dann weisst du aber nicht so schnell, wie weit es war.

--
MaWin, Manfred Winterhoff, mawin at gmx dot net 
Homepage http://www.oocities.org/mwinterhoff/ 
dse-FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
MaWin

Stefan schrieb:

Das kommt auf das Problem an. Im Prinzip hast Du ein *Labyrinth*. Wenn es um "realistische" Szenerien geht, wird mit zunehmendem Freiraum und

aufgeweicht.

untersuchenden Rasterpunkte vornehmen mit der Entfernung zum Ziel als Hauptkriterium, bewertet mit der zu fahrenden Strecke.

- Die freien Rasterfelder zu einem Graphen verbinden und die bekannten Suchalgorithmen (Tiefensuche, Breitensuche, ...) ausprobieren, ggf. anpassen.

HTH irgendwie, Marc

Reply to
Marc Santhoff

Am 04.02.2016 um 18:03 schrieb MaWin:

Klingt gut, ich glaube, das ist genau das, wonach ich gesucht habe.

Wobei, ich glaube nicht, dass bei menem Problem die 4 Werte reichen. Das

In dem Moment, wo es alternative Wege gibt, kann ich aber nicht

eventuell sinnvoller, den Wert der Felder, wo eine der Koordinaten

Stefan

Reply to
Stefan

"Stefan" schrieb im Newsbeitrag news:n901e1$rqu$ snipped-for-privacy@news.albasani.net...

Lies einfach mal, wie Lee funktioniert...

Im Prinzip ja. Lee in grundform verwendet city block Metrik.

Wenn Lee erst die orthoganalen Felder mit i+2 und dann die

erlaubtes Feld)

--
MaWin, Manfred Winterhoff, mawin at gmx dot net 
Homepage http://www.oocities.org/mwinterhoff/ 
dse-FAQ: http://dse-faq.elektronik-kompendium.de/
Reply to
MaWin

Am 04.02.2016 um 17:54 schrieb Bernd Nebendahl:

Der Begriff ist bekannt, aber das Problem ist ein anderes. Beim

dem der Handlungsreisende alle Ziele ansteuert. Bei meinem Problem geht

zu finden. MaWins Vorschlag passt da schon ganz gut.

so halbwegs akzeptabel, geht aber schon an die Grenze...

Stefan

Reply to
Stefan

Am Thu, 4 Feb 2016 17:49:49 +0100 schrieb Stefan:

dann letztendlich mit hoher Genauigkeit angefahren wurden, und Grobpunkte,

der Summe am schnellsten war.

Vorgegeben wurden die Zwischenpunkte damals allerdings von Hand, so weit war die Rechentechnik dann doch nicht.

Lutz

--
Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im  
Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin
Reply to
Lutz Schulze

Am 04.02.2016 um 18:36 schrieb MaWin:

Muss ich mal machen.

Reply to
Stefan

MaWin schrieb:

(Autorouter) schon mal verwendet. Nur

signifikante Richtungswechsel (um die Ecke eines Hindernisses herum) auftauchen, und ob sich auf der direkten Verbindung zwischen zwei

Objekten berechnet werden, um die Knoten und Kanten insgesamt zu finden.

Punkte zu finden, an dem der Roboter ein Hindernis gerade mal streift,

auf minimale Fahrzeit statt auf minimale Strecke optimiert.

DoDi

Reply to
Hans-Peter Diettrich

Am 04.02.2016 um 18:03 schrieb MaWin:

Klingt sehr nach Dijkstra. So habe ich es auch mal gemacht. Nur um hinterher festzustellen, dass es

--
Robin Koch
Reply to
Robin Koch

@OP: Der funktioniert im Prinzip wie Manfred (und andere) ihn

sukzessive mit aufsteigenden Zahlen bis man am Start angekommen ist. Dann geht man einfach einen Pfad absteigender Zahlen entlang zum Ziel.

.....Z ..#... ..#... ...#.. #..... S.....

54321Z 65#321 76#432 878#43 #87654 S98765
--
Robin Koch
Reply to
Robin Koch

Am 04.02.2016 um 18:59 schrieb Lutz Schulze:

Das ist bei meiner Anwendung nicht das Problem. Es geht mit jetzt auch

den Fixpunkten und zwar wegen dem Speicherbedarf und der programmierung

mit dem Roboter die Punkte anzufahren, Position speichern und fertig.

Ich denke mal, ich komme mit maximal 20 Fixpunkten aus. Da ist der Speicherbedarf doch um einiges geringer als bei einem Raster von 100x100 bzw. 200x200 Rasterpunkten.

Stefan

Reply to
Stefan

Am 04.02.2016 um 17:49 schrieb Stefan:

Such mal nach Uniform Cost Search Algorithmus.

Eric.

--
www.headless-brewing.com
Reply to
Eric Brücklmeier

Stefan schrieb:

Route zu definieren? Oder sind Start- und Endpunkt dynamisch und der Roboter muss dasselbe Grid an verbotenen Punkten mehrfach mit unterschiedlichen Routen durchlaufen?

Reply to
Christian Müller

Das Ziel ist immer dasselbe. Der Startpunkt verschiebt sich.

Das mit den Fixpunkten ist im Prinzip eine Beschreibung der erlaubten Route.

Jeder Fixpunkt hat eine Position und eine Entfernung zum Ziel. Ich muss jetzt nur noch einen Fixpunkt finden, den ich auf gerader Linie anfahren kann. Habe ich mehrere Fixpunkte zur Auswahl, nehme ich den Fixpunkt,

ich, ob es einen anderen Fixpunkt gibt, der in direkter Linie angefahren

finde, bewege ich mich dorthin.

Anwendung bedeutet das, dass ich dann statt 10.000 Feldern nur noch ca.

schon einen Unterschied, ob ich 10.000 Felder oder 100 Punkte verwalten muss.

Stefan

Reply to
Stefan

Am 04.02.2016 17:49, schrieb Stefan:

wie das 'travelling sales man Problem'. Das ist die Frage nach der Reihenfolge, in der zu besuchende Punkte angefahren werden sollen.

nach Punkt B (x2, y2) auf einer Ebene fahren soll, ohne gegen

Ich nehme nun den einfachsten Fall und es gibt genau ein Hindernis. Der

sollte dort kein Hindernis sein.

Jetzt kann man diesen Punkt bestimmen ( C an (x3, y3) ) und die Strecke

Das macht man dann solange, bis kein Hindernis mehr auf dem Fahrweg ist.

TH

Reply to
Thomas Heger

Am 14.02.2016 um 18:53 schrieb Thomas Heger:

Richtig

Auch richtig.

Richtig, aber du kannst so die Stelle C nicht eindeutig bestimmen.

Ist im Prinzip korrekt.

Hindernisse ab. Wenn zwei Linien miteinander verbundene sind, stimmt

glaube ich egal.

Ich habe jetzt zwei Array, einmal die Liste der Geraden und eine Liste der Punkte.

Die Punkte ergeben sich aus den Koordinaten der Geraden, wobei Doubletten eliminiert werden.

Jeder Punkt hat 3 Parameter, x,y und die Distanz zum Ziel. Die Punkte und Geraden sind bekannt.

Jetzt teste ich jeden Punkt darauf, ob ich eine gerade Linie zwischen diesem Punkt P und dem Ziel Z ziehen kann. Es darf also keine Kreuzung mit einer Linie geben. Bei jedem Punkt wo das gegeben ist, trage ich die

eine Linie zu dem Punkt Px der die geringsten bekannten Distanz zu Z hat ziehen kann. Ist das gegeben, trage ich bei diesem Punkt dessen Distanz zu Z ein. Das ist die Summe aus der Distanz zwischen diesem Punkt P und Px und der bei Px eingetragenen Distanz zu Z ein.

Das wiederhole ich mit dem Punkt der die 2. kleinste bekannte Distanz zu Z hat, usw. Das wiederhole ich solange, bis die Distanz aller Punkte zu Z bekannt ist.

Das muss ich einmal machen und speichern. Die Berechnung muss auch nicht

Lageplan erstellt wird.

direkt anfahren kann die Summe aus der Distanz von Px zu P und der

das nichts bringt.

Jedenfalls wenn ich den Punkt Px erreicht habe, suche ich wieder den direkt erreichbaren Punkt mit der geringsten Distanz zum Ziel usw. bis ich das Ziel erreicht habe, wobei Z einer der Punkte ist, d.h. wenn ich Z "sehen" kann, fahre ich direkt darauf zu.

Stefan

Reply to
Stefan

Am 14.02.2016 20:04, schrieb Stefan:

Mir ist nicht ganz klar, wie der Roboter die Hindernisse erkennen soll. Wenn der Roboter eine Art digitaler Karte gespeichert hat, dann soll der Algorithmus den Weg in dieser Karte finden?

Andere Variante: der Roboter soll den Weg 'in echt' auf sowas wie einem

Weg in den ansonsten bekannten Daten findet.

Roboter zwischen den Hindernissen stecken bleibt.

zusammen stehen als der Roboter breit ist.

sehen, das nicht von anderen verdeckt ist.

dann kann der Roboter den Mittelpunkt eines Hindernisses erkennen und dessen Ausdehnung.

Daraus kann der Roboter die Umrisslinie berechnen und die halbe eigne Breite (plus den minimalen Seitenabstand) hinzu addieren und so den gesuchten Punkt C berechnen.

TH

Reply to
Thomas Heger

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.