2008-08-30 14 views
6

que he encontrado el término "multi-agente de la computación" en los últimos tiempos, y yo no lo entiendo muy bien lo que es. He leído un libro sobre eso, pero eso no respondió la pregunta fundamental de qué era un agente."multi-agente de la computación" en términos simples

¿Hay alguien por ahí tiene un puntero a alguna referencia que es clara y concisa y responde a la pregunta sin una carga de mierda/comercialización hablar? Quiero saber si esto es algo de lo que debería familiarizarme, o si es una porquería que probablemente pueda ignorar, porque honestamente no puedo decirlo.

Respuesta

4

Un sistema multiagentes es un concepto tomado de AI. Es casi como un mundo virtual donde tienes agentes que pueden observar, comunicarse y reaccionar. Para dar un ejemplo, puede que tenga un agente de asignación de memoria que debe solicitar memoria y decide si se lo da o no. O puede tener un agente que monitoree un servidor web y lo reinicie si se cuelga. El objetivo principal detrás de los sistemas de múltiples agentes es tener un sistema de comunicación más parecido a Smalltalk entre las diferentes partes del sistema con el fin de hacer que todo funcione en conjunto, a diferencia de las directivas de arriba hacia abajo que provienen de un programa central.

3

Hay varios aspectos clave para la computación multi-agente, la distribución y la independencia se encuentran entre ellos.

Multi-agentes no tienen que estar en diferentes máquinas, podrían como dice @ Kyle, haber múltiples procesos en un solo chip o de la máquina, sino que actúan sin dirección centralizada explícita. Podrían actuar en concierto, por lo que tienen ciertas reglas de sincronización, haciendo su trabajo por separado antes de unirse para comparar resultados, por ejemplo.

En general, aunque el razonamiento detrás de la segmentación en los agentes por separado es permitir diferentes prioridades para orientar las acciones y reacciones de cada agente. Tal vez usando un modelo económico para dividir los recursos comunes o porque las diferentes funciones están separadas físicamente, por lo que no necesitan interactuar estrechamente entre sí.

< barrer generalización > ¿Es algo a ignorar? Bueno, en realidad no es nada en particular, así que es un poco como "¿puedo ignorar el concepto de quicksort?" Si no entiendes qué es el quicksort entonces no vas a dejar de ser un desarrollador porque la mayor parte de tu vida no se verá afectada. Si tiene una mayor comprensión de las diferentes arquitecturas y modelos, tendrá más conocimientos para implementar en lugares nuevos e impredecibles. < generalización hace >

diez años, 'sistemas multiagente' (MAS) fue una de esas frases que aparecían por todas partes en la literatura académica. Hoy en día es menos frecuente, pero algunas de las ideas que representa son realmente útiles en algunos lugares. Pero totalmente innecesario en otros. Así que espero que eso esté claro;)

1

Es difícil decir qué es la computación multi-agente, porque la definición de agente es generalmente muy suave rodeada de términos de marcado, etc. Trataré de explicar qué es y dónde podría usarse según la investigación de sistemas de fabricación, que es el área con la que estoy familiarizado.

Uno de los problemas no resueltos "" de la fabricación moderna es la programación. Cuando la definición del problema es estática, se puede encontrar una solución óptima, pero en realidad las personas no vienen a trabajar, los recursos de fabricación fallan, las computadoras fallan, etc. La demanda está cambiando todo el tiempo, se requieren diferentes productos (es decir, personalización masiva del producto: un auto producido tiene aire acondicionado, el siguiente no, ...).Todo esto lleva a la conclusión de que a) la fabricación es muy compleja, b) los enfoques estáticos, como la programación por adelantado durante una semana, no funcionan. Entonces, la idea es la siguiente: ¿por qué no tendríamos programas inteligentes que representen partes de los sistemas, trabajando para salir de este lío por sí mismos? Estos programas se llaman agentes. Deben comunicarse y negociar entre ellos y asegurarse de que las tareas se realicen a su debido tiempo. Al usar agentes, queremos reducir la complejidad del sistema de control, hacerlo más manejable, permitir una mejor interacción entre humanos y máquinas, hacerlo más robusto y menos propenso a errores y muy importante: hacer que el sistema de control esté descentralizado.

