Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouIrene Martinho Ávila Alterado mais de 8 anos atrás
1
Sugestões de Assuntos de Projetos Métodos de Computação Inteligentes 2002 Jacques Robin DI-UFPE
2
Roteiro Lista dos assuntos Assuntos sobre agentes de gerenciamento de informação na web Assuntos sobre sistemas inteligentes multi-agentes Futebol de robô Cálculo de eventos Abdução com cálculo de eventos Lógica de escolhas independentes
3
Lista do assuntos Agentes de gerenciamento de informação na web: Agente gerenciador de currículos múltiplos na web Agente facilitador de alocação de docente, horário e sala para disciplinas baseado na resolução de restrições Estudo de viabilidade de uma máquina de inferência baseada em XSLT Futebol de robô: Componente de agente reativo com estado interno de futebol de robô Ontologia para um simulador 3D de futebol de robô Representação de conhecimento e raciocínio multi- agentes Planejador abdutivo lógico orientado a objetos baseado no cálculo de evento Maquina de inferência lógica orientada a objetos bayesiana baseada em conceitos das teorias da decisão e dos jogos?
4
Agente gerenciador de currículos múltiplos na web Agentes de extração e manutenção de informação da web Agente monitora páginas web com currículos de uma pessoa em formatos diferentes Quando uma página é modificada, regras de correspondência entre os campos dos vários currículos são aplicadas para propagar as modificações automaticamente para os outros currículos. Interface de notificação por e-mail Implementação JEOPS ou Java+XSLT Estudo de caso com necessidade prática real no CIn
5
Agente facilitador de alocação de docente, horário e sala para disciplinas baseado na resolução de restrições Agentes web de automação de tarefas administrativas Alocação docentes: dados conjunto de disciplinas a ministrar, carga horária a cumprir por cada docente, área de pesquisa de cada docente, preferências de cada docente, avaliação docentes por discentes, experiência prévia de ensino de cada docente, alocar um ou dois docentes por cada disciplina Alocação de horário e sala: dados conjuntos de disciplinas com docente alocado e alunos matriculados, restrições de horários do docente e dos alunos e a capacidade das salas, alocar um horário e uma sala para cada disciplina Todos os dados mantidos em um BD persistente e acessível em leitura e escritura via formulário web Implementação usando Java para camada de interface, SQL para camada de dados e Eclipse para camada de resolução automática de restrições Estudo de caso com necessidade prática real no CIn
6
Estudo de viabilidade de uma máquina de inferência baseada em XSLT Web semântica Agentes de informação inteligentes baseados em XML Estudo da literatura comparando sistemas dedutivos e sistemas de re-escritura Estudo da literatura sobre uso de XSLT para raciocínio automático Monografia sugerindo um mapeamento entre os conceitos de Prolog ou sistemas de produção e conceitos de XSLT Tentativa de implementação de um protótipo de um interpretador Prolog ou sistemas de produção em XSLT Usar como entrada e saída RuleML, uma codificação em XML de regras e termos de Prolog ou de sistemas de produção Teste sobre programas Prolog ou sistemas de produção brinquedos Potencial para publicação
7
Hello, world! Hello.xml Today’s greeting Hello, world! Hello.html
8
Today’s greeting Hello.xsl Linha de comando para transformar Hello.xml em Hello.html via Hello.xsl: saxon Hello.xml Hello.xsl > Hello.html
9
Motivação e desafios da RoboCup Integrar pesquisa e tecnologia fragmentadas da IA Percepção computacional (visão, integração de sensores) Robótica (controle e integração de ações físicas) Raciocínio automático, representação do conhecimento e planejamento (reativo e deliberativo) Aprendizagem de máquina Sistemas multi-agentes e IA distribuída (comunicação, cooperação, inteligência coletiva emergente) IA tempo-real Problemática: Arquitetura de sistemas multi-agentes Metodologia de desenvolvimento de sistemas multi-agentes IA embarcada
10
Motivação e desafios da RoboCup Novo teste de Turing para a IA depois do xadrez 1997: 2 x 1 2050?: 2 x 1
11
Divisão Softbots Soccer Server UDP/IP Client 1 Client 11 Client 1 Time ATime B Soccer Monitor
12
SoccerServer: propriocepção Parâmetros: senseBody(Time, % momento da propriocepção viewMode(Quality, Width), % compromisso entre largura, % qualidade e freqüência da visão stamina(Stamina, % reserva de energia do jogador % parcialmente: - consumida por cada ação % - reabastecida a cada ciclo Effort) % f(Stamina) = percentual da força desejada % da próxima ação efetivamente disponível Speed, % ~ velocidade do jogador HeadAngle, % ângulo cabeça/corpo actionCounts(Kicks, Dashes, Turns, Says, NeckTurns) % número de ações de cada tipo já executada pelo jogador ) Freqüência: 1 por ciclo
13
SoccerServer: parâmetros da visão see(Time, % tempo da visão ObjName, % estrutura identificando objeto visto Distance, % posição relativa do objeto visto em coords Direção, % polares centrado no jogador olhando DistChng, DirChng, % derivadas dessas coordenadas polares BodyDir, % quando objeto visto é um jogador, orientação HeadDir) % do corpo e da cabeça relativamente a direção ObjName = ball | player(Team,Number) | goal({l;r}) | % l = left, r = right line({l|r|t|b}) % t = top, b = bottom flag/1 | % pontos de referência no campo: flag/2 | % com argumentos l,r,t,b, e/ou flag/3). % c = center, p = penalty area, g = goalpoast.
14
SoccerServer: limites da visão Campo: circulo de raio VisibleDistance fixo ao redor do jogador cone centrado no rosto do jogador de ângulo ViewWidth = {180;90;45} escolhido pelo jogado Clareza: diminuí com a distância de perto direção e distância do objeto e se for jogador também cor e número de longe apenas direção do objeto e se for jogador sem cor nem número variação contínua entre os dois influência pela escolha de ViewQuality pelo jogador Confiabilidade: ruído aumenta com distância Freqüência: inversamente proporcional a ViewQuality e ViewWidth
15
SoccerServer: audição Parâmetros: hear( Time, % tempo da audição Direction, % angulo da procedência da mensagem auditíva % 2 exceções: Direction = self ou referee Message) % string da mensagem em linguagem natural % exceção: linguagem artificial para mensagens % do juiz = kick_off_l | kick_in_l | % corner_kick_r |... Limites: Raio = 50m Freqüência: 1 mensagem de jogador por ciclo caso vários são mandados, apenas o primeiro é ouvido Nenhum limite para mensagens do juiz
16
SoccerServer: ações move(X,Y): posicionar jogador no início do jogo dash(Power): acelerar no eixo com força Power turn(Moment): girar corpo de um angulo dependente de Moment e da velocidade do jogador turnNeck(Angle): girar pescoço relativo ao corpo kick(Power,Dir): chutar na direção Dir com força Power catch(Dir): mergulhar na direção Dir para pegar bola; reservado para goleiros say(Message): mandar string no único canal de comunicação compartilhado pelos 22 jogadores change_view(Angle,Quality): mudar compromisso entre largura, profundidade e freqüência da visão Angle = ângulo do cone de visão, 180, 90 ou 45 Quality = high: direção e distancia de cada objeto no cone de visão low: apenas direção dos mesmos Freqüência diminua automaticamente quando Angle e Quality aumentam
17
SoccerServer: tipo de ambiente inacessível (percepção parcial e ruidosa) não determinístico: execução ruidosa das ações imprevisibilidade das escolhas do agentes adversários não confiabilidade de UDP/IP dinâmico (o jogo é tempo-real, limite de 100ms para raciocinar sem o ambiente mudar) contínuo (parâmetros reais em algumas percepções e ações) ambos cooperativo e antagônico relacional: envolve raciocinar sobre várias e complexas relações espaciais, temporais e inter-agentes multi-granular: requer vários níveis de abstração entre percepções e ações atômicas
18
SoccerServer: tipos de conhecimento e raciocínios necessários Interpretar percepções para atualizar: Modelo do ambiente Objetivo corrente Percepções físicas x comunicativas Prever estado futuro do ambiente resultando: Da continuação dos eventos interpretados Dos efeitos das ações a executar Escolher a melhor próxima ação em função: Do objetivo corrente Da previsão do estado futuro do ambiente resultando dessa ação (ou da seqüência de ações iniciada) Ações de atuação x de percepção x de comunicação
19
Ontologia para um simulador 3D de futebol de robô Representação do conhecimento e ontologia de um domínio complexo Modelar em UML uma API para um SoccerServer 3D Definir ontologia (classes de entidades e relações, restrições de valores) de um ambiente de simulação de futebol 3D Definir vários conjuntos de percepções e ações dos agentes, cada um a um nível diferente de abstração Usar diagramas de classe e restrições OCL Relevância prática essencialmente para jogos, sistemas multi-agentes, simulação e robótica
20
Projeto Maracatu RFC Engenharia de software, representação de conhecimento e raciocínio automático para software multi-agentes Estudo de caso: desenvolver time de futebol de robô simulado do CIn para mandar para RoboCup em 2003 ou 2004 Estado atual: Protótipo parcial de time desenvolvido pelo mestrando Alexandre Damasceno (candidato ao doutorado) Agente reativo com estado interno baseado na dedução automática Abordagem atual: Modelagem detalhado com UML e OCL Implementação em Flora, uma linguagem de programação e representação do conhecimento híbrida lógica orientada a objetos Futuro: Agente misto reativo, deliberativo, otimizador e aprendiz Integração de redes de decisões probabilistas, aprendizagem por reforço e programação em lógica indutiva
21
Arquitetura do Maracatu RFC RoboFlora Comportamento Preditor Reativo Objetivo Delibera- tivo Dedutivo Delibera- tivo Dedutivo Hierárqui- co Delibera- tivo Abdutivo Delibera- tivo Abdutivo Hierárqui- co Interno Externo Preditor Comunicação Vestuário Regras Intransigentes Estado Interno Objetivos Situação Modelo do Ambiente Formação Situação Ação de Atuação Ação de Percepção Comunicação Atualização
22
Componente de agente reativo com estado interno de futebol de robô Representação híbrida de conhecimento objetos + regras + lógica, para sistemas multiagentes Raciocínio automático multiagentes híbrido dedução + herança Planejamento situado multiagentes sem cooperação explícita mas emergindo da interação no ambiente de agentes reativos com modelo do ambiente e dos outros agentes Metodologia de desenvolvimento combinando tecnologia padrão de engenharia de software com tecnologias experimentais de IA Focalizado nas camadas de alto níveis estratégicas do agente através do uso da API RoboFlora que cuida da interface com o SoccerServer, da manutenção do modelo do ambiente e da decomposição de ações abstratas de alto níveis em ações primitivas diretamente executáveis pelo SoccerServer Relevância prática essencialmente para jogos, sistemas multiagentes, simulação e robótica Potencial para publicação e participação na RoboCup 2003
23
Cálculo de eventos: definição e motivação Conjunto de regras (axiomas) e predicados independentes do domínio de aplicação para manutenção do modelo de um ambiente dinâmico usando programação em lógica Mais flexíveis do que o cálculo de situações por: modelar o tempo em termos de intervalos de tempo no lugar de apenas pontos de tempo permitir raciocinar em termos de eventos com duração e não apenas de situações instantâneas permitir raciocinar em termos de narrativas (sucessões de eventos) incompletas e não apenas cadeias completas de situações Útil tanto para interpretação das percepções, como para previsão das conseqüências das ações e seu planejamento
24
Cálculo de eventos: exemplo de axiomatização holdsAt(F,T) :- initiallyp(F), not_Clipped(0,F,T). holdsAt(F,T3) :- happens(A,T1,T2), initiates(A,F,T1), T2 < T3, clipped(T1,F,T3). not_HoldsAt(F,T) :- initiallyN(F), not_Clipped(0, F, T). not_HoldsAt(F,T3) :- happens(A,T1,T2), terminates(A,F,T1), T2 < T3, not_Declipped(T1, F, T3). clipped(T1, F, T4) :- happens(A, T2, T3), T1<T3, T2<T4, (terminates(A,F,T2); releases(A, F, T2)). decliped(T1, F, T4) :- happens(A, T2, T3), T1<T3, T2<T4, (initiates(A, F, T2); releases(A,F,T2)). happens(A,T1,T2) :- T1<=T2.
25
Cálculo de eventos: exemplo de base de conhecimento do domínio Definição do modelo do ambientes: initiates(go(X),at(X),T). terminates(go(X),at(Y),T) :- not (X = Y). initiates(buy(X),have(X),T) :- sells(Y,X), holds_at(at(Y),T). sells(hws,drill). sells(sm,milk). sells(sm,banana). Regras estrategicas: buy(milk) :- holds_at(have(milk),T). buy(drill) :- holds_at(have(drill),T).
26
Abdução x Dedução Dedução: Dado regra causal C P1 P2, e fatos F1, F2 se unificando respectivamente com P1, P2 Concluir: C Abdução: Dado regra causal C P1 P2, fato C, e fato F2 se unificando com P2 Fazer a hipótese que F1 que se unifica com P1 ocorreu, e que F1 (junto a F2) explica então a ocorrência de C Equivalente a deduzir F1 a partir dos fatos C, F2 e a regra diagnóstica P1 C P2
27
Uma máquina de inferência abdutiva usando o cálculo de evento Sem negação por falha: abdemo([], R, R). abdemo([G|Gs], R1, R2) :- abducible(G), abdemo(Gs, [G|R1], R2). abdemo([G|Gs1], R1, R2) :- axiom(G,Gs2), append(Gs2, Gs1, Gs3), abdemo(Gs3, R1, R2). Com negação por falha: abdemo([], R, R, N). abdemo([G|Gs], R1, R3, N) :- abducible(G), abdemo_nafs(N, [G|R1], R2), abdemo(Gs, R2, R3, N). abdemo([G|Gs1], R1, R2, N) :- axiom(G,Gs2), append(Gs2, Gs1, Gs3), abdemo(Gs3, R1, R2, N). abdemo([not(G)|Gs], R1, R3, N) :- abdemo_naf([G], R1, R2), abdemo(Gs, R2, R3, [[G] | N]). abdemo_naf([G|Gs1], R1, R2) :- not resolve(G, R, Gs3). abdemo_naf([G|Gs1], R1, R2) :- findall(Gs2, (resolve(G1, R1, Gs3), append(Gs3, Gs1, Gs2)), Gss), abdemo_nafs(Gss, R1, R2).
28
Abdução com cálculo de eventos: aplicações Interpretar percepções: Dado: modelo parcial model1 percepção percept regra causal percept model1 model2 Abduzir modelo mais completo model1 model2 Planejamento: Dado: modelo do ambiente atual modelAtual objetivo futuro a atingir objetivo regra causal objetivo modelAtual plano Abduzir seqüência de ação a executar plano
29
Projeto Florabdemo: Planejador abdutivo lógico orientado a objetos baseado no cálculo de evento Representação híbrida de conhecimento objetos + regras + lógica Raciocínio automático híbrido dedução + abdução + herança Raciocínio em ambiente inacessível dinâmico por agente reativo com estado interno e por agente deliberativo Meta-programação em lógica orientada a objeto Desenvolver versão Flora do planejador abdutivo Abdemo Prolog baseado no cálculo de evento Teste com domínios brinquedos (Mundo dos Blocos, Shakey) e, se tiver tempo, com agente deliberativo de futebol de robô simulado Relevância prática essencialmente para jogos, simulação e robótica Potencial para uma publicação Para saber mais sobre atualização do modelo do ambiente e planejamento por um agente como abdução usando o cálculo de evento ver as publicações de Murray Shanahan http://casbah.ee.ic.ac.uk/~mpsha/pubs.html http://casbah.ee.ic.ac.uk/~mpsha/pubs.html
30
Lógica de escolhas independentes: definição e motivação Lógica de escolhas independentes (ICL) Formalismo de representação de conhecimento para sistemas multi- agentes otimizadores em ambientes inacessíveis, não deterministas, dinâmicos, relacionais e contínuos Integração de: programação em lógica redes bayesianas teoria da decisão teoria dos jogos Para saber mais sobre esse formalismo de especificação e implementação de agentes inteligentes, ver a página das publicações de David Poole: http://www.cs.ubc.ca/spider/poole/pubs.htmlhttp://www.cs.ubc.ca/spider/poole/pubs.html
31
ICL: exemplo ilustrando integração lógica com probabilidades carrying(key,s(T)) <- do(pickup(key),T) & at(robot,Pos,T) & at(key,Pos,T) & pickup_succeeds(T). carrying(key,s(T)) <- ~ do(pickup(key),T) & ~ do(putdown(key),T) & carrying(key,T) & ~ drops(key,T). random([pickup_succeeds(T): 0.7, pickup_fails(T):0.3]). drops(key,T) <- slippery(key,T) & drop_slippery_key(T). drops(key,T) <- ~ slippery(key,T) & fumbles_key(T). random([drop_slippery_key(T):0.9, holds_slippery_key(T):0.1]). random([fumbles_key(T):0.2, retains_key(T):0.8]). at(key,Pos,T) <- carrying(key,T) & at(robot,Pos,T). at(key,Pos,s(T)) <- ~ carrying(key,s(T)) & at(key,Pos,T). at(robot,Pos,s(T)) <- do(goto(Pos),T) & goto_succeeds(T). at(robot,Pos1,s(T)) <- do(goto(Pos),T) & at(robot,Pos1,T) & ~ goto_succeeds(T). at(robot,Pos,s(T)) <- ~ goto_action(T) & at(robot,Pos,T). goto_action(T) <- do(goto(Pos),T). random([goto_succeeds(T):0.93,goto_fails(T):0.07]). slippery(key,s(T)) <- slippery(key,T) & stays_slippery(T). slippery(key,0) <- initially_slippery(key). random([stays_slippery(T):0.75, stops_being_slippery(T):0.25]). random([becomes_slippery(T):0.05, stays_unslippery(T):0.95]). random([initially_slippery(key):0.5, initially_unslippery(key):0.5]).
32
ICL: exemplo ilustrando integração com teoria da decisão Exemplo do pênalti: utility(kicker, 1) :- goal. utility(kicker, 0) :- not goal. utility(goalie, 1) :- goal. utility(goalie, 0) :- not goal. goal :- kicks(D), jumps(D), goal_if_same_dir. goal :- kicks(left), jumps(right), goal_if_kl_jr. goal :- kicks(right), jumps(left), goal_if_kr_jl. Alternativas: para o chutador: {kicks(right), kicks(left)} para o goaleiro: {jumps(right), jumps(left)} para o ambiente: {goal_if_same_dir,no_goal_if_same_dir}, {goal_if_kl_jr,no_ goal_if_kl_jr}, {goal_if_kr_jl,no_goal_if_kr_jl}
33
ICL: exemplo ilustrando integração com teoria da decisão Probabilidades do ambiente: p0(goal_if_same_dir) = 0.9. p0(goal_if_kl_jr) = 0.1. p0(goal_if_kr_jl) = 0.2. Estratégias probabilistas dos agentes: Pg = Pgoalie(jump(right)) Pk = Pkicker(kick(right)) Resultado do raciocínio: P(goal) = PkPg0.9 + (1-Pk)(1-Pg)0.9 + (1-Pk)Pg0.1+(1-Pg)0.2
34
Uma máquina de inferência baseada na lógica de escolhas independente rule(R): Os fatos são dados em forma de rule(R), onde R é uma regra da forma H:-B ou um átomo. H <- B: é o mesmo que uma regra (H :- B). Regras com corpo vazio é representada como (H <- true) ou rule(H). random(X, h, [x 1 :p 1,...,x n,p n ]): onde h é um átomo que contem a variável X, e x i são termos diferentes. Isso declara o átomo h com X substituído por cada x i onde P(h[x i ]) = p i. controllable([h 1,..., h n ]): declara as variáveis disjuntas h i (o agente pode escolher um dos h i ). explain(G, C): busca por todas as explicações de G dado o controllable C. thconsult(filename): chama o arquivo chamado filename. how(G,C,N): usado para explicar a N-ésima explicação para G dado C. diff(G,C,N,M): imprime a diferença na árvore de prova para a N-ésima explicação de G dado C.
35
Uma máquina de inferência baseada na lógica de escolhas independente check(G): checa por regras disjuntas da explciação de G. check(G1, G2): checa cada caso onde G1 e G2 são verdadeiros. recap(G): recauchuta a explicação de G, com a probailidade de cada explicação dado G. recap: dá a probabildaide de todos os objetivos explicados. check_undef: procura por átomos não definidos. clear: limpa a base de conhecimento.
36
Projeto OICL Maquina de inferência lógica orientada a objetos bayesiana baseada em conceitos das teorias da decisão e dos jogos Representação híbrida de conhecimento objetos + regras + lógica + probabilidades + utilidade Raciocínio automático híbrido dedução + abdução + herança + otimização probabilística de utilidade Raciocínio em ambiente inacessível, dinâmico e não determinista por agente reativo com estado interno Meta-programação em lógica orientada a objeto Desenvolver versão Flora do meta-interpretador Prolog para Independent Choice Logic (ICL) que integra dedução lógica da 1a ordem com otimização probabilística de utilidade Teste com domínios brinquedos (Mundo dos Blocos, Shakey) e, se tiver tempo, com agente reativo com estado interno de futebol de robô simulado Relevância prática essencialmente para jogos, simulação e robótica Potencial para uma publicação
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.