fbpx
Wikipedia

Teorema de Rice

En teoría de la computación, el teorema de Rice es un teorema enunciado por Henry Gordon Rice y luego generalizado junto con John Myhill y Norman Shapiro a lo que se conoce como el teorema de Rice–Shapiro. Básicamente se puede enunciar el teorema de la siguiente manera:

Dada una propiedad no trivial de las funciones parciales, no es computable determinar si una función arbitraria la posee o no.[1]

Es un típico problema de decisión que no se puede resolver, al igual que el problema de la parada.

Introducción

Otra forma de expresar el teorema de Rice que es más útil en la teoría de la computación dice que:

Sea   un conjunto de lenguajes no trivial, es decir,

  1. existe una máquina de Turing que reconoce un lenguaje en  
  2. existe una máquina de Turing que reconoce un lenguaje no en  

Entonces, es indecidible determinar si un lenguaje decidido por una máquina de Turing arbitraria se encuentra en  .

En la práctica, esto significa que no hay una máquina que siempre pueda decidir si el lenguaje de una máquina de Turing dada tiene una propiedad no trivial particular. Los casos especiales incluyen la indecidibilidad de si una máquina de Turing acepta una cadena particular, si una máquina de Turing reconoce un lenguaje reconocible particular, y si el lenguaje reconocido por una máquina de Turing podría ser reconocido por una máquina no trivial más simple, tal como un autómata finito.

Es importante tener en cuenta que el teorema de Rice no dice nada acerca de las propiedades de las máquinas o programas que no son propiedades de las funciones y los lenguajes. Por ejemplo, si una máquina tiene una duración de más de 100 pasos en alguna entrada es una propiedad decidible, a pesar de que no es trivial. Implementando exactamente el mismo lenguaje, dos máquinas diferentes pueden requerir un diferente número de pasos para reconocer la misma entrada. De manera similar, si una máquina tiene más de 5 estados es una propiedad decidible de la máquina, ya que el número de estados puede ser contado simplemente. Cuando una propiedad es del tipo que cualquiera de las dos máquinas pueden o no tener, mientras implementan exactamente el mismo lenguaje, la propiedad es de las máquinas y no de la lengua, y el teorema de Rice no se aplica.

Usando caracterización de Rogers de Numeración admisible, el teorema de Rice esencialmente se puede generalizar a partir de máquinas de Turing para la mayoría de lenguajes de programación: no existe ningún método automático que decida con generalidad no triviales preguntas sobre el comportamiento de un programa BlackBox.

Ejemplos

Según el teorema de Rice, si hay al menos una función computable en una clase particular  , de funciones computables y otra función computable que no está en   entonces el problema de decidir si un determinado programa calcula una función en C es indecidible. Por ejemplo, el teorema de Rice demuestra que cada uno de los siguientes conjuntos de funciones computables es indecidible:

  • La clase de funciones computables que devuelven 0 para cada entrada, y su complemento.
  • La clase de funciones computables que devuelven 0 por lo menos para una entrada, y su complemento.
  • La clase de funciones computables que son constantes, y su complemento.

Aplicaciones

Las aplicaciones de teorema de Rice son numerosas. La primera aplicación que se nota a simple vista es que no es computable saber si una función arbitraria se detiene para algún valor de entrada (hay al menos una que sí lo hace, y otra que no, por lo que se trata de una propiedad no trivial). Otra aplicación que se puede dar a este teorema es saber que no es computable determinar si un programa es malicioso (que realizará acciones maliciosas como por ejemplo, escribir en cierta zona reservada de memoria, copiarse a sí mismo en otro programa, etc.). Esto no quiere decir que ningún programa malicioso sea detectable, sino que para cualquier procedimiento de detección fiable, siempre se puede definir un programa malicioso que lo burle.

Definición formal

Sea   una numeración de Gödel de funciones computables; un mapa de los números naturales para la clase   de funciones computables parcialmente unarias. Denotamos   a la e-sima función computable parcial.

Identificamos cada propiedad que una función computable puede tener con el subconjunto   que consiste en las funciones con esa propiedad. Así, dado un conjunto  , de funciones computables   tiene la propiedad F si y solo si  . Por cada propiedad   hay un problema de decisión asociado   de determinar, dado e, si  .

El teorema de Rice dice que un problema de decisión   es decidible (también llamada recursivo o computable) si y solo si   o  .

Demostración

En la definición del teorema, una propiedad es no trivial si hay funciones que la tienen, y otras que no. La demostración del teorema se basa precisamente en explotar la posibilidad de resolver el problema de la parada si se tiene un reconocedor de propiedades no triviales. Así, si se supone una cierta propiedad   no trivial. Eso quiere decir que hay al menos una función   que la tiene, y una función   que no la tiene. Supongamos ahora que tenemos un algoritmo   definido como

 

