How Agents Do It In Stream Logic Programming - PowerPoint PPT Presentation

1 / 20
About This Presentation
Title:

How Agents Do It In Stream Logic Programming

Description:

How Agents Do It In Stream Logic Programming Huntbach,M.M; Jennings,N.R.; Ringwood,G.A(ICMAS-95) Semin rio apresentado na disciplina PCS-5740 - Fundamentos L gicos ... – PowerPoint PPT presentation

Number of Views:36
Avg rating:3.0/5.0
Slides: 21
Provided by: Simon397
Category:

less

Transcript and Presenter's Notes

Title: How Agents Do It In Stream Logic Programming


1
How Agents Do It In Stream Logic Programming
Huntbach,M.M Jennings,N.R. Ringwood,G.A(ICMAS-95
)
  • Seminário apresentado na disciplina
  • PCS-5740 - Fundamentos Lógicos de IA
  • Prof Jaime S. Sichman
  • 1o. Quadrimestre de 1999

2
Introdução
  • Objetivo mostrar as vantagens da SLP
  • (Stream Logic Programming)
  • Problema trabalhar com MAS (Multi Agent System)
  • necessita de ferramentas e técnicas próprias
  • Soluções
  • construir linguagens novas (PLACA e MAIL)
  • usar linguages mais gerais (OBCP - Object Based
    Concurrent Programming)

3
Introdução (cont...)
  • OBCP em MAS
  • vantagem se sai bem na complexidade de executar
    grandes programas em sistemas distribuídos
  • desvantagem restringe os agentes deixando-os
    muito inflexíveis
  • Exemplo de OBCP ACTORS e ABCL

4
Características do SLP
  • Sintaxe
  • ACTORS - LISP
  • SLP - PROLOG
  • SLP consiste de um conjunto de comportamentos
    nomeados
  • Classe (LOO)
  • conjunto de clausulas (L Lógica)
  • vetor de slot de recepção de mensagens
  • slot gt variáveis do Prolog

5
Seleção de mensagens
  • Forma geral
  • ltguardgt lt- ltbehaviourgt
  • act(X,Y)- Xm lt- .....
  • act(X,Y)- X n lt- .....
  • representa as alternativas
  • Mensagem termo da lógica de predicados
  • Objeto fica suspenso até chegar m/0 ou n/0

6
Seleção de mensagens (cont...)
  • Pode-se acrescentar
  • act(X,Y)- X/m X/n lt- .....
  • Existe prioridade - ordenação de cláusulas
  • act(m,Y) lt-....
  • act(m,Y) lt- ....
  • act(X,Y) lt- ....

7
Seleção de mensagens (cont...)
  • Pode-se requerer duas mensagens
  • max(I,J)- I gt J lt- ....
  • max(I,J) IltJ lt- ....
  • As restrições não podem ser executadas enquanto
    não receberem a(s) mensagem(ns). Enquanto isso a
    cláusula fica suspensa.

8
Metas como objetos pouco ativos
  • Objeto - meta em Prog Lógica, um comportamento
    com um nro de slots
  • Em SLP os slots são explícitos e podem ser
    manuseados. Pode-se ter lista de objetos
  • lt- A ltlt mact(A,B)bct(B,C)...
  • O envio da mensagem é assíncrono

9
Metas (cont...)
  • Uma classe pode receber mensagens e enviar
    respostas
  • act(m,Y) lt- Y ltlt q
  • act(n,Y) lt- Y ltlt r
  • bct (q,Y) lt- done nenhuma troca
  • lt- Altltm act(A,B)bct(B,C)....
  • lt- act(m,B)bct(B,C)....
  • lt- Bltltqbct(B,C)....
  • lt-bct(q,C)....
  • lt- ....

10
Objetos de vida longa e Fluxo
  • Os slots podem receber mensagens.
  • As mensagens são termos.
  • Termos podem ter slots
  • Portanto
  • act(m(X),Y) lt- Y ltlt q(Z)cct(X,Y)
  • act(n(X),Y) lt- Y ltlt r(Z)dct(X,Y)
  • os objetos cct/2 e dct/2 tratam dos termos que
    tem slot

11
Objetos .... (cont...)
  • As mensagens podem ser multicast
  • lt- Xltltmact(X,...)bct(...,X,...)cct(...,X)
  • Podem ser reincarnadas
  • bct(q(X),Y) lt- bct(X,Y)
  • Reincarnadas recursivas
  • bct(q(X),Y) lt- Z ltlt r(X)bct(Z,Y) ou
  • bct(q(X),Y) lt- bct(r(X),Y)
  • envia uma mensagem para si mesmo

12
Objetos... (cont...)
  • Quando várias mensagens são recebidas no mesmo
    fluxo
  • bct(s(t(X)),Y) lt- bct(X,Y)
  • bct(stX,Y) lt- bct(X,Y)
  • bct(s,tX,Y) lt- bct(X,Y)
  • bct(stX,Y) lt- bct(X,Y)

