Autor Tema: *Lab*: El Halting Problem con un enfoque experimental

0 Usuarios y 1 Visitante están viendo este tema.

13 Enero, 2012, 01:57 am
Respuesta #10

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,330
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
@feriva, @Óscar, @argentinator
antes de respónder, les agradezco que se enganchen con mis empecinamientos.
Una de dos, o salgo "curado", y convencido de mi error (aunque ahora no lo veo así), o me canso tanto de responder y responder y responder, que aunque siga con la misma idea, la dejo guardada para siempre en un cajón. Lo que se llama un loco que no se curó pero se amansó y no dice más nada, jajaja!

Más tarde respondo, porque me la han hecho difícil, eh.

Saludos!

Sigue todo lo que quieras, así recuerdo los viejos tiempos de los ordenadores de antes.
 Mira, he encontrado en PDF el libro que yo tenía de código máquina, creo que te parecerá interesante.

http://speccy.org/trastero/cosas/Libros/El_libro.htm

Saludos

13 Enero, 2012, 01:58 am
Respuesta #11

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,330
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Hola,



Depende de cómo se haya tomado la broma Óscar (pero no creo que se haya enfadado, porque la hizo él primero  :laugh: )

¡Qué me voy a enfadar!  ;D


 :laugh:


13 Enero, 2012, 03:04 am
Respuesta #12

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Gracias, feriva, por el pdf, voy a darle una ojeada (sin h porque es de ojo, con h es de hoja, ¿no?), para recordar viejos tiempos.

Saludos!

13 Enero, 2012, 03:17 am
Respuesta #13

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,330
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Gracias, feriva, por el pdf, voy a darle una ojeada (sin h porque es de ojo, con h es de hoja, ¿no?), para recordar viejos tiempos.

Saludos!


Sí, sin "h", en cambio, hojear es con "h", de mover las hojas del libro; cosas que tienen los académicos  :laugh:

13 Enero, 2012, 03:18 am
Respuesta #14

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino

Pero bueno, alguien ya me mostrará la famosa máquina que puede interpretar/emular su propio código (si no ejecutarlo).


No has dado tu opinión sobre la implementación de argentinator del argumento de Turing.

Saludos

Muy bonito, je je.

Pero si nos permitimos redefiniciones de las condiciones iniciales del programa que representa a la MT de Turing, yo podría agregar lo siguiente, para evitar que Turing use el código de la máquina testeadora como input:

@if '%0'=='%1' ( echo Turing: esto no es válido   Compara el input con su propio nombre
goto :fin )

@if '%2'=='' universal.bat %1 %1
%1 %2
:fin

Output:

C:\> UNIVERSAL UNIVERSAL UNIVERSAL
Turing: esto no es v?lido

C:\>

También es algo nuevo que si le falta input, bueno, lo arreglo llamándolo al mismo bat con el primer argumento duplicado.

Lo que me parece incomprensible es que para no sacar el simple y humilde mensajito "Falta un argumento", se hace entrar al proceso no ya en un bucle infinito, que sólo consume tiempo, sino a una cadena potencialmente infinita de llamadas que pueden hacer colapsar la memoria de la máquina. Los sistemas operativos tienen defensas para casi todo, pero no para la proliferación de procesos.

En resumen, no llega a terminar normalmente, en el caso "ingenuo" (sin sentencias "ad hoc"), porque se queda sin input; y en el caso "malicioso" (porque sabe que se queda sin input pero trata de ocultarlo), porque se queda leyendo infinitamente su input, o su input es infinito, como prefieras.

En ningún caso le serviría a Turing, me parece.

**************

El caso Ivorra también es "ad hoc": en vez de poner dentro del código una previsión ante la falta de input, pone como hipótesis que ante la cinta en blanco entra en loop o termina "bien". En ese caso siempre hay una respuesta ya predeterminada, y no se puede llegar a la contradicción que necesita Turing. Supongamos que ante la falta de input la máquina interna loopea. La máquina externa para, y siempre es así, no podemos agregar: "y si la máquina interna para, la máquina externa loopea", porque ese caso no se da nunca. Ergo, no hay contradicción.

Eso para el caso de la predicción del loop, el de Turing.

En el caso que planteé yo, de autoaplicación pura sin predicción, en el caso de las MT es una MUT que llama a otra MUT que no tiene máquina objeto que ejecutar.

Considera que no es simplemente que faltan datos en la cinta, en el caso de la MUT si la cinta está en blanco FALTA UNA MÁQUINA COMPLETA.

Sí, se puede decir, "bueno, si no tengo input para pasarle considero que es una máquina con la cinta en blanco", pero en ese caso no le queda otra alternativa que loopear, no puede parar porque NO TIENE MANERA DE "SABER" que TODA la cinta está en blanco. Tiene que seguir leyendo eternamente por si viene algún 0 o un 1. Entonces la máquina extena se queda eternamente esperando a su máquina interna; es decir, no termina nunca de procesar CARGAR su input.

