# FORR

FORR (Por las razones correctas) es una arquitectura cognitiva para el aprendizaje y la resolución de problemas inspirada en las ideas de racionalidad limitada y satisfacción de Herbert A. Simon . Fue desarrollado por primera vez a principios de la década de 1990 en la Universidad de la Ciudad de Nueva York . Se ha utilizado en juegos, búsqueda de rutas de robots, diseño de parques recreativos, sistemas de diálogo hablado y resolución de problemas de satisfacción de restricciones NP-hard, y es lo suficientemente general para muchas aplicaciones de resolución de problemas. FORR no tiene un conocimiento perfecto de cómo resolver un problema, sino que aprende de la experiencia. Los agentes inteligentes no son óptimos, pero toman decisiones basadas solo en un subconjunto de todas las buenas razones posibles y datos informativos. Estos agentes aún pueden considerarse racionales. Esta idea de racionalidad limitada fue presentada por Herbert A. Simon, quien, junto con Allen Newell, desarrolló los primeros cimientos del estudio de las arquitecturas cognitivas y también inspiró arquitecturas tempranas como Soar y ACT-R .

### Múltiples buenas razones

FORR depende de la idea de que existen múltiples razones o fundamentos para realizar acciones mientras se resuelve un problema. Estas razones pueden ser siempre correctas (siempre es correcto hacer un movimiento en el ajedrez que pondrá al oponente en jaque mate) o solo a veces correctas. Las razones siempre correctas son la minoría. Las razones a veces correctas pueden competir entre sí: por ejemplo, en el juego, una buena razón podría ser capturar piezas, mientras que otra podría ser controlar alguna área del tablero. En FORR, estas razones en competencia se denominan asesores. El sistema de asesores escalonados es lo suficientemente general como para que se pueda implementar cualquier buena razón potencial, como probabilística, deductiva o perceptiva, siempre que brinde consejos sobre su preferencia de una acción sobre otra. Debido a su dependencia de un conjunto de agentes independientes (los Asesores), FORR puede considerarse una arquitectura conexionista .

## La arquitectura

Una arquitectura FORR tiene tres componentes: un conjunto de descriptivos que describen el estado del problema, un conjunto de asesores en niveles que se consultan para decidir qué acción realizar y un script de comportamiento que consulta a los asesores y realiza la acción que ellos sugerir.

### Asesores

Los Asesores son el conjunto de fundamentos o heurísticas para tomar una decisión. Pueden considerarse el componente de memoria procedimental de la arquitectura. Ante cada nueva decisión, se consulta a los asesores para decidir qué acción realizar. Los asesores nunca se comunican entre sí ni aprenden por sí solos: simplemente solicitan información sobre el estado del problema almacenado en forma de descriptivos y hacen una sugerencia basada en esa información. Los Asesores se dividen en tres niveles, que se consultan en el siguiente orden:
* Nivel 1: estos Asesores siempre tienen la razón. Si estos sugieren una acción, esa acción se lleva a cabo inmediatamente y la consulta finaliza. Si prohíben una acción, esa acción se elimina de la consideración. De lo contrario, pasa al siguiente nivel.
* Nivel 2: si se activa uno de estos asesores, propone un subproblema o un conjunto ordenado de acciones, logrando un subobjetivo para resolver el problema general (como moverse alrededor de un obstáculo en un laberinto). Si no se activa ningún asesor de nivel 2, pase al último nivel.
* Nivel 3: estos son todos los demás fundamentos. No siempre tienen razón, pero compiten entre sí. Votan sobre una acción y se realiza la sugerencia más votada. Diferentes clases de problemas en el mismo dominio tendrán diferentes pesos para los mismos Asesores, y los pesos se desarrollan a partir de la experiencia a través de algoritmos de aprendizaje .

### descriptivos

El componente de memoria declarativa de la arquitectura, los descriptivos representan el estado del problema y están disponibles para cualquier Asesor.

### Guion conductual

El script de comportamiento consulta cada nivel de asesores de forma secuencial. Si un asesor de nivel 1 sugiere una acción, el script realiza la acción. De lo contrario, si se activa un asesor de nivel 2, significa que se ha encontrado un subproblema. Un asesor de nivel 1 garantiza que solo un asesor de nivel 2 está activo en cualquier momento. Si ningún asesor de nivel 1 comenta ni se activa ningún asesor de nivel 2, el script de comportamiento solicita sugerencias o comentarios de todos los asesores de nivel 3 y les permite votar. El script realiza la acción con el voto más alto entre todos los asesores de nivel 3.

## Implementación de una arquitectura FORR

Un dominio de problema es un conjunto de problemas similares, llamados clases de problemas. Si el dominio del problema es jugar juegos de mesa simples, entonces el tres en raya es una clase de problema, y un juego particular de tres en raya es una instancia de problema. Si navegar por un laberinto es el dominio del problema, entonces un laberinto en particular es la clase y un intento de navegar por él es una instancia. Una vez que se identifica el dominio del problema, la implementación de una arquitectura FORR para ese dominio tiene dos etapas básicas: encontrar las posibles razones correctas (los asesores) y aprender sus pesos para una clase en particular.

### Cómo construir una arquitectura FORR

* Decidir sobre un dominio problemático.
* Utilice el conocimiento del dominio, las encuestas de la literatura, la intuición y el sentido común para enumerar una lista de posibles fundamentos para tomar una decisión, que puede ser buena o mala para las diferentes clases dentro del dominio. Estos fundamentos son los Asesores.
* Divida a los asesores en niveles:
** Los Asesores que siempre tienen la razón están en el Nivel 1. Por ejemplo, siempre es correcto hacer un movimiento ganador en un juego de mesa.
** Los Asesores que identifican un subproblema pasan al Nivel 2. Por ejemplo, dar la vuelta a una pared en un laberinto.
** Todos los demás asesores son de nivel 3.
* Codifique los Asesores. Cada asesor devuelve un conjunto de acciones sugeridas junto con ponderaciones para cada acción sugerida. Los pesos se establecen inicialmente en un valor uniforme, como 0,05.
* Identificar toda la información sobre el estado del problema que necesitan todos los Asesores. Estos son los descriptivos. Codifique estos.
* Codifique el script de comportamiento que consulta a los asesores y realiza la acción que sugieren.
* Aprenda los pesos de los asesores en un conjunto de instancias de problemas particulares en la fase de aprendizaje utilizando un algoritmo de aprendizaje de refuerzo .
* Pruebe la arquitectura en un conjunto de instancias de problemas no encontradas anteriormente.

### Pesos del asesor de aprendizaje

Los asesores son los mismos para todas las clases de problemas en un dominio, pero los pesos pueden ser diferentes para cada clase dentro del dominio. Las heurísticas importantes para tres en raya podrían no serlo para un juego de mesa diferente. FORR aprende los pesos de sus asesores de nivel 3 por experiencia. Los asesores que sugieran una acción que resulte en un fracaso verán penalizados sus pesos, y los asesores cuyas sugerencias resulten en un éxito verán incrementados sus pesos. Los algoritmos de aprendizaje varían entre implementaciones.

## Aplicaciones

FORR se ha utilizado para juegos, búsqueda de robots, problemas de satisfacción de restricciones, diseño de parques y sistemas de diálogo hablado .