2015-12-21 5 views
5

Betrachten Sie eine unendliche 2D-Karte. Wir haben zwei Spieler an den Punkten P1 und P2 an der Tafel. Sie müssen eine Reihe von Boxen auf der Platine G1, G2, G3 .... Gn durchlaufen.Optimale Lösung zum Durchqueren von zufälligen Gittern auf einer Karte von 2 Spielern

Zu Beginn ist nur G1 bekannt. Die Koordinaten von G2 bis Gn sind nicht bekannt, nachdem das vorhergehende Kästchen durchlaufen wurde. Die Spieler können einzeln in einer der 8 möglichen Richtungen auf dem Brett in Einheitszeit bewegen. Wir müssen die minimale Zeit finden, um alle erforderlichen Boxen mit den beiden Spielern zu durchlaufen.

Die offensichtliche Lösung ist ein gieriger Ansatz, bei dem der Spieler, der näher an der Kiste ist, die überquert werden muss, sich ihm nähert. Dann berechnen wir den näheren Spieler für das nächste G wieder. Ich habe das Gefühl, dass es eine bessere Lösung für dieses Problem gibt, mit der ich mich im Moment nicht herumschlagen kann. Gibt es eine bessere Lösung?

+0

Wenn die Position von G1 nicht bekannt ist, wie funktioniert Ihr gieriger Ansatz? Außerdem, wenn eine Position vorher besucht wurde, wird dies gezählt, wenn diese Position auch dort ist, wo sich eine der Boxen befindet? –

+0

G1 ist natürlich am Anfang bekannt. Nein, Sie müssen natürlich wiederkommen. Man könnte es sich wie ein Schlangenspiel vorstellen, bei dem die Spieler Essen sammeln müssen, das an zufälligen Orten erscheint. – Sohaib

+0

Sie sagen nicht explizit, also werde ich fragen. Wenn P1 zu G1 kommt, wissen P1 * und * P2 dann die Position von G2? –

Antwort

-1

Da das Problem nicht deterministisch ist, muss die Lösung heuristisch sein.

Der "Preis" bei jeder Runde ist die Anzahl der Züge in der Runde. Dies kann sein pRN1 oder PRN2 für die Anzahl von Zügen für player1 oder player2 jeweils wiederum N.

Der „Score“ bei jeder Umdrehung kann als die Wahrscheinlichkeit angenommen werden, dass eine bestimmte Anordnung (die Position des beide Spieler) nach den Zügen wird eine gute Vereinbarung für den Rest der Kurven sein.

Sie möchten eine Bewertungsfunktion verwenden, die sowohl den Preis als auch die Punktzahl berücksichtigt, um die Entscheidung zu treffen.

Das Problem ist, die einzige nützliche Scoring-Funktion ist eine, die eine Funktion der Entfernung zwischen den Spielern ist (je größer die Entfernung, desto größer ist die Chance, näher an den nächsten Kurven zu sein) und dies ist genau synchron mit der Mindestpreis. Jede Wahl, die die Spieler so weit wie möglich auseinander hält, ist notwendigerweise diejenige, die am billigsten ist.

Was das alles bedeutet, wenn der beste Algorithmus einfach ist, den nächsten Spieler zu bewegen, was der erste Instinkt ist, den Sie hatten.

Hätte das Board nicht wäre unendlich, könnten Sie eine bessere Scoring-Funktion erstellen, eine, die die Wahrscheinlichkeiten der nächsten Boxen berücksichtigt, die niedrigere Punktzahlen zu Vereinbarungen geben würde, die einen Spieler an den Rändern des Boards verlassen.

+1

Die Karte ist unendlich lang. Ich denke, das Scoring ist richtig, aber wie man punkten und bestrafen kann, ist der Teil, an den ich nicht denken kann. – Sohaib

+0

@Sohaib - Ich habe den Punkt der unendlichen Tafel verpasst. In diesem Fall ist "Wert" immer gleich - Sie können nicht zwei Vereinbarungen vergleichen. Das bedeutet, dass Sie nur mit "Preis" verlassen werden, und das haben Sie in der Frage selbst vorgeschlagen. – Amit

+0

