máquinas de turing
This commit is contained in:
parent
f69c3424ac
commit
f8269977ad
|
@ -78,7 +78,7 @@ si la tabla no tiene una respuesta, entonces la máquina se detiene. el cómputo
|
|||
|
||||
# algunas máquinas
|
||||
|
||||
próximamente
|
||||
encuentra aquí {máquinas de turing} para implementar y bailar.
|
||||
|
||||
# enlaces relevantes
|
||||
|
||||
|
|
|
@ -0,0 +1,163 @@
|
|||
# máquinas de turing
|
||||
|
||||
compendio de descripciones de máquinas de turing para implementarse de múltiples formas.
|
||||
|
||||
ideales para bailarlas en modalidad {d-turing}
|
||||
|
||||
# la primera
|
||||
|
||||
esta máquina genera la secuencia 0 1 0 1 0 1 de manera infinita.
|
||||
|
||||
estos son los componentes adaptados de la primera máquina de este tipo que describe turing en su artículo.
|
||||
|
||||
=> https://www.cs.virginia.edu/~robins/Turing_Paper_1936.pdf on computable numbers, with an application to the entscheidungsproblem - alan turing 1936
|
||||
|
||||
|
||||
## alfabeto de símbolos posibles en la cinta
|
||||
|
||||
tres símbolos posibles: 0, 1, y vacío
|
||||
|
||||
## conjunto de estados posibles
|
||||
|
||||
cuatro estados posibles: a, b, c, d
|
||||
|
||||
## estado inicial
|
||||
|
||||
la máquina empieza en el estado a.
|
||||
|
||||
la cinta puede estar "vacía".
|
||||
|
||||
## tabla de reglas
|
||||
|
||||
dado un símbolo encontrado en la cinta, y un estado actual: ¿por cuál símbolo hay que reemplazarlo, a qué dirección hay que mover la cabeza, y cuál ha de ser el nuevo estado?
|
||||
|
||||
+ <table>
|
||||
+ <tr>
|
||||
+ <th>estado actual</th><th>símbolo leído</th><th>nuevo símbolo</th><th>dirección</th><th>nuevo estado</th>
|
||||
+ </tr>
|
||||
+ <tr><td>a</td><td>cualquiera</td><td>0</td><td>derecha</td><td>b</td>
|
||||
+ <tr><td>b</td><td>cualquiera</td><td>el que estaba</td><td>derecha</td><td>c</td>
|
||||
+ <tr><td>c</td><td>cualquiera</td><td>1</td><td>derecha</td><td>d</td>
|
||||
+ <tr><td>d</td><td>cualquiera</td><td>el que estaba</td><td>derecha</td><td>a</td>
|
||||
+ </table>
|
||||
|
||||
& * si el estado es 'a', sin importar el símbolo leído, escribe 0, mueve a la derecha, y cambia a estado 'b'
|
||||
& * si el estado es 'b', sin importar el símbolo leído, deja ese símbolo, mueve a la derecha, y cambia a estado 'c'
|
||||
& * si el estado es 'c', sin importar el símbolo leído, escribe 1, mueve a la derecha, y cambia a estado 'd'
|
||||
& * si el estado es 'd', sin importar el símbolo leído, deja ese símbolo, mueve a la derecha, y cambia a estado 'a'
|
||||
|
||||
# calculadora de paridad
|
||||
|
||||
esta máquina cuenta la cantidad de "1"s en una secuencia binaria, y termina escribiendo "1" si la cantidad es impar, o "0" si es par.
|
||||
|
||||
similar al proceso descrito en {par y danza}, pero en máquina de turing.
|
||||
|
||||
adaptado de la descripción de minsky (computation: finite and infinite machines - marvin minsky 1967, pág 120)
|
||||
|
||||
|
||||
## alfabeto de símbolos posibles en la cinta
|
||||
|
||||
tres símbolos posibles: 0, 1, y B
|
||||
|
||||
## conjunto de estados posibles
|
||||
|
||||
dos estados posibles: a, b
|
||||
|
||||
## estado inicial
|
||||
|
||||
la máquina empieza en el estado a.
|
||||
|
||||
la cinta ha de contener la secuencia binaria, terminada con B. por ejemplo:
|
||||
|
||||
```
|
||||
101101B
|
||||
```
|
||||
|
||||
la cabeza ha de empezar en el 1 que está más a la izquierda.
|
||||
|
||||
## tabla de reglas
|
||||
|
||||
dado un símbolo encontrado en la cinta, y un estado actual: ¿por cuál símbolo hay que reemplazarlo, a qué dirección hay que mover la cabeza, y cuál ha de ser el nuevo estado?
|
||||
|
||||
+ <table>
|
||||
+ <tr>
|
||||
+ <th>estado actual</th><th>símbolo leído</th><th>nuevo símbolo</th><th>dirección</th><th>nuevo estado</th>
|
||||
+ </tr>
|
||||
+ <tr><td>a</td><td>0</td><td>0</td><td>derecha</td><td>a</td>
|
||||
+ <tr><td>a</td><td>1</td><td>0</td><td>derecha</td><td>b</td>
|
||||
+ <tr><td>a</td><td>B</td><td>0</td><td>-</td><td>FIN</td>
|
||||
+ <tr><td>b</td><td>0</td><td>0</td><td>derecha</td><td>b</td>
|
||||
+ <tr><td>b</td><td>1</td><td>0</td><td>derecha</td><td>a</td>
|
||||
+ <tr><td>b</td><td>B</td><td>1</td><td>-</td><td>FIN</td>
|
||||
+ </table>
|
||||
|
||||
& * si el estado es 'a' y el símbolo leído es 0, deja ese símbolo, mueve la cabeza a la derecha, y quédate en el estado 'a'
|
||||
& * si el estado es 'a' y el símbolo leído es 1, escribe 0, mueve la cabeza a la derecha, y cambia al estado 'b'
|
||||
& * si el estado es 'a' y el símbolo leído es B, escribe 0, y termina la operación
|
||||
& * si el estado es 'b' y el símbolo leído es 0, deja ese símbolo, mueve la cabeza a la derecha, y quédate en el estado 'b'
|
||||
& * si el estado es 'b' y el símbolo leído es 1, escribe 0, mueve la cabeza a la derecha, y cambia al estado 'a'
|
||||
& * si el estado es 'b' y el símbolo leído es B, escribe 1, y termina la operación
|
||||
|
||||
# comprobador de paréntesis
|
||||
|
||||
esta máquina revisa una secuencia con pares de paréntesis, y al finalizar escribe 1 si es una secuencia bien formada, o 0 si no.
|
||||
|
||||
una secuencia bien formada de paréntesis implica que a cada paréntesis izquierdo le corresponde uno derecho.
|
||||
|
||||
adaptado de la descripción de minsky (computation: finite and infinite machines - marvin minsky 1967, pág 122)
|
||||
|
||||
## alfabeto de símbolos posibles en la cinta
|
||||
|
||||
cuatro símbolos posibles: (, ), A, X
|
||||
|
||||
## conjunto de estados posibles
|
||||
|
||||
tres estados posibles: a, b, c
|
||||
|
||||
## estado inicial
|
||||
|
||||
la máquina empieza en el estado a.
|
||||
|
||||
la cinta ha de contener la secuencia de paréntesis contenida entre un par de A. por ejemplo:
|
||||
|
||||
```
|
||||
A((()())())A
|
||||
```
|
||||
|
||||
la cabeza ha de empezar en el primer paréntesis a la izquierda.
|
||||
|
||||
## tabla de reglas
|
||||
|
||||
dado un símbolo encontrado en la cinta, y un estado actual: ¿por cuál símbolo hay que reemplazarlo, a qué dirección hay que mover la cabeza, y cuál ha de ser el nuevo estado?
|
||||
|
||||
+ <table>
|
||||
+ <tr>
|
||||
+ <th>estado actual</th><th>símbolo leído</th><th>nuevo símbolo</th><th>dirección</th><th>nuevo estado</th>
|
||||
+ </tr>
|
||||
+ <tr><td>a</td><td>)</td><td>X</td><td>izquierda</td><td>b</td>
|
||||
+ <tr><td>a</td><td>(</td><td>(</td><td>derecha</td><td>a</td>
|
||||
+ <tr><td>a</td><td>A</td><td>A</td><td>izquierda</td><td>c</td>
|
||||
+ <tr><td>a</td><td>X</td><td>X</td><td>derecha</td><td>a</td>
|
||||
+ <tr><td>b</td><td>)</td><td>)</td><td>izquierda</td><td>b</td>
|
||||
+ <tr><td>b</td><td>(</td><td>X</td><td>derecha</td><td>a</td>
|
||||
+ <tr><td>b</td><td>A</td><td>0</td><td>-</td><td>FIN</td>
|
||||
+ <tr><td>b</td><td>X</td><td>X</td><td>izquierda</td><td>b</td>
|
||||
+ <tr><td>c</td><td>)</td><td>-</td><td>-</td><td>-</td>
|
||||
+ <tr><td>c</td><td>(</td><td>0</td><td>-</td><td>FIN</td>
|
||||
+ <tr><td>c</td><td>A</td><td>1</td><td>-</td><td>FIN</td>
|
||||
+ <tr><td>c</td><td>X</td><td>X</td><td>izquierda</td><td>c</td>
|
||||
+ </table>
|
||||
|
||||
& * si el estado es 'a' y el símbolo leído es ), reemplaza por X, mueve la cabeza a la izquierda, y cambia al estado 'b'
|
||||
& * si el estado es 'a' y el símbolo leído es (, deja (, mueve la cabeza a la derecha, y mantén el estado 'a'
|
||||
& * si el estado es 'a' y el símbolo leído es A, deja A, mueve la cabeza a la izquierda, y cambia al estado 'c'
|
||||
& * si el estado es 'a' y el símbolo leído es X, deja X, mueve la cabeza a la derecha, y mantén el estado 'a'
|
||||
& * si el estado es 'b' y el símbolo leído es ), deja ), mueve la cabeza a la izquierda, y mantén el estado 'b'
|
||||
& * si el estado es 'b' y el símbolo leído es (, reemplaza por X, mueve la cabeza a la derecha, y cambia al estado 'a'
|
||||
& * si el estado es 'b' y el símbolo leído es A, reemplaza por 0, y finaliza
|
||||
& * si el estado es 'b' y el símbolo leído es X, deja X, mueve la cabeza a la izquierda, y mantén el estado 'b'
|
||||
& * si el estado es 'c' y el símbolo leído es ), hay algún error pues no debería suceder
|
||||
& * si el estado es 'c' y el símbolo leído es (, reemplaza por 0, y finaliza
|
||||
& * si el estado es 'c' y el símbolo leído es A, reemplaza por 1, y finaliza
|
||||
& * si el estado es 'c' y el símbolo leído es X, deja X, mueve la cabeza a la izquierda, y mantén el estado 'c'
|
||||
|
|
@ -22,13 +22,15 @@ complete, organize and clean the following:
|
|||
|
||||
* organize translations
|
||||
* complete the {mub} page
|
||||
* add machines to the {d-turing} page
|
||||
* systematize classification in the {logiteca}
|
||||
|
||||
## done
|
||||
|
||||
here for a while as a reference
|
||||
|
||||
* add machines to the {d-turing} page:
|
||||
=> ./máquinas_de_turing.gmi {máquinas de turing}
|
||||
|
||||
* page: el computador proposal ({propuesta el computador})
|
||||
* page: {proposals}
|
||||
* page: {the beans computer}, uploading the video somewhere (the video was not found!)
|
||||
|
|
Loading…
Reference in New Issue