garrarufa
Goto Top

Mathematisches Problem, ges.: Anzahl Wege über ein Schachbrett

Hallo,

warscheinlich ist das nicht gerade das richtige Forum für solche Fragen, aber bevor ich mich wieder woanders registrieren muss, probiere ich es trotzdem hier.
Ich schreibe im Moment eine Android App, bei der ein beliebig großes 2-dimensionales Feld aus Buttons angezeigt wird.
Man soll auf 2 verschiedene Buttons klicken und dann wird ein zufälliger Weg dazwischen ausgerechnet und eingefärbt.
Bei größeren Feldern dauert das ziemlich lange und ich brauche eine Anzeige, die eine Schätzung abgibt, wie lange die Suche voraussichtlich noch dauern wird.
Dazu müsste ich ausrechnen, wie viele mögliche Wege es von meinem Startpunkt zu jedem beliebigen anderen Punkt auf dem Feld gibt, da ich im schlimmsten Fall alle diese Möglichkeiten durchprobiere.
Dabei ist zu beachten, dass ich mich von jedem Punkt nur in vertikaler oder horizontaler Richtung bewegen kann, also nicht schräg.
Wenn mir dazu jemand eine Formel sagen könnte, wäre ich schon mal glücklich.
Um es ganz genau zu machen, gibt es aber noch eine weitere Einschränkung.
Zwei Wegstücke verlaufen niemals parallel direkt nebeneinander. D.h. zwischen zwei Wegabschnitten ist immer mindestens eine freie Reihe Buttons. Zwei Wegstücke können sich nur in einem Fall berühren, nämlich wenn sich zwei Ecken schräg gegenüber liegen. Diese berühren sich dann in genau einem Punkt.
Ich hoffe das war verständlich, wenn nicht, bitte fragen.
Hoffentlich kann mir jemand helfen!

Grüße
Garrarufa

Content-Key: 218447

Url: https://administrator.de/contentid/218447

Printed on: April 23, 2024 at 12:04 o'clock

Member: Bitboy
Bitboy Oct 03, 2013 at 13:39:36 (UTC)
Goto Top
Hi,

so wie ich es verstanden habe, hast du da "unmögliches" vor. Wenn der Weg komplett zufällig ist, gibt es da nichts zu schätzen. Es könnte der kürzeste oder auch der längst mögliche Weg sein der da am Ende bei rauskommt. Nur ausgehend von den 2 gewählten Punkten kann man aber nichts sagen.

Sehr stark vereinfacht könntest du die Zahl der schon besuchten Felder durch die gesamtzahl der Felder Teilen und das Ergebnis in Prozent angeben. Der Anwender sieht dann wieviel Spielfläche schon abgelaufen wurde.

Mathegenies können bestimmt noch anhand der Reglen die Zahl der noch möglichen Felder berechnen und somit die Anzeige verfeiernen, aber das übersteigt mein können ;)
Member: Garrarufa
Garrarufa Oct 03, 2013 at 14:05:10 (UTC)
Goto Top
Mir ist klar, dass ich nicht anzeigen kann, wie lange es noch dauert, bis die Berechnung fertig ist.
Was ich anzeigen möchte, ist die prozentuale Anzahl der bereits probierten Wege, gemessen an der Anzahl der möglichen Wege. Kann natürlich sein, dass schon nach 1% ein Weg gefunden wurde. Die Anzeige zeigt nur die maximale Dauer an.
Member: Dirmhirn
Dirmhirn Oct 03, 2013 at 14:49:00 (UTC)
Goto Top
HI!

das kannst du(man) vll über Graphen Theorie lösen. Alle Nachbarknoten von markierten Knoten dürfen nicht mehr besucht werden, so kannst du einmal die überhaupt noch möglichen Knoten abschätzen. Hinzu kommt dann, wenn das Feld zb schon mal geteilt ist - dann kannst du die eine Hälfte auch nicht mehr besuchen (falls sich die Wege nicht kreuzen dürfen).

Im Bereich der Mustererkennung kannst du dich auch umsehen - Anzahl der Pixel/nicht markierten Knoten - dafür gibt es Algorithmen.
kA ob die dann nicht länger brauchen als der Rest... aber ja...

was ist wenn du einfach das Verhältnis der restlichen Knoten zu den bereits markierten nimmst?

sg Dirm
Member: Lochkartenstanzer
Lochkartenstanzer Oct 03, 2013 updated at 15:44:35 (UTC)
Goto Top
Moin,

Du kannst die maximale Anzahl de Wege nach oben abschätzen:

Durch die vorgabe der nachbarschaft kannst Du effektiv ca. nur maximal die hälfte aller felder besuchen. wenn man die Sonderfälle an den Rändern des feldes wegläßt, hat Du bei jedem Feld ca. 3 mögliche variantionen "weiterzugehen", rechts links gerade. Damit ist eine obere Grenze 3^(n/2) mit n als Anzahl der "buttons" auf dem Feld.

lks
Member: Garrarufa
Garrarufa Oct 15, 2013 at 14:32:43 (UTC)
Goto Top
Danke für eure Antworten, ich habe mir die Zeit genommen das Problem nochmal zu überdenken und bin auf einen einfacheren Algorithmus gekommen, der erstens schneller zum Ziel kommt und zweitens einfacher abzuschätzen ist.
Idee: Alle Felder auf dem Schachbrett in zufälliger Reihenfolge füllen, bis nur noch ein Weg vom Start- zum Endpunkt übrig bleibt.