Ihre Behauptung, dass "je größer der Abstand [zwischen den Spielern] ist, desto größer ist die Chance, näher an den nächsten Abbiegungen zu sein" ist nicht wahr. Für jedes Beispiel, das Sie geben können, wenn die Spieler, die maximal weit voneinander entfernt sind, ein Vorteil ist, kann ich Ihnen eines geben, bei dem es besser ist, die Spieler näher beieinander zu haben. –

0

Ich denke, da das Board unendlich ist, sollten wir versuchen, so viel Fläche mit beiden Spielern wie möglich innerhalb von n Moves abzudecken (für jedes n). Auf diese Weise maximieren wir die Fülle an Feldern, die wir in n Bewegungen erreichen können.

Wer zum nächsten Feld nächsten ist:

So würde meine Strategie sein?

Sei dies P1.

Lassen Sie P1 zur Box gehen (kürzester Weg) und gehen Sie mit dem anderen Spieler P2 in die direkt entgegengesetzte Richtung. Auf diese Weise maximieren wir den Abstand zwischen den beiden Spielern, was die Überlappung des Bereichs minimiert, den sie in n Schritten erreichen können. Auf diese Weise maximieren wir die Reichweite des Bereichs, den die beiden Spieler in n Schritten für die nächste Box erreichen können.

+0

Die Sache ist zu einer Zeit nur ein Spieler kann sich bewegen. Ich habe an diese Strategie gedacht, aber wie beweisen wir, dass diese Strategie besser ist? – Sohaib

+0

Wenn nur einer von beiden sich bewegen kann, würde ich mich für die gierige Annäherung entscheiden. Was den Beweis dafür angeht, dass die Strategie besser ist, habe ich keine Ahnung. Ich würde für eine Simulation gehen und die Ergebnisse für verschiedene Strategien vergleichen. – MrSmith42

+2

Ich glaube nicht, dass Sie beweisen können, dass Ihre Heuristik nützlich ist. Wenn sich P1 in Richtung G2 bewegt, haben Sie keine Informationen über die Position von G3. Blindes Bewegen von P2 in die genau entgegengesetzte Richtung von P2 ist ebenso wahrscheinlich, um es von G3 weg zu G3 zu bewegen. Weil die Spieler nur einen nach dem anderen bewegen können, erhöht jeder vorausschauende Zug, der sich als falsch erweist, die Gesamtzeit und bringt keinen Nutzen. Man kann also den anderen Spieler ruhig halten, während sich der andere auf ein bekanntes Tor zu bewegt. –

0

Die beste Heuristik, die Sie finden können, wenn Sie den Spieler auswählen, der der nächsten Box am nächsten ist.

Erklärung: Immer wenn ein neues Ziel angezeigt wird, gibt es nur zwei Optionen: Spieler 1 oder Spieler 2 zum Ziel auf Kosten der Entfernung in Feldern bewegen. Wir bevorzugen auch eine Situation, in der die Spieler weit voneinander entfernt sind. Der extremste Fall wäre, dass beide Spieler auf demselben Feld sind, was genauso gut ist wie nur einen Spieler zu haben. Da das Spielfeld unendlich ist, ist es immer besser, weit auseinander zu sein.

Wenn das stimmt, dann sollten Sie sich fragen: Sollte ich wirklich entscheiden, dass der Spieler weiter vom Ziel entfernt ist und enden in einer Situation, in der die Spieler näher zusammen sind, als wenn ich es genommen hätte der andere Spieler?

Sicher nicht. In einem unendlichen Feld hilft die Auswahl des nächsten Spielers bei beiden, minimiert die aktuellen Kosten und verbessert die Situation für das nächste Ziel (weit voneinander entfernte Spieler).

+1

Während Sie Recht haben, dass die Auswahl des nächsten Spielers die beste Option ist, liegt der Grund dafür darin, dass Sie nur begrenzte Informationen haben, um eine Entscheidung zu treffen. Es könnte nützlich sein, den Spieler zu bewegen, der weiter weg ist, da alle verbleibenden Punkte in der Nähe der aktuellen Position des anderen Spielers liegen. Aber weil du nicht weißt, was als nächstes kommt, nimmst du den Greedy-Algorithmus. –

+0

@ jim-mischel Sicher, wenn Sie alle Positionen kennen würden, hätten Sie ein schönes Optimierungsproblem mit einer optimalen Lösung, die mit dem gierigen Ansatz nicht erreicht werden könnte. Ich nahm an, dass es klar ist, dass es sich hier um eine Heuristik handelt. – lex82

Verwandte Themen