Ich untersuche einen Spielalgorithmus und denke darüber nach, wie ich es verbessern kann. Es gibt einen Vorausschau-Baum. Dies ist ein sehr häufiges Szenario, wie in Karten oder ähnlichen Spielen. Die Spielstrategie ist als Tensor (multidimensionales Array) implementiert. Die Anzahl der Dimensionen = Vorausschautiefe. Und jede Dimensionsgröße ist die MAX-mögliche Anzahl von Aktionen, die in dieser Tiefenebene des Baums verfügbar sind. Ein Knoten auf der gleichen Ebene kann nur zwei Aktionen zur Verfügung haben, und die anderen 10. Aber wir müssen eine Dimension der Größe 10 haben, wenn wir den Tensor verwenden. Außerdem müssen wir die andere Struktur mit Aktionen für alle Knoten speichern. Es gibt eine Menge von Operationen, die mit dieser Tensor-ähnlichen elementweisen Multiplikation, Addition usw. durchgeführt werden. Die Gesamtgröße dieses Tensors beträgt einige Gigabyte. Ist dieser Tensor eine gute Idee oder nicht in Bezug auf die Leistung? Kann ich die benutzerdefinierte Struktur verbessern? Die App ist extra leistungsschwer.Ist ein Tensor (multidimensionales Array) ein effektiver Speichertyp für die Baum-Lookahead-Daten?
Q
Ist ein Tensor (multidimensionales Array) ein effektiver Speichertyp für die Baum-Lookahead-Daten?
0
A
Antwort
0
Das klingt nach Auswendiglernen der Spieltheorie.
Zum Glück haben wir nicht eine jede Ebene von vornherein zu dimensionieren, so etwas wie dies mit:
class Moves {
TheMove thisMove; // A2-A3
std::vector<Moves> positions; // all possible counter moves
... add stuff
};
Dies wird schrecklich in Größe explodiert, wie Sie erwähnten. Der Vorteil ist, dass Sie nicht neu berechnen müssen, wenn Sie die gesamte mögliche Menge an Moves im gesamten Spiel zugeordnet haben.
Wenn Sie nicht das gesamte Spiel zuordnen, müssen Sie jede Bewegung (x-1)/x des Baumes verwerfen und die Endknoten um eine Stufe erweitern.
Verwandte Themen
- 1. erstellen Sie ein multidimensionales Array
- 2. Argsort für ein multidimensionales ndarray
- 3. Parameter/Speichertyp für ein C++ 11 Lambda
- 4. Ein php multidimensionales Array ändern
- 5. PHP - array_diff Ein multidimensionales Array und ein flaches Array
- 6. Ein eindimensionales PHP-Array in ein multidimensionales Array transformieren
- 7. Ein multidimensionales Array variabler Größe übergeben
- 8. Schleife in ein multidimensionales Array in PHP
- 9. PHP wie man ein multidimensionales Array erkunden
- 10. Iterieren über ein multidimensionales Bool-Array?
- 11. C# wiederhole ein kontinuierlich wachsendes multidimensionales Array
- 12. Schwierig, ein multidimensionales assoziatives Array zu sortieren
- 13. So speichern Sie ein multidimensionales Array
- 14. PHP - Split CSS in ein multidimensionales Array
- 15. Iteriere ein multidimensionales Array in PHP
- 16. Multidimensionales Array durch ein anderes ersetzen?
- 17. Ist es möglich, ein dynamisches multidimensionales Array zu erstellen?
- 18. Multidimensionales Array und für Schleife
- 19. PHP Wie multidimensionales Array in ein einzelnes Array aufgeteilt wird?
- 20. Multidimensionales Array
- 21. Was genau ist ein Tensor in theano?
- 22. Multidimensionales Array
- 23. Wie kann ich ein leeres multidimensionales 3D-Array erstellen
- 24. Javascript multidimensionales Array aus mysql Tabelle - weiß nicht, was ist das für ein Objekt Objekt
- 25. Wie fügt man ein multidimensionales Array in Python hinzu?
- 26. Wie initialisiert man ein multidimensionales Array unbekannter Größe in PHP?
- 27. Numpy: Sortieren eines mehrdimensionalen Arrays durch ein multidimensionales Array
- 28. Senden Sie ein multidimensionales Array über $ .post mit jquery
- 29. Multidimensionales Array in Datenrahmen
- 30. Anwenden einer Funktion auf ein multidimensionales Array mit Gruppierungsvariable