Hay tres aspectos en esta pregunta:
- ¿Puede un NPC tener memoria?
- ¿se puede reducir esa memoria a un algoritmo uniforme?
- ¿Cómo se debe usar la memoria?
La respuesta a la primera es bastante obvia: almacene datos para cada interacción que tenga el NPC y luego haga uso de eso durante las futuras interacciones del NPC. Obviamente, hay muchos detalles aquí en los que querrá pensar, como si hay una diferencia entre la memoria a corto y largo plazo, en qué medida desea que la memoria se vuelva borrosa con el tiempo, cuánto conocimiento debería ser realmente incorporado en cualquier memoria particular, y lo que cuenta como un identificador para activar una memoria.
Una tabla hash o una matriz asociativa es probablemente la forma más fácil de administrar esto si está buscando un mecanismo de propósito general, y si anticipa grandes memorias con muchas entradas individuales, la tabla hash también será una solución bastante eficiente.
- Si una máquina aprende algo del aprendizaje automático, ¿está creando un nuevo código que puede transferirse a otras máquinas?
- ¿Cuál es la plataforma o herramienta más simple para practicar el aprendizaje automático (para principiantes)?
- Cómo aprender a aplicar redes neuronales para la optimización
- ¿Qué debo elegir para estudiar, aprendizaje automático, análisis de big data o algo más en inteligencia artificial?
- ¿Cómo se puede obtener una comprensión profunda sobre el aprendizaje automático, como publicar artículos sobre NIPS, ICML?
Una tabla hash ocultará los detalles de cualquier algoritmo que se use para buscar en la memoria en función de un identificador primario, pero si desea realizar búsquedas más difusas, tiene un par de opciones.
- usar una base de datos con múltiples índices;
- almacenar la memoria como una codificación estadística, como una red neuronal.
Una base de datos en memoria como SQLite puede ser una herramienta muy poderosa y la latencia de las consultas tiende a ser baja. También es fácil duplicar a un archivo de disco si la persistencia es importante. El principal inconveniente sería la huella de recursos que podría requerir que todas las memorias se almacenen en una sola base de datos, lo que complicaría más el esquema individual, aunque no creo que eso sea un problema con SQLite.
Una codificación estadística como una red neuronal proporcionaría una interfaz muy uniforme para realizar consultas y cada NPC podría tener su propia estructura de datos ANN, pero las ANN son bestias difíciles (¿Cuáles son los pros y los contras de las redes neuronales desde una perspectiva práctica?) se desperdiciará un gran esfuerzo por poco beneficio práctico.
Cualquiera sea la forma que tome la memoria, debe permitir tanto la consulta activa como la activación pasiva. Este último sugiere un sistema sensorial de algún tipo impulsado por eventos que tiene implicaciones más allá del alcance de esta pregunta 🙂