Los contra autómatas fueron muy estudiados en el antiguo lenguaje formal en el pasado, en el contexto de la teoría AFA y AFL (familias abstractas de autómatas e idiomas) por equipos estadounidenses y franceses (Ginsberg, Greibach, ..., Nivat, Berstel, ...)
Los autómatas de contador generalmente se definen como autómatas de estado finito equipados con memoria externa, que consta de un número natural (o varios si tiene más de un contador). Este número puede incrementarse, disminuirse y (generalmente) probarse para cero. Un cálculo comienza con cero y solo se acepta cuando el contador es cero al final, comparable a la aceptación de la pila vacía.
Si dicha máquina tiene al menos dos de esos contadores, entonces es equivalente a una máquina de Turing, incluso en el caso determinista. La prueba de este hecho es de Minsky y se puede encontrar en el artículo de Wikipedia que ha vinculado. El modelo, por supuesto, está relacionado con la máquina de registro mencionada en la misma página de Wikipedia. Los problemas de codificación mencionados en el artículo de wikipedia no son importantes en esta configuración aquí, ya que consideramos los autómatas con una cinta de entrada (después de todo, tenemos que leer una cadena de entrada) mientras que wikipedia en esta página solo asume contadores.
Este contador de autómatas puede verse como un tipo especial de pda, que tiene un solo símbolo de pila y un fondo de pila (que nunca se mueve). Esto permite que el autómata pruebe si el contador / pila es cero y actúa en consecuencia.
De hecho, hay tres tipos de autómatas de contador. Así que combine los resultados sabiamente o terminará con contradicciones (como me sucedió en el pasado). Los tres tipos se incluyen (estrictamente) en los idiomas sin contexto para un contador.
El tipo anterior almacena un número entero (o un número natural, eso no importa) y puede probar su contenido desde cero.
Los autómatas de contador ciego almacenan un número entero pero no pueden probar cero. Sin embargo, pueden contar explícitamente por debajo de cero.
Los autómatas de contador parcialmente ciegos no pueden probar cero, pero almacenan un número natural. Si la máquina intenta ir por debajo de cero, se detiene sin aceptar. Este es un tipo de almacenamiento natural para modelar redes de Petri. También está relacionado con el PDA, ahora con un único símbolo de pila sin el marcador inferior especial (y, por lo tanto, el problema de la prueba de cero: simplemente nos quedamos atascados al hacer estallar el último elemento de la pila). A veces, los nombres de las familias definidas por los modelos de contador de resistencia son OCL, ROCL y 1-BLIND.
( D c )∗D = { w ∈ { a , b }∗∣ #un( w ) = #si( w ) }unsiC
Como ejemplo de investigación relevante, Latteux etal tiene un documento no trivial "La familia de los idiomas de un contador está cerrado bajo el cociente" (que en realidad se trata de ROCL).