# danzasistemas-tag una compudanza basada en máquina abstracta (tag systems, o bien, máquina de post) => ./compudanzas.gmi {compudanzas} # descripción las danzasistemas-tag consisten en "batallas" de baile en las que alternamos recibiendo y respondiendo secuencias de movimiento. las secuencias que respondemos son producto de procesar elementos de la secuencia que recibimos. # indicaciones necesitamos los siguientes elementos: * A: alfabeto finito de símbolos/movimientos identificables y replicables * P: las reglas de producción: qué símbolos/movimientos hay que agregar al final de la nueva secuencia, de acuerdo al primer símbolo/movimiento de la secuencia recibida. * m: número de eliminación: cuántos símbolos/movimientos hay que eliminar del inicio de la secuencia recibida. al recibir una secuencia de movimiento, hemos de poner atención y realizar lo siguiente para construir nuestra respuesta: * notar el primer símbolo/movimiento, que nos indica qué regla de producción seguir al final de la secuencia. * descartar la cantidad de símbolos/movimientos del inicio de la secuencia de acuerdo al número de eliminación. (esto incluye al primer símbolo/movimiento). * memorizar y replicar la secuencia recibida a partir de ese punto, en orden y hasta el final. * agregar el o los símbolos/movimientos al final de la secuencia, de acuerdo a la regla de producción. según la danzasistema-tag, la dinámica de respuestas continúa hasta llegar al símbolo/movimiento que indique detenerse, o hasta que la secuencia de movimiento quede vacía. # ejemplo cómputo de secuencias de collatz, tomado de wikipedia => https://en.wikipedia.org/wiki/Tag_system#Example:_Computation_of_Collatz_sequences Tag system - Example: Computation of Collatz sequences (web) los elementos de nuestra danzasistema-tag serían los siguientes: ## A: alfabeto finito de símbolos/movimientos tres símbolos/movimientos: a, b, c ## P: reglas de producción si primer símbolo/movimiento es 'a', agrega 'bc' al final. si primer símbolo/movimiento es 'b', agrega 'a' al final. si primer símbolo/movimiento es 'c', agrega 'aaa' al final. nota cómo cada regla de producción agrega una cantidad distinta de símbolos/movimientos al final. ## m: número de eliminación en este caso, siempre descartaremos 2 símbolos/movimientos del inicio de la secuencia. ## desarrollo partiendo de una secuencia inicial 'aaa'... ``` inicio: aaa respuesta: abc respuesta: cbc respuesta: caaa respuesta: aaaaa respuesta: aaabc respuesta: abcbc respuesta: cbcbc etc... ``` siempre se descartan los 2 símbolos/movimientos del inicio, pero la cantidad de símbolos/movimientos que se agregan al final cambian de acuerdo a la regla de producción. esta dinámica de respuestas a partir de esa secuencia inicial, eventualmente termina descartando a la secuencia completa. ## llega(n) aquí => ./compudanzas.gmi {compudanzas}