En resumen: los agentes son solo un concepto, pero son un concepto que todos pueden entender intuitivamente. El código aún debe escribirse, pero está escrito de una manera diferente, una abstracción más alta que OOP.

4

"Agentes" son otra abstracción en el diseño de software.
Como una jerarquía cruda;
Código de máquina, ensamblado, idiomas independientes de la máquina, sub-rutinas, procedimientos, tipos de datos abstractos, objetos y finalmente agentes.

Como interconexión y distribución se vuelven más importantes en la informática, la necesidad de sistemas que pueden co-operar y llegar a acuerdos con otros sistemas (con diferentes intereses) se hace evidente; aquí es donde entran los agentes. Actuar de manera independiente los agentes representan sus mejores intereses en su entorno.

Otros ejemplos de agentes: gobierno de la nave

  • espacio, para tomar decisiones rápidas cuando no hay tiempo para la mensajería tripulación embarcaciones embarcaciones en tierra (por ejemplo NASA's Deep Space 1)
  • control del tráfico aéreo (Sistemas primordiales pilotos; esto está en el lugar en la mayoría de los vuelos comerciales, y ha salvado vidas)

Los sistemas multiagente están relacionados con;

  • Economía
  • La teoría de juegos
  • lógica
  • Filosofía
  • ciencias sociales

No creo que los agentes son algo que debe pasar por alto. Hay 2 million hits on google scholar para "agente múltiple" y more on CiteSeer; es una rama de la informática en rápida evolución.

6

En términos simples, la investigación multiagente intenta diseñar un sistema compuesto por agentes autónomos. Es decir, tienes un montón de robots/personas/agentes de software alrededor, cada uno de los cuales puede tomar sus propias acciones pero solo puede "ver" cosas que le rodean, ¿cómo lograr que el sistema se comporte como quieres?

ejemplo,

Dado un grupo de robots con capacidades de detección limitada, ¿cómo se consigue que supervisen un campo para los enemigos? para encontrar todas las minas en un campo?

Dado un montón de gente, ¿cómo se consigue que maximicen la felicidad de la persona menos feliz? sin quitarles su libertad

Dado un grupo de personas, ¿cómo configurar un horario de reunión que maximiza su felicidad? sin revelar su información privada?

Algunas de estas preguntas pueden parecer realmente fáciles de resolver, pero no lo son.

La investigación multiagente combina técnicas de teoría de juegos, economía, inteligencia artificial y, a veces, incluso biología con el fin de responder a estas preguntas.

Si desea obtener más información, tengo un libro de texto gratuito en el que estoy trabajando llamado Fundamentals of Multiagent Systems.

-1

Puede encontrar una concentración de libros blancos referentes a los agentes here.

1

Hubo un tiempo en el que era difícil encontrar un buen material para los agentes de software, principalmente debido a la percepción del potencial de comercialización. La floración de esa rosa ha disminuido, por lo que la relación señal/ruido en Internet ha mejorado los agentes de software vis-a-vie.

Aquí hay una buena introducción a software agents en esta publicación de blog de un proyecto de código abierto para agentes de software. El término sistemas de agentes múltiples solo significa un sistema donde se ejecutan múltiples agentes de software y se comunican y delegan sub tareas entre sí.

1

Según Jennings y Wooldridge, que son 2 de los principales investigadores de Mulit-agente, un agente es un objeto que es reactivo a su entorno, proactivo y social. Ese es un agente es una pieza de software que puede reaccionar a su entorno en tiempo real de una manera que sea adecuada para su propio objetivo. Es proactivo, lo que significa que no siempre espera a que se le pida que realice una tarea, si ve la posibilidad de hacer algo que cree que sería beneficioso para sus objetivos, lo hace. Y que es social, es decir, que puede comunicarse con otros Agentes, no necesariamente tiene que hacer alguna de estas cosas para alcanzar sus propios objetivos, pero debería ser capaz de hacer esto si surgiera la situación. Y, por lo tanto, un sistema de agentes múltiples es solo una colección de estos en un sistema distribuido que puede comunicarse y tratar de realizar sus propios objetivos personales que normalmente conducen a un logro general del objetivo del sistema.

Cuestiones relacionadas