[Hinweis: Dieses Problem wurde von Pokemon Go inspiriert. Ich werde das Problem zuerst in mathematischen Begriffen erklären und dann die Verbindung zu Pokemon Go erklären. Mein Ziel ist es nicht, im Spiel zu schummeln. Wenn ich schummeln wollte, wären bessere Informationen leichter verfügbar.]
Angenommen, eine Ebene enthält Punkte (die "unbekannten Punkte"). Nennen Sie sie mit unbekannten Koordinaten. Darüber hinaus haben wir Messungen an bekannten Orten .m 1 , … , m M.
Sei der (allgemein unbekannte) euklidische Abstand vom Messpunkt zum unbekannten Punkt .m i n j
Für jede Messung haben wir folgende Informationen:
- Die genauen Koordinaten jedes unbekannten Punktes für den für eine bekannte Konstante ; und dist ( m i , n j ) < d min d min
- Eine Liste aller Indizes für die für eine bekannte Konstante , sortiert nach .dist ( m i , n j ) < d max d max > d min dist ( m i , n j )
Gibt es einen effizienten Algorithmus zur Berechnung der Bereiche der Ebene, in denen die unbekannten Punkte oder ein gegebener unbekannter Punkt können? Der Algorithmus erhält die Koordinaten der Messpunkte, die oben aufgeführten und die Anzahl unbekannter Punkte; Ziel ist es, den Bereich möglicher Orte für jeden der unbekannten Punkte so weit wie möglich . ( X i , Y i ) N n 1 , … , n N.
Die Pokemon-Verbindung:
In Pokemon Go, einem Augmented Reality-Spiel, ist das Ziel, Pokemons in der Natur zu finden. Hin und wieder zeigt das Spiel die Pokemons in einem "sichtbaren Bereich" ( ) der Position des Spielers. Darüber hinaus verfügt es über einen "Pokemon Finder", der eine Liste von Pokemons in der Nähe ( ) anzeigt, sortiert nach Entfernung. (Es soll auch eine ungefähre Entfernung als ein, zwei oder drei Schritte anzeigen, aber anscheinend gibt es einen Fehler und es werden immer drei Schritte angezeigt.) d i s t < d m a x