En informática , el no determinismo ilimitado o indeterminación ilimitada es una propiedad de la concurrencia por la cual la demora en atender una solicitud puede volverse ilimitada como resultado del arbitraje de la contención por recursos compartidos mientras se garantiza que la solicitud finalmente será atendida . El no determinismo ilimitado se convirtió en un tema importante en el desarrollo de la semántica denotacional de la concurrencia , y más tarde se convirtió en parte de la investigación sobre el concepto teórico de hipercomputación [1] .
Justicia
El debate sobre el no determinismo ilimitado tiende a mezclarse con debates sobre la equidad . El concepto básico es que todas las rutas de cálculo deben ser "justas" en el sentido de que si la máquina entra en un estado infinitamente a menudo, debe realizar todas las transiciones posibles desde ese estado. Esto equivale a exigir que se garantice que la máquina atenderá una solicitud si puede, ya que solo se permitirá una secuencia infinita de estados si no hay una transición que lleve a que se atienda la solicitud. De manera equivalente, todas las transiciones posibles deben ocurrir eventualmente en un cálculo infinito, aunque puede llevar una cantidad ilimitada de tiempo para que la transición ocurra. Este concepto debe distinguirse de la equidad local de lanzar una moneda "justa", por la cual se entiende que es posible que el resultado siempre sea cara para cualquier número finito de pasos, aunque a medida que aumenta el número de pasos, esto casi seguramente no sucederá.
Un ejemplo del papel del no determinismo justo o ilimitado en la fusión de cadenas fue dado por William D. Clinger , en su tesis de 1981. Definió una "fusión justa" de dos cadenas como una tercera cadena en la que cada carácter de cada cadena debe aparecer eventualmente. Luego consideró el conjunto de todas las fusiones justas de dos cadenas merge (S, T) , asumiendo que es una función monótona. Luego argumentó que merge (⊥,1 ω )⊆ merge (0,1 ω ) , donde ⊥ es la secuencia vacía. Ahora merge (⊥,1 ω ) = {1 ω }, por lo que debe ser que 1 ω es un elemento de merge (0,1 ω ) , una contradicción. Concluyó que:
- Parece que una fusión justa no se puede escribir como un programa de flujo de datos no determinista que opera en secuencias. [2]
Sobre la posibilidad de implementar el no determinismo ilimitado
Edsger Dijkstra sostuvo que es imposible implementar sistemas con un no determinismo ilimitado [3] . Por esta razón, Tony Hoare sugirió que "una implementación eficiente debería intentar ser razonablemente justa". [4]
Autómatas no deterministas
Las máquinas de Turing no deterministas solo tienen un no determinismo acotado. Del mismo modo, los programas secuenciales que contienen comandos protegidos como únicas fuentes de no determinismo solo tienen un no determinismo acotado. [3] En resumen, el no determinismo de elección es acotado. Gordon Plotkin dio una prueba en su artículo original sobre dominios de potencia:
- Ahora bien, el conjunto de segmentos iniciales de secuencias de ejecución de un programa no determinista dado P , a partir de un estado dado, formará un árbol. Los puntos de ramificación corresponderán a los puntos de elección en el programa. Puesto que siempre hay un número finito de alternativas en cada punto de elección, el factor de ramificación del árbol es siempre finito. Es decir, el árbol es finito. Ahora bien, el lema de König dice que si cada rama de un árbol finito es finita, entonces también lo es el árbol mismo. En el presente caso, esto significa que si cada secuencia de ejecución de P termina, entonces solo hay un número finito de secuencias de ejecución. Por lo tanto, si un conjunto de salida de P es infinito, debe contener [un cómputo no terminante]. [5]
Indeterminación versus autómatas no deterministas
William Clinger proporcionó el siguiente análisis de la prueba anterior de Plotkin:
- Esta prueba depende de la premisa de que si cada nodo x de una determinada rama infinita puede alcanzarse mediante algún cálculo c , entonces existe un cálculo c que visita cada nodo x de la rama. ... Claramente, esta premisa no se desprende de la lógica, sino más bien de la interpretación dada a los puntos de elección. Esta premisa falla para el no determinismo de llegada [en la llegada de mensajes en el modelo del Actor] debido al retraso finito [en la llegada de mensajes]. Aunque cada nodo de una rama infinita debe estar en una rama con un límite, la rama infinita no necesita tener un límite en sí misma. Por lo tanto, la existencia de una rama infinita no implica necesariamente un cálculo no terminal. [2]
No determinismo y no computabilidad ilimitados
Spaan et al. han argumentado que es posible que un programa no determinista ilimitado resuelva el problema de detención ; su algoritmo consta de dos partes definidas de la siguiente manera: [6]
La primera parte del programa solicita un número natural a la segunda parte; después de recibirlo, iterará la máquina de Turing deseada durante esa cantidad de pasos y lo aceptará o rechazará según si la máquina ya se ha detenido.
La segunda parte del programa elige de manera no determinista un número natural cuando se lo solicita. El número se almacena en una variable que se inicializa a 0; luego, el programa elige repetidamente si incrementar la variable o atender la solicitud. La restricción de imparcialidad requiere que la solicitud sea atendida en algún momento, ya que de lo contrario se produce un bucle infinito en el que solo se toma la rama "incrementar la variable".
Claramente, si la máquina se detiene, este algoritmo tiene una ruta que la acepta. Si la máquina no se detiene, este algoritmo siempre la rechazará, sin importar qué número devuelva la segunda parte del programa.
Argumentos para abordar el no determinismo ilimitado
Clinger y Carl Hewitt [ cita requerida ] han desarrollado un modelo (conocido como el modelo de Actor ) de computación concurrente con la propiedad de no determinismo ilimitado incorporado en [Clinger 1981; [7] ; [8] ; [9] ]; esto permite cálculos que no pueden ser implementados por las Máquinas de Turing, como se vio anteriormente. Sin embargo, estos investigadores enfatizan que su modelo de cálculos concurrentes no puede implementar ninguna función que esté fuera de la clase de funciones recursivas [ cita requerida ] definidas por Church, Kleene, Turing, etc. (Ver Indeterminación en computación concurrente ).
Hewitt justificó su uso del no determinismo ilimitado argumentando que no hay límite que se pueda establecer en el tiempo que tarda un circuito computacional llamado árbitro en establecerse (ver metaestabilidad en electrónica ). Los árbitros se utilizan en computadoras para lidiar con la circunstancia de que los relojes de la computadora operan de manera asincrónica con la entrada desde el exterior, por ejemplo , entrada de teclado, acceso a disco, entrada de red, etc. Por lo tanto, podría tomar un tiempo ilimitado para que se reciba un mensaje enviado a una computadora y, mientras tanto, la computadora podría atravesar un número ilimitado de estados.
Sostuvo además que el correo electrónico permite un no determinismo ilimitado, ya que el correo puede almacenarse en servidores indefinidamente antes de ser entregado, y que los enlaces de datos a servidores en Internet también pueden estar fuera de servicio indefinidamente. Esto dio lugar a la controversia del no determinismo ilimitado . [10]
El análisis de Hewitt sobre la equidad
Hewitt argumentó que los problemas de equidad se derivan en parte del punto de vista del estado global. Los modelos más antiguos de computación (por ejemplo, las máquinas de Turing , las posproducciones, el cálculo lambda , etc.) se basan en matemáticas que utilizan un estado global para representar un paso computacional . Cada paso computacional va de un estado global del cómputo al siguiente estado global. El enfoque del estado global se continuó en la teoría de autómatas para las máquinas de estados finitos y las máquinas de pila descendente , incluidas sus versiones no deterministas . Todos estos modelos tienen la propiedad del no determinismo acotado: si una máquina siempre se detiene cuando se inicia en su estado inicial, entonces hay un límite en el número de estados en los que puede detenerse.
Hewitt argumentó que existe una diferencia fundamental entre las elecciones en el no determinismo del estado global y la indeterminación del orden de llegada (no determinismo) de su modelo de Actor . En el no determinismo del estado global, se hace una "elección" para el "próximo" estado global. En la indeterminación del orden de llegada, el arbitraje decide localmente cada orden de llegada en una cantidad de tiempo ilimitada. Mientras se lleva a cabo un arbitraje local, puede tener lugar una actividad ilimitada en otro lugar. No hay un estado global y, en consecuencia, no hay "elección" que hacer en cuanto al "próximo" estado global.
Referencias
- ^ Ord, Toby (2002). "Hipercomputación: computación más allá de la máquina de Turing". arXiv : math/0209332 .
- ^ ab Clinger, William D. (1 de mayo de 1981). Fundamentos de la semántica de actores (Informe técnico sobre inteligencia artificial). Instituto Tecnológico de Massachusetts. hdl :1721.1/6935.
- ^ de Dijkstra, Edsger (1976). Una disciplina de programación . Serie Prentice-Hall sobre computación automática. Prentice-Hall. ISBN 9780613924115.
- ^ Hoare, CAR (agosto de 1978). "Comunicación de procesos secuenciales". Comunicaciones de la ACM . 21 (8): 666–677. doi : 10.1145/359576.359585 . S2CID 849342.
- ^ Plotkin, Gordon (septiembre de 1976). "Una construcción de dominio de potencia". Revista SIAM de Computación . 5 (3): 452–487. doi :10.1137/0205035.
- ^ Español, Edith; Torenvliet, Leen; van Emde Boas, Peter (febrero de 1989). "No determinismo, equidad y una analogía fundamental". Boletín de la EATCS . 37 : 186-193.
- ^ Hewitt, Carl (abril de 1985). "El desafío de los sistemas abiertos". BYTE . McGraw Hill. págs. 223–242. ISSN 0360-5280.Reimpreso como Hewitt, Carl (abril de 1990). "El desafío de los sistemas abiertos". En Partridge, Derek; Wilks, Yorick (eds.). Los fundamentos de la inteligencia artificial: un libro de consulta . Cambridge University Press. págs. 383–395. ISBN 9780521359443.
- ^ Hewitt, Carl ; Agha, Gul (1988). "Lenguajes con cláusulas Horn protegidas: ¿son deductivos y lógicos?". Actas de la Conferencia Internacional sobre Sistemas Informáticos de Quinta Generación . FGCS 1988. Tokio, Japón: OHMSHA Ltd. Tokio y Springer-Verlag. pp. 650–657. ISBN 3540195580.También como Hewitt, Carl ; Agha, Gul (junio de 1991). "Lenguajes con cláusulas de Horn protegidas: ¿son deductivos y lógicos?". En Winston, Patrick Henry ; Shellard, Sarah Alexandra (eds.). Inteligencia artificial en el MIT: expandiendo fronteras . MIT Press. págs. 582–593. ISBN. 9780262231503.
- ^ Hewitt, Carl (mayo de 2006). "¿Qué es el compromiso? Físico, organizacional y social". Coordinación, organizaciones, instituciones y normas en sistemas de agentes II . Taller internacional AAMAS 2006, COIN. Hakodate, Japón: Springer Berlin Heidelberg. págs. 293–307. doi :10.1007/978-3-540-74459-7_19.
- ^ Hewitt, Carl (marzo de 2006). "La repetida desaparición de la programación lógica y por qué se reencarnará". Qué salió mal y por qué: lecciones de la investigación y las aplicaciones de la IA . Simposio de primavera de la AAAI de 2006 (informe técnico). Stanford, California: AAAI. págs. 2–9. SS-06-08 . Consultado el 10 de marzo de 2022 .
- Hewitt, Carl ; Bishop, Peter; Steiger, Richard (agosto de 1973). "Un formalismo ACTOR modular universal para la inteligencia artificial". Actas de la tercera conferencia conjunta internacional sobre inteligencia artificial . IJCAI'73. Stanford: Morgan Kaufmann. págs. 235–245.
- Milner, Robin (1973). "Procesos: un modelo matemático de agentes computacionales". Actas del Coloquio de Lógica . Coloquio de Lógica '73. Bristol: Holanda Septentrional. págs. 157–173.
- Hewitt, Carl ; Bishop, Peter; Greif, Irene ; Smith, Brian; Matson, Todd; Steiger, Richard (octubre de 1973). "Inducción del actor y metaevaluación". Actas del 1.er simposio anual ACM SIGACT-SIGPLAN sobre principios de lenguajes de programación . POPL'73. Boston, Massachusetts: Association for Computing Machinery. págs. 153–168. doi :10.1145/512927.512942.
- Hewitt, Carl ; Bishop, Peter; Steiger, Richard; Greif, Irene ; Smith, Brian; Matson, Todd; Hale, Roger (abril de 1974). "Semántica conductual de estructuras de control no recursivas". En Robinet, B. (ed.). Actas del Colloque sur la programmation . Simposio de programación. París: Springer Berlin Heidelberg. págs. 385–407. doi :10.1007/3-540-06859-7_147. ISBN 9783540378198.
- Greif, Irene (agosto de 1975). Semántica de procesos paralelos de comunicación (tesis doctoral). Instituto Tecnológico de Massachusetts, Departamento de Ingeniería Eléctrica y Ciencias de la Computación. hdl :1721.1/57710.
- Hewitt, Carl ; Baker, Henry (agosto de 1977). "Actores y funciones continuas". En Neuhold, Erich J. (ed.). Actas de la Conferencia de trabajo de la IFIP sobre descripción formal de conceptos de programación . IFIP'78. St. Andrews, NB, Canadá: Holanda Septentrional. ISBN 9780444851079.
- Kahn, Gilles ; MacQueen, David (1976). Corrutinas y redes de procesos paralelos (informe de investigación) . Consultado el 9 de marzo de 2022 .
- Baker, Henry (enero de 1978). Actor Systems for Real-Time Computation (tesis doctoral). Instituto Tecnológico de Massachusetts, Departamento de Ingeniería Eléctrica y Ciencias de la Computación.
- Smyth, Michael (1978). "Dominios de potencia". Revista de Ciencias de la Computación y de Sistemas . 16 : 23–36. doi : 10.1016/0022-0000(78)90048-X .
- Milne, George; Milner, Robin (abril de 1979). "Procesos concurrentes y su sintaxis". Revista de la ACM . 6 (2): 302–321. doi : 10.1145/322123.322134 . S2CID 16565064.
- Francez, Nissim ; Hoare, CAR ; Lehmann, Daniel J.; de Roever, Willem P. (diciembre de 1979). "Semántica del no determinismo, concurrencia y comunicación". Journal of Computer and System Sciences . 19 (3): 290–308. doi : 10.1016/0022-0000(79)90006-0 .
- Lynch, Nancy A. ; Fischer, Michael J. (julio de 1979). "Sobre la descripción del comportamiento y la implementación de sistemas distribuidos". En Kahn, Gilles (ed.). Actas del Simposio Internacional sobre Semántica de Computación Concurrente . Semántica de Computación Concurrente. Evian, Francia: Springer-Verlag. pp. 147–171. doi :10.1007/BFb0022468. ISBN 9783540351634.
- Schwartz, Jerald S. (julio de 1979). "Semántica denotacional del paralelismo". En Kahn, Gilles (ed.). Actas del Simposio Internacional sobre Semántica de la Computación Concurrente . Semántica de la Computación Concurrente. Evian, Francia: Springer-Verlag. pp. 191–202. doi :10.1007/BFb0022470. ISBN 9783540351634.
- Wadge, William W. (julio de 1979). "Un tratamiento extensional del bloqueo de flujo de datos". En Kahn, Gilles (ed.). Actas del Simposio Internacional sobre Semántica de la Computación Concurrente . Semántica de la Computación Concurrente. Evian, Francia: Springer-Verlag. pp. 285–299. doi :10.1007/BFb0022475. ISBN 9783540351634.
- Back, Ralph-Johan (julio de 1980). "Semántica del no determinismo ilimitado". En de Bakker, Jaco ; van Leeuwen, Jan (eds.). Séptimo Coloquio sobre Autómatas, Lenguajes y Programación . Coloquio Internacional sobre Autómatas, Lenguajes y Programación. Noordwijkerhout, Países Bajos: Springer-Verlag Berlin Heidelberg. pp. 51–63. doi :10.1007/3-540-10003-2_59.
- Park, David (1979). "Sobre la semántica del paralelismo justo". En Bjørner, Dines (ed.). Resumen Especificaciones de software . Escuela de invierno de Copenhague de 1979. Copenhague: Springer-Verlag Berlin Heidelberg. págs. 504–526. doi :10.1007/3-540-10007-5_47.
- Dana Scott . ¿Qué es la semántica denotacional? Serie de conferencias destacadas del Laboratorio de Ciencias de la Computación del MIT. 17 de abril de 1980.
- Clinger, William (agosto de 1982). "La llamada no determinista por necesidad no es ni perezosa ni por nombre". En Park, David MR; Friedman, Daniel P. (eds.). Actas del simposio ACM de 1982 sobre LISP y programación funcional . LFP'82. Pittsburgh, Pensilvania: Association for Computing Machinery. págs. 226–234. doi :10.1145/800068.802154.
- Brookes, SD; Hoare, CAR ; Roscoe, AW (julio de 1984). "Una teoría de la comunicación de procesos secuenciales". Revista de la ACM . 31 (3): 560–599. doi : 10.1145/828.833 . S2CID : 488666.
- Roscoe, AW (enero de 1988). "Unbounded nondeterminism in CSP". Dos artículos sobre CSP (PDF) (Monografía técnica). Laboratorio de Computación de la Universidad de Oxford. PRG67 . Consultado el 10 de marzo de 2022 .
- Roscoe, AW (10 de noviembre de 1997). La teoría y la práctica de la concurrencia . Prentice-Hall. ISBN 9780136744092.
- Schmidt, David A. (marzo de 1994). La estructura de los lenguajes de programación tipados . The MIT Press. ISBN 9780262193498.
- Butler, Michael ; Morgan, Carroll (enero de 1995). "Sistemas de acción, no determinismo ilimitado y rastros infinitos". Aspectos formales de la informática . 7 (1): 37–53. doi : 10.1007/BF01214622 . S2CID 2135743.
- Sudkamp, Thomas A. (3 de enero de 1997). Lenguajes y máquinas: Introducción a la teoría de la informática (2.ª ed.). Addison-Wesley. ISBN 9780201821369.
- Aceto, Luca; Gordon, Andrew D. , eds. (agosto de 2005). Cálculos de procesos algebraicos: los primeros veinticinco años y más allá . PA'05. Centro residencial de la Universidad de Bolonia Bertinoro (Forlì), Italia: BRICS.
- Brookes, Stephen (agosto de 2005). "Retracing CSP" (PDF) . En Aceto, Luca; Gordon, Andrew D. (eds.). Cálculos de procesos algebraicos: los primeros veinticinco años y más allá . PA'05. Centro residencial de la Universidad de Bolonia Bertinoro (Forlì), Italia: BRICS. pp. 75–80 . Consultado el 10 de marzo de 2022 .