1 / 36

Sugestões de Assuntos de Projetos Métodos de Computação Inteligentes 2002

Sugestões de Assuntos de Projetos Métodos de Computação Inteligentes 2002. Jacques Robin DI-UFPE. 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

wright
Download Presentation

Sugestões de Assuntos de Projetos Métodos de Computação Inteligentes 2002

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sugestões de Assuntos de ProjetosMétodos de Computação Inteligentes2002 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çãode 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. <?xml version=“1.0” encoding=“iso-8859-1”?> <greeting>Hello, world!</greeting> Hello.xml <html> <head> <title>Today’s greeting</title> </head> <body> <p>Hello, world!</p> </body> </html> Hello.html

  8. Hello.xsl <?xml version=“1.0” encoding=“iso-8859-1”?> <xsl:stylesheet version=“1.0” xmlns:xsl=“http://www.w3.org/1999/XSL/Transform”> <xsl:template match=“/”> <html> <head> <title>Today’s greeting</title> </head> <body> <p><xsl:value-of select=“greeting”/></p> </body> </html> </xsl:template> </xsl:stylesheet> • 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. Soccer Monitor Time A Time B Client 1 Client 1 Soccer Server UDP/IP UDP/IP Client 11 Client 11 DivisãoSoftbots

  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. 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 SoccerServer: ações

  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. Interno Preditor Reativo Reativo Objetivo Delibera- tivo Dedutivo Delibera- tivo Dedutivo Hierárqui- co Delibera- tivo Abdutivo Delibera- tivo Abdutivo Hierárqui- co Externo Arquitetura do Maracatu RFC Vestuário Comportamento Regras Intransigentes Comunicação Situação Formação Ação de Atuação Ação de Percepção Preditor Comunicação Comunicação Atualização Estado Interno Objetivos Modelo do Ambiente Situação RoboFlora

  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 F1a 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

  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.html

  31. 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]). ICL: exemplo ilustrando integração lógica com probabilidades

  32. ICL: exemplo ilustrando integraçãocom 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çãocom 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, [x1:p1,...,xn,pn]): onde h é um átomo que contem a variável X, e xi são termos diferentes. Isso declara o átomo h com X substituído por cada xi onde P(h[xi]) = pi. controllable([h1, ..., hn]): declara as variáveis disjuntas hi (o agente pode escolher um dos hi). explain(G, C): busca por todas as explicações de G dadoo 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

More Related