En las máquinas reales uno podría decir también: se queda esperando eternamente su input, es decir, se detiene. Pero eso es detectable, hay tercer estado que es no terminó de procesar ni loopeó. No tuvo input por timeout. En las MT una combinación de unos y ceros puede indicar "nulo", y mandarla a un estado que no es terminal. Es cuestión de definición, la suposición de Ivorra no es forzosa.

Saludos!

P.D.: Mencionas el primer hilo que abrí sobre esto, y el debate con Ivorra. Allí yo no asumí compromiso alguno con las definiciones que dió él allí o en su libro. De hecho, apenas pude abrir el hilo, y ya nos liamos en una discusión sobre una demostración que dió él, que llevó más de cien mensajes. Creo que no fue inútil, pero nada de lo que dije allí fue para defender mi tesitura, sino para rebatir la de él.









13 Enero, 2012, 03:21 am
Respuesta #15

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Gracias, feriva, por el pdf, voy a darle una ojeada (sin h porque es de ojo, con h es de hoja, ¿no?), para recordar viejos tiempos.

Saludos!


Sí, sin "h", en cambio, hojear es con "h", de mover las hojas del libro; cosas que tienen los académicos  :laugh:

Sí, es una minucia, pero si la discusión  está caliente, por una cosa así te pueden mandar a la primaria! jajaja


13 Enero, 2012, 12:40 pm
Respuesta #16

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino

Se podría enviar a los departamentos de Labs de Google, Microsoft, Apple, IBM, y cualquier empresa que tenga tales departamentos, postear en las redes sociales, y pasar de boca en boca.

Si se puede encontrar algún sponsor que ofrezca una recompensa apetitosa, bienvenido sea.

1) Se solicita construir un programa que ejecute el código del programa que recibe como input. Debe además funcionar con su propio código como input. Se considerará que funciona si el programa objeto se completa con un estado final, o queda ejecutando un ciclo infinito, pero se considerará que no funciona si produce error por falta de argumentos o se queda indefinidamente esperando el input.

2) Construir asimismo un programa que, dado otro programa que emule una máquina de Turing, decida si puede ser reducido a un autómata finito o no. Se solicita además que funcione con su propio código en las mismas condiciones que en el punto 1, si aplica.

Saludos!


Una aclaración importante sobre el punto 1 (que afecta en lo aplicable al punto 2).

Se considerará que funciona si el programa objeto se completa con un estado final, o queda ejecutando un ciclo infinito, pero se considerará que no funciona si produce error por falta de argumentos o se queda indefinidamente esperando el input. Pero el ciclo infinito, si se produce, no debe estar programado, sino producirse como una consecuencia no prevista por circunstancias o condiciones inevitables.
También las cadenas infinitas de llamados a funciones o procesos deben considerarse bajo las mismas condiciones que el ciclo infinito.

Y por último, los programas deberían tener un número fijo de argumentos obligatorios. Pues si uno quiere considerar casos con menos argumentos, puede hacer otro programa.



Saludos!


13 Enero, 2012, 12:47 pm
Respuesta #17

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Amigos,
hice algunas correcciones en el mensaje #14.

Saludos!

13 Enero, 2012, 07:11 pm
Respuesta #18

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 11,330
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino

Se considerará que funciona si el programa objeto se completa con un estado final, o queda ejecutando un ciclo infinito, pero se considerará que no funciona si produce error por falta de argumentos o se queda indefinidamente esperando el input.



Lo de esperar un input es un poco ambiguo; qué hace el ordenador mientras espera o cómo espera, no lo veo claro. Por ejemplo, ésta es una espera programada en actionscript (el lenguaje de Flash Macromedia, el de los típicos juegos).

stop();
seg = 2;
espera = function () {
    play();
    clearInterval(I);
};
I = setInterval(espera, seg*1000);

Hace que el ordenador espere dos segundos, y después "play", que quiere decir que sigue corriendo a la línea que haya después de esta rutina, la que sea (no la hay porque no la escrito).

 Bien, aunque no se vea, ahí hay un bucle, pero está camuflado por unos comandos, metidos en una función, en los que no parece haber ningún direccionamiento.  En todas las paradas, salvo en las que pertenecen al final de una rutina -o al menos de una subrrutina completa- hay un bucle camuflado. Luego es un bucle o es la ejecución completa de un bloque o parte del programa. No sería por "falta de argumento" del programa ejecutor, sería que el programa ejecutor ha llegado a un lugar donde puede pararse "legalmente", porque no existen lugares no legales para que se pare; bueno, quizá puedan existir si se desenchufa el ordenador.

Saludos.



 

13 Enero, 2012, 08:02 pm
Respuesta #19

Elius

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 399
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Amigos,
agregué esto a las condiciones:

"Y por último, los programas deberían tener un número fijo de argumentos obligatorios. Pues si uno quiere considerar casos con menos argumentos, puede hacer otro programa."

Saludos!