Lenguaje de acción
# Lenguaje de acción

En ciencias de la computación, un lenguaje de acción es un lenguaje para especificar sistemas de transición de estados y se usa comúnmente para crear modelos formales de los efectos de las acciones en el mundo. Los lenguajes de acción se usan comúnmente en los dominios de inteligencia artificial y robótica, donde describen cómo las acciones afectan los estados de los sistemas a lo largo del tiempo y pueden usarse para la planificación automatizada.

Los lenguajes de acción se dividen en dos clases: lenguajes de descripción de acción e lenguajes de acción de consulta. Ejemplos de los primeros incluyen STRIPS, PDDL, Lenguaje A (una generalización de STRIPS; la parte proposicional de la ADL de Pednault), Lenguaje B (una extensión de A que agrega efectos indirectos, distinguiendo leyes estáticas y dinámicas) y Lenguaje C (que agrega efectos indirectos también y no asume fluencia "inercial" absoluta). También están los lenguajes de acción de consulta P, Q y R. Existen varios algoritmos diferentes para convertir los lenguajes de acción, y en particular, el lenguaje de acción C para programas de conjuntos de respuestas. Dado que los solucionadores de conjuntos de respuestas modernos utilizan algoritmos SAT booleanos para determinar rápidamente la satisfacción, esto implica que los lenguajes de acción también pueden disfrutar del progreso realizado en el dominio de la resolución SAT booleana.

## Definición formal

Todos los lenguajes de acción complementan la definición de un sistema de transición de estado con un conjunto F de fluidos, un conjunto V de valores que pueden tomar los fluidos y una función de mapeo S × F a V, donde S es el conjunto de estados de un sistema de transición de estado .