Definiendo ahora un programa   que primero calcula   y luego calcula  , valor que se devuelve como resultado. Puede verse que este programa devuelve lo mismo que  , y por lo tanto tiene la propiedad  , sí y sólo si   se para. Si   es la codificación del programa  , entonces podemos definir un algoritmo para determinar la parada como  . Como esto es imposible, por el problema de la parada, entonces no existe   (si la propiedad   fuera algo que   cumple al no pararse, se hubiera podido hacer un razonamiento similar empleando   en lugar de  ).

Otras demostraciones

Existen algunas maneras más de demostrar este teorema, la demostración anterior fue mediante una reducción del problema de la parada, también se puede demostrar mediante el teorema de recursión de Kleene por ejemplo.

Véase también

Referencias

Notas

  • Hopcroft, John; Ullman, Jeffrey (1979). Introduction to automata theory, languages, and computation. Addison-Wesley. pp. 185-192. .
  • Rice, H. G. "Classes of Recursively Enumerable Sets and Their Decision Problems." Trans. Amer. Math. Soc. 74, 358-366, 1953.
  • Rogers, Hartley (1967). Theory of recursive functions and effective computability. New York: McGraw-Hill. .

Enlaces externos

  •   Datos: Q1893717

teorema, rice, teoría, computación, teorema, rice, teorema, enunciado, henry, gordon, rice, luego, generalizado, junto, john, myhill, norman, shapiro, conoce, como, teorema, rice, shapiro, básicamente, puede, enunciar, teorema, siguiente, manera, dada, propied. En teoria de la computacion el teorema de Rice es un teorema enunciado por Henry Gordon Rice y luego generalizado junto con John Myhill y Norman Shapiro a lo que se conoce como el teorema de Rice Shapiro Basicamente se puede enunciar el teorema de la siguiente manera Dada una propiedad no trivial de las funciones parciales no es computable determinar si una funcion arbitraria la posee o no 1 Es un tipico problema de decision que no se puede resolver al igual que el problema de la parada Indice 1 Introduccion 2 Ejemplos 3 Aplicaciones 4 Definicion formal 5 Demostracion 6 Otras demostraciones 7 Vease tambien 8 Referencias 9 Notas 10 Enlaces externosIntroduccion EditarOtra forma de expresar el teorema de Rice que es mas util en la teoria de la computacion dice que Sea S displaystyle S un conjunto de lenguajes no trivial es decir existe una maquina de Turing que reconoce un lenguaje en S displaystyle S existe una maquina de Turing que reconoce un lenguaje no en S displaystyle S Entonces es indecidible determinar si un lenguaje decidido por una maquina de Turing arbitraria se encuentra en S displaystyle S En la practica esto significa que no hay una maquina que siempre pueda decidir si el lenguaje de una maquina de Turing dada tiene una propiedad no trivial particular Los casos especiales incluyen la indecidibilidad de si una maquina de Turing acepta una cadena particular si una maquina de Turing reconoce un lenguaje reconocible particular y si el lenguaje reconocido por una maquina de Turing podria ser reconocido por una maquina no trivial mas simple tal como un automata finito Es importante tener en cuenta que el teorema de Rice no dice nada acerca de las propiedades de las maquinas o programas que no son propiedades de las funciones y los lenguajes Por ejemplo si una maquina tiene una duracion de mas de 100 pasos en alguna entrada es una propiedad decidible a pesar de que no es trivial Implementando exactamente el mismo lenguaje dos maquinas diferentes pueden requerir un diferente numero de pasos para reconocer la misma entrada De manera similar si una maquina tiene mas de 5 estados es una propiedad decidible de la maquina ya que el numero de estados puede ser contado simplemente Cuando una propiedad es del tipo que cualquiera de las dos maquinas pueden o no tener mientras implementan exactamente el mismo lenguaje la propiedad es de las maquinas y no de la lengua y el teorema de Rice no se aplica Usando caracterizacion de Rogers de Numeracion admisible el teorema de Rice esencialmente se puede generalizar a partir de maquinas de Turing para la mayoria de lenguajes de programacion no existe ningun metodo automatico que decida con generalidad no triviales preguntas sobre el comportamiento de un programa BlackBox Ejemplos EditarSegun el teorema de Rice si hay al menos una funcion computable en una clase particular C displaystyle C de funciones computables y otra funcion computable que no esta en C displaystyle C entonces el problema de decidir si un determinado programa calcula una funcion en C es indecidible Por ejemplo el teorema de Rice demuestra que cada uno de los siguientes conjuntos de funciones computables es indecidible La clase de funciones computables que devuelven 0 para cada entrada y su complemento La clase de funciones computables que devuelven 0 por lo menos para una entrada y su complemento La clase de funciones computables que son constantes y su complemento Aplicaciones EditarLas aplicaciones de teorema de Rice son numerosas La primera aplicacion que se nota a simple vista es que no es computable saber si una funcion arbitraria se detiene para algun valor de entrada hay al menos una que si lo hace y otra que no por lo que se trata de una propiedad no trivial Otra aplicacion que se puede dar a este teorema es saber que no es computable determinar si un programa es malicioso que realizara acciones maliciosas como por ejemplo escribir en cierta zona reservada de memoria copiarse a si mismo en otro programa etc Esto no quiere decir que ningun programa malicioso sea detectable sino que para cualquier procedimiento de deteccion fiable siempre se puede definir un programa malicioso que lo burle Definicion formal EditarSea ϕ N P 1 displaystyle phi colon mathbb N to mathbf P 1 una numeracion de Godel de funciones computables un mapa de los numeros naturales para la clase P 1 displaystyle mathbf P 1 de funciones computables parcialmente unarias Denotamos ϕ e ϕ e displaystyle phi e phi e a la e sima funcion computable parcial Identificamos cada propiedad que una funcion computable puede tener con el subconjunto P 1 displaystyle mathbf P 1 que consiste en las funciones con esa propiedad Asi dado un conjunto F P 1 displaystyle F subseteq mathbf P 1 de funciones computables ϕ e displaystyle phi e tiene la propiedad F si y solo si ϕ e F displaystyle phi e in F Por cada propiedad F P 1 displaystyle F subseteq mathbf P 1 hay un problema de decision asociado D F displaystyle D F de determinar dado e si ϕ e F displaystyle phi e in F El teorema de Rice dice que un problema de decision D F displaystyle D F es decidible tambien llamada recursivo o computable si y solo si F displaystyle F emptyset o F P 1 displaystyle F mathbf P 1 Demostracion EditarEn la definicion del teorema una propiedad es no trivial si hay funciones que la tienen y otras que no La demostracion del teorema se basa precisamente en explotar la posibilidad de resolver el problema de la parada si se tiene un reconocedor de propiedades no triviales Asi si se supone una cierta propiedad A displaystyle A no trivial Eso quiere decir que hay al menos una funcion F 1 displaystyle F 1 que la tiene y una funcion F 2 displaystyle F 2 que no la tiene Supongamos ahora que tenemos un algoritmo R A displaystyle R A definido comoR a n 1 si F n tiene la propiedad A 0 caso contrario displaystyle R a n begin cases 1 amp mbox si F n mbox tiene la propiedad A 0 amp mbox caso contrario end cases Definiendo ahora un programa T m n i displaystyle T m n i que primero calcula F n m displaystyle F n m y luego calcula F 1 i displaystyle F 1 i valor que se devuelve como resultado Puede verse que este programa devuelve lo mismo que F 1 i displaystyle F 1 i y por lo tanto tiene la propiedad A displaystyle A si y solo si F n m displaystyle F n m se para Si w m n displaystyle w m n es la codificacion del programa T m n displaystyle T m n entonces podemos definir un algoritmo para determinar la parada como H m n R A w m n displaystyle H m n R A w m n Como esto es imposible por el problema de la parada entonces no existe R A displaystyle R A si la propiedad A displaystyle A fuera algo que F n m displaystyle F n m cumple al no pararse se hubiera podido hacer un razonamiento similar empleando F 2 displaystyle F 2 en lugar de F 1 displaystyle F 1 Otras demostraciones EditarExisten algunas maneras mas de demostrar este teorema la demostracion anterior fue mediante una reduccion del problema de la parada tambien se puede demostrar mediante el teorema de recursion de Kleene por ejemplo Vease tambien EditarTeoremas de incompletitud de Godel Problema de la parada Teoria de la computabilidadReferencias Editar http singularidad wordpress com 2007 05 07 turing en una cascara de nuez teorema de rice o porque ningun antivirus sera fiable al 100 Notas EditarHopcroft John Ullman Jeffrey 1979 Introduction to automata theory languages and computation Addison Wesley pp 185 192 Rice H G Classes of Recursively Enumerable Sets and Their Decision Problems Trans Amer Math Soc 74 358 366 1953 Rogers Hartley 1967 Theory of recursive functions and effective computability New York McGraw Hill Enlaces externos EditarTeorema de Rice Teorema de Rice Weisstein Eric W Rice Theorem En Weisstein Eric W ed MathWorld en ingles Wolfram Research Datos Q1893717 Obtenido de https es wikipedia org w index php title Teorema de Rice amp oldid 134791088, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos