En el de informática, el modelo del agente del es un modelo matemático del cómputo concurrente que trata el " actors" como los primitivos universales del cómputo digital concurrente: en respuesta a un mensaje que reciba, un agente puede tomar decisiones locales, crear a más agentes, enviar más mensajes, y determinar cómo responder al mensaje siguiente recibido. El modelo del agente origina en un papel 1973 por el Carl Hewitt, el obispo de Peter, y el Richard Steiger . Se ha utilizado como marco para un de comprensión teórico de la concurrencia, y como la base teórica para varias puestas en práctica de los sistemas concurrentes . La relación del modelo al otro trabajo se discute en el Indeterminacy en el cómputo concurrente y los cálculos del modelo y del proceso del agente.
considera también: Historia l modelo del agente
considera también:
la historia temprana del modelo del agente
considera también:
medio de la historia del modelo del agente
considera también:
posterior de la historia del modelo del agente
Desemejante de modelos anteriores del cómputo, el modelo del agente fue inspirado por las leyes físicas que también fue influenciado por los lenguajes de programación balbucea el, el Simula y las versiones tempranas del palique, tan bien como los sistemas capacidad-basados el y de conmutación de conjunto de bits. Su desarrollo era " motivado por la perspectiva de las máquinas de computación alto paralela que consisten en docenas, centenares o aún millares de microprocesadores independientes, cada uno con su propia memoria local y procesador de comunicaciones, comunicando vía una red de comunicaciones de alto rendimiento. " de ; Desde entonces, el advenimiento de la concurrencia masiva con arquitecturas de computadora multifilares ha reencendido interés en el modelo del agente.
Después de Hewitt, la publicación 1973, pena del obispo, y de Steiger de Irene desarrolló un que la semántica operacional para los agentes modela como parte de su investigación doctoral. Dos años más adelante, el panadero de Henry y Hewitt publicaron un sistema de las leyes axiomáticas para los sistemas del agente. Otros jalones importantes incluyen la disertación de Guillermo Clinger, en 1981, introduciendo una semántica indicativa basada en dominios de la energía, esto dieron lugar al desarrollo completo de la teoría modelo del agente.
El trabajo importante de la puesta en práctica del software fue hecho por Russ Atkinson, Beppe Attardi, el panadero de Henry, el peluquero de Gerry, el obispo de Peter, Peter de Jong, Ken Kahn, Henry Lieberman, Carl que servía, Tom Reinhardt, Richard Steiger, y Dan Theriault, en el mensaje que pasaba a grupo de la semántica en el Instituto de Tecnología de Massachusetts (MIT). Los grupos de investigación llevaron por la tirada Seitz en el Instituto de Tecnología (Caltech) de California y Bill Dally en las arquitecturas de computadora construidas MIT que más futuro desarrolló el mensaje el paso en el modelo. Ver a agente modelar la puesta en práctica .
La investigación sobre el modelo del agente se ha realizado en Caltech de informática, el laboratorio de la universidad Tokoro de Kyoto, el MCC, el laboratorio de la inteligencia artificial del MIT, el SRI, la Universidad de Stanford, la Universidad de Illinois en el laboratorio http://osl.edu de los sistemas del Urbana-Chamán, la universidad de París 6, universidad de Pisa, universidad del laboratorio de Tokio Yonezawa y a otra parte.
Un agente es una entidad de cómputo que, en respuesta a un mensaje él recibe, puede concurrentemente:
enviar un número de mensajes finito a otros agentes;
crear un número finito de nuevos agentes;
señalar el comportamiento que se utilizará para el mensaje siguiente que recibe.
No hay secuencia presunta a las acciones antedichas y podrían ser realizados paralelamente.
Las comunicaciones entre agentes ocurren asincrónico: es decir, el agente de envío no espera hasta que el mensaje se reciba antes de proceder con el cómputo.
La dirección identifican a los recipientes de mensajes, a veces llamada " address" de envío;. Así un agente puede comunicar solamente con los agentes cuyas direcciones tiene. Puede obtener ésos de un mensaje que recibe, o si la dirección está para un agente él acaba de crear.
El modelo del agente es caracterizado por la concurrencia inherente del cómputo dentro y entre de agentes, de la creación dinámica de agentes, de la inclusión de las direcciones del agente en mensajes, y de la interacción solamente a través del mensaje asincrónico directo que pasa sin la restricción en orden de la llegada del mensaje.
λ (leftSubTree, rightSubTree) λ (mensaje) si (" del == del mensaje; getLeft") leftSubTree del entonces si (" del == del mensaje; getRight") rightSubTree del entonces
Sin embargo, la semántica del cálculo de la lambda fue expresada usar la substitución variable en la cual los valores de parámetros fueron substituidos en el cuerpo de una expresión invocada de la lambda. El modelo de la substitución es inadecuado para la concurrencia porque no permite la capacidad que comparte de cambiar recursos. Inspirado por el cálculo de la lambda, el intérprete que para el de programación del lenguaje balbucean hizo uso de una estructura de datos llamada un ambiente de modo que los valores de parámetros no tuvieran que ser substituidos en el cuerpo de una expresión invocada de la lambda. Esto permitida para compartir de los efectos de poner al día las estructuras de datos compartidos pero no previo concurrencia.
Sin embargo, Simula utilizó la estructura de control de Coroutine en vez de concurrencia verdadera.
En Kay 1972 visitada MIT y discutido algunas de sus ideas para el edificio Smalltalk-72 en el trabajo de la insignia Seymour Papert y el " poco person" modelo del cómputo usado para enseñar a niños a programar. Sin embargo, el paso del mensaje de Smalltalk-72 era absolutamente complejo. El código en la lengua fue visto por el intérprete como simplemente corriente de símbolos. Como el Dan Ingalls lo describió más adelante: del
l primero (símbolo) encontrado (en un programa) era mirado para arriba en el contexto dinámico, para determinar el receptor del mensaje subsecuente. Las operaciones de búsqueda conocidas comenzaron con el diccionario de la clase de la activación actual. Fallando allí, se movieron al remitente de esa activación y así sucesivamente encima de la cadena del remitente. Cuando un atascamiento finalmente fue encontrado para el símbolo, su valor se convirtió en el receptor de un nuevo mensaje, y el intérprete activó el código para esa clase de objeto.
Esto llevó alguno a creer que un nuevo modelo matemático del cómputo concurrente basado en el paso del mensaje debe ser más simple que Smalltalk-72.
Las versiones subsecuentes de la lengua del palique siguieron en gran parte la trayectoria de usar los métodos virtuales de Simula en el mensaje que pasaba la estructura de programas. Sin embargo Smalltalk-72 hizo primitivos tales como números enteros, números de la coma flotante, etc. Los autores de Simula habían considerado hacer tales primitivos en objetos pero se habían refrenado en gran parte por razones de la eficacia. El Java al principio utilizado el expediente del tener versiones del primitivo y del objeto de los números enteros, de los números de la coma flotante, del etc. el lenguaje de programación de C# (y versiones posteriores de Java, comenzando con Java 1.5) adoptó la solución más elegante de usar el boxeo y el unboxing, una variante cuyo están tenidas utilizado anterior en un cierto balbucean las puestas en práctica de .
El sistema del palique se encendió llegar a ser muy influyente, innovando en exhibiciones a memoria de imagen, la computación personal, el interfaz del hojeador de la clase, y muchas otras maneras. Para los detalles ver el de Kay la historia temprana del palique . Mientras tanto los esfuerzos del agente en el MIT seguían centrados en desarrollar la ciencia y dirigir de la concurrencia de alto nivel. (Véase el papel de Juan Pedro Briot para las ideas que fueron desarrolladas después cómo incorporar algunas clases de concurrencia del agente en versiones posteriores del palique.)
Discutible, los primeros programas concurrentes eran los tratantes de interrupción durante el curso de su operación normal, una computadora necesaria poder recibir la información del exterior (carácteres de un teclado, de los paquetes de una red, del etc . Tan cuando llegó la información la ejecución de la computadora era " interrupted" y el código especial llamado un tratante de interrupción fue llamado a puesto la información en un almacenador intermediario donde podría ser posteriormente conseguido .
Éste era el principio del desarrollo que comunicaba el paradigma secuencial de los procesos en el cual los programas concurrentes eran la composición paralela de los programas secuenciales que comunicaron síncrono usar almacenadores intermediarios. Tener paralelismo con la memoria compartida dio lugar al problema del control de concurrencia . Original, este problema fue concebido como siendo uno de la exclusión mutua en una sola computadora. Los semáforos desarrollados de Edsger Dijkstra y más adelante, entre el 1971 y el 1973, Tony Hoare y por Brinch Hansen desarrollaron los monitores para solucionar el problema de la exclusión mutua. Sin embargo, ni unas ni otras de estas soluciones proporcionaron una construcción de programación del lenguaje que encapsuló el acceso a los recursos compartidos. Esta encapsulación fue lograda más adelante por la construcción (y Atkinson 1977, 1979 y el an o 80) del serializador. Tony Hoare continuó para desarrollar su segunda versión de CSP, descrita adentro.
Los primeros modelos del cómputo ( Turing del e. trabaja a máquina, producciones del poste, el cálculo de la lambda, el etc. ) fueron basados en matemáticas e hicieron uso de un estado global para representar un paso de cómputo del (generalizado más adelante adentro y Hayes 1969 y 1976 ve orderings del acontecimiento contra el estado global ). Cada paso de cómputo era a partir de un estado global del cómputo al estado global siguiente. El acercamiento global del estado fue continuado en la teoría de autómatas para las máquinas finitas del estado y el empuja hacia abajo las máquinas del apilado, incluyendo sus versiones no deterministas . Tales autómatas no deterministas tienen la característica del nondeterminism limitado ; es decir, si una máquina para siempre cuando está comenzada en su estado inicial, después hay un límite en el número de estados en los cuales pare.
El Edsger Dijkstra fomenta desarrolló el acercamiento global no determinista del estado. El modelo de Dijkstra dio lugar a una controversia referente a nondeterminism ilimitado del . el nondeterminism ilimitado de (también llamado el el indeterminacy ilimitado, un título preferred por Hewitt después Niels Bohr ), es una característica de la concurrencia por la cual la cantidad de retardo en el mantenimiento de una petición puede llegar a ser ilimitada como resultado del arbitraje de la contención para el de los recursos compartidos mientras que todavía garantiza que la petición será eventual mantenido. Hewitt sostuvo que el modelo del agente debe proporcionar la garantía del servicio. En el modelo de Dijkstra, aunque podría haber una cantidad de tiempo ilimitada entre la ejecución de instrucciones secuenciales en una computadora, el programa (paralelo) de a que comenzó en un estado bien definido podría terminar en solamente un número limitado de los estados 1976. Por lo tanto, su modelo no podía proporcionar la garantía del servicio. Dijkstra sostuvo que era imposible ejecutar nondeterminism ilimitado.
Hewitt discutió de otra manera: no hay límite que puede ser puesto en cuánto tiempo lleva un circuito de cómputo llamado un '' árbitro '' el settle (véase el Metastability en la electrónica ). Utilizan a los árbitros en computadoras para ocuparse de la circunstancia que los relojes de la computadora funcionan asincrónico con la entrada desde afuera, entrada de teclado del e., acceso de disco, entrada de la red, el etc. así que él podría tardar un tiempo ilimitado para un mensaje enviado a una computadora que se recibirá y la computadora podría atravesar mientras tanto un número ilimitado de estados.
El modelo del agente ofrece el nondeterminism ilimitado que fue capturado en un modelo matemático cerca Clinger usar la teoría del dominio.
Lenguaje de programación E
Erlang
Gambito-c (con la termita)
Lengua del Io
Proyecto de Ptolemy
Rebeca que modela la lengua
SALSA
Scala
.
| Random links: | Chabalote | Río de Clatskanie | Eurocracy | Islas de la decepción |