Announcement

Collapse
No announcement yet.

kürzesten Weg berechnen - Umsetzung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • kürzesten Weg berechnen - Umsetzung

    Problemstellung:<BR>
    <BR>
    Ich muss in einem Lager einen Artikel vn einem Lagerfach in ein anderes umlagern. Diese Lagerfächer sind durch Koordinaten bezeichenbar. Es gibt die Gang 1 bis 5. In jedem Weg hat man ein Regal Links und eines rechts, 5 Lagerfächer hoch und 10 breit. Die Koordinaten sähen z.B. so aus : 1, L, 5, 10 (Weg 1, Regal L, Lagerfach hoch 5 und breit 10)<BR><BR>

    In Variablen hab ich die Abmessungen eines Lagerfaches gespeichert (Höhe, Breite, Tiefe in cm), die Breite des Ganges und die Breite des Querweges, der die einzelnen Gänge miteinander verbindet. (Skizze des Bildes ist vorhanden)<BR><BR>

    In einem Array sind die einzelnen Aufträge gespeichert, in denen die Artikel gespeichert sind, die umgelagert werden sollen. Die Koordinaten für den Lagerort, an dem sich der Artikel jetzt befindet und wo er hin soll sind in einer Datenbank vorhanden und können ausgelesen werden.<BR><BR>

    Ich möchte nun den kürzesten Weg vom aktuellen Standort im Lager zu dem Platz , wo der Artikel moment liegt bis zu dem Platz wo er hin soll berechnen. Dies soll er dann für alle Artikel berechnen und der Auftrag mit dem kürzesten Weg soll dann in einer Variablen gespeichert werden. Dieser Wert wird anschliessend einer anderen funktion übergeben.<BR><BR>

    Es geht mir nun nur um die Umsetzung zur Berechnung des kürzesten Weges, denn das bereitet mir noch Kopfzerbrechen.<BR><BR>

    Kann mir da vielleicht jemand ein paar gute Tips geben. Dafür wäre ich sehr dankbar.<BR><BR>

    Danke,<BR>
    Karen

  • #2
    <HTML>
    Hmm Dein Problem ist ein mathematisches optimierungs-Problem<BR>Wenn Du alle heiligen zeiten mal einen Artikel von einem Lagerplatz zu einem anderen Bringen willst ist der kürzeste Weg optimal.<BR>
    Vorschlag:<BR> Klatschenmethode berechne alle möglichen wege und nimm den kürzeren!<BR><BR> willst du allerdings das ganze Archiv umkrempeln,<BR> dann ist es wichtig für das ganze Umkrempeln möglichst wenig Gesamtweg zu brauchen (Zeitfaktor),<BR> dann wird es aber mathematisch schwierig,<BR> hat man nur immer eine freie Lagerstelle, muß man zwischenlagern usw<BR>
    Hier sind Mathematiker gefragt- leider bin ich keiner<BR><BR>Gruß roli
    </HTM

    Comment


    • #3
      Ich habe etwa 10 Artikel die ich innerhalb meines Lager umlagern möchte. Um es mal zu vereinfachen, möchte ich nur einen Weg berechnen. Aber wie mache ich meinem Programm klar, wann er links zum Gang gehen soll und wann rechts und an wie viele Gängen er vorbeigehen muss und dann wieder in einen Gang reingehen muss.

      Es geht nur um den einen Weg, wie muss ich das Beschreiben

      Comment


      • #4
        <HTML>
        <PRE>
        Du musst dir zuerst klarsein welche Wege Du (oder der Roboter?)
        gehen kann. Ich hab mal mit sternchen dargestellt wie es sein könnte
        dabei kann der Roboter vor und hinter den regalen gehen aber auch aussen herum,
        bevor das nicht klar ist,kann ich auch nicht helfen.
        Du brauchst Wahrscheinlich eine Klasse Roboter,
        --die den momentanen Standpunkt des Roboters (Koordinaten) ,
        möglicherweise sind das Koordinaten ausserhalb der Regalkoordinaten?,
        --die Bewegungsrichtung des Roboters(links,rechts,oben,unten,hoch,tief),
        --Vonwoher Koordinaten und nachwohin Koordinaten
        --und Methoden wie setVonwoher(koord1), setNachwohin(koord2),
        goLinks(),goRechts() ...oben ...unten ..hoch ..tief, bleibStehen(),
        boolean isInBewegung()gibt ja,nein den bewegungszustand,
        angibt
        Das nur als Beispielanmerkung

        Gruss Roli

        ************************************************** **************************************
        * --- | * | --- --- | * | --- --- | * | --- --- | * | --- --- | * | --- *
        * --- | * | --- --- | * | --- --- | * | --- --- | * | --- --- | * | --- *
        * --- | * | --- --- | * | --- --- | * | --- --- | * | --- --- | * | --- *
        * --- | * | --- --- | * | --- --- | * | --- --- | * | --- --- | * | --- *
        * --- |G*1| --- --- |G*2| --- --- |G*3| --- --- |G*4| --- --- |G*5| --- *
        * L * R L * R L * R L * R L * R *
        ************************************************** **************************************
        </PRE>
        </HTML&gt

        Comment


        • #5
          Ich stell mir das eigentlich nicht so schwer vor.

          Die erste Entscheidung die getroffen werden muss ist doch wenn der Gabestabler die Ware aus einem Regal entnommen hat, ob er rechts oder links lang fahren soll. Dann brauchs du doch nur auf das Lagerfach-breite zuschauen von Start- und Zielkoordinate. Dann schaust du wenn du nur einen Gang weiter müsstest an wievielen Lagerfächern müsstest du vorbei. Der Kurzeste weg wäre dann <= 10 in der Differenz. (Ich denke der Denkansatz ist klar.)

          Als nächstes musst du doch nur noch sagen gehe so und so viel Lagerflächen nach links/recht dann [Differenz der Gänge] Gänge nach ober/unten und so und so viel Lagerflächen rechts/links.

          Ich seh erlich gesagt nicht dein Problem. Aber vielleicht hab ich dich auch falsch verstanden

          Comment

          Working...
          X