13
Agentes Simples
  • //vendedor(Preço_corrente,Proposta,Limite_min)
  • vendedor(Perg,PropCont,Limite)- Prop gt Limite
  • lt- Cont ltlt aceita(Prop)vendedor(Perg,Cont,Limite
    )
  • vendedor(Perg,PropCont,Limite)-
  • Prop lt Limite Nova_P (PergProp)/2
  • Nova_P gt Limite
  • lt- Cont ltlt Nova_PNovo_C vendedor(Nova_P,Novo_C
    ,Limite)
  • vendedor(Perg,PropCont,Limite)-
  • Prop lt Limite Nova_Perg (PergProp)/2
  • Nova_P lt Limite
  • lt- Cont ltlt rejeita(Prop) vendedor(Perg,Cont,Lim
    ite)

14
Agentes Simples (cont...)
  • //comprador(Proposta_corrente,Pergunats,Limite_max
    )
  • comprador(Prop,PergCont,Limite)- Perg lt Limite
  • lt- Cont ltlt aceita(Perg)comprador(Prop,Cont,Limit
    e)
  • comprador(Prop,PergCont,Limite)-
  • Perg gt Limite Nova_P (PergProp)/2
  • Nova_P lt Limite
  • lt- Cont ltlt Nova_PNovo_C comprador(Nova_P,Novo_
    C,Limite)
  • comprador(Prop,PergCont,Limite)-
  • Perg gt Limite Nova_Prop (PergProp)/2
  • Nova_P gt Limite
  • lt- Cont ltlt rejeita(Perg) comprador(Prop,Cont,Li
    mite)

15
Agente simples (cont...)
  • lt- vendedor(100,C,75)comprador(40,100C,80) (10
    040)/270
  • lt- vendedor(100,C,75)Cltlt70C1comprador(70,C1,80
    )
  • lt- vendedor(100,70C1,75)comprador(70,C1,80) (1
    0070)/285
  • lt- vendedor(85,C2,75)C1ltlt85C2comprador(70,C1,8
    0)
  • lt- vendedor(85,C2,75)comprador(70,85C2,80) (85
    70)/277.5
  • lt- vendedor(85,C2,75)C2ltlt77.5C3comprador(77.5,
    C3,80)
  • lt- vendedor(85,77.5C3,75)comprador(77.5,C3,80)
  • lt- vendedor(85,C3,75)C3ltltaceita(77.5)comprador(
    77.5,C3,80)
  • lt- vendedor(85,aceita(77.5),75)comprador(77.5,ac
    eita(77.5),80)

16
Agentes submissos
  • Co-operação cliente-servidor
  • // server(PedidoMais_Pedido, BcoDados)
  • server(PPs,BD) lt- transaction(P,BD,BDN)server(Ps
    ,BDN)
  • 1o. Arg fluxo da transação
  • 2o. Arg mensagem com o estado do servidor
  • //cliente(Estado, Pedidos,Retorno)
  • cliente(N,Ps,done)- N1N1
  • lt- Ps ltlt do(N,Retorno)TsCliente(N1,Ts,Retorno)

17
Agentes submissos (cont...)
  • O servidor pode ser forçado a esperar até que a
    transação seja completada
  • server1(PPs,data(BD)) lt- transaction(P,BD,BDN)se
    rver1(Ps,BDN)
  • Para simplificar assume-se que o estado do
    servidor pe um registro de pedidos processados
  • transaction(do(Job,Reply),D,D1) lt-
    D1ltltdata(JobD)Replyltltdone.
  • transaction1(do(Job,Reply),D,D1)lt-Replyltltdone(D1lt
    ltdata(JobD))

18
Agentes sofisticados
  • Arquiteturas reflexivas ou meta nível são usadas
    pelos MAS.
  • Vanilla interpreter
  • // exec(Fila_de_metas)
  • exec(done) lt- done
  • exec(user(Meta)Rest_Metas)
  • lt- clause(user(Meta),Corpo) exec(Corpo)exec(Res
    t_Metas)
  • clause(user(Head),Tail)- C1...Cn
  • lt- Tail ltlt (user(b1)...user(bn)done)

19
Agentes inteligentes
  • // agent0(Mensagem_Fluxo,Estado_Mental)
  • agent0(MensFluxo, EMental)- lt condições mens e
    est mentalgt
  • lt- exec(Mens,EMental,Novo_EMental)
  • agent0(Fluxo,Novo_EMental)
  • O comportamento de exec/3 pode envolver envio de
    mensagens e/ou atualização de estado mental
    (crença, crenças comuns)
  • Enviar uma mensagem informal a um agente
  • // inform(Time, Agetn, Fact)
  • inform(time_up, Agent,Fact) lt- Agent ltlt
    inform(Fact)

20
Conclusões
  • O SLP
  • é potente para o MAS
  • pode modelar redes neurais
  • vetor de slots de mensagens receptores
  • uma mensagem pode conter slot
  • possibilita escolha entre comportamentos
  • tem sido usado para implementar sistema
    operacional distribuído
Write a Comment
User Comments (0)
About PowerShow.com