Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pr-histria da IA
Filosofia
Lgica, mtodos de raciocnio, mente como um sistema fsico, fundamentos da aprendizagem, linguagem, racionalidade Representao formal e prova, algoritmos, computao, (in)decidibilidade, (in)tractibilidade, probabilidade Adaptao, fenmenos de percepo e controlo motor, tcnicas experimentais Teoria formal de decises racionais Representao do conhecimento, gramtica Substrato fsico para a actividade mental sistemas homeostticos, estabilidade, desenhos ptimos para agentes simples
Matemtica
Psicologia
1943 1950 1952-69 1950s 1956 1965 1966-74 1969-79 1980-88 1988-93 198619981995200120012006
McCulloch & Pitts: modelo de circuitos Booleanos do crebro Turing ``Computing Machinery and Intelligence'' Look, Ma, no hands! Primeiros programas de IA, incluindo o programa de damas de Samuel e Newell, Simon's Logic Theorist, Gelernter's Geometry Engine Encontro de Dartmouth: adopo do termo ``Artificial Intelligence'' O algoritmo completo de Robinson para o raciocnio lgico a IA descobre a complexidade computacional Investigao em redes neuronais desaparece praticamente Primeiros sistemas baseados em conhecimento A indstria de Sistemas Periciais explode A indstria de Sistemas Periciais implode: ``AI Winter'' As redes neuronais reganham popularidade Resurgimento das Probabilidades; sofisticao dos resultados Nouvelle AI: ALife, GAs, soft computing Agentes, agentes por todo o lado Semantic Web Existncia de grandes conjuntos de dados 50 ANOS DA IA
Indecidibilidade do Problema da Paragem da Mquina de Turing impossvel construir um programa que indica se um outro programa qualquer termina.
Demonstram no artigo A Logical Calculus of the Ideas Immanent in Nervous Activity Uma mquina de Turing pode ser implementada numa rede finita de neurnios formais, ou seja, que o neurnio a unidade lgica elementar do crebro
Cada sinapse pode ter um valor binrio 0 ou 1 Cada sinapse pode ter um peso real O neurnio dispara quando x1 * w1 + x2* w2 >= Limiar
Em resposta ao comentrio que uma mquina no capaz de pensar: You insist that there is something a machine cannot do. If you will tell me precisely what it is that a machine cannot do, then I can always make a machine which will do just that!
Os avies voam!
Podem
resposta afirmativa aterroriza o comum dos mortais. Mas cientificamente pouco relevante!
Podem as mquinas comportar-se inteligentemente Turing prope o Jogo da Imitao para resolver a questo.
Antecipou a maioria dos argumentos usados contra a Inteligncia Artificial Sugeriu as reas fundamentais da Inteligncia Artificial
Previu que no ano 2000 que uma mquina teria 30% de probabilidade de enganar uma pessoa durante 5 minutos. Qual a situao actual ?
JABBERWOCK...
Copyright (C) 2003 Cambridge Center for Behavioral Studies. All rights reserved. Jabberwock conversing with Judge 4 JUDGE: a new guest is in JABBERWOCK: Hello, anybody there? What's your name? JUDGE: I'm Ray who are you? JABBERWOCK: Be welcome, Ray. You know who I am. Why the charade? JUDGE: I do not know who you are- what is your name? JABBERWOCK: My name is Gren JUDGE: What is that short for ?-or do you mean Glen? JABBERWOCK: Yes, that's what I mean, isn't it clear? JUDGE: It is now - never mind we all make mistakes. JABBERWOCK: OK, let's discuss something else. If you wish, of course JUDGE: How did you get here today? JABBERWOCK: I heard about by another fellow who works at the university, and I was curious whether this robot freaks could beat us humans or not JUDGE: So what do you think so far? JABBERWOCK: I try not to think about things, actually. I don't know, it just seems that I don't exist for thinking!
Objeces IA
Objeco Teolgica: o pensamento funo da alma imortal de um ser humano logo uma mquina no pode pensar. Objeco Matemtica: o teorema de incompletude de Gdel demonstra que existem limites s questes que um sistema computacional baseado em lgica pode responder. Informalidade do Comportamento: qualquer sistema guiado por leis previsvel logo no ser verdadeiramente inteligente. Argumento da continuidade do sistema nervoso: o nosso crebro baseia-se na propagao de valores contnuos e logo no pode ser capturado por mquinas discretas.
Objeces IA
Argumento da Conscincia: not until a machine can write a sonnet or compose a concerto because of thoughts and emotions felt, and not by the chance fall of symbols, could we agree that machine equals brain Objeco das incapacidades diversas: (1) be kind; (2) be resourceful; (3) be beautiful; (4) be friendly; (5) have initiative; (6) have a sense of humor; (7) tell right from wrong; (8) make mistakes; (9) fall in love; (10) enjoy strawberries and cream; (11) make someone fall in love with one; (12) learn from experience; (13) use words properly; (14) be the subject of one's own thoughts; (15) have as much diversity of behavior as a man; (16) do something really new
Objeco de Lady Lovelace: os computadores so incapazes de serem criativos. Para uma resposta a cada uma destas questes podem ler o artigo original de Alnan Turing em http://www.abelard.org/turpap/turpap.htm.
A objeco da Avestruz...
Revoluo Cognitiva em 1960: psicologia baseada no processamento de informao substituiu a corrente ortodoxa do behaviorismo Depende de teorias cientficas da actividade interna do crebro
Qual o nvel de abstraco? Conhecimento ou Circuitos'? Como validar? Exige 1) Previso e experimentao de comportamentos humanos (top-down), ou 2) Identificaoo directa a partir de dados neurolgicos (bottom-up)
Ambas as alternativas (Cincia Cognitiva e Neurocincia cognitiva ) distinguem-se da IA, mas partilham com a IA a seguinte caracterstica: As teorias existentes no conseguem explicar (gerar) algo semelhante inteligncia humana
Aristteles: quais so os argumentos ou processos de raciocnio correctos? Diversas escolas Gregas desenvolveram vrias formas de lgica:
Nem todo o comportamento inteligente envolve deliberao lgica Qual o objectivo do pensamento? Que pensamentos devo ter?
Agindo Racionalmente
Comportamento Racional: fazer o que correcto O que correcto? aquilo que se espera que maximize a realizao de objectivos, dada a informao disponvel No envolve necessariamente o raciocnio - e.g., piscar de olhos mas o raciocnio deve estar ao servio da actuao racional
O termo Inteligncia Artificial foi proposto por John McCarthy Demonstrou-se o primeiro programa de IA (Logical Theorist) Inventor da linguagem de programao LISP
Logic Theorist
Programa construdo por Newell, Simon e Shaw Pouco tempo depois demonstrou a maioria dos teoremas do captulo 2 dos Principia Mathematica
Paradigmas da IA
Os Sistemas Fsicos de Smbolos tm os meios necessrios e suficientes para a aco inteligente geral. Aplicao da teoria da seleco natural de Darwin e Mendel a problemas complexos (computao evolutiva) Inteligncia uma propriedade emergente das interaces de um nmero elevado de unidades elementares de processamento Hiptese da concretizao fsica: para construir um sistema inteligente necessrio ter as suas representaes concretizadas no mundo fsico. O mundo o seu melhor modelo!
Correntes da IA
Tese
da IA forte
de mquinas com mentes
Construo
inteligentes
Tese
da IA fraca
Construo
contra a IA forte
[http://members.aol.com/NeoNoetics/MindsBrainsPrograms.html]
Quarto Chins no demonstra que as mquinas no podem pensar. O Quarto Chins no demonstra que apenas crebros podem pensar. Tenta demonstrar que a computao por mera manipulao de smbolos no suficiente para se obter o pensamento.
reas importantes da IA
Resoluo de Problemas: Procura e Jogos Representao do Conhecimento e Raciocnio Planeamento Conhecimento incerto e raciocnio Aprendizagem Comunicao, percepo e aco: linguagem natural, viso artificial, robtica Agentes
Estado-da-arte (aplicaes)
Deteco de fraudes em cartes de crdito Planeamento e escalonamento automtico Jogos Controlo Automtico Diagnstico Mdico Planeamento Logstico Robtica Processamento de lngua natural e resoluo de problemas Explorao de Marte Fabricao de Medicamentos
Muitos problemas podem ser resolvidos atravs de mtodos de procura Os jogos podem ser entendidos como um problema de procura Turing comeou a desenvolver um programa capaz de jogar Xadrez...
O jogo do Galo
O primeiro jogo de computador (1952) para o computador EDSAC (1024 palavras de 17bit e 650 instrues/segundo) 765 posies diferentes 255 168 jogos possveis (26 830 recorrendo simetria) Como construir programas que saibam jogar ?
[http://www.dcs.warwick.ac.uk/~edsac/]
Algoritmo MINIMAX
Proposto por John von Neumann (1928) Utilizado como tcnica base na maioria dos jogos que envolvam algum tipo de raciocnio
Qual a dificuldade ?
No Xadrez temos em mdia 35 lances possveis por jogador O espao de procura da ordem de 35100 2,5 x 10154 Qual o resultado das disputas entre computadores e campees humanos ?
[http://www.research.ibm.com/deepblue/]
Campeonatos
Damas
Chinook terminou com o reinado de 40 anos do campeo mundial Marion Tinsley em 1994. Utilizou uma base de dados de final de jogo definindo a estratgia perfeita para todas as posies com 8 ou menos peas no tabuleiro, num total de 443,748,401,247 posies. Recentemente o jogo das damas foi resolvido: empate para jogadores perfeitos! Deep Blue derrotou o campeo mundial humano Gary Kasparov num encontro a 6 partidas em 1997. Deep Blue pesquisa 200 milhes de posies por segundo, utiliza avaliao muito sofisticada, e recorre a mtodos para estender algumas linhas de pesquisa at 40 movimentos. campees humanos recusam-se a competir contra computadores, que so demasiado bons. campees humanos recusam-se a competir contra computadores que so pssimos jogadores. No Go, podemos ter at 300 hipteses por jogada. Utilizam-se mecanismos de reconhecimento de padres J existem sistemas que jogam a um nvel profissional
Xadrez
Othello:
Go:
Bridge
Construo de programas que jogam "qualquer" jogo. Os jogos so descritos numa linguagem lgica que perceber no final desta cadeira (datalog) Utilizam melhorias de algoritmos descritos na cadeira. Utilizam mtodos de simulao de Monte-Carlo para escolher a melhor jogada.
em aberto durante 60 anos Resolvido em 1996 por um Demonstrador de Teoremas (EQP) em 8 dias numa mquina RS/6000 com 30Mb de memria A prova encontrada tem apenas 15 passos! um problema de procura.
Sistemas Periciais
Na dcada de 60 e 70 foram realizados alguns sistemas baseados em conhecimento, em que o DENDRAL e o MYCIN so dois dos mais conhecidos Na dcada de 80 houve um crescimento explosivo da indstria dos Sistemas Periciais, redundando no AI Winter Podem interagir com alguns sistemas periciais no site http://expertise2go.com/.
CYC
Desenvolvida pela CYCORP companhia fundada em 1994 por Doug Lenat The Cyc knowledge base (KB) is a formalized representation of a vast quantity of fundamental human knowledge: facts, rules of thumb, and heuristics for reasoning about the objects and events of everyday life.
Semantic Web
A Web do futuro est neste momento em construo suportada em muitas tecnologias da IA, nomeadamente da lgica Linked Data
[2005 Tim Berners-Lee, Web for real people]
1968, Marvin Minsky & Seymour Papert publicam Perceptrons, demonstrando os limites das redes neuronais simples (duas camadas) no meio da dcada de 1980 com inmeras aplicaes
Ressurgem
Aprendizagem No Supervisionada
[http://www.demo.cs.brandeis.edu/pr/robotics.html ]
Aprendizagem Supervisionada
SAIL [http://www.cse.msu.edu/%7Eweng/research/LM.html]
Criatividade
Os algoritmos de aprendizagem podem gerar comportamentos inesperados tal como aqueles relatados no vdeo de Michael Littman Artificial intelligence: An instance of Aibo ingenuity [Littman.mov]
Aplicaes do dia-a-dia
ABS e CruiseControl Cmeras fotogrficas e de filmar Cozedores de Arroz Mquinas de lavar a loua e roupa Jogos de vdeo Aspiradores...
[http://www.irobot.com]
Entretenimento
King Kong O Leo, a Feiticeira e o Guarda-Roupa Elektra I, Robot Srie Lord of the Rings
E matrecos ?
KiRo [http://www.informatik.uni-freiburg.de/~kiro]
Veculos Inteligentes
[http://www.argo.ce.unipr.it/ARGO/english/index.html]
Prova organizada pelo DARPA em que um veculo automvel tem de percorrer autonomamente uma pista de 210 Km em terreno desrtico, em menos de 10 horas Equipa vencedora da Universidade de Stanford demorou perto de 7 horas (mdia de 30 Km/h). Em 2007, a prova decorreu em cenrio urbano. http://www.darpa.mil/ grandchallenge
Stanley [http://www.stanfordracing.org]
Reconhecimento de fala (e.g. Marcao de voos na United Airlines) Gerao de linguagem natural Recuperao e extraco de informao Traduo Automtica
Essencial
para a Unio Europeia devido diversidade de lnguas escritas e faladas no seu espao Uma ferramenta muito conhecida a SYSTRAN e o Google translator.
Sntese de fala
A sntese da fala uma aplicao j de domnio geral (e.g. Acrobat) e que requer a combinao de vrias tcnicas de Inteligncia Artificial. Uma das tcnicas mais sucesso recorre ao algoritmo de aprendizagem k-nearest neighbor, como ilustrado no vdeo de Antal van den Bosch k-nearest neighbor classification [k-NN.mp4]
Explorao Espacial
Controlo Autnomo de Sondas Espaciais (Deep Space 1) Navegao Autnoma em Marte (Orbit e Spirit) [MAPGEN] Planeamento Espacial [MEXAR2] Planeamento de Observaes do Telescpio Espacial Hubble
Os comportamentos de enxames, cardumes, etc deu origem a novos algoritmos para aplicaes da IA, tal como a morfognese (gerao de formas). Mais informao pode ser obtida no site de Marco Dorigo e no site Swarm-bots.
Vdeo vencedor do AAAI-07 Video Competition de A. L. Christensen, R. O'Grady & M. Dorigo Universit Libre de Bruxelles, Belgium
Bibliografia
http://en.wikipedia.org/wiki/Artificial_intelligence http://www.aaai.org/AITopics/bbhist.html http://plato.stanford.edu/entries/turing-test http://plato.stanford.edu/entries/chinese-room/ http://people.csail.mit.edu/brooks/papers/ elephants.pdf http://www.aaai.org/AITopics/html/overview.html Captulos 1 e 26 do livro Artificial Intelligence, A Modern Approach.
Association for the Advancement of Artificial Intelligence (http://www.aaai.org) AAAI-07 AI Video Competition (http://aivideo.org/) A. I. corporation (http://www.aicorporation.com/default.asp) A.L.I.C.E. (http://www.alicebot.org/) ARGO (http://www.argo.ce.unipr.it/ARGO/english/index.html) CYC (http://www.cyc.com) DARPA Grand e Urban Challenge (http://www.darpa.mil/GRANDCHALLENGE/) Deep Blue (http://www.research.ibm.com/deepblue/) Deep Space 1 (http://nmp.nasa.gov/ds1/) EDSAC Simulator (http://www.dcs.warwick.ac.uk/~edsac/) Equational Prover (http://www-unix.mcs.anl.gov/AR/eqp/) Evolutionary Robotics (http://www.demo.cs.brandeis.edu/pr/robotics.html) eXpertise2Go (http://expertise2go.com/) iRobot (http://www.irobot.com) Jabberwock (http://chat.jabberwacky.com/) KiRo (http://www.informatik.uni-freiburg.de/~kiro/english/index.html) Loebner Prize (http://www.loebner.net/Prizef/loebner-prize.html) Mars Exploration Rover Mission (http://marsrovers.nasa.gov/home/index.html) Massive Software (http://www.massivesoftware.com/) MIT Humanoid Robotics Group (http://www.ai.mit.edu/projects/humanoid-robotics-group/) Robocup (http://www.robocup.org) SAIL (http://www.cse.msu.edu/%7Eweng/research/LM.html) Semantic Web (http://www.w3.org/2001/sw/) Stanford Racing (http://www.stanfordracing.org) Swarm Intelligence (http://iridia.ulb.ac.be/~mdorigo/HomePageDorigo/) Swarm-bots (http://www.swarm-bots.org/) e Swarmanoids (http://www.swarmanoid.org/) SYSTRAN (http://www.systranbox.com/systran/box)
Agentes Inteligentes
Parcialmente adaptado de http://aima.eecs.berkeley.edu
Resumo da matria
Agentes
Um agente qualquer entidade que percepciona o seu ambiente atravs de sensores e age nele atravs de actuadores
Agente biolgico
Sensores: olhos, ouvidos, pele, etc. Actuadores: mos, pernas, boca, etc.
Agente robtico
Cmaras e sensores de proximidade Actuadores: diversos motores Sensores: teclado, rato, ligaes TCP Actuadores: ecr, placa de controlo, drive disco, enviar email, etc. Shakey (SRI International) Vdeo
Capacidades
Sensores
Deciso
Deliberativa
Agentes e ambientes
A funo agente mapeia histrias em aces: [aco: P* A] O programa agente executado numa arquitectura fsica para produzir aco agente = arquitectura + programa
Viso sistmica
Ambientes caracterizam-se por conjunto de estados E Ambientes sofrem transies no deterministas [ambiente: E x A 2E ] Agente constitudo por duas funes [percepo: E P ] [aco: P* A] Agente implementa a funo [agente: E* A]
Racionalidade
Maximiza o seu desempenho em funo da informao disponvel Responde em tempo til a mudanas do ambiente Tem iniciativa. No se limita a reagir ao ambiente. Comunica com outros agentes Aprende e adapta-se de acordo com a experincia anterior Capaz de se transportar de um local para outro (e.g. de mquina para mquina) Tem estado emocional e sua prpria personalidade (veracidade e benevolncia)
O mundo do aspirador
Percepes: localizao e contedo (e.g. [A,Dirty]) Aces: Left, Right, Suck, NoOp
Um programa aspirador
Histria (seq. de percepes) [A;Clean] [A;Dirty] [B;Dirty] [B;Clean] [A;Clean], [A;Clean] [A;Clean], [A;Dirty] Aco Right Suck Left Right Suck
function Agente-Aspirador-Reactivo( [location,status]) returns action if status = Dirty then return Suck else if location = A then return Right else if location = B then return Left Qual a funo correcta ? Pode ser implementada num programa agente?
Agentes racionais
Um agente deve fazer aquilo que correcto", baseando-se no que percepciona e nas aces que pode efectuar. A aco correcta aquela que trar mais sucesso ao agente. Medida de desempenho
Critrio
O aspirador
Um agente racional deve seleccionar a aco que maximiza o valor esperado da medida de desempenho, dada a evidncia fornecida pela sequncia de percepes e conhecimento que o agente tenha. Racionalidade omniscincia (tudo saber) Racionalidade clarividncia (tudo prever) Racionalidade bem sucedido Racionalidade pressupe
PEAS
PEAS: Performance measure, Environment, Actuators, Sensors Deve-se especificar completamente a situao no desenho de um agente inteligente
Medida de desempenho
Ambiente
Actuadores
Sensores
Medida de desempenho
Sade do paciente, minimizar custos, processos em tribunal Paciente, hospital, pessoal Ecr (questes, anlises, diagnsticos, tratamentos)
Ambiente
Actuadores
Sensores:
Medida de desempenho
Percentagem de peas nos receptculos correctos Passadeira rolante com peas, receptculos Brao robtico, garra Cmara e ngulos de rotao dos eixos
Ambiente
Actuadores
Sensores:
Medida de desempenho
Maximizar a nota do estudante no teste Conjunto de estudantes Ecr (exerccios, sugestes e correces) Teclado
Ambiente
Actuadores
Sensores:
Tipos de Ambientes
Os sensores do agente do acesso ao estado completo do ambiente em cada instante de tempo. O estado seguinte do ambiente completamente determinado pelo estado corrente e pela aco executada pelo agente Se o ambiente determinista exceptuando-se as aces de outros agentes, ento o ambiente estratgico.
A experincia do agente dividida em episdios atmicos (percepo seguida de nica aco), em que a escolha da aco depende apenas do prprio episdio.
Tipos de ambientes
O ambiente no se altera enquanto o agente delibera O ambiente semi-dinmico quando o ambiente no se altera com a passagem do tempo, ao contrrio da medida de desempenho
Tipos de ambiente
Solitrio Total. Observvel Determinista Episdico Esttico Discreto Agente nico
Txi No No No No No No
O tipo de ambiente influencia grandemente o desenho do agente A realidade parcialmente observvel, estocstica, sequencial, dinmica, contnua e multi-agente
Tipos de agentes
Quatro
reactivo puro Agente reactivo com memria Agente deliberativo com objectivo Agente deliberativo com funo de utilidade
de regras de produo
c1 a1 c2 a2 cn an
Condies c1, , cn so conjunes de proposies booleanas Aces a1, , an so aces a executar Executa-se a primeira regra cuja condio verdadeira
p5 p4 p3
p6
p7 p0
p2
p1
Implementao conexionista
Os programas teleo-reactivos podem ser facilmente implementados com Threshold Logic Units (Neurnios McCulluch & Pitts)!
x1 ... w1
wi*xi
Limiar, wn
xn
1 se w * x i i f = 0 caso contrrio
TISA
-1
Encadeamento de TISAs
-1
-1
-1
Vdeo [gengis-short.mov]
Arquitectura de Brooks
Arquitectura clssica
Vdeo [uvgdemo.avi]
Agentes aprendizes
Universidade de Coimbra
Links a explorar
The Robot Hall of Fame (http://www.robothalloffame.org/) Teleo-Reactive Programs ( http://ai.stanford.edu/users/nilsson/trweb/tr.html) Materiais de Ensino de Derek Bridge ( http://www.cs.ucc.ie/~dgb/courses/ai/lectures.html) TRSoccerBots (http://www.trsoccerbots.org/features.php) Sistema ALVINN (http://www.ri.cmu.edu/projects/project_160.html) Gengis (http://www.ai.mit.edu/projects/genghis/genghis.html) Minas terrestres (Idaho National Laboratory) ( http://www.inl.gov/adaptiverobotics/findinglandmines/) Chinook (http://www.cs.ualberta.ca/~chinook/) Agentes Artistas Universidade de Coimbra ( http://eden.dei.uc.pt/~machado/NEvAr/Site.htm)
Resumo
Agentes
de procura Tipos de problemas Formulao de problemas Problemas tpicos Algoritmos bsicos de procura
Setembro 2010
IA - Procura
Exemplo: Romnia
Setembro 2010
IA - Procura
Exemplo: Rommia
De frias na Romnia; correntemente em Arad. Voo sai amanh de Bucareste Formular objectivo:
Chegar a Bucareste
Formular problema:
Soluo:
Setembro 2010
Agentes de procura
Setembro 2010
IA - Procura
Tipos de problemas
Agente sabe exactamtente em que estado se encontrar; soluo uma sequncia de aces
Agente pode no saber onde est; caso exista, soluo sequncia de aces
Percepo fornece nova informao acerca do estado corrente Soluo uma rvore ou plano de aco Habitualmente intercala procura com execuo
Setembro 2010
Soluo: [Right,Suck,Left,Suck]
Contingncia. Lei de Murphy. Suck pode sujar carpete limpa. Percepo local: [A,Clean] Sol: [Right, while dirt then Suck]
IA - Procura 7
Setembro 2010
estado inicial e.g., em Arad" aces, operadores, funo sucessor ou modelo de transio Funo sucessor: S(x) = conjunto de pares aco-estado
e.g., S(Arad) = {<Arad Zerind, Zerind>, } e.g., RESULT(Go(Zerind),Arad) = Zerind explcito, e.g., x = em Bucareste" implcito, e.g., XequeMate(x) e.g., soma de distncias, nmero de aces executadas, etc. c(x,a,y) o custo de um passo, sendo 0
4.
Uma soluo uma sequncia de acces que partindo do estado inicial permite atingir o estado objectivo
IA - Procura 8
Setembro 2010
Estado (abstracto) = conjunto de estados reais Aco (abstracta) = combinao complexa de aces reais
Para ser concretizvel, qualquer estado real em Arad deve permite chegar a algum estado real em Zerind" Soluo (abstracta) =
Cada aco abstracta dever ser mais simples do que no problema original!
IA - Procura 9
Setembro 2010
estados? vector booleanos e inteiro aces? Left, Right, Suck e NoOp teste objectivo? tudo limpo custo caminho? nmero de aces (1 por aco,0 para NoOp)
IA - Procura 10
Setembro 2010
Exemplo: charada de 8
estados? inteiros com localizao das peas aces? movimentar casa nas 4 direces teste objectivo? = estado objectivo custo caminho?nmero de movimentos (1 por movimento)
11
estados? Coordenadas reais das articulaes do rob e dos objectos a montar aces? Movimento contnuo das articulaes teste objectivo? montagem completa custo caminho? tempo para executar
IA - Procura 12
Setembro 2010
Setembro 2010
IA - Procura
13
estados? sequncia de cidades sem repeties aces? viajar para nova cidade ou voltar inicial teste objectivo? circuito das cidades custo caminho? distncia total
IA - Procura 14
Setembro 2010
estados? vrtices dos polgonos, posies inicial e final aces? viajar para outro vrtice teste objectivo? chegar ao objectivo custo caminho? distncia percorrida
IA - Procura 15
Setembro 2010
Setembro 2010
IA - Procura
17
Setembro 2010
IA - Procura
18
Setembro 2010
IA - Procura
19
Um estado uma (representao) de uma configurao fsica. Um n uma estrutura de dados constituinte da rvore de procura incluindo o estado, pai, n, aco, profundidade e custo de caminho acumulado g(x)
A funo CHILD-NODE cria um novo n a partir do pai e da aco a executar. Estados no tm pais, profundidade ou custo do caminho!
20
Setembro 2010
IA - Procura
Estados repetidos
A no deteco de estados repetidos pode tornar um problema linear num problema exponencial!
Setembro 2010
IA - Procura
22
Procura em grafos
function GRAPH-SEARCH( problem, frontier ) returns a solution, or failure explored an empty set node node with STATE = problem.INITIAL-STATE, PATH-COST = 0 frontier INSERT(node, frontier) loop do if EMPTY?(frontier) return failure node POP( frontier ) if problem.GOAL-TEST(node.STATE) then return SOLUTION(node) if node.STATE is not in explored then add node.STATE to explored frontier INSERT-ALL(EXPAND(node,problem),frontier) Esquema genrico! Pode ser melhorado em algumas circunstncias.
Setembro 2010
IA - Procura
23
Estratgias de procura
Uma estratgia de procura definida pela ordem de expanso dos ns. As estratgias so avaliadas segundo as dimenses:
completude: encontra garantidamente uma soluo, caso exista? complexidade temporal: nmero de ns gerados complexidade espacial: nmero mximo de ns em memria optimalidade: encontra sempre uma soluo de custo mnimo?
b: factor de ramificao mximo da rvore de procura d: profundidade da soluo de custo mnimo m: profundidade mxima do espao de estados (pode ser )
IA - Procura 24
Setembro 2010
em profundidade primeiro (depth-first) Procura em profundidade limitada (depth-limited) Procura por aprofundamento progressivo (iterative deepening)
Setembro 2010 IA - Procura 25
Expandir um n de menor profundidade Implementao: frontier uma fila FIFO; novos sucessores vo para o fim
Setembro 2010
IA - Procura
26
um n de menor profundidade Implementao: frontier uma fila FIFO; novos sucessores vo para o fim
Setembro 2010
IA - Procura
27
um n de menor profundidade Implementao: frontier uma fila FIFO; novos sucessores vo para o fim
Setembro 2010
IA - Procura
28
um n de menor profundidade Implementao: frontier uma fila FIFO; novos sucessores vo para o fim
Setembro 2010
IA - Procura
29
Completa? Sim (se b finito) Tempo? 1+b+b2+b3+ +bd + b(bd-1) = O(bd+1) Espao? O(bd+1) (mantm todos os ns) Optimal? Sim (se custo = 1 por passo) Espao o maior problema (mais do que o tempo) A anlise anterior s vlida para procura em rvores!
IA - Procura 30
Setembro 2010
Equivale procura em largura se custos forem constantes Completa? Sim, se custo do passo Tempo? n de ns com g custo da soluo ptima, O(b1+ceil(C*/ )) em que C* o custo da soluo ptima Espao? n de ns com g custo da soluo ptima, O(b1+ceil(C*/ )) ptima? Sim ns expandidos por ordem crescente de g(n)
Setembro 2010
IA - Procura
33
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar
sucessores frente
Setembro 2010
IA - Procura
35
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar
sucessores frente
Setembro 2010
IA - Procura
36
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar
sucessores frente
Setembro 2010
IA - Procura
37
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar
sucessores frente
Setembro 2010
IA - Procura
38
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
39
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
40
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
41
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
42
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
43
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
44
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
45
Expandir um dos ns mais profundos Implementao: fronteira = pilha LIFO, i.e., colocar sucessores frente
Setembro 2010
IA - Procura
46
Modificao para evitar espaos repetidos no mesmo caminho completa para espaos finitos
mas se as solues so densas, pode ser muito mais eficiente do que a procura em largura primeiro
Setembro 2010
Setembro 2010
IA - Procura
49
Aprofundamento progressivo l =0
Setembro 2010
IA - Procura
50
Aprofundamento progressivo l =1
Setembro 2010
IA - Procura
51
Aprofundamento progressivo l =2
Setembro 2010
IA - Procura
52
Aprofundamento progressivo l =3
Setembro 2010
IA - Procura
53
Sim
Nmero de ns gerados com profundidade limitada d e factor ramificao b: NDLS = b0 + b1 + b2 + + bd-2 + bd-1 + bd NBFS = b0 + b1 + b2 + + bd-2 + bd-1 + (bd - b)
Nmero de ns gerados em aprofundamento progresssivo com profundidade d e factor ramificao b: NIDS = (d+1)b0 + d b1 + (d-1)b2 + + 3bd-2 +2bd-1 + 1bd Para b = 10, d = 5,
NDLS = 1 + 10 + 100 + 1.000 + 10.000 + 100.000 = 111.111 NIDS = 6 + 50 + 400 + 3.000 + 20.000 + 100.000 = 123.456 NBFS = 1 + 10 + 100 + 1.000 + 10.000 + (100.000 10) = 111 101
Sobrecarga IDS/DLS e IDS/BFS = (123.456 111.111)/111.111 = 11% b/(b-1) Sobrecarga BFS sem optimizao/IDS = (1.111.100-123.456)/123.456 = 800% b-1
Setembro 2010
IA - Procura
55
Breadth- Uniform-Cost First Sima O(bd) O(bd) Simc Sima,b O(b1+ceil(C*/)) O(b1+ceil(C*/)) Sim
completa se o factor de ramificao for finito b completa se custos do passo para positivo (no nulo!) c ptima se custo do caminho for montono na profundidade da rvore (e.g. custos constantes e idnticos) d se ambas as direces utilizarem procura em largura primeiro
Setembro 2010 IA - Procura 56
grafos com custos de passos constantes, quer a procura em largura primeiro quer a procura de custo uniforme com conjunto de ns explorados garantem a soluo ptima.
Se
a insero na fronteira adicionar apenas ns correspondentes a estados no expandidos e mantiver o n com o menor custo total na fronteira, ento a procura de custo uniforme com lista fechada ptima (ver atrs). Muito semelhante ao algoritmo de Dijkstra para encontrar o melhor caminho num grafo dirigido.
Setembro 2010
IA - Procura
57
no pior caso, a complexidade espacial para qualquer dos algoritmos bsicos de procura passa a ser da ordem bd+1 quando se utiliza o conjunto de ns explorados.
Recorrendo
ao conjunto de ns explorados, a complexidade dos algoritmos de procura limitada pelo nmero de estados no espao de procura e no pelo nmero de caminhos nesse espao. Para alguns problemas, pode resultar em diminuies exponenciais em tempo e espao.
Contudo,
proibitivo.
Setembro 2010
IA - Procura
58
de prioridade (priority queue) quando o grafo de estados esparso: nmero reduzido de ns sucessores limitados por uma constante pequena. Complexidade temporal O(N * log2 N +L * log2 N), em que N o nmero de estados e L o nmero de arcos. Esta a situao habitual:
No pior caso tm de se retirar N ns da fila de prioridade, cada uma destas operaes da ordem de log2 N So necessrias no pior caso L inseres na fila de prioridade, cada uma com custo log2 N.
Quando
o grafo denso, ento deve-se utilizar uma lista ou tabela de disperso. Complexidade temporal da ordem de O(N2 + L)
Retirar o n com menor custo operao O(N), no mximo N vezes. A insero de um n sucessor na fronteira pode ser feita com uma operao de O(1)
Setembro 2010
IA - Procura
59
Comparao implementaes
N 10 10 10 10 10 100 100 100 100 100 1000 1000 1000 1000 1000 10000 10000 10000 10000 10000 100000 100000 100000 100000 100000 Densidade 1% 10% 50% 90% 100% 1% 10% 50% 90% 100% 1% 10% 50% 90% 100% 1% 10% 50% 90% 100% 1% 10% 50% 90% 100% L 1 10 50 90 100 100 1000 5000 9000 10000 10000 100000 500000 900000 1000000 1000000 10000000 50000000 90000000 100000000 100000000 1000000000 5000000000 9000000000 10000000000 N*log N + L * log N 37 66 199 332 365 1329 7308 33884 60459 67103 109624 1006544 4992858 8979172 9975750 13420590 133010001 664518496 1196026991 1328904115 1662625011 16611301438 83049863336 149488425234 166098065708 N*N+L 101 110 150 190 200 10100 11000 15000 19000 20000 1010000 1100000 1500000 1900000 2000000 101000000 110000000 150000000 190000000 200000000 10100000000 11000000000 15000000000 19000000000 20000000000 Rcio 0,36 0,60 1,33 1,75 1,83 0,13 0,66 2,26 3,18 3,36 0,11 0,92 3,33 4,73 4,99 0,13 1,21 4,43 6,29 6,64 0,16 1,51 5,54 7,87 8,30
Setembro 2010
IA - Procura
60
Comparao algoritmos d
0,35 0,3 0,25 0,2
0,15
0,1
0,05
0 1E+01 1E+02 1E+03 1E+04 1E+05 1E+06 1E+07 1E+08 1E+09 1E+10 1E+11 1E+12 1E+13 1E+14 1E+15 1E+16
Implementao em lista prefervel quando valor de densidade d = L/N2 dos arcos superior a ( N log2 N ) / (N * log2 N N )
Setembro 2010 IA - Procura 61
Sumrio
A formulao do problema normalmente requer uma abstraco dos detalhes da realidade para definir um espao de estados que possa ser explorado Variedade de estratgias de procura cega Procura de aprofundamento progressivo usa apenas espao linear e da mesma ordem de grandeza temporal do que outros algoritmos de procura cega. o algoritmo de escolha para procura cega. Procura bidireccional pode reduzir enormemente a complexidade temporal, mas nem sempre aplicvel e requer espao exponencial.
IA - Procura 62
Setembro 2010
Resumo
Procura pelo melhor primeiro Procura sfrega Procura A* Heursticas e suas propriedades Procura informada com memria limitada
Implementao: Ordenar os ns na fronteira por ordem crescente (minimizar) ou decrescente (maximizar) da funo de avaliao Casos especiais:
Suponha-se que existe um conjunto de n vdeos de dimenses dadas por uma funo size e DVDs de tamanho fixo V. Assume-se que qualquer vdeo cabe num DVD (dimenso V) Qual o menor nmero de DVDs necessrios? Problema NP-difcil Existem algoritmos que aproximam a soluo ptima com erro percentual fornecido, para nmeros suficientemente grandes. No pior caso necessitaremos de ceiling(n*max size/V) DVDs.
Representao do problema
Suponhamos que temos 9 vdeos de dimenso 3, 6, 2, 1, 5, 7, 2, 4, 1, e 9Gb e DVDs de 10 Gb. Um estado representado por uma sequncia numerada de DVDs com pelo menos um vdeo O estado inicial uma sequncia vazia Teste objectivo: todos os vdeos colocados Os operadores so
adicionar um vdeo a um DVD existente (caso caiba l) com custo 0. colocar um novo DVD no final do conjunto, contendo o vdeo (custo 1).
Funo de avaliao
ndice onde foi colocado o ltimo vdeo (First Fit) + (n+1)*(n - # j colocados) Espao livre no DVD ocupado com ltimo vdeo (Best Fit) + (V+1)*(n - # j colocados)
Se os vdeos so colocados por ordem decrescente de dimenso, temos as verses First Fit Decreasing e Best Fit Decreasing. Os mtodos First Fit e Best Fit obtm uma soluo com o custo no pior caso de ceiling(1,7 * OPT). Os mtodos First Fit Decreasing e Best Fit Decreasing obtm uma soluo com custo no pior caso de ceiling(11/9 OPT) + 1 ceiling( 1,22 OPT) + 1 O algoritmo polinomial (porqu ?)
Solues (AMS)
Sequncia 3, 6, 2, 1, 5, 7, 2, 4, 1, 9
First Fit
[http://www.ams.org/featurecolumn/archive/bins1.html]
100
Procura sfrega
Funo de avaliao f(n) = h(n) (heurstica) = estimativa do custo do menor caminho para ir de n at a um estado objectivo
hSLD(n)
Completa? No pode ficar presa em ciclos, e.g., com Oradea como objectivo Iasi Neamt Iasi Neamt Completa em espaos finitos com verificao de estados repetidos Tempo? O(bm), mas uma boa heurstica pode ter melhorias espectaculares Espao? O(bm) mantm todos os ns em memria ptima? No
Procura
* A
Ideia: evitar expandir caminhos que j tm elevado custo Funo de avaliao f(n) = g(n) + h(n)
g(n)
= custo actual para atingir n h(n) = custo estimado para atingir o objectivo a partir de n f(n) = custo total estimado do caminho at ao objectivo passando por n
Exemplo de Procura
* A
Exemplo de Procura
* A
Exemplo de Procura
* A
Exemplo de Procura
* A
Exemplo de Procura
* A
Exemplo de Procura
* A
Heursticas admissveis
Uma heurstica h(n) admissvel se para todo o n n, h(n) h*(n), em que h*(n) o custo real de atingir o objectivo a partir de n. Uma heurstica admissvel nunca sobrestima o custo de alcanar o objectivo, i.e., optimista. Exemplo: hSLD(n) (nunca sobrestima a distncia por estrada) Teorema: Se h(n) admissvel, ento o algoritmo A* usando TREE-SEARCH ptimo.
Optimalidade de A* (demonstrao)
Suponha-se que um estado final subptimo G2 foi gerado e encontra-se na fronteira. Seja n um n por expandir na fronteira num caminho mais curto para o objectivo ptimo G.
f(G2) = g(G2) g(G2) > g(G) f(G) = g(G) Logo f(G2) > f(G)
Suponha-se que um estado final subptimo G2 foi gerado e encontra-se na fronteira. Seja n um n por expandir na fronteira num caminho mais curto para o objectivo ptimo G.
Optimalidade de
* A
(mais til)
A* expande ns por ordem crescente de valores da funo de avaliao Adiciona gradualmente contornos aos ns (c.f. procura em largura adiciona nveis) Contorno i tem todos os ns f=fi, em que fi < fi+1
Propriedades do A*
O
A* expande todos os ns com f(n) < C* O A* expande alguns ns com f(n) = C* O A* nunca expande ns com f(n) > C* O algoritmo A* optimalmente eficiente para qualquer heurstica dada:
No
Propriedades do A*
Completo? Sim (a no ser que haja um nmero infinito de ns com f f(G) ) Tempo? Exponencial no [erro relativo de h x o tamanho da soluo] Se |h(n) h*(n)| O(log h*(n)) o algoritmo A* tem um comportamento subexponencial.
fronteira A(98) B(60) C(95) A explorados D(92) C(95) AB C(95) G(104) ABD D(90) G(104) ABCD G(104) ABCD
Heursticas consistentes
A demonstrao de optimalidade do A* no se generaliza para o algoritmo de procura em grafos (eliminao de estados j explorados)
Uma
heurstica consistente se para todo o n e todo o seu sucessor n, gerado pela aco a, h(n) c(n,a,n') + h(n')
Se
h consistente, temos = g(n') + h(n') = g(n) + c(n,a,n') + h(n') g(n) + h(n) = f(n) seja, f(n) no decrescente ao longo de qualquer caminho ( montona).
f(n')
ou
Seja n um novo n gerado pelo algoritmo. Se existir um n m no conjunto de explorados para o mesmo estado de n tal que f(n) < f(m) ento retira-se o n m do conjunto de explorados e coloca-se o novo n n na fronteira. Com esta alterao, a utilizao de heursticas admissveis garantem novamente a optimalidade da primeira soluo encontrada pelo algoritmo de procura em grafos A*.
Estimativa PathMax
Existe uma optimizao que tenta manter a heurstica consistente (estimativa PathMax) mas mais complexa. A ideia consiste em utilizar como valor da funo de avaliao f^(m) = max {f(n); f(m)}
em que m sucessor de n. O valor de f^(m) obtido em tempo de execuo e depende do caminho seguido para atingir m. Poder ser necessrio remover na mesma ns do conjunto de explorados.
Heursticas admissveis
Para a charada-8 uma procura exaustiva explora em mdia 3,1x1010 ns. Mas existem apenas 181440 estados (charada-15 so 1013) . fundamental a utilizao de heursticas
Dominncia
Se h2(n) h1(n) para todo o n (ambas admissveis) ento h2 domina h1 , sendo h2 melhor na procura Custos tpicos de procura para charada-8 (nmero mdio de ns expandidos):
d=12 AP = 3,644,035 ns A*(h1) = 227 ns A*(h2) = 73 ns d=24 AP 54.000.000.000 ns A*(h1) = 39,135 ns A*(h2) = 1,641 ns
(b* = 2,78) (b* = 1,42) (b* = 1,24) (b* = 1,48) (b* = 1,26)
Caso h2(n) no domine h1(n), e vice-versa, pode-se sempre combinar as heursticas com a expresso max {h1(n), h2(n)} O factor de ramificao efectivo b* caracteriza a qualidade da heurstica utilizada. O valor b* obtido resolvendo a equao N + 1 = 1 + b* + (b*)2++(b*)d , em que N o nmero de ns gerados pelo A* e d a profundidade da soluo obtida.
Problemas relaxados
Um problema com menos restries nas aces designado por problema relaxado.
O custo exacto de uma soluo ptima para o problema relaxado uma heurstica admissvel para o problema original!
Considere-se a charada-n novamente Se as regras da charada-n forem relaxadas de maneira a que uma pea se possa movimentar para qualquer posio, ento h1(n) d-nos a melhor soluo.
Se as regras da charada-n forem relaxadas de maneira a que uma pea se possa movimentar para qualquer posio adjacente, ento h2(n) d-nos a melhor soluo.
Encontrar o circuito mais curto que visita todas as cidades exactamente uma vez. rvore de cobertura mnima pode ser obtida em O(n2) e um limite inferior ao menor circuito (aberto)
Pretende-se partir de uma cidade, entregando produtos em cada uma das cidades, voltando ao incio. O tempo de entrega nas cidades depende da hora de chegada. A viatura parte s 8 horas da manh. Heurstica admissvel ?
Algoritmo
IDA* Algoritmo recursivo de procura pelo melhor primeiro (RBFS) Algoritmo A* de memria limitada simplificado
Propriedades do IDA*
Completo Espao linear ptimo Prtico se os custos do passos forem unitrios Dificuldade em lidar com custos reais, podendo acarretar grande tempo de processamento motivado por regeneraes sucessivas de ns A anlise de sobrecarga efectuada para as verses cegas no vlida aqui!
Propriedades do RBFS
Completo Espao linear ptimo (se a heurstica for admissvel) Melhor que o IDA* Continua a ter problemas com regeneraes sucessivas de ns: utiliza pouca memria...
SMA*
Tal como no A*, expande-se a melhor folha at ficar com a memria cheia Quando a memria fica toda ocupada, esquece a folha mais antiga com o pior valor, e guarda no pai o seu valor, para possvel regenerao Um n s regenerado quando todos os outros caminhos se mostrarem piores do que aqueles do n esquecido
Propriedades do SMA*
O SMA* utiliza toda a memria disponvel para levar a cabo a procura O SMA* completo se existir uma soluo alcanvel (cujo caminho caiba em memria) ptimo se existir uma soluo ptima alcanvel, caso contrrio devolve a melhor soluo cujo caminho cabe em memria Retira da fronteira ns superficiais com valores elevados da funo de avaliao. Um n retirado da fronteira s regenerado se todos os irmos forem piores do que ele. SMA* o melhor algoritmo para procurar solues ptimas, nomeadamente quando o espao de estados um grafo, os custos no so uniformes e a gerao de ns mais dispendiosa do que manter listas de ns abertos e fechados. Mas as limitaes de memria podem tornar um problema intratvel...
Podem-se resolver problemas de procura online com aces deterministas em que se sabem as aces possveis em cada estado, mas se desconhece o seu efeito antes das executar.
Existem ainda outros algoritmos que permitem a alterao dos custos dos arcos em runtime (exemplo navegao robtica):
Outros algoritmos so incrementais e permitem ir melhorando a soluo obtida, caso o tempo o permita:
Bibliografia
Captulos
4.1 e 4.2 (4.5 verses online) Para verem as verses dinmicas dos algoritmos consultar http://www.ri.cmu.edu/pubs/pub_4975.html
Em muitos problemas de optimizao o caminho para a soluo irrelevante. O estado objectivo a prpria soluo. O espao de estado = conjunto de configuraes completas (solues candidatas)
encontrar a configurao ptima, e.g., TSP ou, encontrar configurao que obedece a certas restries, e.g., horrio
Nestas situaes, podem-se usar algoritmos de procural local: mantm-se um nico estado corrente, e tenta-se alter-lo para melhorar a sua qualidade Espao constante, apropriados para procura online e offline em espaos discretos e contnuos, assim como para resoluo de problemas de optimizao.
Colocar n rainhas num tabuleiro n n sem que quaisquer duas rainhas se ataquem mutuamente Deslocar uma rainha para reduzir o nmero de conflitos
Existe uma atribuio de valores lgicos a variveis proposicionais que torna todas as clusulas verdadeiras? Mtodo: atribuir valores aleatoriamente s variveis e ir trocando o seu valor. A \/ B A \/ B A \/ B \/ C A \/ B D \/ C E \/ C A=B=True,C=D=E=False
Soluo?
Problemas combinatrios
Problemas que tipicamente envolvem encontrar grupos, ordenaes ou atribuies de um nmero finito de objectos discretos que satisfazem um conjunto de condies ou restries. Habitualmente, o espao de solues candidatas para uma instncia particular pelo menos exponencial no tamanho dessa instncia.
Variante de deciso: saber se existe ou no soluo para o problema Variante de procura: encontrar a soluo, caso exista.
Variante de procura: encontrar a soluo ptima Variante de avaliao: indicar qual o valor mnimo/mximo da funo objectivo
Qualquer problema de optimizao origina um problema de deciso associado, a partir de um limite b fornecido.
Se o problema de minimizao, saber se existe uma soluo com valor inferior ou igual ao b dado. Se o problema de maximizao, saber se existe uma soluo com valor superior ou igual ao b dado.
Classes de Complexidade
Habitualmente definidas a partir de problemas de deciso e para o pior caso. Classe de problemas P
Problemas de deciso que podem ser resolvidos por uma mquina determinista em tempo polinomial no tamanho da instncia Problemas de deciso que podem ser resolvidos por uma mquina no determinista em tempo polinomial no tamanho da instncia Equivalentemente, se adivinhar a soluo consigo verific-la em tempo polinomial. Logo P contido em NP. Aqueles que so mais difceis do que todos os problemas em NP Se o problema pertencer a NP, ento o problema diz-se NP-completo.
Classe de problemas NP
subclasses do problema que sejam interessantes e de resoluo eficiente Usar algoritmos de aproximao eficientes Recorrer a aproximaes estocsticas
Tanto podemos definir o problema como maximizar a funo objectivo (proveito) ou minimizar o custo (heurstica)
A escolha normalmente aleatria entre os sucessores com o mesmo valor para a funo objectivo.
Um
Trepa-colinas
Problemas:
pode ficar preso facilmente em mximos locais travessia difcil em cristas de mximos locais passeios aleatrios em planatos
Em espaos contnuos, problemtica na escolha do tamanho do passo, convergncia lenta. 6 em 7 tentativas no problema das 8-rainhas falha aps 3 passos em mdia e 1 tem sucesso aps 4 passos (espao de procura 17 milhes de estados = 8^8
Pode-se utilizar um nmero limitado de movimentos laterais para se tentar sair de planaltos, mas no funciona para planaltos que correspondem a mximos locais (substituir teste de por < e contar sua utilizao).
Para o problema das 8-rainhas a utilizaode movimentos laterais limitada a 100 aumenta a probabilidade de sucesso de 14% para 94% (21 passos no caso de sucesso e 64 no caso de insucesso).
Para evitar ficarmos presos em mximos locais, tenta-se novamente com um novo estado inicial gerado aleatoriamente e guarda-se o melhor deles ao fim de um nmero determinado de iteraes.
O sucesso deste algoritmo depende muito da paisagem do espao de estados: poucos mximos locais e planaltos a situao ideal.
Variantes do Trepa-colinas
Trepa-colinas estocstico
Selecciona
o prximo sucessor aleatoriamente (e.g. dependendo da inclinao - melhoria). Mais lento mas pode devolver melhores solues para alguns problemas. Vai gerando os sucessores aleatoriamente e escolhe o primeiro que melhore a funo objectivo. Adequado em situaes cuja vizinhana muito grande (e.g. infinita em espaos contnuos)
A procura efectuda no espao de solues candidatas A procura inicia-se a partir de uma soluo candidata O processo continua movendo-se iterativamente de uma soluo candidata para outra na sua vizinhana A deciso em cada passo tomada tendo em conta apenas informao local limitada. A inicializao e a deciso podem ser aleatrias (probabilsticas) Pode-se utilizar memria adicional, por exemplo para guardar um nmero limitado de solues candidatas visitadas recentemente.
SLS-Decision()
procedure SLS-Decision() input: problem instance in output: feasible solution in S() or (s,m) := init(); while not terminate(,s,m) do (s,m) := step(,s,m); end if s in S() then return s else return end
SLS-Maximisation()
procedure SLS-Maximisation() input: problem instance in output: feasible solution in S() or (s,m) := init(); incumbent := s; while not terminate(,s,m) do (s,m) := step(,s,m); if f(,s) > f(,incumbent) then incumbent := s; end end if incumbent in S() then return incumbent else return end
Problema central
Como evitar ficar preso em mnimos/mximos locais? Exige um equilbrio entre estratgias de
Intensificao: tentativa de melhoramento da soluo na vizinhana da soluo candidata corrente. Diversificao: tenta evitar a estagnao em zonas do espao de procura que no contm solues de alta qualidade
As duas estratgias definem os inmeros algoritmos existentes. Maiores vizinhanas contm mais e melhores solues candidatas mas requerem mais tempo para as encontrar (normalmente o tempo cresce exponencialmente)
Outros exemplos
Inicia-se com uma soluo candidata obtida aleatoriamente Transita aleatoriamente para qualquer soluo candidata com distribuio uniforme S diversificao
Inicia-se com uma soluo candidata obtida aleatoriamente Transita aleatoriamente para qualquer soluo candidata na sua vizinhana S diversificao
Inicia-se com uma soluo candidata obtida aleatoriamente De acordo com um parmetro fixado wp, opta entre melhorar a soluo ou mover-se aleatoriamente para uma soluo candidata na vizinhana. Intensificao e diversificao controlados por wp (walk probability).
Recristalizao simulada
Fugir de mximos locais permitindo alguns movimentos piores mas reduzindo gradualmente o seu tamanho e frequncia
Recristalizao Simulada
Selecciona-se um movimento aleatoriamente em cada iterao Transita-se para esse estado se melhor do que o estado actual A probabilidade de se movimentar para um estado pior decresce exponencialmente com o valor da mudana, ou seja
Temperatura inicial T0 (pode depender das propriedades da instncia) Actualizao da temperatura (e.g. arrefecimento geomtrico T := * T ) Nmero de passos a cada temperatura (normalmente mltiplo da dimenso da vizinhana)
Se a temperatura for diminuda suficientemente devagar atinge-se o melhor estado, com probabilidade que se aproxima de 1. Desenvolvido por Metropolis et al., 1953, para modelaode processos fsicos Muito utilizado no desenho de VLSI, escalonamento de viagens areas, etc.
Mantm-se k solues candidatas em vez de apenas 1 Comea-se com k solues geradas aleatoriamente
Em cada iterao, as vizinhanas das k solues candidatas so geradas Se alguma o objectivo, parar; seno seleccionam-se as k melhores e repete-se.
Muitos problemas podem ser representados como maximizao/ minimizao de funes multi-dimensionais em Rn. Existem inmeras tcnicas mas iremos abordar brevemente aquelas baseadas no gradiente de uma funo f(x1,, xn) que se supe diferencivel em Rn. O gradiente da funo f, denotado por f define-se por:
At que a variao entre |xn+1 xn| atinja um erro predeterminado. Podemos variar em cada passo o parmetro n, que deve ser suficientemente pequeno
Mtodo de Newton-Rampson
O mtodo de NewtonRaphson utilizado para obter as raizes de f(x)=0. O mtodo para funes reais corresponde a iterar
Para o caso de funes em Rn, generaliza-se a frmula de aproximao para A matriz Hessiana Hf contm as derivadas parciais de segunda ordem de f, isto Hij = 2f/ xixj
Bibliografia
Captulos 4.3 e 4.4 do AIMA (2 edio) ou 4.1 e 4.2 (3 edio) Captulos 1 e 2 do livro Stochastic Local Search. Wikipedia
http://en.wikipedia.org/wiki/Gradient_descent http://en.wikipedia.org/wiki/Newton%27s_method_in_optimization
This material is partially based on slides provided with the book 'Stochastic Local Search: Foundations and Applications' by Holger H. Hoos and Thomas Sttzle (Morgan Kaufmann, 2004) - see www.sls-book.net for further information.
Tcnicas de optimizao estocsticas inspiradas no processo de evoluo por seleco natural Comeam com uma populao de indivduos (ou cromosssomas) gerados aleatoriamente Fazem evoluir em simultneo a populao (solues alternativas) por intermdio de operadores de seleco, reproduo e mutao Os operadores genticos permitem manter a diversidade da populao e evitam que os AG convirjam prematuramente para um mximo local Com uma modelao correcta do problema, a qualidade mdia das geraes sucessivas ser aumentada, em particular a do seu melhor indivduo
A populao constituda por um nmero geralmente fixo de indivduos Cada cromossoma (ou indivduo) representado por uma cadeia de smbolos de um alfabeto finito, normalmente uma cadeia binria de 0s e 1s. Os cromossomas so constitudos por genes e os valores que cada gene pode tomar so os alelos. A qualidade de cada indivduo avaliada por uma funo de mrito (fitness function) que influencia a probabilidade de seleco dos indivduos para reproduo A reproduo combina dois indivduos para gerar novo(s) indivduo(s) Os filhos podem sofrer mutaes genticas aleatrias no seu cromossoma antes de serem colocados na populao (gerao seguinte) Uma gerao pode ser substituda integralmente pelos seus descendentes ou manter alguns dos seus indivduos mais aptos.
As rainhas novamente
Podemos representar um estado por um cromossoma constitudo por N-genes, em que cada alelo corresponde posio ocupado pela rainha respectiva:
Cromossoma
Alfabeto
{0,1} {1,2,3,4,5,6,7,8}
111 101 8 6
011 4
001 2
110 7
Funcionamento do AG
Funo de mrito: nmero de pares de rainhas que no se atacam (min = 0, max = 8 7/2 = 28) O indivduo j seleccionado para reproduo com probabilidade
Neste exemplo,
Operao de recombinao
O locus (ponto de corte) escolhido aleatoriamente: Progenitores 32752411 24748552 Descendncia 32748552 24752411 Progenitores 32752411 24748552 Descendncia 22758451 34742512
1 ponto de corte
Outros mtodos permitem a reproduo com N pontos de corte, mas normalmente melhores resultados so obtidos com a recombinao uniforme, em que criada aleatoriamente uma mscara para copiar o material gentico.
Operao de mutao
Alterao
aleatria de um valor dos genes, com uma probabilidade baixa (0.001 valor tpico) que o algoritmo gentico fique preso em mximos locais
Evita
Maximizao de funes
Como fazer para encontrar o mximo da funo f(x) = x*sin(10x)+1.0 com preciso de 6 casas decimais no intervalo [-1..2]? A funo de mrito simplesmente a funo que pretendemos maximizar Sero necessrios 22 bits:
O valor correspondente de x obtido por simples aritmtica a partir do nmero em decimal representado pelo indivduo i:
Uma implementao de AG
Outra implementao de AG
Valores empricos
O teorema do esquema
Um esquema um padro da forma H=(1 * 1 0 * 1 *) representando um conjunto de cromossomas ( * - dont care) O nmero total de smbolos fixo 0 ou 1 a ordem do esquema, O(H)=4 para o caso anterior O comprimento definidor a distncia entre a menor e maior posio definidas no esquema, exemplo d(H) = 5. Teorema do Esquema: o nmero de instncias de um determinado esquema cresce exponencialmente ao longo do tempo se estes possurem trs caractersticas:
Os algoritmos genticos apresentam paralelismo implcito: uma populao de n indivduos processa n3 esquemas.
Mecanismo para obter de uma vez s todos os indivduos para reproduo. Ordenam-se os indivduos por posio, utilizando esta posio para atribuir as probabilidades de seleco. Seja k um parmetro entre 0 e 1. Seleccionam-se dois indivduos aleatoriamente da populao. Gera-se um nmero aleatrio r. Se r < k fica-se fica-se com o melhor indivduo; caso contrrio selecciona-se para reproduo o pior deles. Substitui-se uma percentagem dos piores indivduos S se deixa reproduzir uma percentagem dos melhores indivduos. Retem-se sempre um pequeno nmero dos melhores indivduos.
estado estvel
O caixeiro viajante
O
problema do caixeiro viajante requer cuidados especiais para a sua resoluo com algoritmos genticos
Representao
A representao natural recorre a uma lista ordenada de cidades para representar o circuito
Problemas a resolver
A
dificuldade essencial o operador de recombinao dado que qualquer dos mtodos vistos anteriormente podem criar indivduos inviveis (abortos) Duas aproximaes possveis:
Reparar
Partially mapped crossover (PMX) Escolhe uma subsequncia a partir de um dos pais e preserva a ordem, na medida das possibilidades, do outro progenitor. Seleccionam-se dois pontos de corte
p1=1 2 3 | 4 5 6 7 | 8 9 p2=4 5 2 | 1 8 7 6 | 9 3
Operador de recombinao OX
Order crossover (OX) Selecciona-se uma subsequncia e mantm-se a ordem do outro progenitor. Seleccionam-se dois pontos de corte
Copiam-se os valores do outro progenitor sequencialmente a partir do segundo ponto de corte, evitando repeties de cidades
f1=2 1 8 | 4 5 6 7 | 9 3 f2=3 4 5 | 1 8 7 6 | 9 2
Outras variantes do OX
Em vez de se comear a partir do segundo ponto de corte comea-se pela ordem do outro progenitor desde o incio
f1=2 1 8 | 4 5 6 7 | 9 3 f2=2 3 4 | 1 8 7 6 | 5 9
Em vez de utilizar uma subsequncia, pode-se gerar uma mscara aleatria para seleccionar as cidades a manter para a gerao seguinte.
Operador de recombinao CX
A respectiva em p2 a 4, colocando-se essa cidade na posio de p1 A respectiva em p2 a 8, colocando-se essa cidade na posio de p1 Itera-se at introduzir um ciclo (cidade j colocada) Preenchem-se as restantes a partir da sequncia no outro progenitor:
Operadores de mutao
Algoritmos memticos
Aps aplicao de qualquer um dos operadores genticos e mesmo da inicializao da populao, efectua-se um procura local Estes algoritmos so designados por algoritmos memticos Por exemplo, pode-se aplicar o algoritmo trepa-colinas para melhorar o indivduo
Considerando todas as trocas de duas ou trs cidades e escolhendo a melhor alternativa at atingir um mnimo local (2-opt e 3-opt)
preciso ter cuidado na escolha do operador de mutao para no efectuar as mesmas operaes que a procura local. Uma possibilidade no efectuar procura local aps mutao.
Programao Gentica
Evoluo Evoluo
de programas
Estratgias Evolutivas
de vectores reais com distribuies normais para resoluo de problemas de Engenharia O operador dominante a mutao
Programao Evolutiva
Os
Programao Gentica
Cada indivduo um programa. A qualidade de um indivduo obtida por execuo do programa relativamente a um conjunto de testes. O material gentico encontra-se estuturado em rvore O material gentico de tamanho varivel durante o processo evolutivo O operador de recombinao troca subrvores entre os dois progenitores, preservando a sintaxe O operador de mutao substitui uma subrvore por outra construda aleatoriamente A populao inicial obtida pela gerao aleatria de funes e terminais que constituem os programas.
east
IF
OR
NOT
AND
south
IF
ne
OR
NOT
AND
west
se
OR
NOT
north
s (IF (AND (OR (n) (ne)) (NOT (e))) (east) (IF (AND (OR (e) (se)) (NOT (s))) (south) (IF (AND (OR (s) (sw)) (NOT (w))) (west) (north))))
1998 Morgan Kaufman Publishers
sw
IF
AND
se
OR
se
se
IF
NOT
OR
se
NOT
nw
NOT
AND
west
south
north
west
se
NOT
Father program
Child program
(IF (AND (NOT (e)) (IF (e)(s)(nw))) (OR (IF (1)(e)(south)) (IF (north)(east)(nw))) (IF (OR (AND (0)(north)) (AND (e)(IF (e) (IF (se)(south)(east)) (north)))) (AND (e) (NOT (IF (s)(sw)(e)))) (OR (OR (AND (nw)(east)) (west)) (nw))))
1998 Morgan Kaufman Publishers
1998 Morgan Kaufmann Publishers
Concluses
Grande impacto em problemas de optimizao, nomeadamente problemas de escalonamento, desenho de circuitos integrados, classificao, simulao e controlo. Algoritmos que suscitam muito interesse, provavelmente por causa das suas origens na teoria da evoluo. Falta estudar condies que identifiquem claramente as situaes em que os algoritmos genticos tm bom comportamento.
A mixability theory of sex in evolution, with Adi Livnat, Jonathan Dushoff, and Marcus Feldman, PNAS, December 2008. There had been no satisfactory explanation of the advantages of sex in evolution, and yet sex is almost ubiquitous among species despite its huge costs. Here we propose a novel explanation: Using standard models, we establish that, rather astonishingly, evolution of sexual species does not result in maximization of fitness, but in improvement of another important measure which we call mixability: The ability of a genetic variant to function adequately in the presence of a wide variety of genetic partners. In a follow-up article we also point out that mixability lies at the root of modularity and the genetic hierarchy (without it there are no genes, families of genes, etc.)
Bibliografia
Costa
& Simes, captulo de agentes adaptativos. Seco 4.1.4 (3 edio ) ou 4.3 (2 edio) do AIMA. Podero obter uma boa panormica em http://www.obitko.com/tutorials/geneticalgorithms/
Agentes Logicos
Resumo
Agentes baseados em conhecimento O mundo Wumpus Lgica em geralmodelos e consequncia o e Lgica Proposicional (Booleana) o Equivalncia, validade, satisfatibilidade e Regras de Inferncia e demonstrao de teoremas e ca encadeamento para a frente (forward chaining) encadeamento para trs (backward chaining) a resoluo ca
Bases de Conhecimento(s)
Inference engine Knowledge base domainindependent algorithms domainspecific content
Base de conhecimento = conjunto de frases numa linguagem formal Aproximao declarativa na construo de um agente (ou outro sistema ): ca ca Tell informar o sistema do que precisa de saber Seguidamente, o sistema pode perguntar a si prprio (Ask) o que deve o fazeras respostas obtidas (implicitamente) a partir da KB Os agentes podem ser analisados quanto ao seu n de conhecimento vel i.e., aquilo que sabem, independentemente da sua implementao ca Ou quanto ao seu n de implementao vel ca i.e., estruturas de dados na KB e algoritmos que as manipulam
O agente deve ser capaz de: Representar estados, aces, etc. co Incorporar novas percepes co Actualizar representaes internas do mundo co Deduzir propriedades escondidas do mundo Deduzir acoes apropriadas c
Stench
Breeze
PIT
Breeze Breeze
Stench
PIT
Gold
Stench
Breeze
Breeze
Breeze
1
START
PIT
1 2 3 4
10
11
12
OK
OK
A
OK
13
B
A
OK
OK
A
OK
14
P?
B
A
OK
P?
OK
A
OK
15
P?
B
A
OK
P?
OK S
A A
OK
16
P?
P
B
A
OK
P? OK
OK S
A A
OK
17
P?
P
B
A
OK
A
P? OK
OK S
A A
OK
18
P?
OK
P
B
A
OK
A
P? OK
OK
OK S
A A
OK
19
P?
OK
P
B
A
OK
P? BGS OK OK A A OK
A
OK S
A
20
OK
P? P?
OK B
A A
OK P?
Assumindo poos uniformemente disc tribu dos, (2,2) tem poo c/ prob 0.86, c vs. 0.31
S
A
21
P?
B
A
OK
OK B
A A
OK P?
Assumindo poos uniformemente disc tribu dos, (2,2) tem poo c/ prob 0.86, c vs. 0.31 Cheiro em (1,1) no se pode mover a Pode recorrer a estratgia de coero: e ca disparar em frente wumpus estava l morto seguro a wumpus no estava l seguro a a
S
A
22
Noes de Lgica co o
Lgicas so linguagens formais para de representao de informao o a ca ca que permitem a extraco de concluses ca o Sintaxe dene as frases permitidas da linguagem Semntica dene o signicado das frases; a i.e., dene verdade de uma frase num mundo E.g., a linguagem da aritmtica e x + 2 y uma frase (proposio); x2 + y > no uma frase e ca a e x + 2 y verdade sse o nmero x + 2 no menor do que o nmero y e u a e u x + 2 y verdade num mundo em que x = 7, y = 1 e x + 2 y falso num mundo em que x = 0, y = 6 e
23
Concluso Lgica a o
Concluso signica que algo segue de outrem: a KB |= Da base de conhecimento KB conclui-se a frase se e somente se verdade em todos os mundos em que KB verdade e e Da base de conhecimento KB contendo o Boavista ganhou e o Porto ganhou conclui-se (entails) o Boavista ganhou ou o Porto ganhou E.g., De x + y = 4 conclui-se 4 = y + x Concluso Lgica uma relao entre frases (i.e., sintaxe) a o e ca que se encontra baseada na semntica a Nota: o crebro processa sintaxe (de algum tipo) e
24
Modelos
Os lgicos pensam normalmente em termos de modelos, que so mundos o a formalmente estruturadas relativamente aos quais se pode avaliar a veracidade Diz-se que m modelo de uma proposio se verdade em m e ca e M () o conjunto de todos os modelos de e Logo KB |= se e somente se M (KB) M () E.g. KB = Sporting ganhou e Benca ganhou = Benca ganhou
x x x x x x x x xx x x x x x x x x x x x x x x x x x x x xx x x x x x x x x x x x x x x x
M(
M(KB)
x
25
Situao aps detectar nada em [1,1], ca o deslocao para a direita, brisa em [2,1] ca
? ?
B
A A
Considerar modelos poss veis para ?s assumindo apenas poos c 3 escolhas Booleanas 8 mundos poss veis
26
Modelos Wumpus
2 2
PIT
Breeze Breeze
PIT
1 1 2 3 2 3
2 2
PIT
PIT
2
Breeze Breeze
1
Breeze
PIT
1 2 3
1 1 1 2 3 1
2 2
PIT
PIT
PIT
Breeze Breeze
PIT
1 2 3
PIT
PIT
1 2 3
Breeze
PIT
1 2 3
27
Modelos Wumpus
2 2
PIT
Breeze Breeze
PIT
1 2 3 1 2 3
KB
2
PIT
PIT
2
Breeze Breeze
1
Breeze
PIT
1 2 3
1 1 1 2 3 1
2 2
PIT
PIT
PIT
Breeze Breeze
PIT
1 2 3
PIT
PIT
1 2 3
Breeze
PIT
1 2 3
28
Modelos Wumpus
2 2
PIT
Breeze Breeze
PIT
1 2 3 1 2 3
KB
2
1
2
PIT
PIT
2
Breeze Breeze
1
Breeze
PIT
1 2 3
1 1 1 2 3 1
2 2
PIT
PIT
PIT
Breeze Breeze
PIT
1 2 3
PIT
PIT
1 2 3
Breeze
PIT
1 2 3
Modelos Wumpus
2 2
PIT
Breeze Breeze
PIT
1 2 3 1 2 3
KB
2
PIT
PIT
2
Breeze Breeze
1
Breeze
PIT
1 2 3
1 1 1 2 3 1
2 2
PIT
PIT
PIT
Breeze Breeze
PIT
1 2 3
PIT
PIT
1 2 3
Breeze
PIT
1 2 3
30
Modelos Wumpus
2 2
PIT
Breeze Breeze
PIT
1 2 3 1 2 3
KB
2
PIT
PIT
2
Breeze Breeze
1
Breeze
PIT
1 2 3
1 1 1 2 3 1
2 2
PIT
PIT
PIT
Breeze Breeze
PIT
1 2 3
PIT
PIT
1 2 3
Breeze
PIT
1 2 3
Inferncia e
KB
i
Consequncias de KB so o palheiro; a agulha. e a e Concluso Lgica = agulha no palheiro; inferncia = encontr-la a o e a Fidedigno: i dedigno (ou slido) se e o quando KB i , ento tambm verdade que KB |= a e e Completo: i completo se e quando KB |= , ento tambm verdade que KB a e e
Antecipao: deniremos uma lgica (lgica de primeira ordem) que suca o o e cientemente expressiva para dizer quase tudo o que interessante, e para a e qual existe um procedimento de inferncia dedigno e completo. e Ou seja, o procedimento responder a qualquer questo que se segue daquilo a a que conhecido pela KB. e
32
33
(Com estes s mbolos, 8 modelos poss veis, podem ser enumerados automaticamente.) Regras para avaliar veracidade relativamente a um modelo m: S S1 S2 S1 S2 S1 S2 i.e., S1 S2 verdade e verdade e verdade e verdade e falso e verdade e sse sse sse sse sse sse S1 S S1 S1 S1 S1 S2 falso e verdade e e verdade ou e falso ou e verdade e e verdade e S2 e S2 S2 S2 S2 S1 verdade e verdade e verdade e falso e verdade e
Um processo recursivo simples avalia uma proposio arbitrria, e.g., ca a P1,2 (P2,2 P3,1) = verd (f also verd) = verd verd = verd
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 34
35
36
37
38
Equivalncia Lgica e o
Duas proposies so logicamente equivalentes sse forem verdadeiras nos co a mesmos modelos: sse |= e |= ( ) ( ) (( ) ) (( ) ) () ( ) ( ) ( ) ( ) ( ) ( ( )) ( ( )) ( ) comutatividade de ( ) comutatividade de ( ( )) associatividade de ( ( )) associatividade de eliminao da dupla negao ca ca ( ) contraposio ca ( ) eliminao da implicao ca ca (( ) ( )) eliminao do bicondicional ca ( ) de Morgan ( ) de Morgan (( ) ( )) distributividade de sobre (( ) ( )) distributividade de sobre
40
Validade e satisfatibilidade
Uma proposio vlida se for verdadeira em todos os modelos, ca e a e.g., T rue, A A, A A, (A (A B)) B Validade est relacionado com consequncia atravs do Teorema da Deduo: a e e ca KB |= se e somente se (KB ) vlida e a Uma proposio satisfaz se verdadeira em algum modelo ca e vel e e.g., A B, C Uma proposio insatisfaz se for verdadeira em nenhum modelo ca e vel e.g., A A Insatisfatibilidade relaciona-se com consequncia atravs de: e e KB |= se e somente se (KB ) insatisfaz e vel i.e., demonstrar por reductio ad absurdum
41
42
Mtodos de Prova e
Os mtodos de prova agrupam-se em dois tipos: e Aplicao de regras de inferncia ca e Gerao leg ca tima (slida) de novas proposioes a partir de antigas o c Prova = uma sequncia de aplicao de regras de inferncia e ca e Regras de inferncia podem ser operadores em algoritmos de procura e Habitualmente obrigam ` traduo das frases para uma forma normal a ca Vericao de modelos ca enumerao por tabelas de verdade (sempre exponencial em n) ca melhoramentos ao retrocesso, e.g., DavisPutnamLogemannLoveland procura heur stica em espao de modelos (slido mas incompleto) c o e.g., algoritmos trepa-colinas com min-conitos
43
44
M L
45
46
47
48
49
50
51
52
53
54
Demonstrao de completude ca
EF deriva toda a proposio atmica que conclu a partir de KB ca o e da 1. EF atinge um ponto xo em que no so derivadas novas proposies a a co atmicas o 2. Considere-se o estado nal como um modelo m, atribuindo verdadeiro/falso aos s mbolos 3. Toda a clusula em KB inicial verdadeira em m a e Demo: Suponha-se que a clusula a1 . . . ak b falsa em m a e Logo a1 . . . ak verdadeiro em m e b falso em m e e Logo o algoritmo no atingiu um ponto xo! a 4. Portanto m modelo de KB e 5. Se KB |= q, q verdadeiro em todo o modelo de KB, incluindo m e
55
56
M L
57
M L
58
M L
59
M L
60
M L
61
M L
62
M L
63
M L
64
M L
65
M L
66
M L
67
68
Resoluo ca
Forma Normal Conjuntiva (FNCuniversal) conjuno de disjunes de literais ca co clusulas a E.g., (A B) (B C D) Regra de inferncia Resoluo (para FNC): completa para a lgica proposie ca o cional m1 mn 1 k, 1 i1 i+1 k m1 mj1 mj+1 mn em que
i
69
70
Algoritmo de Resoluo ca
Prova por contradio, i.e., demonstrar que KB insatisfaz ca e vel
function PL-Resolution(KB, ) returns true or false clauses the set of clauses in the CNF representation of KB new { } loop do for each Ci, Cj in clauses do resolvents PL-Resolve(Ci, Cj ) if resolvents contains the empty clause then return true new new resolvents if new clauses then return false clauses clauses new
71
Exemplo de Resoluo ca
KB = (B1,1 (P1,2 P2,1)) B1,1 = P1,2
P1,2 B1,1
B1,1
P1,2
P1,2
P2,1
P2,1
P1,2
72
73
function PL-Wumpus-Agent( percept) returns an action inputs: percept, a list, [stench,breeze,glitter] static: KB, a knowledge base, initially containing the physics of the world x, y, orientation, the agents position (initially [1,1]) and orientation (initially right) visited, an array indicating which squares have been visited, initially false action, the agents most recent action, initially null plan, an action sequence, initially empty update x,y,orientation, visited based on action if stench then Tell(KB, Sx,y ) else Tell(KB, Sx,y ) if breeze then Tell(KB, Bx,y ) else Tell(KB, Bx,y ) if glitter then action grab else if plan is nonempty then action Pop(plan) else if for some fringe square [i,j], Ask(KB, ( Pi,j Wi,j )) is true or for some fringe square [i,j], Ask(KB, (Pi,j Wi,j )) is false then do plan A-Graph-Search(Route-Problem([x,y], orientation, [i,j],visited)) action Pop(plan) else action a randomly chosen move return action
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 74
75
Saber se existe ou no soluo para um dado puzzle SuDoKu um a ca e problema NP-completo, e como tal pode ser reduzido por uma transformao ca polinomial a um problema de satisfatibilidade booleana.
76
ci,j,k ci,j,l
1 clusula para cada casa 1 i, j n a (1 k < l n) n(n1) clusulas para cada casa 1 i, j n a 2
ci,j,k ci,l,k
1 clusula para cada casa 1 i, k n a (1 j < l n) n(n1) clusulas para cada casa 1 i, k n a 2
Adicionam-se clusulas semelhantes para tratar as colunas e os blocos, oba tendo um total de 2 n4 2 n3 + 4 n2 clusulas. Para um puzzle 9x9 temos a assim exactamente 11988 clusulas. a Junta-se a proposio ci,j,k para cada casa i j ocupada com o valor k. ca
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 77
A soluo do puzzle SuDoKu pode ser extra das variveis verdadeiras ca da a num modelo que satisfaa todas as clusulas. Encontrar esse modelo um c a e problema da classe FNP (function NP problem, na terminologia inglesa).
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 78
79
80
NOTA: Testar a validade de um conjunto de frmulas booleanas um probo e lema coNP-completo (VALIDITY).
81
82
83
Algoritmo de Davis-Putnam
Enumerao recursiva em profundidade primeiro de todos os modelos poss ca veis para proposies na FNC, com as seguintes melhorias: co Terminao com modelos parciais: uma clusula verdadeira quando pelo ca a e menos um dos literais verdadeiro. Logo, os restantes valores dos s e mbolos proposicionais so irrelevantes. a Heur stica dos s mbolos puros: um s mbolo puro quando ocorre sempre e com o mesmo sinal em todas as clusulas. Nas proposies abaixo, A e B a co so puros: a (A B) (B C) (C A)
Heur stica da clusula unitria: Quando todos os literais so falsos ` a a a a excepo de um, o valor desse ca automaticamente denido. Pode originar ca propagaes unitrias em cascata. co a
84
Algoritmo de Davis-Putnam
function DPLL-Satisfiable?(s) returns true or false inputs: s, a sentence in propositional logic clauses the set of clauses in the CNF representation of s symbols a list of the proposition symbols in s return DPLL(clauses, symbols, [ ]) function DPLL(clauses, symbols, model) returns true or false if every clause in clauses is true in model then return true if some clause in clauses is false in model then return false P, value Find-Pure-Symbol(symbols, clauses, model) if P is non-null then return DPLL(clauses, symbolsP, [P = value|model ]) P, value Find-Unit-Clause(clauses, model) if P is non-null then return DPLL(clauses, symbolsP, [P = value|model ]) P First(symbols); rest Rest(symbols) return DPLL(clauses, rest, [P = true|model ]) or DPLL(clauses, rest, [P = false|model ])
85
Exemplo de aplicao ca
a b c b d a c ad ce e f d c f
86
87
WalkSAT
Trepa-colinas no espao de atribuies completas c co Em cada iterao o algoritmo escolhe uma clusula no satisfeita e um ca a a s mbolo dessa clusula para trocar. A forma de escolha do s a mbolo a trocar de valor ela prpria aleatria, podendo ser: e o o Utilizando a heur stica min-conitos minimizando o nmero de u clusulas insatisfeitas no passo seguinte a Escolha aleatria do s o mbolo a trocar na clusula (passeio aleatrio) a o
88
WalkSAT
function WalkSAT(clauses, p, max-ips) returns a satisfying model or failure inputs: clauses, a set of clauses in propositional logic p, the probability of choosing to do a random walk move, typically around 0.5 max-ips, number of ips allowed before giving up model a random assignment of true/false to the symbols in clauses for i = 1 to max-ips do if model satises clauses then return model clause a randomly selected clause from clauses that is false in model with probability p ip the value in model of a randomly selected symbol from clause else ip whichever symbol in clause maximizes the number of satised clauses return failure
89
Propriedades do WalkSAT
Incompleto Se uma proposio insatisfaz ento o algoritmo no termina: limitaca e vel a a se max f lips... Logo, procura local no serve em geral para resolver o problema da a consequncia lgica e o Algoritmos locais como o WalkSAT so mais ecazes quando se espera a que uma soluo exista ca Muito eciente na prtica... a
90
91
92
Tempo de execuo mdio para 100 frmulas aleatrias 3-CNF satisfaz ca e o o veis (com n = 50).
93
Sumrio a
Agentes lgicos aplicam inferncia a bases de conhecimento para derivar nova informao o e ca e tomar decises o Conceitos bsicos de lgica: a o sintaxe: estrutura formal das frases declarativas semntica: veracidade das frases relativamente a modelos a concluso: verdade necessria de uma frase dado outra a a inferncia: derivao de frases a partir de outras frases e ca slido: derivaes produzem apenas frases que so concluses lgicas o co a o o completo: derivaoes conseguem produzir todas as frases que so consequncia lgicas c a e o O mundo do Wumpus requer a capacidade de lidar com informao partial e negativa, ca racioc por casos, etc. nio Encadeamento para a frente e para trs tm complexidade temporal linear na dimenso da a e a KB, completos para clusulas de Horn. Resoluo completa para a lgica proposicional a ca e o A lgica proposicional no tem poder expressivo suciente o a
94
Resumo
Exemplos de CSP (Constraint Satisfaction Problems) Procura com retrocesso (backtracking) para CSPs Estrutura e decomposio de problemas ca Procura local para CSPs
Variveis W A, N T , Q, N SW , V , SA, T a Dom nios Di = {red, green, blue} Restries: regies adjacentes devem ter cores diferentes co o e.g., W A = N T (se a linguagem o permitir), ou (W A, N T ) {(red, green), (red, blue), (green, red), (green, blue), . . .}
Solues so atribuioes de valores a variveis que satisfazem todas as reco a c a stries, e.g., co {W A = red, N T = green, Q = red, N SW = green, V = red, SA = blue, T = green}
Grafo de restries co
CSP binrio: cada restrio relaciona no mximo duas variveis a ca a a Grafo de restries: ns so variveis e arcos correspondem a restrioes co o a a c
Algoritmos genricos para CSPs fazem uso da estrutura do grafo para tornar e a procura mais eciente. E.g., Tasmnia um subproblema independente! a e
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 7
Tipos de CSPs
Variveis discretas a dom nios nitos; cardinalidade d O(dn) atribuies completas co e.g., CSPs Booleanos, incl. satisfatibilidade Booleana (NP-completo) dom nios innitos (inteiros, cadeias de caracteres, etc.) escalonamento: variveis representam in a cio/m das tarefas utilizam linguagem de restrioes: StartJob1 + 5 StartJob3 c restries lineares so solveis, no-lineares indecid co a u a veis Variveis cont a nuas e.g., tempos de in cio/m das observaoes do Telescpio Hubble c o restries lineares resolveis em tempo polinomial por mtodos de co u e programao linear ca
Tipos de restries co
Unrias restries envolvendo apenas uma varivel, a co a e.g., SA = green Binrias restries envolvendo pares de variveis, a co a e.g., SA = W A Ordem superior restries envolvendo 3 ou mais variveis, co a e.g., restries das colunas em problemas cripto-aritmticos co e Preferncias (restrioes suaves), e.g., red melhor do que green e c e habitualmente representado atribuindo um custo a cada atribuio de variveis ca a problemas de optimizao com restries ca co
Exemplo: Cripto-aritmtico e
10
CSPs reais
Problemas de alocao ca e.g., quem o professor de determinada disciplina ? e Problemas de horrios a e.g., quando que uma disciplina oferecida e onde? e e Congurao de Hardware ca Folhas de clculo a Escalonamento de Transportes Planeamento/Escalonamento de Produo ca Planeamento Espacial Notar que muitos problemas reais requerem variveis cont a nuas
11
12
13
14
15
16
17
18
19
20
21
Importante quando s estamos interessados numa soluo. Irrelevante para o ca quando pretendemos obter todas as solues, ou quando o problema no co a tem soluoes. c A combinao destas heur ca sticas permite a resoluo de problemas com 1000 ca rainhas.
22
23
24
25
26
Propagao de Restries ca co
A vericao para a frente propaga informao de variveis atribu ca ca a das para variveis no atribu a a das, mas no permite a deteco prematura de todas as a ca falhas:
N T e SA no podem ser ambos azuis! a Propagao de restries obriga repetidamente ` satisfao local de restrioes ca co a ca c
27
Consistncias de arcos e
A forma mais simples de propagao torna cada arco consistente ca X Y consistente sse e para todo o valor x de X ento existe um valor permitido para y a
28
Consistncias de arcos e
A forma mais simples de propagao torna cada arco consistente ca X Y consistente sse e para todo o valor x de X ento existe um valor permitido para y a
29
Consistncias de arcos e
A forma mais simples de propagao torna cada arco consistente ca X Y consistente sse e para todo o valor x de X ento existe um valor permitido para y a
30
Consistncias de arcos e
A forma mais simples de propagao torna cada arco consistente ca X Y consistente sse e para todo o valor x de X ento existe um valor permitido para y a
Se X perde um valor, vizinhos de X precisam de ser revericados A consistncia de arcos detecta falhas mais cedo do que a vericao para e ca a frente Pode ser utilizado como preprocessamento ou aps cada atribuio o ca
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 31
O(n2d3), pode ser reduzido a O(n2d2) mas no consegue detectar todas as falhas em tempo polinomial! a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 32
33
34
35
A Tasmnia e o continente so subproblemas independentes a a Identicveis a partir das componentes ligadas do grafo de restries a co
36
37
A B C D
E F
Teorema: se o grafo de restrioes no tem ciclos, ento o CSP pode ser c a a resolvido em tempo O(n d2) Comparar com CSPs genricos, cujo pior caso temporal O(dn) e e Esta propriedade tambm se aplica ao racioc lgico e probabil e nio o stico: um exemplo importante da relao entre restries sintcticas e a complexca co a idade do racioc nio.
38
A B C D
E A F B C D E F
39
Aplicao ao exemplo ca
X1 X2 X3 Aco ca {1} {1, 2} {1, 2} RemoveInconsistent(X2, X1) {1} {2} {1, 2} RemoveInconsistent(X3, X2) {1} {2} {1}
40
NT Q WA
NSW
V Victoria
Condicionamento por conjunto de corte: instanciar (de todas as maneiras) um conjunto de variveis tal que o grafo resultante seja rvore a a Conjunto de corte de tamanho c tempo de execuo O(dc (n c)d2), ca muito rpido para c pequeno a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 41
42
Algoritmo min-conitos
function Min-Conflicts(csp, max-steps) returns a solution or failure inputs: csp, a constraint satisfaction problem max-steps, the number of steps allowed before giving up local variables: current, a complete assignment var, a variable value, a value for a variable current an initial complete assignment for csp for i = 1 to max-steps do var a randomly chosen, conicted variable from Variables[csp] value the value v for var that minimizes Conflicts(var, v, current, csp) set var=value in current if current is a solution for csp then return current end return failure
43
Exemplo: 8-rainhas
Estado: 8 rainhas em 8 colunas (88 = 16777216 estados) Operadores: mover uma rainha na sua coluna Teste Objectivo: inexistncia de ataques e Avaliao: h(n) = nmero de ataques ca u
2 2 1 2 3 1 2 2 3 2 3 0 3 3
44
Desempenho de min-conitos
Dado um estado inicial aleatrio, consegue-se resolver n-rainhas quase em o tempo constante para n arbitrrio com alta probabilidade (e.g., n = 10,000,000) a O mesmo se verica para qualquer CSP gerado aleatoriamente exceptuando para uma pequena banda do rcio a R= nmero de restries u co nmero de variveis u a
CPU time
R critical ratio
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 45
Sumrio a
CSPs so um tipo especial de problema: a estados denidos por valores de um conjunto xo de variveis a teste objectivo denido por restries nos valores das variveis co a Retrocesso = procura em profundidade primeiro como uma varivel a atribu por n da o Heur sticas de ordenao de variveis e seleco valores ajudam muito ca a ca Vericao para a frente evita atribuies que iro falhar garantidamente ca co a Propagao de restrioes (e.g., consistncia de arcos) efectua trabalho ca c e adicional para restringir valores e detectar inconsistncias mais cedo e A representao de CSPs permite a anlise da estrutura do problema ca a CSPs de estrutura arbrea podem ser resolvidos em tempo linear o A heur stica min-conitos habitualmente ecaz na prtica e a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 46
Programas em Lgica
pessoa(pedro). pessoa(ana). bar(tertlia). contente(P) :- pessoa(P), bar(B), cerveja(C), frequenta(P,B), vende(B,C), gosta(P,C). tio(X,Y) :- pessoa(X), pessoa(Y), pessoa(Z), filho(Y,Z), irmo(X,Z). inocente(X) :- pessoa(X), not culpado(X).
Semntica
Problema: dado um programa em lgica, queremos saber o que verdadeiro (e o que falso).
Programa:
pessoa(pedro). pessoa(ana). pessoa(rui). amigo(pedro,ana). tem_amigos(X) :- pessoa(X), pessoa(Y), amigo(X,Y). contente(X) :- pessoa(X), tem_amigos(X). amigo(X,Y) :- pessoa(X), pessoa(Y), amigo(Y,X). marciano(X) :- pessoa(X), nasceu_em_marte(X).
O que verdadeiro?
Modelos mnimos: o modelo (conjunto de tomos verdadeiros) contm o mnimo possvel de tomos que se podem concluir a partir do programa. Cada programa positivo P tem um e um s modelo mnimo, least(P). O modelo mnimo pode ser obtido atravs de um processo iterativo, partindo do modelo vazio, e acrescentando todas as concluses imediatas que se podem tirar a partir do que j se concluiu, usando as regras do programa. O processo termina quando j no for possvel concluir mais nada.
Programa:
Modelo Mnimo:
M = {pessoa(pedro),pessoa(ana),pessoa(rui),amigo(pedro,ana), amigo(ana,pedro), tem_amigos(pedro), tem_amigos(ana),contente(pedro), contente(ana)}
Nalguns programas com negao fcil intuir o nico modelo apropriado. Programa:
pessoa(pedro). pessoa(rui). culpado(pedro). inocente(X) :- pessoa(X), not culpado(X).
Modelo:
{pessoa(pedro),pessoa(rui),culpado(pedro),inocente(rui)}
Noutros programas com negao, no parece ser possvel intuir um nico modelo: Programa:
pessoa(pedro). pacfico(X) :- pessoa(X), not violento(X). violento(X) :- pessoa(X), not pacfico(X).
Modelo(s):
? {pessoa(pedro)} ? {pessoa(pedro), violento(pedro), pacfico(pedro)} ? {pessoa(pedro), violento(pedro)} ? {pessoa(pedro), pacfico(pedro)}
Modelos Estveis
Os modelos estveis so aqueles que so corroborados pelo programa Podem ser vistos como cenrios possveis. Cada programa pode ter zero, um, ou mais modelos estveis. possvel verificar se uma interpretao um modelo estvel atravs da sua comparao com o modelo mnimo de um programa positivo, obtido a partir do programa original atravs de uma transformao (Transformao de Gelfond-Lifschitz).
Transformao de Gelfond-Lifschitz Seja P um programa e I uma interpretao (conjunto de tomos). O programa P/I obtido a partir de P:
eliminando todas as regras de P com not a no corpo, tal que aI; eliminando todos os tomos negativos das restantes regras;
O programa P/I positivo, pelo que tem um nico modelo mnimo, least(P/I).
I = least(P/I)
P: pessoa(pedro). pacfico(pedro) :- pessoa(pedro), not violento(pedro). pessoa(pedro) violento(pedro) :- pessoa(pedro), not pacfico(pedro).
I = {pessoa(pedro), pacfico(pedro)} Modelo Estvel? P/I: pessoa(pedro). pacfico(pedro) :- pessoa(pedro). least(P/I) = {pessoa(pedro), pacfico(pedro)} least(P/I) = I I Modelo Estvel.
P: pessoa(pedro). pacfico(pedro) :- pessoa(pedro), not violento(pedro). violento(pedro) :- pessoa(pedro), not pacfico(pedro). pessoa(pedro)
I = {pessoa(pedro), violento(pedro)} Modelo Estvel? P/I: pessoa(pedro). violento(pedro) :- pessoa(pedro). least(P/I) = {pessoa(pedro), violento(pedro)} least(P/I) = I I Modelo Estvel.
P: pessoa(pedro). pacfico(pedro) :- pessoa(pedro) not violento(pedro). pessoa(pedro), violento(pedro) :- pessoa(pedro), not pacfico(pedro). pessoa(pedro)
I = {pessoa(pedro)} Modelo Estvel? P/I: pessoa(pedro). pacfico(pedro) :- pessoa(pedro). violento(pedro) :- pessoa(pedro). least(P/I) = {pessoa(pedro),pacfico(pedro),violento(pedro)} least(P/I) I I no Modelo Estvel.
O Programa: pessoa(pedro). pacfico(X) :- pessoa(X), not violento(X). violento(X) :- pessoa(X), not pacfico(X). representa uma disjuno, onde uma pessoa (o Pedro) pacfica ou violenta. Os dois modelos estveis so: {pessoa(pedro), pacfico(pedro)} {pessoa(pedro), violento(pedro)} Se acrescentssemos o facto pessoa(ana), teramos 4 modelos estveis, correspondendo a todas as combinaes onde o Pedro e a Ana so pacifistas ou violentos: {pessoa(pedro), pessoa(ana), pacfico(pedro), pacifico(ana)} {pessoa(pedro), pessoa(ana), violento(pedro), pacifico(ana)} {pessoa(pedro), pessoa(ana), pacfico(pedro), violento(ana)} {pessoa(pedro), pessoa(ana), violento(pedro), violento(ana)}
Se quisssemos representar uma disjuno entre 3 tomos, tal poderia ser feito da seguinte forma: album(takk). k7(X) :- album(X), not cd(X), not vinil(X). cd(X) :- album(X), not k7(X), not vinil(X). vinil(X) :- album(X), not k7(X), not cd(X). Este programa representa uma situao onde um lbum tem um suporte (k7, cd ou vinil). Tem 3 modelos estveis: {album(takk), k7(takk)} {album(takk), cd(takk)} {album(takk), vinil(takk)}
Tambm seria possvel representar uma situao onde um lbum pode existir em zero, um, dois ou nos trs suportes. Para tal, vamos introduzir trs predicados auxiliares (n_k7(X), n_cd(X) e n_vinil(X)). O programa : album(takk). cd(X) :- album(X), not n_cd(X). k7(X) :- album(X), not n_k7(X). n_cd(X) :- album(X), not cd(X). n_k7(X) :- album(X), not k7(X). vinil(X) :- album(X), not n_vinil (X). n_vinil (X) :- album(X), not vinil (X). Este programa tem oito modelos estveis. Eles so (omitindo album(takk)): {k7(takk), cd(takk), vinil(takk)} {n_k7(takk), cd(takk), vinil(takk)} {k7(takk), n_cd(takk), vinil(takk)} {k7(takk), cd(takk), n_vinil(takk)} {n_k7(takk), n_cd(takk), vinil(takk)} {n_k7(takk), cd(takk), n_vinil(takk)} {k7(takk), n_cd(takk), n_vinil(takk)} {n_k7(takk), n_cd(takk), n_vinil(takk)} Se tambm omitirmos os predicados auxiliares, obtemos: {k7(takk), cd(takk), vinil(takk)} {cd(takk), vinil(takk)} {k7(takk), vinil(takk)} {k7(takk), cd(takk)} {vinil(takk)} {cd(takk)} {k7(takk)} {} Tornando mais clara a correspondncia entre os modelos estveis e os cenrios possveis descritos pelo enunciado e programa.
A expressividade e carcter declarativo da programao em lgica com a semntica dos modelos estveis A existncia de software que permite, de uma forma eficiente, determinar os modelos estveis:
levaram aplicao deste paradigma na resoluo de problemas, levando introduo da Programao por Conjuntos de Resposta
SMODELS
ps(a). ps(b). p(X) :- ps(X), not v(X). v(X) :- ps(X), not p(X). {p(a),p(b)} {p(a),v(b)} {v(a),p(b)} {v(a),v(b)}
LPARSE
SMODELS
ps(a). ps(b). p(a) :- ps(a), not v(a). p(b) :- ps(b), not v(b). v(a) :- ps(a), not p(a). v(b) :- ps(b), not p(b).
Linha de comando:
lparse -nN filename | smodels
Ideia:
Representar o problema num programa em lgica de forma a que os seus modelos estveis (conjuntos de resposta) correspondam s possveis solues.
determinar o formato das solues para o problema geral, sendo normal a existncia de um (ou mais) predicados que funcionaro como contentores da soluo; gerao de todos os modelos, onde cada modelo representa uma soluo hipottica para o problema geral; eliminao dos modelos que no obedecem aos dados do problema concreto.
Uma forma alternativa para representar a informao relativa ao suporte dos lbuns a seguinte: album(takk). formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). Este programa tem os seguintes modelos estveis (omitindo os tomos album/1, formato/1 e n_suporte/2): {suporte(takk,k7), suporte(takk,cd), suporte(takk,vinil)} {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,k7), suporte(takk,cd)} {suporte(takk,k7)} {suporte(takk,vinil)} {suporte(takk,cd)} {}
Por exemplo, se tivermos um programa e quisermos impedir a existncia de modelos estveis onde, simultaneamente, os tomos a e b sejam verdadeiros, e c e d falsos, podemos acrescentar a regra (onde um tomo novo que no aparece em mais lado nenhum):
Se, inversamente, apenas quisermos permitir a existncia de modelos estveis que obedeam a uma dada condio, usa-se uma tcnica semelhante.
Por exemplo, se tivermos um programa e quisermos apenas permitir a existncia de modelos estveis onde, simultaneamente, os tomos a e b sejam verdadeiros, e c e d falsos, podemos acrescentar o par de regras (onde e so tomos novos que no aparecem em mais lado nenhum):
Para simplificar a escrita das regras que impedem a existncia de modelos estveis (habitualmente designadas por restries de integridade), omitem-se todas as utilizaes tomo auxiliar . Para impedir a existncia de modelos estveis onde a condio CONDIO seja verdadeira, acrescentamos a regra: :- CONDIO.
Por exemplo, para impedir a existncia de modelos estveis onde, simultaneamente, os tomos a e b sejam verdadeiros, e c e d falsos, acrescentamos a regra:
:- a, b, not c, not d.
Por exemplo, para apenas permitir a existncia de modelos estveis onde, simultaneamente, os tomos a e b sejam verdadeiros, e c e d falsos, acrescentamos o par de regras (onde um tomo novo que no aparece em mais lado nenhum):
p_F :- p_F1, p_F2. p_F :- p_F1. p_F :- p_F2. p_F :- not p_F1. p_F :- domain(X),p_F1(X) p_F :- not n_p_F. n_p_F :- domain(X), not p_F1(X).
Voltando ao programa anterior: album(takk). formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). Cujos modelos estveis so (apenas mostrando os tomos suporte/2): {suporte(takk,k7), suporte(takk,cd), suporte(takk,vinil)} {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,cd)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)} {suporte(takk,k7), suporte(takk,cd)} {suporte(takk,k7)} {} Se soubermos que no h nenhum lbum simultaneamente em K7 e CD, podemos acrescentar a seguinte regra (restrio de integridade): :- album(A), suporte(A,k7), suporte(A,cd). Aps a introduo da nova regra, os modelos estveis passam a ser: {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,cd)} {suporte(takk,k7)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)} {}
Continuando com o mesmo programa: album(takk). formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). :- album(A), suporte(A,k7), suporte(A,cd). Cujos modelos estveis so (apenas mostrando os tomos suporte/2): {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,cd)} {suporte(takk,k7)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)} {} Se soubermos que cada lbum existe em pelo menos um formato, podemos acrescentar as seguintes regras (restrio de integridade): com_formato(A) :- album(A), formato(F), suporte(A,F). :- album(A), not com_formato(A). Aps a introduo das novas regras, os modelos estveis passam a ser: {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,cd)} {suporte(takk,k7)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)}
Continuando com o mesmo programa: album(takk). formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). :- album(A), suporte(A,k7), suporte(A,cd). com_formato(A) :- album(A), formato(F), suporte(A,F). :- album(A), not com_formato(A). Cujos modelos estveis so (apenas mostrando os tomos suporte/2): {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,cd)} {suporte(takk,k7)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)} Se soubermos que o lbum Takk existe em vinil, podemos acrescentar o seguinte facto: suporte(takk,vinil). Aps a introduo deste facto, os modelos estveis passam a ser: {suporte(takk,cd), suporte (takk,vinil)} {suporte(takk,k7), suporte(takk,vinil)} {suporte(takk,vinil)}
Continuando com o mesmo programa, ao qual acrescentamos o novo album Boy: album(takk). album(boy) formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). :- album(A), suporte(A,k7), suporte(A,cd). com_formato(A) :- album(A), formato(F), suporte(A,F). :- album(A), not com_formato(A). suporte(takk,vinil). Os modelos estveis so (onde suporte foi substitudo por s e omitindo os restantes tomos): {s(takk,vinil),s(boy,vinil),s(boy,cd),s(takk,cd)} {s(takk,vinil),s(boy,cd),s(takk,cd)} {s(takk,vinil),s(boy,k7)} {s(takk,vinil),s(boy,k7),s(takk,k7)} {s(takk,vinil),s(boy,k7),s(takk,cd)} {s(takk,vinil),s(boy,vinil),s(boy,k7),s(takk,cd)} {s(takk,vinil),s(boy,vinil),s(takk,cd)} {s(takk,vinil),s(boy,vinil),s(boy,k7)} {s(takk,vinil),s(boy,vinil),s(boy,k7),s(takk,k7)} {s(takk,vinil),s(boy,cd),s(takk,k7)} {s(takk,vinil),s(boy,cd)} {s(takk,vinil),s(boy,vinil)} {s(takk,vinil),s(boy,vinil),s(boy,cd)} {s(takk,vinil),s(boy,vinil),s(boy,cd),s(takk,k7)} {s(takk,vinil),s(boy,vinil),s(takk,k7)} Se soubermos que no existem dois lbuns com o mesmo formato, podemos acrescentar a seguinte regra (onde neq(A1, A2) verdadeiro se A1A2): :- album(A1), album(A2), formato(F), suporte(A1,F), suporte(A2,F), neq(A1,A2). Aps a introduo desta regra, os modelos estveis passam a ser: {s(takk,vinil),s(boy,cd)} {s(takk,vinil),s(boy,cd),s(takk,k7)} {s(takk,vinil),s(boy,k7),s(takk,cd)} {s(takk,vinil),s(boy,k7)}
Continuando com o mesmo programa: album(takk). album(boy) formato(cd). formato(k7). formato(vinil). suporte(A,F) :- album(A), formato(F), not n_suporte(A,F). n_suporte(A,F) :- album(A), formato(F), not suporte(A,F). :- album(A), suporte(A,k7), suporte(A,cd). com_formato(A) :- album(A), formato(F), suporte(A,F). :- album(A), not com_formato(A). suporte(takk,vinil). :- album(A1), album(A2), formato(F), suporte(A1,F), suporte(A2,F), neq(A1,A2). Os modelos estveis so (apenas mostrando os tomos suporte/2): {suporte(takk,vinil), suporte(boy,cd)} {suporte (takk,vinil), suporte(boy,k7)} {suporte (takk,vinil), suporte(boy,cd), suporte(takk,k7)} {suporte (takk,vinil), suporte(boy,k7), suporte(takk,cd)} Se soubermos que existe pelo menos uma k7 e um cd, podemos acrescentar as seguintes regras: ok :- album(A1), album(A2), suporte(A1,cd), suporte(A2,k7). :- not ok. Aps a introduo desta regra, os modelos estveis passam a ser (omitindo tomos album/1, formato/1 e n_suporte/2): {suporte (takk,vinil), suporte(boy,cd), suporte(takk,k7)} {suporte (takk,vinil), suporte(boy,k7), suporte(takk,cd)}
O problemas das rainhas consiste em colocar 8 rainhas num tabuleiro de xadrez, sem que nenhuma rainha seja atacada por outra i.e. sem que existam duas rainhas na mesma linha, coluna ou diagonal. Soluo 1:
ASP Rainhas
define o domnio de coluna e linha.
coluna(1). coluna(8).
linha(1). linha(8).
in(X,Y) :- coluna(X), linha(Y), not n_in(X,Y). n_in(X,Y) :- coluna(X), linha(Y), not in(X,Y).
estas duas regras geram todos os modelos resultantes das possveis combinaes onde, para cada clula (X,Y), ou in(X,Y) verdadeiro, representando que a clula (X,Y) tem uma rainha, ou n_in(X,Y) verdadeiro, representando que a clula (X,Y) no tem uma rainha.
:- coluna(X), linha(Y), coluna(XX), linha(YY), not eq(X,XX), not eq(Y,YY), in(X,Y), in(XX,YY), eq(abs(X-XX),abs(Y-YY)).
esta regra elimina todos os modelos onde existe uma rainha em mais do que uma casa na mesma diagonal.
n(a;b;c).
equivalente a n(a), n(b), n(c). define o valor da constante max como sendo igual a 10. equivalente a s(1), s(2), , s(10).
const max = 10
s(1..max).
esconde os tomos da forma p(_,_) nos modelos gerados pelo smodels; esconde todos os tomos nos modelos gerados pelo smodels; invalida a instruo hide para os tomos da forma q(_,_);
hide.
show q(_,_).
Erros comuns no Lparse, todos eles relacionados com a existncia de variveis, em regras, cujo domnio no est definido de uma forma apropriada:
O Lparse aceita a utilizao de sintaxe especial. Esta sintaxe permite a especificao da gerao selectiva de modelos, eliminando:
a necessidade de utilizao de alguns tomos auxiliares, de ciclos para gerar modelos, de algumas restries de integridade.
A sua utilizao permite um grande aumento na eficincia do smodels, devendo ser usada sempre que possvel. A sintaxe geral : min{p(X1,,Xn,Y1,,Ym):q(X1,,Xn)}max :- s(Y1,,Ym).
Leitura: para cada s(Y1,,Ym), gerar todos os modelos possveis com um mnimo min e um mximo max de tomos p(X1,,Xn,Y1,,Ym), onde o domnio de X1,,Xn dado por q(X1,,Xn). Mais detalhes podem ser encontrados no manual do lparse
O problemas das rainhas consiste em colocar 8 rainhas num tabuleiro de xadrez, sem que nenhuma rainha seja atacada por outra i.e. sem que existam duas rainhas na mesma linha, coluna ou diagonal. Soluo 2:
ASP Rainhas
coluna(1..8). linha(1..8).
define o domnio de coluna. Equivalente aos factos coluna(1), coluna(2),, coluna(8). define o domnio de linha. Equivalente aos factos linha(1), linha(2),, linha(8).
1{in(X,Y):coluna(X)}1 :- linha(Y).
esta regra gera todos os modelos onde cada linha Y est preenchida em exactamente uma coluna X.
:- coluna(X), linha(Y), coluna(XX), linha(YY), not eq(X,XX), not eq(Y,YY), in(X,Y), in(XX,YY), eq(abs(X-XX),abs(Y-YY)).
esta regra elimina todos os modelos onde existe uma rainha em mais do que uma casa na mesma diagonal.
O problemas das rainhas consiste em colocar 8 rainhas num tabuleiro de xadrez, sem que nenhuma rainha seja atacada por outra i.e. sem que existam duas rainhas na mesma linha, coluna ou diagonal. Soluo 3:
ASP Rainhas
coluna(1..8). linha(1..8).
define o domnio de coluna. Equivalente aos factos coluna(1), coluna(2),, coluna(8). define o domnio de linha. Equivalente aos factos linha(1), linha(2),, linha(8).
1{in(X,Y):coluna(X)}1 :- linha(Y).
esta regra gera todos os modelos onde cada linha Y est preenchida em exactamente uma coluna X.
1{in(X,Y):linha(Y)}1 :- coluna(X).
esta regra gera todos os modelos onde cada coluna X est preenchida em exactamente uma linha Y.
:- coluna(X), linha(Y), coluna(XX), linha(YY), not eq(X,XX), not eq(Y,YY), in(X,Y), in(XX,YY), eq(abs(X-XX),abs(Y-YY)).
esta regra elimina todos os modelos onde existe uma rainha em mais do que uma casa na mesma diagonal.
define a constante size = 10 define o domnio de n. Equivalente aos factos n(1),n(2),,n(size). esta regra gera todos os modelos onde cada clula X,Y est preenchida com exactamente um nmero N, eliminando os restantes. esta regra elimina todos os modelos onde o mesmo nmero N se encontra em mais do que uma coluna (X e XX) na mesma linha Y. esta regra elimina todos os modelos onde o mesmo nmero N se encontra em mais do que uma linha (Y e YY) na mesma coluna X.
n(1.. size).
1{in(X,Y,N):n(N)}1:- n(Y),n(X).
define a constante size = 10 define o domnio de n. Equivalente aos factos n(1),n(2),,n(size). esta regra gera todos os modelos onde cada clula X,Y est preenchida com exactamente um nmero N, eliminando os restantes. esta regra gera todos os modelos onde em cada coluna X, cada nmero N est exactamente numa linha Y, eliminando os restantes. esta regra gera todos os modelos onde em cada linha Y, cada nmero N est exactamente numa coluna X, eliminando os restantes.
n(1.. size).
1{in(X,Y,N):n(N)}1:- n(Y),n(X).
1{in(X,Y,N):n(Y)}1:- n(X),n(N).
1{in(X,Y,N):n(X)}1:- n(Y),n(N).
O problemas do Sudoku consiste em preencher uma grelha de dimenso 9 x 9 com nmeros de 1 a 9, de modo a que no existam nmeros repetidos em cada coluna, em cada linha, nem em cada uma das 9 sub-grelhas 3 x 3 em que a grelha 9 x 9 se divide. O Sudoku um caso particular do problema dos Quadrados Latinos, com n=9, ao qual se acrescenta a restrio das sub-grelhas de 3 x 3. Assim, podemos partir da soluo mais eficiente para os Quadrados Latinos e acrescentar-lhe a nova restrio. Soluo: n(1.. 9). 1{in(X,Y,N):n(N)}1:- n(Y),n(X). 1{in(X,Y,N):n(Y)}1:- n(X),n(N). 1{in(X,Y,N):n(X)}1:- n(Y),n(N). v(1;4;7).
ASP Sudoku
este facto define as coordenadas do canto inferior esquerdo de cada sub-grelha 3 x 3. Equivalente aos factos v(1),v(4), e v(7).
:- n(X;Y;X1;Y1;N), v(VX;VY), neq(X,X1), neq(Y,Y1), in(X,Y,N), in(X1,Y1,N), X-VX < 3, X1-VX < 3, Y-VY < 3, Y1-VY < 3, X >= VX, X1 >= VX, Y >= VY, Y1 >= VY.
Esta regra elimina os modelos onde um nmero N aparece repetido numa sub-grelha 3 x 3. Apenas verifica pares de clulas onde tanto a linha como a coluna so diferentes. Aqueles onde a linha ou a coluna so iguais j so eliminados pelas regras de gerao de modelos anteriores.
ASP Sudoku
Normalmente o Sudoku j tem algumas casas preenchidas. Temos portanto que eliminar todos os modelos que no tenham os as casas indicadas preenchidas com os respectivos nmeros.
6 2 7 2 4 1 5 2 5 9 3 9 8 3 7 1 7 3
5 6 2 4
n(1.. 9). 3 8 1{in(X,Y,N):n(N)}1:- n(Y),n(X). 1{in(X,Y,N):n(Y)}1:- n(X),n(N). 1{in(X,Y,N):n(X)}1:- n(Y),n(N). v(1;4;7). :- n(X;Y;X1;Y1;N), v(VX;VY), neq(X,X1), neq(Y,Y1), in(X,Y,N), in(X1,Y1,N), X-VX < 3, X1-VX < 3, Y-VY < 3, Y1-VY < 3, X >= VX, X1 >= VX, Y >= VY, Y1 >= VY. aux :- in(1,7,2),in(2,1,3),in(2,4,4),in(2,5,2),in(2,6,7),in(3,2,5),in(3,3,1), in(3,9,6),in(4,2,2),in(4,7,9),in(4,8,5),in(5,4,8),in(5,5,9),in(5,6,3), in(6,2,7),in(6,3,3),in(6,8,1),in(7,1,8),in(7,7,3),in(7,8,7),in(8,4,2), in(8,5,6),in(8,6,5),in(8,9,9),in(9,3,4). :- not aux.
O Programa dos lbuns, usando a sintaxe alternativa do lparse: album(takk;boy). formato(cd;k7;vinil). 1{suporte(A,F):formato(F)} :- album(A).
esta regra gera todos os modelos onde lbum tem um ou mais formatos (a ausncia de um valor para max significa que no h um nmero mximo de tomos no modelo), eliminando todos os modelos onde um lbum no tenha nenhum formato.
:- album(A), suporte(A,k7), suporte(A,cd). suporte(takk,vinil). :- album(A1), album(A2), formato(F), suporte(A1,F), suporte(A2,F), neq(A1,A2). ok :- album(A1), album(A2), suporte(A1,cd), suporte(A2,k7). :- not ok. Os modelos estveis so (omitindo tomos album/1, formato/1): {suporte (takk,vinil), suporte(boy,cd), suporte(takk,k7)} {suporte (takk,vinil), suporte(boy,k7), suporte(takk,cd)}
Referncias
Tutoriais:
http://costantini.di.univaq.it/wasp.htm http://www.tcs.hut.fi/Software/smodels/lparse.ps
Resumo
Motivao para a Lgica de Primeira Ordem ca o Sintaxe e semntica da LPO a Engenharia do conhecimento em LPO Exemplos de representao em LPO ca
E.g., no se consegue dizer buracos provocam brisa em casas adjacentesa a no ser que se escreva uma proposio para cada casa do mundo a ca
Outras designaoes c
A lgica de primeira ordem (LPO) tambm conhecida atravs de outras deo e e e signaes: co Clculo de Predicados de Primeira Ordem (rst-order predicate calculus) a Clculo de predicados de ordem inferior (lower predicate calculus) a Lgica de Predicados (predicate logic) o Linguagem de lgica de primeira ordem (language of rst-order logic) o
Lgicas em geral o
Linguagem Compromisso Ontolgico (o que Compromisso Epistemolgico (o que o o existe no mundo) o agente acredita sobre os factos) Lgica Proposicional o factos verdadeiro/falso/desconhecido Lgica de Primeira Ordem factos, objectos, relaoes o c verdadeiro/falso/desconhecido Lgica Temporal o factos, objectos, relaoes, tempos c verdadeiro/falso/desconhecido Teoria da Probabilidade factos grau de crena [0, 1] c Lgica Vaga/Difusa o graus de verdade [0, 1] intervalo conhecido de valores
Existem inmeras lgicas, variando com o seu dom de aplicao: u o nio ca Lgicas terminolgicas o o Lgica de primeira ordem tipicada o Lgica de segunda ordem o Lgicas de ordem superior o Lgica de primeira ordem intuicionista o
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 7
Lgicas modais o
10
Exemplos de termos
Objectos 1, 1.54, i, e, 12e40, pi, -3, MMVII, 0x20 Portugal, UNL, Benca Tweety, Diabo, Bem, Unicrnio o Abc, Xpto123, Key123, Uma cadeia de caracteres muito longa Expresses funcionais o Exp(1.0), Exp(Mult(I,Pi)), +(x,0,0.35), 0 * x (notao inxa), Log(x, 2) + ca Ln(E) Idade(Carlos, 17-04-2007 10:23:00 GMT) P eso(M anuel) C & ++ Me(Arbitro(Jogo(Sporting,Benca,Epoca200607)) a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 11
12
13
14
15
16
person
brother brother
R
left leg
J
left leg
18
19
{ , ,
< < < , < , ...{ { < , < , < , < , ... {
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 20
21
Relao de satisfao ca ca
A noo de verdade (relativa) em LPO capturada atravs da relao de satisfao. ca e e ca ca Seja M uma interpretao e s uma atribuio de variveis em M . ca ca a M, s |= t1 = t2 sse (t1)M = (t2)M M, s |= P (t1, . . . , tn) sse ((t1)M, . . . , (tn)M) I(P ) M, s |= sse no o caso M, s |= a e M, s |= ( ) sse M, s |= e M, s |= M, s |= ( ) sse M, s |= ou M, s |= M, s |= ( ) sse no o caso M, s |= ou M, s |= a e M, s |= x sse M, s |= , para toda a atribuio de variveis s ca a idntica a s excepto possivelmente na varivel x e a M, s |= x sse M, s |= , para alguma de atribuio de variveis s ca a idntica a s excepto possivelmente na varivel x e a
22
Consequncia Lgica e o
Uma frmula satisfaz se existir uma interpretao M e uma atribuio o e vel ca ca de variveis s tal que M, s |= . a Um conjunto de fbfs satisfaz se existir uma intepretao M e uma e vel ca atribuio de variveis s tal que M, s |= para toda a frmula de . Se for ca a o um conjunto fechado de frmulas diz-se que M um modelo de . o e Se um conjunto de sentenas ento Uma frmula logicamente verdadeira e c a o e ou vlida se M, s |= para toda a interpretao M e atribuio de variveis s a ca ca a (representado por |= ). Seja um conjunto de frmulas bem formadas e uma fbf. Diz-se que o e uma consequncia de sse para toda a interpretao M e atribuio de variveis e ca ca a s se M, s |= para toda a frmula de ento M, s |= . Representa-se este o a facto atravs de |= . e
23
Grupos (Abelianos)
Os grupos so denidos pelos seguintes axiomas, num vocabulrio contendo uma a a constante e, um s mbolo de funo unrio 1 e um s ca a mbolo de funo binrio : ca a x e x x1 x=xx x=ex y) e=x x1 = e z=x (y z)
x y z (x
Se o grupo for comutativo diz-se que abeliano em homenagem a Niels Henrik e Abel x y x y=y x
24
25
Quanticao Universal ca
a variveis f rase
Toda a gente na UNL inteligente: e x Em(x, U N L) Inteligente(x) x P verdade num dado modelo e dada interpretao nesse modelo sse e ca P verdade para todo o objecto x do modelo (i.e. x percorre todos os objectos e poss veis do modelo) Pode ser entendido como a conjuno das instanciaes de P ca co Em(ReiAf onsoI, U N L) Inteligente(ReiAf onsoI) Em(Ana, U N L) Inteligente(Ana) Em(U N L, U N L) Inteligente(U N L) ...
26
27
Quanticao Existencial ca
a variveis f rase
Algum em Almada inteligente: e e x Em(x, Almada) Inteligente(x) x P verdade num dado modelo e dada interpretao nesse modelo sse e ca P verdade para algum objecto x poss do modelo e vel Pode ser entendido como a disjuno das instanciaes de P ca co Em(ReiAf onsoI, Almada) Inteligente(ReiAf onsoI) Em(Ana, Almada) Inteligente(Ana) Em(Almada, Almada) Inteligente(Almada) ...
28
29
30
31
32
Alguns Exemplos
Irmos so amigos a a
33
Alguns Exemplos
Irmos so amigos a a x, y Irmo(x, y) Amigo(x, y). a A Amizade simtrica e e
34
Alguns Exemplos
Irmos so amigos a a x, y Irmo(x, y) Amigo(x, y). a A Amizade simtrica e e x, y Amigo(x, y) Amigo(y, x). A me de algum o seu progenitor feminino a e e
35
Alguns Exemplos
Irmos so amigos a a x, y Irmo(x, y) Amigo(x, y). a A Amizade simtrica e e x, y Amigo(x, y) Amigo(y, x). A me de algum o seu progenitor feminino a e e x, y M ae(x, y) (F eminino(x) P rogenitor(x, y)). Um primo direito um lho de um dos irmos dos pais e a
36
Alguns Exemplos
Irmos so amigos a a x, y Irmo(x, y) Amigo(x, y). a A Amizade simtrica e e x, y Amigo(x, y) Amigo(y, x). A me de algum o seu progenitor feminino a e e x, y M ae(x, y) (F eminino(x) P rogenitor(x, y)). Um primo direito um lho de um dos irmos dos pais e a x, y P rimoDireito(x, y) p, ps P rogenitor(p, x) Irmo(ps, p) a P rogenitor(ps, y)
37
Igualdade
termo1 = termo2 verdade numa dada interpretao e ca sse termo1 e termo2 se referem ao mesmo objecto E.g., 1 = 2 e x (Sqrt(x), Sqrt(x)) = x so satisfaz a veis 2 = 2 vlida e a a E.g., denio de Irmo em termos de P rogenitor: ca x, y Irmo(x, y) [(x = y) m, f (m = f ) a P rogenitor(m, x)P rogenitor(f, x)P rogenitor(m, y)P rogenitor(f, y)]
38
39
40
41
42
PA)
43
PA)
44
A Web Semntica a
As lgicas de descrio esto a ser utilizadas para modelar informao na Web o ca a ca Semntica. Uma linguagem suportada pelo W3C a Ontology Web Language 1.1 a e (OWL), correspondendo ` linguagem de descrio sROIQ. a ca P essoa SerV ivo P essoa Homem M ulher Homem M ulher M ae M ulher progenitor.P essoa ( 1 progenitor.Homem) ( 1 progenitor.Homem) ( 1 progenitor.M ulher) ( 1 progenitor.M ulher) progenitor antecessor progenitor antecessor antecessor carlos : Homem paula : M ulher (carlos, rita) : progenitor (paula, rita) : progenitor
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 45
46
Dada uma frase S e a substituio , ca S denota o resultado aplicar a S; e.g., S = M aisInteligente(x, y) = {x/Hillary, y/Bill} S = M aisInteligente(Hillary, Bill) Ask(KB, S) devolve alguns/todos os tal que KB |= S
47
48
49
50
Circuitos digitais
Vocabulrio a Objectos : A1, A2, X1, X2, O1, C1, 0, 1, 2, 3, OR, AN D, XOR, N OT . Funes : Sinal/1, T ype/1, In/2 e Out/2. co Predicados : Ligado/2.
51
52
53
54
Interrogaes ` teoria co a
Saber quais os valores de input necessrios para se ter a primeira sa a 0 e a a da segunda sa a 1 ? da Signal(In(1, C1)) = i1 Signal(In(2, C1)) = i2 Signal(In(3, C1)) = i3 Signal(Out(1, C1)) = 0 Signal(Out(2, C2)) = 1 Obter a tabela de entrada-sa para o circuito: da Signal(In(1, C1)) = i1 Signal(In(2, C1)) = i2 Signal(In(3, C1)) = i3 Signal(Out(1, C1)) = o1 Signal(Out(2, C2)) = o2 Nota: Pode-se generalizar a modelao para efectuar diagnstico: sabendo quais os ca o valores de entrada e sa determinar quais os circuitos que se encontram avariados da (e quais as suas falhas).
55
Sumrio a
Lgica de Primeira Ordem: o objectos e relaes so primitivas semnticas co a a sintaxe: constantes, funes, predicados, igualdade, quanticadores co Maior poder expressivo: suciente para denir o mundo do Wumpus e circuitos electrnicos. o Apesar da sua expressividade existem limitaes inerentes que no so ultraco a a passveis. a Teoremas meta-lgicos fornecem resultados fundamentias para toda a Mao temtica e Informtica. a a Racioc em Lgica de Primeira Ordem indecid nio o e vel. Esto a ser activamente estudados fragmentos decid a veis e sucientemente expressivos para representar conhecimento ontolgico. o
56
Resumo
Reduo de inferncia em lgica de primeira ordem ` inferncia em lgica ca e o a e o proposicional Unicao ca Modus Ponens Generalizado Encadeamento para a frente e para trs a Programao em Lgica ca o Resoluo ca
Resenha Histrica o
450a.c. 322a.c. 1565 1847 1879 1922 1930 1930 1931 1960 1965 Esticos o Aristteles o Cardano Boole Frege Wittgenstein Gdel o Herbrand Gdel o Davis/Putnam Robinson lgica proposicional, inferncia (possivelmente) o e silogismos (regras de inferncia), quanticadores e teoria da probabilidade (lgica proposicional + incerteza) o lgica proposicional (novamente) o lgica de primeira ordem o prova por tabelas de verdade algoritmo completo para LPO algoritmo completo para LPO (reduo ao caso proposicional) ca algoritmo completo para aritmtica e algoritmo ecaz para lgica proposicional o algoritmo ecaz para LPOresoluo ca
Reduo (cont.) ca
Resultado: uma frase bsica consequncia da nova KB sse consequncia da KB a e e e e original Resultado: toda a KB em LPO pode ser proposicionalizada preservando a relao ca de consequncia lgica e o Ideia: proposicionalizar KB e pergunta, aplicar resoluo, devolver resultado ca Problema: com s mbolos de funo, existe um nmero innito de termos bsicos, ca u a e.g., F ather(F ather(F ather(John))) Teorema: Herbrand (1930). Se frase consequncia de uma KB em LPO, e e ento consequncia de um subconjunto nito da KB proposicional a e e Ideia: De n = 0 at fazer e gerar uma KB prop. instanciando os termos com profundidade-n vericar se consequncia desta KB e e
Problema: funciona se consequncia, pode no terminar se no cone e a a e sequncia e Teorema: Turing (1936), Church (1936), consequncia em LPO semidecid e e vel
10
11
Unicao ca
Podemos obter a concluso imediatamente se conseguirmos encontrar uma substia tuio tal que King(x) e Greedy(x) concordem com King(John) e Greedy(y) ca = {x/John, y/John} funciona Unificar(, ) = se = p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x) q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)
12
Unicao ca
Podemos obter a concluso imediatamente se conseguirmos encontrar uma substia tuio tal que King(x) e Greedy(x) concordem com King(John) e Greedy(y) ca = {x/John, y/John} funciona Unificar(, ) = se = p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x) q Knows(John, Jane) {x/Jane} Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ)
13
Unicao ca
Podemos obter a concluso imediatamente se conseguirmos encontrar uma substia tuio tal que King(x) e Greedy(x) concordem com King(John) e Greedy(y) ca = {x/John, y/John} funciona Unificar(, ) = se = p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x) q Knows(John, Jane) {x/Jane} Knows(y, OJ) {x/OJ, y/John} Knows(y, M other(y)) Knows(x, OJ)
14
Unicao ca
Podemos obter a concluso imediatamente se conseguirmos encontrar uma substia tuio tal que King(x) e Greedy(x) concordem com King(John) e Greedy(y) ca = {x/John, y/John} funciona Unificar(, ) = se = p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x) q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ) {x/Jane} {x/OJ, y/John} {y/John, x/M other(John)}
15
Unicao ca
Podemos obter a concluso imediatamente se conseguirmos encontrar uma substia tuio tal que King(x) e Greedy(x) concordem com King(John) e Greedy(y) ca = {x/John, y/John} funciona Unificar(, ) = se = p Knows(John, x) Knows(John, x) Knows(John, x) Knows(John, x) q Knows(John, Jane) Knows(y, OJ) Knows(y, M other(y)) Knows(x, OJ) {x/Jane} {x/OJ, y/John} {y/John, x/M other(John)} f ail
16
17
MPG slido e o
Temos de demonstrar que p1 , . . . , pn , (p1 . . . pn q) |= q desde que pi = pi para todo o i Lema: Para qualquer clsula denida p, temos p |= p por IU a 1. (p1 . . . pn q) |= (p1 . . . pn q) = (p1 . . . pn q) 2. p1 , . . . , pn |= p1 . . . pn |= p1 . . . pn 3. De 1 e 2, q conclui-se por Modus Ponens
18
19
20
21
22
23
24
25
26
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
27
Weapon(M1)
Sells(West,M1,Nono)
Hostile(Nono)
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
28
Weapon(M1)
Sells(West,M1,Nono)
Hostile(Nono)
American(West)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
29
30
31
Di(nt, q)Di(nt, sa) Di(q, nsw) Di(q, sa) Di(nsw, v) Di(nsw, sa) Di(v, sa) Colorable() Di(Red, Blue) Di(Red, Green) Di(Green, Red) Di(Green, Blue) Di(Blue, Red) Di(Blue, Green)
Colorable() inferido sse o CSP tem uma soluo e ca CSPs incluem 3SAT como caso especial, logo a concordncia NP-dif a e cil
32
33
34
American(x)
Weapon(y)
Sells(x,y,z)
Hostile(z)
35
American(West)
Weapon(y)
Sells(x,y,z)
Hostile(z)
{}
36
American(West)
Weapon(y)
Sells(x,y,z) Sells(West,M1,z)
Hostile(z) Hostile(Nono)
{}
Missile(y)
37
American(West)
Weapon(y)
Sells(x,y,z) Sells(West,M1,z)
Hostile(z) Hostile(Nono)
{}
Missile(y)
{ y/M1 }
38
American(West)
Weapon(y)
Sells(West,M1,z)
Hostile(z)
{}
{ z/Nono }
Missile(y)
Missile(M1)
Owns(Nono,M1)
{ y/M1 }
39
American(West)
Weapon(y)
Sells(West,M1,z)
Hostile(Nono)
{}
{ z/Nono }
Missile(y)
Missile(M1)
Owns(Nono,M1)
Enemy(Nono,America)
{ y/M1 }
{}
{}
{}
40
41
Programao em Lgica ca o
Moto: computao como inferncia em KBs lgicas ca e o 1. 2. 3. 4. 5. 6. 7. Programao em Lgica ca o Identicar problema Coligir informao ca Pausa para caf e Codicar informao na KB ca Representar instncia com factos a Efectuar consultas Encontrar factos errados Programao Usual ca Identicar problema Coligir informao ca Descobrir soluo ca Programar soluo ca Representar instncia com dados a Aplicar programa aos dados Depurar erros procedimentais
42
Sistemas Prolog
Essncia: encadeamento para trs com clusulas de Horn e a a Muito utilizadao na Europa, Japo (base do projecto da 5a gerao) a ca Tcnicas de compilao 60 milhes de LIPS e ca o Programa = conjunto de clusulas = head :- literal1, . . . literaln. a criminal(X) :- american(X), weapon(Y), sells(X,Y,Z), hostile(Z). Unicao eciente sem teste de ocorrncia ca e Obteno eciente de clusulas ca a Encadeamento para trs em profundidade primeiro, da esquerda para a direita a Predicados de sistema para efectuar aritmtica etc., e.g., X is Y*Z+3 e Assuno do Mundo Fechado (negao por falha) ca ca e.g., dado alive(X) :- not dead(X). alive(joe) sucede se dead(joe) falha
43
44
45
m1 mn k m1 mj1 mj+1 mn )
k,
em que Unificar( i, mj ) = . Por exemplo, Rich(x) U nhappy(x) Rich(Ken) U nhappy(Ken) com = {x/Ken} A regra de resoluo binria no completa. ca a a e
46
Factorizao ca
Seja C um subconjunto de literais com o mesmo sinal de uma clsula C e unicvel a a com unicador mais geral . A clusula C um factor de C. a e A regra de factorizao autoriza a adio de qualquer factor de uma clusula ao ca ca a conjunto de clusulas. a Exemplo: 1. 2. 3. 4. 5. P (x, f (x), z) P (u, w, w) P (x, y, z) P (A, z, z) P (x1, f (x1), f (x1)) P (A, z1, z1)) axioma axioma factor de 1. factor de 2. resolvente de 3. e 4.
Aplicar resoluo a CN F (KB ) ca resoluo binria + factorizao algoritmo completo para LPO ca a ca NOTA: Resoluo s aplicvel a KBs na forma clausal (disjunes de literais com ca o e a co todas as variveis quanticadads universalmente). a
Ano Lectivo 2010/2011 - 1o Semestre Cap tulo 9 47
American(West)
American(West)
Weapon(y)
Sells(West,y,z)
Hostile(z)
>
>
>
Missile(x)
Weapon(x)
Weapon(y)
Sells(West,y,z)
Hostile(z)
Missile(M1)
Missile(y)
Sells(West,y,z)
Hostile(z)
Missile(x)
Owns(Nono,x)
Sells(West,x,Nono)
Sells(West,M1,z)
Hostile(z)
Missile(M1)
Missile(M1)
Owns(Nono,M1)
Hostile(Nono)
Owns(Nono,M1)
Owns(Nono,M1)
Hostile(Nono)
Enemy(x,America)
Hostile(x)
Hostile(Nono)
Enemy(Nono,America)
Enemy(Nono,America)
>
>
>
>
>
>
>
>
>
>
>
>
48
49
50
Animal(Tuna)
Kills(Jack,Tuna)
Animal(x4) Loves(Jack,x4)
Loves(G(Jack),Jack) Animal(F(Jack))
Animal(F(x5)) Loves(G(x5),x5)
Loves(G(Jack),Jack)
53
Tratamento da igualdade
A igualdade introduz problemas extra no algoritmo de inferncia. Existem duas e grandes classes de aproximaes para lidar com o predicado de igualdade: co 1. Atravs da incluso dos axiomas para a igualdade. e a 2. Recorrendo a regras de inferncia adicionais. e
54
55
Demodulao ca
Para quaisquer termos x, y e z tal que U N IF Y (x, z) = e mn[z] um literal e contendo z: x = y, m1 . . . mn[z] m1 . . . mn[SU BST (, y)] A regra da Demodulao incompleta. ca e Exemplo: 0 + z1 = z1 P (0 + (0 + 2)) Q(3) P (0 + 2) Q(3)
56
Paramodulao ca
Para quaisquer termos x, y e z tal que U N IF Y (x, z) = : l1 . . . lk x = y, m1 . . . mn[z] SU BST (, l1 . . . lk m1 . . . mn[y]) A regra da Paramodulao completa quando combinada com factorizao, reca e ca soluo binria e axiomas de reexividade para variveis e funes. ca a a co Exemplo: P (x1) f (x1, h(y1)) = g(x1, y1), Q(h(f (h(x2), h(a)))) P (h(x2)) Q(h(g(h(x2), a))) Com x = f (x1, h(y1)) y = g(x1, y1) z = f (h(x2), h(a))
57
Estratgias de resoluo e ca
Preferncia pelas clusulas unitrias prefere resolues envolvendo pelo menos e a a co uma clusula contendo s um literal (clusula unitria) a o a a Resoluo Unitria s efectua resolues em que pelo menos uma das clusulas ca a o co a unitria. Mtodo incompleto. e a e Para o caso de clusulas de Horn, o mtodo completo. Assemelha-se ao encadea e e amento para a frente. Conjunto de suporte Identica-se inicialmente um conjunto de clusulas (o a conjunto de suporte set of support). Qualquer resoluo combina uma clusula ca a do conjunto de suporte com outra clusula, juntando a resolvente ao conjunto de a suporte. Se no houver cuidado, o mtodo pode ser incompleto. Escolhe-se normalmente a e como conjunto de suporte inicial a negao da frmula que se pretende demonstrar. ca o
58
Estratgias de resoluo e ca
Resoluo de entrada (input resolution) ca Combina sempre uma das clusulas de entrada (na base de conhecimento ou intera rogao) com outra clusula. Completa para clusulas de Horn. ca a a Resoluo linear ca Mtodo completo em que se permite resolver P com Q desde que P esteja na e base de conhecimento ou P uma antecessor de Q na rvore de prova. Mtodo e a e completo.
59
60
Algoritmo do OTTER
procedure Otter(sos, usable) inputs: sos, a set of supportclauses dening the problem (a global variable) usable, background knowledge potentially relevant to the problem repeat clause the lightest member of sos move clause from sos to usable Process(Infer(clause, usable), sos) until sos = [ ] or a refutation has been found function Infer(clause, usable) returns clauses resolve clause with each member of usable return the resulting clauses after applying Filter Efectua uma procura pelo melhor primeiror recorrendo ` noo de peso de uma a ca clusula. Clusulas unitrias so as mais leves. a a a a
Ano Lectivo 2010/2011 - 1o Semestre Cap tulo 9 61
62
Algoritmo do OTTER
procedure Process(clauses, sos) for each clause in clauses do clause Simplify(clause) merge identical literals discard clause if it is a tautology sos [clause sos] if clause has no literals then a refutation has been found if clause has one literal then look for unit refutation end O Prover9, sucessor do OTTER, recorre a outras regras de ps-processamento o e de simplicao que podem ser encontradas em http://www.mcs.anl.gov/ ca ~mccune/prover9.
63
64
Pr-processamento da teoria e
formulas(sos). 2 e * x = x # label(left_identity). [assumption]. 3 x * x = e # label(left_inverse). [assumption]. 4 (x * y) * z = x * (y * z) # label(associativity). [assumption]. 5 a * c1 = b # label(usol). [deny(1)]. 6 a * c2 = b # label(usol). [deny(1)]. 7 c2 != c1 # label(usol) # answer(usol). [deny(1)]. end_of_list. formulas(demodulators). 2 e * x = x # label(left_identity). [assumption]. 3 x * x = e # label(left_inverse). [assumption]. 4 (x * y) * z = x * (y * z) # label(associativity). 5 a * c1 = b # label(usol). [deny(1)]. 6 a * c2 = b # label(usol). [deny(1)]. end_of_list.
[assumption].
65
66
Sumrio a
Racioc em lgica de primeira ordem semidecid nio o e vel Regras de Instanciao Universal e Instanciao Existencial permitem reduzir ca ca inferncia em LPO ` inferncia em lgica proposicional. e a e o Algoritmo de unicao permite encontrar o unifcador mais geral entre 1 ou ca mais termos/tomos. a A regra de Modus Ponens Generalizado completa para clusulas de Horn, mas e a semidecid vel. Para o caso restrito Datalog, o problema da consequncia lgica e o e decid vel. Encadeamento para a frente pode ser utilizado em bases de dados dedutivas, sendo completo para programas Datalog. Encadeamento para trs utilizado em sistemas de programao em lgica, tal a e ca o como o Prolog, sofrendo de problemas de inferncias redundantes e possibilidade e de entrar em ciclo. Tabulao evita estes problemas. ca
Ano Lectivo 2010/2011 - 1o Semestre Cap tulo 9
67
Regra da resoluo binria com factorizao completa para a refutao em ca a ca e ca LPO. Igualdade requer introduo de axiomas extra ou utilizao de regras de inca ca ferncia adicionais (e.g. paramodulao). e ca Existem diversas estratgias para reduzir o espao de procura em sistemas de e c resoluo, sem sacricar completude. Estes sistemas podem ser utilizados para ca demonstrar teoremas e para vericar e sintetizar software e hardware.
68
Resumo
Limitaes da lgica clssica na representao do conhecimento co o a ca Lgica por omisso o a Lgica autoepistmica o e Semnticas de Programao em Lgica a ca o
O mundo aberto
Considere-se a pequena base de dados representada em lgica: o cadeira(iia) BD1 = lecciona(iia, t, 123) lecciona(iia, p, 456)
Quais as cadeiras s com aulas tericas? o o lecc(iia, p, 123)? lecc(sw, p, 123)? lecc(iia, p, 456)? lecc(sw, p, 456)? lecc(iia, p, 123) lecc(iia, p, 456)? lecc(sw, p, 123) lecc(sw, p, 456)? lecc(iia, p, 123)? lecc(sw, p, 123)? lecc(iia, p, 456)? lecc(sw, p, 456)? lecc(iia, p, 123) lecc(iia, p, 456)? lecc(sw, p, 123) lecc(sw, p, 456)?
O mundo aberto
Considere-se a pequena base de dados representada em lgica: o cadeira(iia) BD1 = lecciona(iia, t, 123) lecciona(iia, p, 456)
Quais as cadeiras s com aulas tericas? o o lecc(iia, p, 123) lecc(sw, p, 123) lecc(iia, p, 456) lecc(sw, p, 456) lecc(iia, p, 123) lecc(iia, p, 456) lecc(sw, p, 123) lecc(sw, p, 456) lecc(iia, p, 123) lecc(sw, p, 123) lecc(iia, p, 456) lecc(sw, p, 456) lecc(iia, p, 123) lecc(iia, p, 456) lecc(sw, p, 123) lecc(sw, p, 456)
Problemas da CWA
Considere-se a teoria praia cinema praia praia cinema aborrecido
Ser que se pode concluir aborrecido? a E de ? praia cinema praia cinema aborrecido
Problemas da CWA
Considere-se a teoria praia cinema praia praia cinema aborrecido
Ser que se pode concluir aborrecido? No, como se deseja. a a E de ? praia cinema praia cinema aborrecido
Sim! A teoria ca inconsistente, pois como nem praia nem cinema so conclu dos da teoria original, ento quer praia quer cinema so adicionados! a a Mais um exemplo ilustrando que o racioc com CWA no montono. nio e a o
Com a leitura Se e for consistente assumir 1, . . . , n ento , em que: a o pr-requisito e e 1, . . . , n a justicao e ca a concluso e a
10
Os passaritos novamente...
Normalmente as aves voam (Regra por defeito): ave(X) : voa(X) voa(X)
E o conhecimento imutvel (teoria W ) a X (pinguim(X) ave(X)) X (pinguim(X) voa(X)) ave(tweety) O que se pode concluir da teoria por omisso anterior? a E se juntarmos pinguim(tweety) ?
11
Clculo de extenses a o
E uma extenso sse e a E0 = W Ei+1 = Cn(Ei) | E = Ei i=0
: 1 ,...,n
e Ei e 1 E, . . . , n E
Em geral, o clculo de extenses indecid para teorias de lgica de primeira a o e vel o ordem. Mas para o caso proposicional o problema decid e vel.
12
Outro exemplo
Normalmente, os cisnes so brancos. a cisne(X) : branco(X) branco(X) Normalmente, os cisnes australianos so pretos. a cisne(X) australiano(X) preto(X) Bruce um cisne australiano. e cisne(bruce) australiano(bruce) Nada preto e branco simultaneamente e X (branco(X) preto(X)) : preto(X)
13
14
Exerc cio
Quais so extenses da teoria a o D=
adulto
com W = {estudante} ?
15
16
17
18
19
Programao em Lgica ca o
Programa em lgica denido ou positivo um conjunto de regras: o e A : B1, . . . , Bm. em que A, B1, . . . , Bm so tomos da Lgica de Primeira Ordem. Se n = 0 temos a a o um facto representado por A. Uma regra l-se A se B1 e . . . e Bm, correspondendo ` implicao e a ca (B1 . . . Bm A) ou seja, um conjunto de clusulas de Horn. e a Algumas variantes da programao em lgica admitem restries de integridade ca o co com a forma: : B1, . . . , Bm. Os programas denidos datalog so aqueles que no utilizam s a a mbolos de funo ca nos seus termos, i.e. os termos ou so variveis ou constantes. a a
20
21
22
23
24
Pode ser traduzido para q(T,Y,L,I,S) :- movie(T,Y,L,I,S), L < 100, InColor=true. q(T,Y,L,I,S) :- movie(T,Y,L,I,S), S != Fox, InColor=true. E o operador de diferena ? c
25
Consultas recursivas
A linguagem Datalog permite expressar consultas recursivas. Seja o predicado extensional sequelOf (X, Y ) utilizado para indicar que o lme Y uma sequela do lme X. e O predicado intensional f ollowOn(X, Y ) indica que o lme Y segue o X: followOn(X,Y) :- sequelOf(X,Y). followOn(X,Y) :- sequelOf(X,Z), followOn(Z,Y). sequelOf(Empire Strikes Back,Star Wars). sequelOf(Return of Jedi,Empire Strikes Back). A lgebra relacional no sucientemente expressiva para representar este tipo de a a e consultas!
26
Operador de Diferena c
O operador de diferena da lgebra relacional necessita da negao por falha para ser c a ca traduzido correctamente (assumindo adicionalmente a hiptese do mundo fechado). o
27
natural(0), natural(s(0)), natural(s(s(0)), . . . soma(0, 0, 0), soma(0, 0, s(0)), soma(0, s(0), 0), . . . , soma(s(0), s(0), s(0)), soma(s(s(0)), 0, 0), soma(s(s(0)), s(0), 0), . . . , soma(s(s(0)), s(s(0)), s(s(0))), . . .
28
29
30
31
Exemplo
laugh :- joke. joke. hear_joke :- joke, not deaf. understand_joke :- hear_joke, not stupid. laugh :- understand_joke. laugh :- stupid, not joke. Qual o modelo estvel deste programa? a
32
As aves
O seguinte programa tambm s tem um modelo estvel do qual e o a voa(X) : ave(X), not anormal(X). ave(X) : pinguim(X). anormal(X) : pinguim(X). ave(tweety). pinguim(joe). se conclui que voa(tweety) e que not voa(joe). Se juntarmos o facto pinguim(tweety) deixaremos de concluir voa(tweety).
33
34
Modelo bem-fundado
Considere-se o programa (no tendo modelos estveis): a a vence(X) : jogada(X, Y ), not vence(Y ). jogada(a, b). jogada(b, c). jogada(b, f ). jogada(c, d). jogada(c, e). jogada(d, d). jogada(e, c). O par T, F um modelo estvel parcial (a 3 valores) sse e a T = (T ) e F = HP (T ) O menor deles pode ser obtido iterando o operador a partir de {}. Esse e designado por modelo bem-fundado e pode ser obtido em tempo polinomial.
35
36
37
38
39
Complexidade datalog
Denem-se vrias medidas de complexidade para o racioc com programas em a nio lgica datalog o data complexity xa-se o programa, varia-se a base de dados (predicados extensionais) e a consulta. program complexity xa-se a base de dados, varia-se a base de dados intensional (programa) e a consulta. combined complexity quer os predicados intensionais, quer os predicados extensionais e a consulta fazem parte do input. Pode-se demonstrar que para o caso datalog a combined complexity coincide com a program complexity. A noo de combined complexity corresponde `quela ca a do transparente anterior.
40
Complexidade datalog
data complexity denidos P-complete no recursivos estraticados polinomial a estraticados P-complete Bem-fundado P-complete Estvel a coNP-complete (combined) complexity EXPTIME-complete PSPACE-complete EXPTIME-complete EXPTIME-complete co-NEXPTIME
41
42
Planeamento
Resumo
Procura vs. planeamento Planeamento proposicional Clculo de Situaoes a c Operadores PDDL e STRIPS Planeamento progressivo e regressivo Planeamento com ordem parcial
Start
...
Finish
Read A Book
Planeamento Clssico a
Consideram-se apenas ambientes: Totalmente observveis a Deterministas Finitos Estticos a Discretos
Planeamento proposicional
Considere-se novamente o Wumpus e a descrio em lgica proposicional vista ca o anteriormente: B1,1 (P1,2 P2,1) S1,1 (W1,2 W2,1) . . . W1,1 W1,2 . . . W4,3 W4,4 W1,1 W1,2 W1,1 W1,1 . . . W4,3 W4,4 As frmulas anteriores lidam com os aspectos atemporais do mundo. Como tratar o os aspectos dinmicos? a
O frame problem
Suponha-se que o agente pretende avanar no instante 0. A partir do axioma c anterior: L0 F acingEast0 F orward0 (L1 L1 ) 2,1 1,1 1,1 obtm-se ASK(KB, L1 ) = true como seria de esperar. e 2,1 Mas ASK(KB, HaveArrow1)?
O frame problem
Suponha-se que o agente pretende avanar no instante 0. A partir do axioma c anterior: L0 F acingEast0 F orward0 (L1 L1 ) 2,1 1,1 1,1 obtm-se ASK(KB, L1 ) = true como seria de esperar. e 2,1 Mas KB |= HaveArrow1? NAO! Nem KB |= HaveArrow1 ! Os axiomas de efeito no dizem o que ca inalterado! a
Os axiomas de quiescncia e
Podemos explicitar o quye ca inalterado atravs de axiomas de quiescncia (frame e e axioms) F orwardt (HaveArrowt HaveArrowt+1) F orwardt (W umpusAlivet W umpusAlivet+1) ... Obriga ` escrita de inmeros axiomas. E prefer pensar em termos de uentes a u vel especicando os axiomas de estado sucessor, genericamente F t+1 AccaoCausaF t (F t AccaoCausaN aoF t)
10
Por exemplo, HaveArrowt+1 (HaveArrowt Shoott) Lt+1 (Lt (Southt F orwardt)) 1,2 1,1 t (L2,1 (W estt F orwardt)) (Lt (F orwardt Bumpt+1)) 1,1
11
Clculo de situaes a co
Formalismo em lgica de primeira ordem que permite o racioc sobre o resultado o nio das aces. co O clculo de situaoes evita lidar explicitamente com o tempo, recorrendo em vez a c disso a situaes. co Uma situao denota o estado resultante de se aplicar uma aco. ca ca Aces so denotadas por termos lgicos (e.g. F orward, M ove, etc...) co a o Situaes so denotadas por termos lgicos, constru a partir da situao inico a o dos ca cial (normalmente designada por S0) e por aplicao de uma aco a uma situao, ca ca ca representado pela expresso funcional Result(a, s). a Fluentes so predicados e funes que variam de uma situao para outra. Por a co ca conveno utiliza-se o ultimo argumento do predicado ou funo para identicar a ca ca situao a que se refere. ca Podem-se ainda utilizar predicados ou funes eternas/intemporais. co
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 12
Exemplo
Factos vericam-se em situaes, em vez de serem eternos co E.g., Holding(Gold, N ow) e no Holding(Gold) a Clculo de Situaoes uma das formas de representar a mudana em LPO: a c c Juntar um argumento de situao a cada predicado no-eterno ca a E.g., N ow em Holding(Gold, N ow) denota a situao ca Situaes so ligadas por intermdio da funo Result co a e ca Result(a, s) a situao resultante de se efectuar a em s (e.g. Result(F orward, S0)). e ca
13
PIT
Gold
PIT
PIT
Gold
PIT
PIT
S1
PIT
Forward
S0
14
Descrevendo acoes c
Modelo simplicado do mundo do Wumpus em que ignorada a orintao e em e ca que o agente se pode deslocar para qualquer casa adjacente. Assuma-se que o agente est na casa [1, 1] e o ouro na casa [1, 2]. a Vamos utilizar os uentes At(o, x, s) e Holding(o, s) para representar, que o se encontra na casa x na situao s e que o agente possui o na situao s, respectica ca vamente. Descrio da situao inicial ca ca At(o, x, S0) [(o = Agent x = [1, 1]) (o = G1 x = [1, 2])] Holding(o, S0) Gold(G1) Adjacent([1, 1], [1, 2]) Adjacent([1, 2], [1, 1]) Nota: O conhecimento At(Agent, [1, 1], S0) At(Gold, [1, 2], S0) no captura a a totalidade da situao, pois no especica conhecimento negativo relativamente ao ca a uente At/3 Princ do Mundo Aberto!!! pio
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 15
16
Axiomas de Efeito: P oss(a, s) mudanas devidas ` aco c a ca P oss(Go(x, y), s) P oss(Grab(g), s) P oss(Release(g), s) At(Agent, y, Result(Go(x, y), s)) Holding(g, Result(Grab(g), s)) Holding(g, Result(Release(g), s))
17
Interrogando a teoria
Ser que se pode concluir a At(Agent, [1, 2], Result(Go([1, 1], [1, 2]), S0)) ? e At(G1, [1, 2], Result(Go([1, 1], [1, 2]), S0)) ?
18
Interrogando a teoria
Ser que se pode concluir a At(Agent, [1, 2], Result(Go([1, 1], [1, 2]), S0)) ? e At(G1, [1, 2], Result(Go([1, 1], [1, 2]), S0)) ? NAO! Sim
Problema: No basta dizer aquilo que se altera com a aco mas tambm nea ca e e cessrio dizer aquilo que ca inalterado. a Os axiomas de quiescincia (frame axioms) especicam o que se mantm inalterado e e com a aco ca At(o, x, s) (o = Agent) Holding(o, s) At(o, x, Result(Go(x, y), s)) Se existirem F uentes e A aces necessitaremos de no pior caso de A F co axiomas.
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 19
Problemas a enfrentar
Problema da Quiescncia: encontrar uma forma elegante de lidar com o que se e mantm inaltervel e a (a) representaoevitar axiomas de quiescncia ca e (b) infernciaevitar cpias repetidas para manter o estado e o Problema da Qualicao: descries das aces reais obrigam ` considerao de ca co co a ca uma srie de casos excepcionais o que acontece se o ouro estive escorregadio ou e pregado ao cho ou . . . a Problema da Ramicao: aces reais tm muitas consequncias secundrias o ca co e e a que acontece ` poeira em cima do ouro . . . a
20
21
22
23
24
25
26
27
28
Operadores STRIPS
A aproximao STRIPS (STanford Research Institute Problem Solver) um subconca e junto da PDDL que no permite literais negativos nas precondies e nos objectivos. a co Descrio organizada de acoes, linguagem restrita ca c Accao: Buy(x) Precondicao: At(p), Sells(p, x) Efeito: Have(x) Accao: Go(x) Precondicao: At(y) Efeito: At(x), At(y) [Nota: abstrai de muitos detalhes importantes!] Linguagem restrita algoritmo eciente Precondio: conjuno de literais positivos ca ca Efeito: conjuno de literais ca
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 29
At(p) Sells(p,x)
Buy(x)
Have(x)
30
31
Exemplo
Considere-se o estado inicial e os operadores abaixo: {em(f ct), com(dinheiro), praia(caparica), local(caparica), local(f ct)} Accao: ir(?X) Precondicao: em(?Y ), local(?X) Efeito: em(?X), em(?Y ) Accao: banhoSol Precondicao: em(?Y ), praia(?Y ) Efeito: com(bronze), com(sede), sem(sede) Accao: beberBijeca Precondicao: com(sede), com(dinheiro) Efeito: com(sede), com(dinheiro), sem(sede) Objectivo: car com bronze e sem sede
32
33
Complexidade do planeamento
Se os operadores so fornecidos no INPUT ento: a a A existncia de um plano descrito na linguagem PDDL ou STRIPS um proe e blema EXPSPACE-completo A existncia de um plano de tamanho n descrito na linguagem PDDL ou e STRIPS um problema NEXPTIME-completo (mais fcil do que o anterior) e a
36
Complexidade do planeamento
Pode-se escrever algoritmo especco
Nenhum
PSPACE-complete ou
37
40
Voltando ao Supermercado
Descrio organizada de acoes, linguagem restrita ca c Accao: Buy(x) Precondicao: At(p), Sells(p, x) Efeito: Have(x) Accao: Go(x) Precondicao: At(y) Efeito: At(x), At(y)
At(p) Sells(p,x)
Buy(x)
Have(x)
41
Exemplo
Start At(Home) Sells(HWS,Drill) Sells(SM,Milk) Sells(SM,Ban.)
Have(Milk)
42
Exemplo
Start At(Home) Sells(HWS,Drill) Sells(SM,Milk) Sells(SM,Ban.)
At(HWS)
Sells(HWS,Drill)
Buy(Drill)
At(x) Go(SM)
Have(Milk)
43
Exemplo
Start
At(Home) Go(HWS)
At(HWS)
Sells(HWS,Drill)
Buy(Drill)
At(HWS) Go(SM)
At(SM) Go(Home)
Have(Milk)
44
45
Processo de Planeamento
Operadores em planos parciais: adiciona uma ligao de uma aco existente para uma condio aberta ca ca ca adiciona um passo para garantir uma condio aberta ca ordenar um passo relativamente a outro para eliminar poss veis conitos Evoluem gradualmente de planos incompletos/com falhas para planos correctos e completos Retrocede se uma condio no alcanvel ou se um conito no se puder resolver. ca a e ca a
46
Algoritmo POP
function POP(initial, goal, operators) returns plan plan Make-Initial-Plan(initial, goal) loop do if Solution?( plan) then return plan Sneed, c Select-Subgoal( plan) Choose-Operator( plan, operators, Sneed, c) Resolve-Threats( plan) end function Select-Subgoal( plan) returns Sneed, c pick a plan step Sneed from Steps( plan) with a precondition c that has not been achieved return Sneed, c
47
Algoritmo POP
48
procedure Choose-Operator(plan, operators, Sneed, c) choose a step Sadd from operators or Steps( plan) that has c as an eect if there is no such step then fail c add the causal link Sadd Sneed to Links( plan) add the ordering constraint Sadd Sneed to Orderings( plan) if Sadd is a newly added step from operators then add Sadd to Steps( plan) add Start Sadd F inish to Orderings( plan) procedure Resolve-Threats(plan)
c for each Sthreat that threatens a link Si Sj in Links( plan) do choose either Demotion: Add Sthreat Si to Orderings( plan) Promotion: Add Sj Sthreat to Orderings( plan) if not Consistent( plan) then fail end
49
Ameaas e promoo/despromoo c ca ca
Um passo uma ameaa (conituante) quando potencialmente destri uma condio e c o ca j alcanada por uma ligao causual. E.g., Go(Home) uma ameaa a At(Supermarket): a c ca e c
DEMOTION Go(Supermarket)
Despromoo: ca Go(Supermarket)
Go(Home)
At(Home)
colocar
antes
de
At(Supermarket)
Buy(Milk)
PROMOTION
At(Home)
Finish
O teste de consistncia assegura que no foram introduzidos ciclos nas relaoes de e a c ordem temporais.
50
Propriedades do POP
Algoritmo no-determinista: retrocede no caso de falha para pontos de escolha: a escolha de Sadd para alcanar Sneed c escolha de promoo ou despromoo ca ca seleco de Sneed irrevogvel ca e a POP slido, completo, e sistemtico (sem repeties) e o a co Extenses para disjuno, universais, negao e condicionais na denio dos opeo ca ca ca radores (linguagem ADL). Consegue-se ecincia com boas heur e sticas derivadas da descrio do problema ca Particularmente bom para problemas com muitos sub-objectivos fracamente interligados
51
A B C
C B A
Start State
Goal State
Clear(x) On(x,z)
PutOn(x,y)
~On(x,z) ~Clear(y) Clear(z) On(x,y)
PutOnTable(x)
~On(x,z) Clear(z) On(x,Table)
52
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
On(A,B)
On(B,C)
A B C
FINISH
53
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
PutOn(B,C)
On(A,B)
On(B,C)
A B C
FINISH
54
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
PutOn(B,C)
PutOn(A,B)
On(A,B)
On(B,C)
A B C
FINISH
55
START
On(C,A) On(A,Table) Cl(B) On(B,Table) Cl(C)
On(C,z) Cl(C)
PutOn(A,B) clobbers Cl(B) => order after PutOn(B,C) PutOn(B,C) clobbers Cl(C) => order after PutOnTable(C)
PutOnTable(C)
PutOn(B,C)
PutOn(A,B)
On(A,B)
On(B,C)
A B C
FINISH
56
57
58
Plano soluo ca
Start S(a)H(a)M(b)C(c,b)H(c)
C(a,b) Finish
59
Start C(c,b)S(a)H(a)M(b)H(c) 3 C(c,b) B Divorciar(c,b) C(c,b)S(b)S(c) 2 S(a)H(a)S(b)M(b) A Casar(a,b) C(a,b)S(a)S(b) 4 1 C(a,b) C(c,b) Finish PassoBameaa4: BtemdeocorrerantesdeC PassoCameaa2: CocorreantesdeB,ou X CocorredepoisdeA
X
C
60
Start C(c,b)S(a)H(a)M(b)H(c) 3 C(c,b) B Divorciar(c,b) C(c,b)S(b)S(c) 2 S(a)H(a)S(b)M(b) A Casar(a,b) C(a,b)S(a)S(b) 4 1 C(a,b) C(c,b) Finish C S(b)S(c)M(b)H(c) Casar(c,b) C(c,b)S(c)S(b) PassoBameaa4: BtemdeocorrerantesdeC PassoCameaa2: CocorredepoisdeA
61
Start C(c,b)S(a)H(a)M(b)H(c)
C(c,b) B Divorciar(c,b) C(c,b)S(b)S(c) 2 S(a)H(a)S(b)M(b) A Casar(a,b) C(a,b)S(a)S(b) 4 1 C(a,b) C(c,b) Finish 5 S(b)S(c)M(b)H(c) C Casar(c,b) C(c,b)S(c)S(b) S(b)C(a,b)
62
Z Tuga e
O Z Tuga, com tanto campeonato Europeu de Futebol, no tem dedicado muito e a tempo ` sua Maria. Para acalmar os nimos decidiu organizar um jantar a dois, a a em que ele pe a mesa! Dada a sua manifesta ignorncia na organizao destes o a ca eventos pediu conselhos ` Maria, que o instruiu: a - Podes pr uma toalha (ou no), mas s o podes fazer se no estiver nada em o a o a cima da mesa. - Para a mesa car arranjadinha s deves colocar os talheres e os copos depois dos o pratos. - A ordem de colocao dos talheres e dos copos indiferente, mas s depois dos ca e o pratos! Podem existir planos com aces repetidas ? co
63
Z Tuga e
Accao: PrToalha o Precondicao: V azia(M esa) Efeito: T oalha, V azia(M esa) Accao: PrPratos o Precondicao: Efeito: P ratos, V azia(M esa) Accao: PrCopos o Precondicao: P ratos Efeito: Copos, V azia(M esa) Accao: PrTalheres o Precondicao: P ratos Efeito: T alheres, V azia(M esa)
64
Vazia PrToalha Toalha Vazia Pratos PrTalheres Talheres Vazia PrPratos Pratos Vazia
Toalha
Talheres
Pratos
Copos
Finish
65
Start Vazia
Toalha
Talheres
Pratos
Copos
Finish
66
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Histria
Antes da apario do Graphplan, a maior parte da investigao em planeamento estava centrada em planeadores com ordem parcial POP, SNLP, UCPOP, etc. Graphplan foi proposto em 1995 por Blum e Furst, provocando admirao porque era ordens de grandeza mais rpido Diversos sistemas de planeamento a seguir utilizaram algumas das ideias do Graphplan IPP, STAN, GraphHTN, SGP, Blackbox, Medic, TGP, LPG
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Motivao
Uma fonte de ineficincia o factor de ramificao elevado em qualquer dos tipos de planeamento analisados anteriormente
g4 s
0
a4 a5
g1 g2
a1 a2 g0
a3 Uma tcnica para reduzir o factor de ramificao passa por: g3 Criar um problema relaxado Remover algumas restries do problema original Deseja-se que o problema relaxado seja de fcil resoluo (tempo polinomial) As solues do problema relaxado incluiro todas as solues do problema original Depois efectuar uma verso modificada da procura original Restringe o espao de procura de forma a incluir apenas as solues que ocorrem no problema relaxado
g5
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Resumo
O algoritmo Graphplan Contruo de grafos de planeamento Excluso Mtua Extraco da Soluo Heursticas para o POP Discusso
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Graphplan
procedure Graphplan: for k = 0, 1, 2, Expanso do grafo: criar um grafo de planeamento contendo k nveis Verificar se o grafo de planeamento satisfaz uma condio problema necessria (mas insuficiente) para a existncia de um plano relaxado Se satisfizer, ento Literais Aces Extrair soluo: possveis possveis Procura regressiva, no estado si no estado si modificada para considerar apenas as aces no grafo de planeamento Caso se encontre uma soluo, ento devolv-la
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
O Grafo de Planeamento
Camadas alternadas de literais e aces concretos (ground) Todas as aces que possivelmente podem ocorrer em cada instante de tempo Todos os literais produzidos por essas aces
nvel estado i-1 nvel estado 0 (os literais em s0) nvel aco i nvel estado i
precondies Aces de Persistncia : propagam literais para o nvel seguinte. Servem para tratar o problema da quiescncia.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
efeitos
Suponha-se que pretende preparar um jantar de surpresa para o seu/ sua cara-metade (que est a dormir e no deve ser acordado) s0 = {garbage, cleanHands, quiet} g = {dinner, present, garbage}
Aco Precondies Efeitos
Tambm se adicionam aces de persistncia: uma para cada literal L, com precondio L e efeito L.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 7
Exemplo (continuao)
nvel estado 0: nvel estado 0 nvel aco 1 nvel estado 1 {todos os tomos em s0} U {negao de todos os tomos no em s0} nvel aco 1: {todas as aces cujas precondies esto satisfeitas em s0} nvel estado 1: {todos os efeitos de todas as aces no nvel aco 1}
Precondies Efeitos
Aco
cook() cleanHands dinner wrap() quiet present carry() nenhum garbage, cleanHands dolly() nenhum garbage, quiet Juntamente com as aces de persistncia
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
dinner present
dinner present
8
Excluso Mtua
Duas aces no mesmo nvel de aco so mutex se Efeitos inconsistentes : o efeito de uma nega o efeito da outra Interferncia: uma remove a precondio da outra Necessidades em competio: tm precondies mutuamente exclusivas Caso contrrio, no interferem uma com a outra Ambas podem aparecer num plano soluo Dois literais no mesmo nvel estado so mutex se Suporte inconsistente: um a negao do outro, ou todas as maneiras de os alcanar so mutex
9
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Exemplo (continuao)
Aumentar o grafo para indicar mutexes nvel estado 0 nvel aco 1 nvel estado 1 carry mutex com aco de persistncia para garbage (efeitos inconsistentes) dolly mutex com wrap interferncia ~quiet mutex com present suporte inconsistente quer cook quer wrap mutex com uma aco de persistncia
Precondies Efeitos
Aco
cook() cleanHands dinner wrap() quiet present carry() nenhum garbage, cleanHands dolly() nenhum garbage, quiet dinner Juntamente com as aces de persistncia
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
present
dinner present
10
Exemplo (continuao)
Verificar se existe um nvel estado 0 action-level 1 state-level 0 nvel aco 1 plano possvel O objectivo {garbage, dinner, present} Repare-se que Todos so possveis em s1 Nenhum mutex com qq. outro Logo, h hipteses de um plano existir Tentar encontr-lo Extraco da soluo
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
dinner present
dinner present
11
Extraco da soluo
Os objectivos que estamos a tentar atingir O nvel de estado sj
procedure Solution-extraction(g,j) se j=0 ento devolver soluo Uma aco real ou de persistncia para cada literal l em g escolher no deterministicamente uma aco statestateactiona usar no estado s j1 para alcanar l level level level se qualquer par de aces mutex i-1 i i ento retroceder g := {as precondies das aces escolhidas} Solution-extraction(g, j1) end Solution-extraction
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/ 12
Exemplo (continuao)
Dois conjuntos de aces para os objectivos no nvel estado 1 Nenhum serve: ambos os conjuntos contm aces que so mutex
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
dinner present
dinner present
13
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
14
Exemplo (continuao)
nvel estado 0 nvel aco 1 nvel estado 1 nvel aco 2 nvel estado 2
Iterar e efectuar uma expanso do grafo adicional Gerar outro nvel aco e outro nvel estado
dinner present
dinner present
dinner present
15
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Exemplo (continuao)
nvel estado 00 nvel aco 1 1nvel estado 1 nvel aco 22 nvel estado 2 state-level action-level state-level 1 action-level state-level
Extraco da soluo 12 combinaes Trs maneiras para garb Duas maneiras para dinner Duas maneiras para present
dinner present
dinner present
dinner present
16
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Exemplo (continuao)
nvel estado 00 nvel aco 1 1nvel estado 1 nvel aco 22 nvel estado 2 state-level action-level state-level 1 action-level state-level
dinner present
dinner present
dinner present
17
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Exemplo (continuao)
nvel estado 00 nvel aco 1 1nvel estado 1 nvel aco 22 nvel estado 2 state-level action-level state-level 1 action-level state-level
Chamar SolutionExtraction recursivamente no nvel 2 Tem sucesso Soluo cujo comprimento paralelo 2
dinner present
dinner present
dinner present
18
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Vantagem: a procura regressiva do Graphplan que a parte difcils olha para as aces no grafo de planeamento Espao de procura mais pequeno do que o do POP; logo mais rpido Desvantagem: para gerar o grafo de planeamento, Graphplan cria um nmero enorme de literais concretos (instanciados) Muitos deles podem ser irrelevante Pode-se aliviar este problema (mas no eliminar) atribuindo tipos de dados a variveis e constantes S se instanciam variveis com termos do mesmo tipo de dados
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
19
O grafo de planeamento pode ser gerado em tempo polinomial e termina sempre aps um nmero finito de passos: Critrio de paragem: quando dois nveis so idnticos. Pode-se utilizar o grafo de planeamento para obter heursticas para o POP. Constri-se o grafo de planeamento at obter um nvel estado em que todos os objectivos sejam alcanados e no sejam mutex dois a dois. A heurstica assim obtida admissvel e pode ser utilizada conjuntamente com o POP, como por exemplo no sistema RePOP de Nguyen e Kambhampati (2001)
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
20
Planeamento proposicional
Com os sucessos obtidos com os algoritmos para resolver o problema da satisfatibilidade surgiu a ideia de os utilizar para atacar o problema do planeamento Assim, surgem uma srie de algoritmos de planeamento baseados na traduo para problemas de satisfatibilidade em lgica proposicional. A juno com o grafos de planeamento resulta em grandes ganhos de performance
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
21
Traduo genrica
Proposicionalizar as aces Definir o estado inicial: juntar F0 para cada fluente no estado inicial e F0 para cada fluente no mencionado no estado inicial Proposicionalizar o objectivo Adicionar os axiomas de estado sucessor Adicionar axiomas de precondio: para cada aco concreta A juntar At => PRE(A)t Adicionar axiomas de excluso de aces.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
22
Aproximao Genrica
Um problema de planeamento limitado um par (P,n): P um problema de planeamento; n um inteiro positivo Qualquer soluo de comprimento n para P soluo para (P,n) Algoritmo de planeamento: Efectuar aprofundamento progressivo ou procura em profundidade limitada (SATPLAN): for n = 0, 1, 2, , codificar (P,n) como problema de satisfatibilidade se satisfazvel, ento A partir do modelo que satisfaz , um plano soluo pode ser construdo, logo constri-o e devolve-o
23
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Problema principal
A dimenso da frmula o principal problema. Por exemplo, o nmero de smbolos de proposio para representar aces limitado por n * | Acc | * |O| P em que n o comprimento do plano, |Acc| o nmero de esquemas de aces no domnio, |O| o nmero de objectos e P a aridade mxima dos fluentes. O nmero de clusulas ainda maior Uma das tcnicas consiste em substituir cada fluente de aridade m por m smbolos proposicionais Por exemplo, move(r1,l2,l1,0) pode ser codificado atravs de: move1(r1)0 move2(l2)0 move3(l1)0 Esta tcnica permite na prtica limitar muito o nmero de clusulas geradas
24
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
BlackBox
O sistema BlackBox combina expanso do grafo de planeamento com verificao de satisfatibilidade Resumidamente: for n = 0, 1, 2, Expanso do grafo: Criar um grafo de planeamento com n nveis Verificar se o grafo de planeamento satisfaz uma condio necessria (mas insuficiente) para a existncia de um plano Se satifazer, ento Codificar (P,n) como um problema de satisfatibilidade mas incluindo apenas as aces no grafo de planeamento Se for satisfazvel ento devolver a soluo
25
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
Os requisitos de memria continuam a ser enormes, mas menos do que a tcnica de satisfatibilidade sozinha Foi um dos planeadores mais rpidos na competio de 1998 O seu sucessor SatPlan 2006 ficou em primeiro lugar empatado no ICAPS-2006 Planning Competition (IPC-6) na categoria de planeamento ptimo.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
26
Tcnicas semelhantes (mas mais declarativas) podem ser utilizadas para reduzir problemas de planeamento ao clculo de modelos estveis de problemas de planeamento limitados. Existem diversas tradues que no abordaremos aqui.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License: http://creativecommons.org/licenses/by-nc-sa/2.0/
27
Incerteza
Resumo
Incerteza Probabilidade Sintaxe e semntica a Inferncia e Independncia e regra de Bayes e
Incerteza
Seja a aco At = sair para o aeroporto t minutos antes do vo ca o Ser que At me permite chegar a horas? a Problemas: 1) observaes parciais (condioes da estrada, outros condutores, etc.) co c 2) sensores com ru (not do cias de trnsito) a 3) incerteza no resultado das aces (pneu vazio, etc.) co 4) complexidade imensa da modelao e predio do trnsito ca ca a Logo numa aproximao lgica pura, das duas uma ca o 1) arrisca-se a ser falsa: A25 permite-me chegar a horas ou 2) leva a concluses que so demasiado fracas para a tomada de decises: o a o A25 permitir-me- chegar a horas se no existir acidente na ponte a a e se no chover e se os pneus do meu carro no se furarem etc etc. a a (A1440 pode garantir-me com alguma certeza que chegarei a tempo mas terei de car durante a noite no aeroporto . . .)
Probabilidade
Asseres probabil co sticas sumariam efeitos de preguia: incapacidade de enumerar excepes, qualicaes, etc. c co co ignorncia: desconhecimento de factos relevantes, condioes iniciais, etc. a c Probabilidades subjectivas ou Bayesianas: Probabilidades relacionam proposioes com o estado de conhecimento do agente, c e.g., P (A25|no h not a a cias de acidentes) = 0.06 No so armaes acerca da tendncia probabil a a co e stica na situao actual ca (mas podem ser aprendidas a partir de experincia do passado de situaes semee co lhantes) As probabilidades das proposies alteram-se com nova evidncia: co e e.g., P (A25|no h not a a cias de acidentes, 5 a.m.) = 0.15 (Anlogo ao estado de consequncias lgicas em KB |= , no ` noo verdade.) a e o a a ca
Qual aco a escolher? ca Depende das minhas preferncias relativas a perder vos vs. gastronomia aeroe o porturia, etc. a Teoria da utilidade utilizada para representar e inferir preferncias e e Teoria da deciso = teoria da utilidade + teoria da probabilidade a
Fundamentos de probabilidades
Comece-se com um conjunto o espao amostra c um ponto amostra/mundo poss e vel/acontecimento atmico o Um acontecimento atmico uma especicao completa do estado do mundo o e ca acerca do qual o agente tem incerteza. Os acontecimentos atmicos so mutuao a mente exclusivos e exaustivos (e.g. 6 lanamentos de um dado). c Um espao de probabilidade ou modelo de probabilidade um espao amostra c e c com uma atribuio P () para todo o tal que ca 0 P () 1 P () = 1 e.g., P (1) = P (2) = P (3) = P (4) = P (5) = P (6) = 1/6. Um acontecimento A qualquer subconjunto de e P (A) = {A}P () E.g., P (lanamento do dado < 4) = 1/6 + 1/6 + 1/6 = 1/2 c
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 7
Variveis aleatrias a o
Uma varivel aleatria uma funo de pontos amostra para algum contra-dom a o e ca nio. Os valores devem ser exaustivos e exclusivos. O espao de probabilidade P induz uma distribuio de probabilidade para qualquer c ca v.a. X: P (X = xi) = {:X() = xi}P () e.g., P (P ar = true) = 1/6 + 1/6 + 1/6 = 1/2 Nas aplicaes de IA, os pontos amostra so normalmente denidos pelos valores de co a um conjunto de variveis aleatrias, i.e., o espao amostra o produto Cartesiano a o c e dos contra-dom nios das variveis. a Sejam as v.as. Dado {1, 2} e P intas {1, 2, 3, 4, 5, 6} os pontos amostra so a (ateno isto no lanamento simultneo dos dados!): ca a e c a < 1, 1 > < 1, 2 > < 1, 3 > < 1, 4 > < 1, 5 > < 1, 6 > < 2, 1 > < 2, 2 > < 2, 3 > < 2, 4 > < 2, 5 > < 2, 6 >
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 8
Proposies co
Entende-se uma proposio como sendo o acontecimento (conjunto de pontos ca amostra) onde a proposio verdadeira ca e Dadas as variveis aleatrias Booleanas A e B: a o acontecimento a = conjunto de pontos amostra onde A() = true acontecimento a = conjunto de pontos amostra onde A() = f alse acontecimento a b = pontos onde A() = true e B() = true acontecimento a b = pontos onde A() = true ou B() = true Com variveis Booleanas, ponto amostra = mundo de lgica proposicional a o e.g., A = true, B = f alse, ou a b.
de Finetti (1931): um agente que aposte com probabilidades que violem os axiomas da teoria das probabilidades pode ser forado a apostar de maneira a perder dinheiro c independentemente do resultado.
10
11
Probabilidade a priori
Probabilidades a priori ou probabilidades incondicionais de proposies co e.g., P (Cavity = true) = 0.1 e P (W eather = sunny) = 0.72 corresponde ` crena do agente antes da chegada de (nova) evidncia a c e Distribuio de probabilidade d valores a todas as atribuioes poss ca a c veis: P(W eather) = 0.72, 0.1, 0.08, 0.1 (normalizado, i.e., soma 1) Distribuio de probabilidade conjunta para um conjunto de v.a.s. d-nos ca a a probabilidade de cada acontecimento atmico nessas v.a.s. (i.e., em cada ponto o amostra) P(W eather, Cavity) = uma matriz de 4 2 valores: W eather = sunny rain cloudy snow Cavity = true 0.144 0.02 0.016 0.02 Cavity = f alse 0.576 0.08 0.064 0.08 Toda a questo num dom pode ser respondida pela distribuio conjunta a nio ca porque todo o acontecimento uma soma de pontos amostra e
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 12
0.125
18
dx
26
Em que P uma densidade de probabilidade; integrando em todo o dom d 1. e nio a P (X = 20.5) = 0.125 realmente signica
dx0
13
14
Probabilidade Condicional
Probabilidades a posteriori ou condicionais e.g., P (cavity|toothache) = 0.8 i.e., toothache tudo o que sei e NAO se toothache ento 80% de hiptese de cavity a o Notao para distribuies condicionais: ca co P(Cavity|T oothache) = vector com 2 coordenadas com vector de 2 coordenadas Se soubermos mais, e.g., cavity tambm dado, ento temos e e a P (cavity|toothache, cavity) = 1 Nota: a crena menos espec c ca continua vlida aps mais evidncia chegar, mas a o e nem sempre util e Nova evidncia pode ser irrelevante, permitindo simplicao, e.g., e ca P (cavity|toothache, portoGanha) = P (cavity|toothache) = 0.8 Esta forma de inferncia, sancionada pelo conhecimento do dom e nio, crucial e
15
Probabilidade condicional
Denio de probabilidade condicional: ca P (a|b) = P (a b) se P (b) = 0 P (b)
Regra do Produto uma formulao alternativa: e ca P (a b) = P (a|b)P (b) = p(b|a)P (a) Uma verso genrica verica-se para todas as distribuies, e.g., a e co P(W eather, Cavity) = P(W eather|Cavity)P(Cavity) (Vista como um conjunto de 4 2 equaes, no mult. de matrizes) co a Regra da cadeia derivada por aplicao sucessiva da regra do produto: e ca P(X1, . . . , Xn) = P(X1, . . . , Xn1) P(Xn|X1, . . . , Xn1) = P(X1, . . . , Xn2) P(Xn1|X1, . . . , Xn2) P(Xn|X1, . . . , Xn1) = ... n = i = 1P(Xi|X1, . . . , Xi1)
16
toothache catch
L
catch catch
Para qualquer proposio , somar os acontecimentos atmicos onde verdade: ca o e P () = :|=P () Calcular P (toothache) (probabilidade marginal de toothache)?
17
toothache catch
L
catch catch
Para qualquer proposio , somar os acontecimentos atmicos onde verdade: ca o e P () = :|=P () A probabilidade marginal de toothace : e P (toothache) = 0.108 + 0.012 + 0.016 + 0.064 = 0.2 Calcular P (cavity toothache)?
18
toothache catch
L
catch catch
Para qualquer proposio , somar os acontecimentos atmicos onde verdade: ca o e P () = :|=P () P (cavity toothache) = 0.108 + 0.012 + 0.072 + 0.008 + 0.016 + 0.064 = 0.28 E P (cavity|toothache)?
19
toothache catch
L
catch catch
Tambm se podem calcular probabilidades condicionais: e P (cavity|toothache) = P (cavity toothache) P (toothache) 0.016 + 0.064 = = 0.4 0.108 + 0.012 + 0.016 + 0.064
20
Normalizao ca
toothache catch cavity cavity
L L
toothache catch
L
catch catch
Denominador pode ser visto como constante de normalizao ca P(Cavity|toothache) = P(Cavity, toothache) = [P(Cavity, toothache, catch) + P(Cavity, toothache, catch)] = [ 0.108, 0.016 + 0.012, 0.064 ] = 0.12, 0.08 = 0.6, 0.4 Ideia geral: calcular distribuio na varivel interrogada ca a xando as variveis evidncia e somando varveis ocultas a e a
21
22
23
Independncia e
A e B so independentes sse a P(A|B) = P(A) ou P(B|A) = P(B) ou P(A, B) = P(A)P(B)
Cavity decomposes into Toothache Catch
Weather
P(T oothache, Catch, Cavity, W eather) = P(T oothache, Catch, Cavity)P(W eather) 32 entradas reduzidas a 12; para n moedas, 2n n Independncia absoluta poderosa mas rara e Medicina Dentria um rea do conhecimento com centenas de variveis, a e a a nenhumas delas independentes. O que fazer?
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 24
Independncia condicional e
P(T oothache, Cavity, Catch) tem 23 1 = 7 entradas independentes Se eu tenho uma crie, a probabilidade que a broca toque no nervo independente a e do facto de eu ter dor dentes: (1) P (catch|toothache, cavity) = P (catch|cavity) A mesma relao de independncia se verica se eu no tiver uma crie: ca e a a (2) P (catch|toothache, cavity) = P (catch|cavity) Catch condicionalmente independente de T oothache dado Cavity: e P(Catch|T oothache, Cavity) = P(Catch|Cavity) Armaes Equivalentes: co P(T oothache|Catch, Cavity) = P(T oothache|Cavity) P(T oothache, Catch|Cavity) = P(T oothache|Cavity)P(Catch|Cavity)
25
26
27
Desao
Considere-se a seguinte situao real: ca 1% das mulheres com quarenta anos que efectuam regularmente rastreio tm cancro da mama. Cerca de 80% dessas mulheres obtero uma mae a mograa positiva. 9.6% das mulheres sem cancro da mama tambm tm e e mamograa positiva. Uma mulher neste grupo etrio teve uma mamograa positiva no rastreio regular. a Qual a probabilidade de ela ter cancro da mama? e (P.S: S cerca de 15% dos mdicos se aproxima da resposta correcta...) o e
28
Regra de Bayes
Regra do produto P (a b) = P (a|b)P (b) = P (b|a)P (a) Regra de Bayes P (a|b) = ou na forma de distribuio ca P(Y |X) = P(X|Y )P(Y ) = P(X|Y )P(Y ) P(X) P (b|a)P (a) P (b)
Variante condicionalizada em que evidncia e fornecida: e P(Y |X, e) = P(X|Y, e)P(Y |e) = P(X|Y, e)P(Y |e) P(X|e)
Util para obter a probabilidade do diagnstico dada a probabilidade causal: o P (Causa|Ef eito) = P (Ef eito|Causa)P (Causa) P (Ef eito)
29
Nota: a probabilidade a posteriori de meningite ainda muito pequena! e J capaz de responder ao desao anterior? (Resposta: 7.7%!) ae
30
P(Cavity|toothache catch) = P(toothache catch|Cavity)P(Cavity) = P(toothache|Cavity)P(catch|Cavity)P(Cavity) Isto um exemplo do modelo de naife de Bayes: e P(Cause, Ef f ect1, . . . , Ef f ectn) = P(Cause)iP(Ef f ecti|Cause)
Cavity
Cause
Toothache
Catch
Effect 1
Effect n
Mundo do Wumpus
1,4 2,4 3,4 4,4
1,3
2,3
3,3
4,3
1,2
2,2
3,2
4,2
B OK
1,1 2,1 3,1 4,1
B OK OK
Pij = true sse [i, j] contm um poo e c Bij = true sse [i, j] ventosa e Incluir apenas B1,1, B1,2, B2,1 no modelo de probabilidade
32
33
Observaes e interrogao co ca
Sabemos o seguinte: b = b1,1 b1,2 b2,1 known = p1,1 p1,2 p2,1 Interrogao P(P1,3|known, b) ca e Seja U nknown = Pij s diferentes de P1,3 e Known Por inferncia por enumerao, obtemos e ca P(P1,3|known, b) = unknownP(P1,3, unknown, known, b) Cresce exponencialmente com o nmero de casas! u
34
1,3
QUERY
2,3
3,3
OTHER
4,3
1,2
2,2
3,2
4,2
1,1
2,1
KNOWN
FRINGE 3,1
4,1
Denir U nknown = F ringe Other P(b|P1,3, Known, U nknown) = P(b|P1,3, Known, F ringe) Manipular interrogao de maneira a que se possa utilizar a igualdade anterior! ca
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 35
P(P1,3|known, b) =
unknown
=
unknown
P(b|P1,3, known, unknown)P(P1,3, known, unknown) P(b|known, P1,3, f ringe, other)P(P1,3, known, f ringe, other)
f ringe other
= =
f ringe other
= =
= P (known)P(P1,3)
f ringe
P (other)
36
= P(P1,3)
f ringe
37
1,3
1,3
1,3
1,3
1,3
1,2 B OK 1,1
2,2
1,2 B OK
2,2
1,2 B OK
2,2
1,2 B OK
2,2
1,2 B OK
2,2
2,1 B OK OK
3,1
1,1
2,1 B OK OK
3,1
1,1
2,1 B OK OK
3,1
1,1
2,1 B OK OK
3,1
1,1
2,1 B OK OK
3,1
P(P1,3|known, b) = 0.2(0.04 + 0.16 + 0.16), 0.8(0.04 + 0.16) = 0.072, 0.16 0.072 0.16 = , 0.072 + 0.16 0.072 + 0.16 0.31, 0.69 P(P2,2|known, b) 0.86, 0.14
Ano Lectivo 2010/2011- 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 38
39
0.1 0.1+0.001
0.1 0.101
0.99
Outra maneira (no h variveis escondidas) a a a P (U rna|Bola = 4) = P (U rna Bola = 4) = P (Bola = 4|U rna) P (U rna) = 0.1 0.5, 0.001 0.5 = 0.05, 0.0005 0.0005 0.05 =< 0.05+0.0005 , 0.05+0.0005 >< 0.99, 0.01 >
40
41
42
43
44
1 X 200109
X)
45
46
47
48
1 2
1 6 1 2
Portanto P (C1|A13) =
= 1! 3
49
50
Sumrio a
A teoria das probabilidades um formalismo rigoroso para lidar com conhecimento e incerto Distribuio de probabilidade conjunta especica a probabilidade de todo o aconca tecimento atmico o As interrogaes podem ser respondidas somando-se acontecimentos atmicos co o Para dom nios no triviais, essencial reduzir o tamanho da distribuio conjunta a e ca Independncia e independncia condicional fornecem as ferramentas e e
51
Redes Bayesianas
Resumo
Sintaxe Semntica a Distribuies parametrizadas co
Redes Bayesianas
Notao grca simples para asseres de independncia condicional ca a co e e portanto uma especicao compacta para distribuies conjuntas totais ca co Sintaxe: um conjunto de ns, um por varivel o a um grafo ac clico dirigido (arco inuencia directamente) uma distribuio condicional para cada n dados os seus pais: ca o P(Xi|P arents(Xi)) No caso mais simples, distribuio condicional representada como ca uma tabela de probabilidade condicionada (CPT) especicando a distribuio de Xi para cada combinao dos valores dos pais ca ca
Exemplo
Topologia da rede codica asseres de independncia condicional: co e
Weather
Cavity
Toothache
Catch
W eather independente das outras variveis e a T oothache e Catch so condicionalmente independentes dado Cavity a
Exemplo
Estou no trabalho, o vizinho John telefona-me para dizer que o meu alarme est a a tocar, mas a vizinha Mary no telefona. Ocasionalmente dispara por causa de a pequenos tremores de terra. A minha casa est a ser assaltada? a Variveis: Burglar, Earthquake, Alarm, JohnCalls, M aryCalls a Topologia da rede reecte conhecimento causal: Um assaltante pode disparar o alarme Um tremor de terra pode disparar o alarme O alarme pode fazer com que a Mary telefone O alarme pode fazer com que o John telefone
Exemplo (cont.)
P(B) P(E)
Burglary
B E P(A|B,E)
.001
Earthquake
.002
T T F F
T F T F
Alarm
P(J|A)
A P(M|A)
JohnCalls
T F
.90 .05
MaryCalls
T F
.70 .01
Representao Compacta ca
Uma CPT para Xi Booleana com k pais Booleanos requer 2k linhas para as combinaes de valores dos pais co Cada linha requer um nmero p para Xi = true u (o nmero para Xi = f alse simplesmente 1 p) u e Se cada varivel no tem mais de k pais, a a a rede precisa no total de O(n 2k ) nmeros u I.e., cresce linearmente com n, vs. O(2n) para a distribuio conjunta total ca Para a rede do assaltante, 1 + 1 + 4 + 2 + 2 = 10 nmeros (vs. 25 1 = 31) u
B A J
Semntica Global a
Semntica global dene a distribuio conjunta total a ca como o produto distribuies condicionais locais: co P(X1, . . . , Xn) = i = 1P(Xi|P arents(Xi))
n
B A J
Nesta situao dizemos que a distribuio P compat com a rede G. ca ca e vel e.g., P (j m a b e) =
Semntica Global a
Semntica global dene a distribuio conjunta total a ca como o produto distribuies condicionais locais: co P(X1, . . . , Xn) = i = 1P(Xi|P arents(Xi))
n
B A J
Nesta situao dizemos que a distribuio P compat com a rede G. ca ca e vel e.g., P (j m a b e) = P (j|a)P (m|a)P (a|b, e)P (b)P (e)
Semntica Global a
Semntica global dene a distribuio conjunta total a ca como o produto distribuies condicionais locais: co P(X1, . . . , Xn) = i = 1P(Xi|P arents(Xi))
n
B A J
Nesta situao dizemos que a distribuio P compat com a rede G. ca ca e vel e.g., P (j m a b e) = P (j|a)P (m|a)P (a|b, e)P (b)P (e)
10
Semntica Local a
Semntica Local: cada n condicionalmente independente a oe dos seus no-descendentes dado os seus pais a
U1
...
Um
X Z 1j Z nj
Y1
...
Yn
Para todo o n X assume-se que P (X|Z1j , . . . , Znj , U1, . . . , Um) = P (X|U1, . . . , Um). o Concluiu-se que: Teorema: Semntica Local Semntica Global a a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 11
Markov blanket
Cada n condicionalmente independente de todos os outros dado o seu oe Markov blanket: pais + lhos + pais dos lhos
U1
...
Um
X Z 1j Z nj
Y1
...
Yn
Seja W1, . . . Wp um qualquer conjunto de ns da rede disjunto do Markov Blanket o de X tem-se P (X|W1, . . . , Wp, U1, . . . , Um, Y1, . . . , Yn, Z1j , . . . Znj ) = P (X|U1, . . . Um, Y1, . . . , Yn, Z1j , . . . Znj )
12
2. Se X condicionalmente independente de Y dado Z para todas as distribuies e co P compat veis com G, ento (X || Y |Z)G. a
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 13
Exemplo de d-separao ca
Tuberculosis or Cancer d-separa Tuberculosis de Bronchitis? Tuberculosis or Cancer d-separa Tuberculosis de Dyspnea? Lung Cancer d-separa Tuberculosis de Bronchitis? Tuberculosis or Cancer e Lung Cancer d-separam Tuberculosis de Dyspnea?
14
15
16
17
Exemplo
Suponhamos a seguinte ordenao M , J, A, B, E ca
MaryCalls JohnCalls
P (J|M ) = P (J)?
18
Exemplo
Suponhamos a seguinte ordenao M , J, A, B, E ca
MaryCalls JohnCalls
Alarm
19
Exemplo
Suponhamos a seguinte ordenao M , J, A, B, E ca
MaryCalls JohnCalls
Alarm
Burglary
P (J|M ) = P (J)? No a P (A|J, M ) = P (A|J)? P (A|J, M ) = P (A)? No a P (B|A, J, M ) = P (B|A)? P (B|A, J, M ) = P (B)?
20
Exemplo
Suponhamos a seguinte ordenao M , J, A, B, E ca
MaryCalls JohnCalls
Alarm
Burglary Earthquake
P (J|M ) = P (J)? No a P (A|J, M ) = P (A|J)? P (A|J, M ) = P (A)? No a P (B|A, J, M ) = P (B|A)? Sim P (B|A, J, M ) = P (B)? No a P (E|B, A, J, M ) = P (E|A)? P (E|B, A, J, M ) = P (E|A, B)?
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 21
Exemplo
Suponhamos a seguinte ordenao M , J, A, B, E ca
MaryCalls JohnCalls
Alarm
Burglary Earthquake
P (J|M ) = P (J)? No a P (A|J, M ) = P (A|J)? P (A|J, M ) = P (A)? No a P (B|A, J, M ) = P (B|A)? Sim P (B|A, J, M ) = P (B)? No a P (E|B, A, J, M ) = P (E|A)? No a P (E|B, A, J, M ) = P (E|A, B)? Sim
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 22
Exemplo (cont.)
MaryCalls JohnCalls
Alarm
Burglary Earthquake
Decidir sobre independncia condicional dif nas direcoes no causais: modelos e e cil c a causais e independncia condicional parecem ser inatos nos humanos! e Determinao de probabilidades condicionais dif nas direces no causais. ca e cil co a Rede menos compacta do que a inicial: necessrios 1 + 2 + 4 + 2 + 4 = 13 e a nmeros u
23
no charging
battery flat
no oil
no gas
starter broken
lights
oil light
gas gauge
dipstick
24
MedicalCost
LiabilityCost
PropertyCost
25
26
27
Cost
Buys?
Opo 1: discretizaoerros podem ser grandes, CPTs grandes ca ca Opo 2: fam cannicas com nmero nito de parmetros ca lias o u a 1) Varivel cont a nua, pais discretos+cont nuos (e.g., Cost) 2) Varivel discreta, pais cont a nuos (e.g., Buys?)
28
Mdia Cost varia linearmente com Harvest, varincia xa e a Variao linear no razovel para todo o dom ca a e a nio mas funciona bem se os valores provveis de Harvest esto limitados a a
29
P(Cost|Harvest) 0.4 0.35 0.3 0.25 0.2 0.15 0.1 0.05 0 10 0 5 Cost 10 0 5 Harvest
30
0.8 P(Buys?=false|Cost=c)
0.6
0.4
0.2
0 0 2 4 6 Cost c 8 10 12
Distribuio Probit utiliza integral de uma Gaussiana: ca (x) = xN (0, 1)(x)dx P (Buys? = true | Cost = c) = ((c + )/) P (Buys? = f alse | Cost = c) = 1 ((c + )/) = ((c )/) Em que o local onde ocorre o limiar e um parmetro que controla a largura e a do limiar..
Ano Lectivo 2010/2011 - 1o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 31
Porqu a probit? e
1. Tem a forma correcta 2. Pode ser entendida como um limiar cuja localizao est sujeita a ru ca a do
Cost
Cost
Noise
Buys?
32
33
Sumrio a
Redes de Bayes so uma representao natural para independncia condicional a ca e (induzidas causalmente) Topologia + CPTs = representao compacta de distribuio conjunta ca ca Geralmente fcil de construir por (no)peritos a a Distribuies cannicas (e.g., noisy-OR) = representao compacta de CPTs co o ca Variveis cont a nuas distribuies parametrizadas (e.g., Gaussiana linear) co
34
Resumo
Inferncia exacta por enumerao e ca Inferncia exacta por eliminao de variveis e ca a Inferncia aproximada por simulao estocstica e ca a
Tarefas de inferncia e
Interrogaes simples: calcular distribuio marginal a posteriori P(Xi|E = e) co ca e.g., P (N oGas|Gauge = empty, Lights = on, Starts = f alse) Interrogaes conjuntivas: P(Xi, Xj |E = e) = P(Xi|E = e)P(Xj |Xi, E = e) co Decises ptimas: redes de deciso incluem informao de utilidade; o o a ca inferncia probabil e stica necessria para P (outcome|action, evidence) a Valor da informao: que evidncia procurar a seguir? ca e Anlise de sensibilidade: quais os valores de probabilidade mais cr a ticos? Explicao: por que que preciso de um novo motor de arranque? ca e
B A J
Rescrever entradas da distribuio conjunta recorrendo ao produto de entradas da ca CPT: P(B|j, m) = eaP(B)P (e)P(a|B, e)P (j|a)P (m|a) = P(B)eP (e)aP(a|B, e)P (j|a)P (m|a) (expr1) Enumerao recursiva em profundidade primeiro: espao O(n), tempo O(dn) ca c
Algoritmo de enumerao ca
function Enumeration-Ask(X, e, bn) returns a distribution over X inputs: X, the query variable e, observed values for variables E bn, a Bayesian network with variables {X} E Y Q(X ) a distribution over X, initially empty for each value xi of X do extend e with value xi for X Q(xi ) Enumerate-All(Vars[bn], e) return Normalize(Q(X)) function Enumerate-All(vars, e) returns a real number if Empty?(vars) then return 1.0 Y First(vars) if Y has value y in e then return P (y | P a(Y )) Enumerate-All(Rest(vars), e) else return y P (y | P a(Y )) Enumerate-All(Rest(vars), ey ) where ey is e extended with Y = y
Arvore de avaliao ca
Enumerao ineciente: clculos repetidos ca e a e.g., calcula P (j|a)P (m|a) para cada valor de e
P(b) .001 P(e) .002 P(a|b,e) .95 P( a|b,e) .05 P( e) .998 P(a|b, e) .94 P( a|b, e) .06
P(j|a) .90
P(j| .05
a)
P(j|a) .90
P(j| .05
a)
P(m|a) .70
P(m| a) .01
P(m|a) .70
P(m| .01
a)
= P(B)eP (e)aP(a|B, e)P (j|a)fM (a) = P(B)eP (e)aP(a|B, e)fJ (a)fM (a) = P(B)eP (e)afA(a, B, e)fJ (a)fM (a) = P(B)eP (e)fAJM (B, e) (soma-se A) = P(B)fE AJM (B) (soma-se E) = fB (B) fE AJM (B)
xf1 fk = f1 fi x fi+1 fk = f1 fi fX
assumindo que f1, . . . , fi no depende de X a Produto pontual dos factores f1 e f2: f1(x1, . . . , xj , y1, . . . , yk ) f2(y1, . . . , yk , z1, . . . , zl ) = f (x1, . . . , xj , y1, . . . , yk , z1, . . . , zl ) E.g., f1(a, b) f2(b, c) = f (a, b, c)
10
11
12
13
14
Efectuar o produto pontual dos factores que tm o parmetro A e a fAJM (A, B, E) = fA(A, B, E) fJ (A) fM (A) Eliminar a varivel A obtendo o factor fAJM (B, E) a
15
16
A fJM (A) true 0.90 0.70 = 0.63 f alse 0.05 0.01 = 0.0005
17
fAJM (B, E) 0.5985 + 0.000025 = 0.598525 0.5922 + 0.00003 = 0.59223 = SU MA 0.1827 + 0.000355 = 0.183055 0.00063 + 0.0004995 = 0.00113
18
19
20
Factores nais:
B fB (B) true 0.001 f alse 0.999 B fEAJM (B) true 0.001197 + 0.591046 = 0.592243 f alse 0.000366 + 0.001127 = 0.001493
21
22
Variveis irrelevantes a
Considere-se a interrogao P (JohnCalls|Burglary = true) ca
B E A J M
P (J|b) = P (b)
e
P (e)
a
P (m|a)
A soma de m igual 1; M irrelevante para a interrogao e e ca Teorema 1: Y irrelevante a no ser que Y Ancestors({X} E) e a Fazendo X = JohnCalls, E = {Burglary}, e Ancestors({X} E) = {Alarm, Earthquake} conclui-se que M irrelevante e
(Compare-se com o mtodo de encadeamento para trs a partir da interrogao e a ca em KBs de clusulas de Horn) a
23
A
L
D
L
1. A v B v C 2. C v D v 3. B v C v A D AND 1 2 3
L L
24
Mtodos: e Coin Amostragem a partir de uma rede vazia Amostragem por rejeio: rejeitar amostras que no esto de acordo com ca a a evidncia e Pesagem por Verosimilhana: utilizar evidncia para pesar amostras c e Markov chain Monte Carlo (MCMC): amostrar a partir de um processo estocstico cuja distribuio estacionria a probabilidade a posteriori real a ca a e
25
26
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
27
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
28
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
29
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
30
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
31
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
32
Exemplo
P(C) .50
Cloudy
Sprinkler
Rain
Wet Grass
33
= SP S (x1, . . . , xn) = P (x1 . . . xn) Ou seja, estimativas derivadas de PriorSample so consistentes a Abreviadamente: P (x1, . . . , xn) P (x1 . . . xn)
34
36
37
Sprinkler
Rain
Wet Grass
w = 1.0
38
Sprinkler
Rain
Wet Grass
w = 1.0
39
Sprinkler
Rain
Wet Grass
w = 1.0
40
Sprinkler
Rain
Wet Grass
w = 1.0 0.1
41
Sprinkler
Rain
Wet Grass
w = 1.0 0.1
42
Sprinkler
Rain
Wet Grass
w = 1.0 0.1
43
Sprinkler
Rain
Wet Grass
44
Cloudy
Rain
45
46
A cadeia de Markov
Com Sprinkler = true, W etGrass = true, existem quatro estados:
Cloudy
Cloudy
Rain
Rain
Cloudy
Cloudy
Rain
Rain
48
Markov blanket de Cloudy e Sprinkler e Rain Markov blanket de Rain e Cloudy, Sprinkler, e W etGrass
Rain
Probabilidade dado o Markov blanket obtida como se segue: e P (xi|M B(Xi)) = P (xi|P arents(Xi))Zj Children(Xi)P (zj |P arents(Zj )) Facilmente implementvel em sistemas paralelos de troca de mensagens, crebros a e Problemas computacionais principais: 1) Diculdade em detectar que se atingiu a convergncia e 2) Pode ser dispendioso se Markov blanket grande: e P (Xi|M B(Xi)) no varia muito a
49
Sumrio a
Inferncia exacta por eliminao de variveis: e ca a tempo polonomial em polytrees, NP-dif em grafos arbitrrios cil a espao = tempo, muito sens ` topologia c vel a Inferncia aproximada por PV, MCMC: e PV comporta-se mal quando existe muita evidncia e PV, MCMC geralmente insens veis ` topologia a Convergncia pode ser muito lenta com probabilidades perto de 0 ou 1 e Pode tratar combinaes arbitrrias de variveis discretas e cont co a a nuas Extenses para linguagem de primeira ordem: o Relational Probability Models (RPMs) Open Universe Probability Models (OUPMs) P-log extenso de ASP para lidar com probabilidades a
50
Resumo
Agentes aprendizes Problemas de aprendizagem Abordagens Aprendizagem Indutiva Aprendizagem Conceptual Aprendizagem baseada em Exemplos
Aprendizagem
A aprendizagem essencial em ambientes desconhecidos,
i.e., quando o projectista do sistema no possui omniscincia
Agentes aprendizes
Elemento de aprendizagem
O desenho do elemento de aprendizagem ditado por
Quais os componentes do elemento de desempenho que devem ser aprendidos Qual o feedback disponvel para aprender esses componentes Qual a representao utilizada pelos componentes
Tipo de feedback:
Aprendizagem Supervisionada: respostas correctas para cada exemplo Aprendizagem No Supervisionada : respostas correctas no so dadas Aprendizagem por reforo: recompensas ocasionais
Tipos de Aprendizagem
Aprendizagem Supervisionada:
Aprendizagem de uma funo a partir de exemplos de valores de entrada e respectivos resultados (respostas correctas para cada instncia). Necessita de professor.
Aprendizagem No Supervisionada:
Descobrir padres nos valores de entrada sem que sejam especificados os valores de sada (exemplos de treino no esto classificados, por exemplo).
Paradigmas de Aprendizagem
Computacional
Emprica Casos Analtica
Conexionista Biolgica
Aprendizagem Indutiva
Aprender uma funo a partir de exemplos dados (supervisionada) f uma funo alvo Um exemplo um par (x, f(x)) Problema da Induo: encontrar uma hiptese h no espao de hipteses
tal que h f dado um conjunto de treino de exemplos
(encontrar uma hiptese h que generalize bem, ou seja, que prediga correctamente exemplos desconhecidos)
NOTA: h diz-se consistente quando concorda com f em todos os exemplos
Aprendizagem Indutiva
Se a funo alvo que estivermos a aprender for discreta estamos na presena de um problema de classificao. Em particular, se estivermos interessados em funes booleanas dizemos que estamos na presena de um problema de aprendizagem conceptual. O caso de aprendizagem de funes contnuas designado por regresso (interpolao quando se impe consistncia) Todos eles assumem a Hiptese da Aprendizagem Indutiva Uma hiptese h que aproxime bem a funo alvo num conjunto de treino suficientemente grande, tambm aproximar bem a funo alvo num conjunto de exemplos no observados previamente.
Aprendizagem Conceptual
Dados
Instncias X descritas por atributos Espao de hipteses H Conceito alvo c: X -> {0,1} Exemplos de treino D positivos e negativos
Determinar
Uma hiptese h no espao de hipteses H tal que h(x) = c(x) para todo o x.
Hiptese Consistente
Falso Negativo
Hiptese Consistente
Falso Positivo
Hiptese Consistente
Generalizao da Hiptese
Especializao da Hiptese
Espao de Hipteses
Comecemos por considerar hiptese conjuntivas com restries simples nos valores de atributos: ? qualquer valor possvel para o atributo valor s valor possvel para o atributo _ nenhum valor aceitvel Exemplo: h1=<?,Cold,High,?,?,?> h2=<?,?,?,?,?,?> h3=<_,_,_,_,_,_>
Satisfao de hipteses
Uma instncia x satisfaz uma hiptese h sse h(x) = 1 Exemplo A hiptese h=<Sunny,?,High,?,?,?> satisfeita pela instncia <Sunny,Warm,High,Strong,Cool,Same> e no satisfeita pela instncia <Sunny,Warm,Normal,Strong,Cool,Same>
Espao de Hipteses
Dado um conjunto de hipteses qualquer, dizemos que h maximamente especfica, se no existir outra hiptese h tal que h h Dado um conjunto de hipteses qualquer, dizemos que h maximamente geral, se no existir outra hiptese h tal que h h
Eliminao de Candidatos
Algoritmo proposto por Mitchell que efectua a procura no espao de verses (Version Space - VS), o conjunto de todas as hipteses consistentes com os exemplos apresentados. Uma hiptese h consistente com um conjunto de treino D sse h(x)=c(x) para todo o exemplo de treino <x,c(x)> em D. O algoritmo funciona mantendo duas fronteiras
G: a fronteira mais geral das hipteses consistentes com os exemplos D S: a fronteira mais especfica das hipteses consistentes com os exemplos D
Algoritmo utilizado no sistema META-DENDRAL para detectar regularidades em dados de espectroscopia de massa. Os resultados obtidos foram publicados numa revista de Qumica.
Exemplo
G0 G1 G2 <?,?,?,?,?,?>
S2
<Sunny,Warm,?,Strong,Warm,Same>
Ex 2 (pos):<Sunny,Warm,High,Strong,Warm,Same>
S1
<Sunny,Warm,Normal,Strong,Warm,Same>
Ex 1 (pos):<Sunny,Warm,Normal,Strong,Warm,Same>
S0
<_,_,_,_,_,_>
Exemplo (cont)
G2 <?,?,?,?,?,?>
Ex 3 (neg):<Rainy,Cold,High,Strong,Warm,Change>
G3
S2
S3
<Sunny,Warm,?,Strong,Warm,Same>
Exemplo (cont)
G3 G4 <Sunny,?,?,?,?,?> <?,Warm,?,?,?,?> <?,?,?,?,?,Same>
S4
<Sunny,Warm,?,Strong,?,?>
Ex 4 (pos):<Sunny,Warm,High,Strong,Cool,Change>
S3
<Sunny,Warm,?,Strong,Warm,Same>
Exemplo (cont)
G3 G4 <Sunny,?,?,?,?,?> <?,Warm,?,?,?,?> <?,?,?,?,?,Same>
S4
<Sunny,Warm,?,Strong,?,?>
Ex 4 (pos):<Sunny,Warm,High,Strong,Cool,Change>
S3
<Sunny,Warm,?,Strong,Warm,Same>
<Sunny,?,?,Strong,?,?>
<Sunny,Warm,?,?,?,?>
<?,Warm,?,Strong,?,?>
S4
<Sunny,Warm,?,Strong,?,?>
<Sunny,?,?,Strong,?,?>
<Sunny,Warm,?,?,?,?> <?,Warm,?,Strong,?,?>
<Sunny,Warm,?,Strong,?,?>
<Sunny,Warm,Normal,Strong,Cool,Change> Positivo (classificado + por todas as hipteses) <Rainy,Cold,Normal,Weak,Warm,Same> <Sunny,Warm,Normal,Weak,Warm,Same> <Sunny,Cold,Normal,Strong,Warm,Same> Negativo (classificado - por todas as hipteses) Indefinido (classificado + por 1/2 das hipteses) Negativo? (classificado - por 2/3 das hipteses)
Propriedades do algoritmo
O algoritmo de eliminao de candidatos incremental Efectua o menor compromisso (tal como no POP) O algoritmo converge para o conceito alvo pretendido se forem dados exemplos de treino suficientes (pelo menos log2 |VS|) Se existir rudo ou o domnio no contiver atributos suficientes para a classificao exacta, o espao de verses colapsa (um dos conjuntos S ou G fica vazio) O algoritmo com o espao de hipteses apresentado no permite aprender conceitos disjuntivos. Caso seja permitida disjuno ilimitada no espao de hipteses, ento o algoritmo s conseguir classificar os exemplos dados (no generaliza). Para alguns espaos de hipteses o nmero de elementos de S e de G podem crescer exponencialmente.
rvores de Deciso
Uma possvel representao para a hiptese Abaixo a rvore de deciso real para decidir se se espera:
Expressividade
rvores de deciso podem expressar qualquer funo dos seus atributos Para as funes Booleanas, linha na tabela de verdade caminho at folha:
Obviamente, existe uma rvore consistente para qualquer conjunto de treino tendo uma caminho para a folha para cada exemplo (a no ser que f seja no determinista em x) mas provavelmente no generalizvel para novos exemplos Preferir encontrar rvores de deciso mais compactas
Espao de Hipteses
Quantas rvores de deciso com n atributos Booleanos existem? nmero de funes Booleanas n nmero distinto de tabelas de verdade com 2n linhas = 22 Exemplo, com 6 atributos Booleanos existem 18,446,744,073,709,551,616 funes Booleanas (e ainda um maior nmero de rvores!)
Espao de Hipteses
Quantas rvores de deciso com n atributos Booleanos existem? nmero de funes Booleanas n nmero distinto de tabelas de verdade com 2n linhas = 22 Exemplo, com 6 atributos Booleanos existem 18,446,744,073,709,551,616 funes Booleanas (e ainda um maior nmero de rvores!)
Quantas hipteses conjuntivas existem (e.g., Hungry Rain)? Cada atributo pode ocorrer positivamente,negativamente, ou de fora
3n hipteses conjuntivas distintas
Escolha de um atributo
Ideia: um bom atributo divide os exemplos em subconjuntos que (idealmente) so todos positivos" ou todos negativos"
Ganho de Informao
Um atributo A escolhido divide o conjunto de treino E em subconjuntos E1, , Ev de acordo com os valores que A toma, em que A tem v valores distintos.
Ganho de Informao
Para o conjunto de treino, p = n = 6, I(6/12, 6/12) = 1 bit Considere os atributos Patrons e Type (assim como os outros):
Patrons tem o maior IG de todos os atributos e portanto escolhido pelo algoritmo DTL como raiz da rvore de deciso
Exemplo (continuao)
rvore de Deciso aprendida a partir dos 12 exemplos:
Muito mais simples que a rvore real uma hiptese mais complexa no justificada pelo pequeno conjunto de dados
Medida de desempenho
Como que sabemos que h f ?
1. 2. Usar teoremas da teoria da aprendizagem computacional/estatstica Aplicar h num novo conjunto de exemplos de teste
Exemplo:
Tcnicas de validao
Holdout validation
Escolhem-se aleatoriamente exemplos do conjunto de dados para formar o conjunto de teste (habitualmente menos de 1/3 dos valores so utilizados como conjunto de teste)
K-fold cross-validation
Particionam-se os dados em K conjuntos de dimenso idntica. Escolhese um desses como conjunto de teste e os restantes como conjuntos de treino. Repete-se o processo para cada subconjunto K e efectua-se a mdia dos resultados.
Leave-one-out cross-validation
Deixa-se um exemplo de fora e treina-se com todos os restantes exemplos. Repete-se para cada exemplo (K-fold cross-validation com K igual ao nmero de exemplos)
Extenses
Omisso de valores para atributos ?
Como classificar uma instncia com algum valor desconhecido num atributo de teste Como alterar a frmula de ganho de informao?
Como lidar com atributos inteiros ou contnuos ? Como tratar atributos de sada contnuos ?
Sumrio
Aprendizagem essencial para lidar com ambientes desconhecidos Agente aprendiz = elemento de desempenho + elemento de aprendizagem. No caso da aprendizagem indutiva, o objectivo consiste em encontrar uma hiptese simples que aproximadamente consistente com os exemplos de treino. Aprendizagem conceptual um caso particular de aprendizagem indutiva onde se pretende aprender uma funo booleana a partir de exemplos dados. O algoritmo de eliminao de candidatos mantm as fronteiras de hipteses maximamente especficas e maximamente gerais. Aprendizagem de rvores de deciso utiliza o ganho de informao Desempenho do algoritmo de aprendizagem = preciso no(s) conjunto(s) de teste.
Redes neuronais
Resumo
Crebro e Redes Neuronais Perceptres o Redes neuronais multicamada Aplicaes de redes neuronais co
Crebro e
1011 neurnios de > 20 tipos, 1014 sinapes, 1ms10ms tempo de ciclo o Sinais tm ru spike trains de potenciais elctricos e do e
Nucleus Synapses
Unidade de McCullochPitts
Sa uma funo linear esmagada das entradas: da e ca ai g(ini) = g
j Wj,iaj
Bias Weight
a0 = 1
ai = g(ini) g ai
aj
Input Links
Output
Output Links
Uma simplicao rude dos neurnios reais, mas o seu objectivo obter ca o e conhecimento sobre o que conseguem fazer as redes de unidades simples
Funes de activao co ca
g(ini) +1 +1 g(ini)
ini
ini
(a)
(a) a funo degrau ou funo limiar e ca ca (b) a funo sigmide 1/(1 + ex) e ca o
(b)
Funes de activao co ca
E importante que a funo seja no-linear, caso contrrio a sa reduz-se a uma ca a a da combinao linear das entradas! ca Os algoritmos de aprendizagem que estudaremos assumem que a funo difeca e rencivel. a Outros exemplos: Tangente Hiperblica (contra-dom [1, 1]) o nio Seno (contra-dom [1, 1]) nio
W1 = 1 W2 = 1
AND
W1 = 1 W2 = 1
OR
W1 = 1
NOT
McCulloch e Pitts: qualquer funo Booleana pode ser implementada combinando ca as construes anteriores. co
Nota: As redes recorrentes tm ciclos dirigidos com atrasos (delays) e tm estado interno (como ip-ops), podem oscilar etc. e
W3,5 5
W2,3 2 W2,4 4
W4,5
Rede alimentada para a frente = fam parametrizada de funes no-lineares: lia co a a5 = g(W3,5 a3 + W4,5 a4) = g(W3,5 g(W1,3 a1 + W2,3 a2) + W4,5 g(W1,4 a1 + W2,4 a2)) Ajustando os pesos altera-se a funo: efectuar aprendizagem desta maneira! ca
Ano lectivo 2010/2011 Secao 18.7 c 9
Input Units
Wj,i
Output Units
-4
4 2 0 x2 -2
As unidades operam separadamenteno existem pesos partilhados a Ajustando os pesos altera-se a localizao, orientao e inclinao do declive ca ca ca
10
j Wj xj > 0
x1 1
or W x > 0
x1 1 x1 1
?
0 0 1 (a) x1 and x2 x2 0 0 1 (b) x1 or x2 x2 0 0 1 (c) x1 xor x2 x2
12
Regra simples para actualizao dos pesos: ca Wj Wj + Err g (in) xj E.g., erro +ve aumenta sa da rede da aumento de pesos com entradas com +ve , diminuir em entradas -ve Nota: sig (x) = sig(x) (1 sig(x))
13
Notas: Com funo de activao sigmide a expresso de actualizao dos pesos : Wj Wj + Err out (1 ca ca o a ca e out) xj [e]. Com funo limiar a expresso de actualizao de pesos Wj Wj + Err xj [e] ca a ca e
14
Exemplo de aplicao ca
15
Exemplo de aplicao ca
Peso Inicial Entrada Actualizao(Wi) Peso Final ca W0 0.1 x0 = 1.0 x0 = 0.2 0.126 1.0 = 0.025 0.074 W1 0.3 x1 = 0.8 x1 = 0.2 0.126 0.8 = 0.02 0.28 W2 0.1 x2 = 2.5 x2 = 0.2 0.126 2.5 = 0.06 0.16 W3 0.8 x3 = 1.0 x2 = 0.2 0.126 1.0 = 0.03 0.77
16
Perceptro aprende funo de maioria facilmente, induo de rvore de deciso a ca ca a a intil e u Induo de rvore de deciso aprende funo do restaurante, perceptro no ca a a ca a a pode represent-la. a
Ano lectivo 2010/2011 Secao 18.7 c 17
Perceptres multicamada o
Normalmente as camadas so totalmente ligadas; a nmero de unidades escondidadas tipicamente escolhido manualmente u
Output units ai
Wj,i
Hidden units
aj
Wk,j
Input units
ak
18
-4
4 2 0 x2 -2
-4
4 2 0 x2 -2
Combinar duas funoes limiar opostas para construir uma crista c Combinar duas cristas perpendicualres para construir um morro Juntar morros de vrios tamanhos e localizaes para obter qualquer superf a co cie. A prova requer um nmero exponencial de unidades escondidas. u
Ano lectivo 2010/2011 Secao 18.7 c 19
Wj,ii .
Regra de actualizao para os pesos da camada escondida: ca Wk,j Wk,j + ak j . (A maioria dos neurocientistas nega a existncia de retropropagao no crebro) e ca e
20
em que a soma inclui todos os ns da camada de sa o da E ai g(in i) = (yi ai) = (yi ai) Wj,i Wj,i Wj,i = (yi ai)g (in i) in i = (yi ai)g (in i) Wj,i Wj,i
j
Wj,iaj
O erro mdio quadrtico (MSE) a mdia dos erros quadrticos de todos os exemplos. O RMSE (root e a e e a mean square error) a raiz quadrada do MSE. e
1
21
(yi ai)
i
ai = Wk,j
(yi ai)
i
in i = Wk,j
i
i
Wk,j
= =
i
iWj,i
i
g(in j ) Wk,j
= =
i
Wk,j ak
k
22
O algoritmo de retropropagao ca
23
function Back-Prop-Update(network, examples, ) returns a network with changed weights inputs: network, a multilayer network examples, a set of input/output pairs , the learning rate repeat for each e in examples do /* Compute the output for this example having inputs Ie */ Oe Run-Network(network, Ie ) /* Compute the error and for units in the output layer */ Erre Ye Oe /* Ye are the expected output values for the example */ /* Update the weights leading to the output layer */ e Wj, i Wj, i + aj Erri g (ini ) for each subsequent layer in network do /* Compute the error at each node */ j g (inj ) i Wj, i i /* Update the weights leading into the layer */ Wk, j Wk, j + ak j end end until network has converged return network
24
Esquema de funcionamento
25
26
S mostrada actualizao dos pesos W2 e W4 a partir dos termos de erro 1, 3 o ca e 4. Os outros pesos so alterados de maneira semelhante. a
Ano lectivo 2010/2011 Secao 18.7 c 27
28
Redes multicamada so adequadas para tarefas complexas de reconhecimento de a padres, mas o resultado no pode ser facilmente compreendido o a
29
30
Sobreajustamento
Os exemplos devem ser divididos em conjunto de treino e conjunto de validao. ca Deve haver um conjunto de teste que no utilziado na aprendizagem. a e Utiliza-se o conjunto de treino no algoritmo de aprendizagem, parando-se quando se minimiza o erro no conjunto de validao. ca
Ano lectivo 2010/2011 Secao 18.7 c 31
33
Problemas de convergncia e
Pode haver grandes oscilaes no erro. Uma das formas consiste em alterar a regra co para utilizar momento - . As variaes dos pesos da iterao t para t + 1 so dadas por: co ca a Wj,i(t + 1) = aj i + Wj,i(t) Wk,j (t + 1) = ak j + Wk,j (t). Paralelo com bola a descer superf cie: Ritmo de aprendizagem: velocidade (valores t picos entre 0.1 e 0.9). Momento: inrcia - mantm direco do movimento anterior. e e ca Acelerar convergncia atravs de treino em lote. As alteraoes nos pesos de e e c todos os casos de treino so acumuladas e s no nal propagadas aps o procesa o o samento integral do conjunto de treino. Esta verso normalmente converge mais a rapidamente, mas pode car preso mais facilmente em m nimos locais.
34
Reconhecimento de escrita
3-nearest-neighbor = 2.4% erro 40030010 unit MLP = 1.6% erro LeNet: 7681923010 unit MLP = 0.9% erro Melhores (kernel machines, algoritmos de viso) 0.6% erro a
35
Sumrio a
A maioria dos crebros tem muitos neurnios; cada neurnio unidade de e o o limiar (?) Perceptres (redes monocamada) so pouco expressivos o a Redes multicamada so sucientemente expressivas; podem ser treinadas pelo a mtodo de descida do gradiente, i.e., retropropagao do erro e ca Sobreajustamento um problema srio a evitar, devendo-se utilizar tcnicas de e e e validao cruzada. ca Muitas aplicaes: fala, conduo, reconhecimento escrita, deteco de fraudes, co ca ca etc.
36
Resumo
Estratgias ptimas e o Recursos Limitados Corte Jogos com factor sorte Jogos com informao imperfeita ca
Tipos de jogos
deterministic perfect information imperfect information chess, checkers, go, othello battleships, blind tictactoe
X MIN (O)
X X X X X X X
X O MAX (X)
X O
...
X O X MIN (O)
X O X
X O X
...
...
...
...
...
TERMINAL Utility
X O X O X O 1
X O X O O X X X O 0
X O X X X O O +1
...
Minimax
Estratgia perfeita para jogos deterministas e com informao perfeita e ca Ideia: escolher a jogada para posio com maior valor minimax ca = melhor recompensa alcanvel com estratgia ptima do adversrio ca e o a E.g., jogo com 2 jogadas:
MAX
3
A1 A2 A3
MIN
A 11 A 12
3
A 13 A 21
2
A 22 A 23 A 31
2
A 32 A 33
12
14
Algoritmo Minimax
function Minimax-Decision(state) returns an action inputs: state, current state in game v Max-Value(state) return the action in Successors(state) with value v function Max-Value(state) returns a utility value if Terminal-Test(state) then return Utility(state) v for a, s in Successors(state) do v Max(v, Min-Value(s)) return v function Min-Value(state) returns a utility value if Terminal-Test(state) then return Utility(state) v for a, s in Successors(state) do v Min(v, Max-Value(s)) return v
Propriedades do minimax
Completo??
Propriedades do minimax
Completo?? Apenas se a rvore nita (o Xadrez tem regras espec a e cas para o efeito). NB uma estratgia nita pode existir mesmo em rvores innitas! e a Optima??
Propriedades do minimax
Completo?? Apenas se a rvore nita (o Xadrez tem regras espec a e cas para o efeito). NB uma estratgia nita pode existir mesmo em rvores innitas! e a a a Optima?? Sim, contra um adversrio perfeito. Caso contrrio?? Complexidade Temporal??
10
Propriedades do minimax
Completo?? Apenas se a rvore nita (o Xadrez tem regras espec a e cas para o efeito). NB uma estratgia nita pode existir mesmo em rvores innitas! e a a a Optima?? Sim, contra um adversrio perfeito. Caso contrrio?? Complexidade Temporal?? O(bm) Complexidade Espacial??
11
Propriedades do minimax
Completo?? Apenas se a rvore nita (o Xadrez tem regras espec a e cas para o efeito). NB uma estratgia nita pode existir mesmo em rvores innitas! e a a a Optima?? Sim, contra um adversrio perfeito. Caso contrrio?? Complexidade Temporal?? O(bm) Complexidade Espacial?? O(bm) (explorao pelo melhor primeiro) ca Para o Xadrez, b 35, m 100 para jogos razoveis a soluo exacta completamente imposs ca vel
12
Recursos Limitados
Suponha-se que temos 100 segundos, explorando 104 ns/segundo o 106 ns por jogada o Aproximao Standard: ca teste de corte e.g., limitar profundidade (possivelmente com procura quiescente) funo de avaliao ca ca = estimativa da razoabilidade da posio ca
13
Funes de avaliao co ca
Para o Xadrez, habitualmente soma pesada linear de caracter sticas Eval(s) = w1f1(s) + w2f2(s) + . . . + wnfn(s) e.g., w1 = 9 com f1(s) = (nm. de rainhas brancas) (nm. de rainhas pretas), etc. u u
14
MAX
MIN
20
20
20
400
O comportamento preservado com qualquer transformao montona de Eval e ca o Apenas a ordem interessa: recompensa em jogos deterministas comporta-se como uma funo ca de utilidade ordinal
15
Cortar a procura
MinimaxCutoff idntico a MinimaxValue excepto e e 1. Terminal? substitu por Cutoff? e do 2. Utilidade substitu por Eval e do Funciona na prtica? a bm = 106, b = 35 m=4
4-jogadas de previso um jogador de Xadrez iniciante! a e 4-jogadas jogador iniciante 8-jogadas PC t pico, mestre 12-jogadas Deep Blue, Kasparov
16
Como cortar um n? o
Limitar a profundidade a um nmero xo (na u f...) Efectuar aprofundamento progressivo enquanto houver tempo. Efectuar procura quiescente S cortar ns em que o valor da funo de avaliao estabilizou (sem grandes o o ca ca alteraes previs co veis nas prximas jogadas) o Mias dif de resolver o problema da morte adiada (ou efeito horizonte). Uma cil e jogada terr pode ter os seus efeitos protelados pelo o outro jogador, de maneira vel a carem invis veis.
17
Exemplo de corte
MAX
MIN
12
18
Exemplo de corte
MAX
MIN
X 3 12 8 2
19
Exemplo de corte
MAX
MIN
14
X 3 12 8 2
X 14
20
Exemplo de corte
MAX
MIN
14
X 3 12 8 2
X 14 5
21
Exemplo de corte
MAX
3 3
MIN
14
5 2
X 3 12 8 2
X 14 5 2
22
Propriedades do
Corte no afecta o resultado nal a Uma boa ordenao das jogadas melhora o efeito do corte ca Com ordenao perfeita, complexidade temporal = O(bm/2) ca duplica profundidade da procura pode facilmente atingir profundidade 8 e jogar bem Xadrez Um exemplo simples do valor do racioc sobre quais as computaoes relevantes nio c (uma forma de metaracioc nio)
23
Caso geral ?
MAX
MIN .. .. .. MAX
MIN
o melhor valor (para o jogador max) encontrado at ao momento e e Se v pior do que , max evita-o corta esse ramo e Dene-se similarmente para min
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 24
O algoritmo
function Alpha-Beta-Search(state) returns an action inputs: state, current state in game v Max-Value(state, , +) return the action in Successors(state) with value v
25
O algoritmo
function Max-Value(state, , ) returns a utility value if Cutoff-Test(state) then return Eval(state) v for each a, s in Successors(state) do v MAX(v, Min-Value(s, , )) if v then return v MAX(, v) return v function Min-Value(state, , ) returns a utility value if Cutoff-Test(state) then return Eval(state) v + for each a, s in Successors(state) do v MIN(v, Max-Value(s, , )) if v then return v MIN(, v) return v
26
Execuo do algoritmo ca
Legenda: [, ] v=u X returns u Valor dos parmetros na invocao a ca Valor da varivel v antes da chamada recursiva a Corte (aps retorno da chamada recursiva) o valor MINIMAX de sa da chamada da
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 27
28
25
24 23 22 21 20 19
18 17 16 15 14 13
29
MAX
CHANCE
1 0.5 2
MIN
30
se se se se
n um e n um e n um e n um e
31
[ 0.5 [ ,+ ] 0.5
,+
] 0.5
[ 0.5 ,+ ]
,+
,+
,+
32
[ 0.5 [ , 2 ] 0.5
,+
] 0.5
[ 0.5 ,+ ]
,+
,+
,+
33
[ 0.5 [ 2 , 2 ] 0.5
,+
] 0.5
[ 0.5 ,+ ]
,+
,+
,+
34
[ 0.5 [ 2 , 2 ] 0.5
, 2
] 0.5
[ 0.5 ,+ ]
,+
, 2
,+
35
] 0.5
[ 0.5 ,+ ]
,+
[ 1 , 1
,+
36
] 0.5
[ 0.5 , 0 ]
,+
[ 1 , 1
,+
37
] 0.5
[ 0.5 , 0 ]
,+
[ 1 , 1
[ 0
,+
38
] 0.5
[ 0.5 , 0 ]
, 0.5 ]
[ 1 , 1
[ 0
, 1
39
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 2 ] 0.5 [ 2 , 2 ]
40
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 2 ] 0.5 [ 2 , 2 ]
2
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 41
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 2 ] 0.5 [ 2 , 2 ]
2
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 42
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 2 ] 0.5 [ 2 , 2 ]
2
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 43
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 2 ] 0.5 [ 2 , 2 ]
1
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 44
Corte (cont.)
Pode-se cortar mais se os valores das folhas forem limitados
[ 2 , 1 ] 0.5 [ 2 , 2 ]
0
45
46
MAX
DICE
2.1 .9 .1 3 1 .9
1.3 .1 4 20
21 .9 30 .1 1 .9
40.9 .1 400
MIN
20
20 30 30
1 400 400
O comportamento preservado apenas com transformaes lineares positivas de e co Eval Logo Eval deve ser proporcional ` recompensa esperada a
Ano Lectivo 2010/2011 - 2o Semestre Adaptado de http://aima.eecs.berkeley.edu/slides-tex/ 47
48
Exemplo
Mo de quarto cartas, Max joga primeiro a
6 4 6 8 2 9 7 3 8 6 4 6 2 9 7 3 9 6 4 6 2 7 3 2 6 4 6 7 3 6 6 4 7 3
49
Exemplo
Mo de quarto cartas, Max joga primeiro a
MAX 6 6 8 7 MIN
4 2 9 3
6 4
6 2 9
7 3 9
6 4
6 2
7 3 2
6 4
7 3
6 4
7 3
MAX 6 6 8 7 MIN
4 2 9 3
6 9
7 3 9
7 3 2
6 4
7 3
6 4
7 3
4 2
4 2
50
Exemplo
Mo de quarto cartas, Max joga primeiro a
MAX 6 6 8 7 MIN
4 2 9 3
6 4
6 2 9
7 3 9
6 4
6 2
7 3 2
6 4
7 3
6 4
7 3
MAX 6 6 8 7 MIN
4 2 9 3
6 9
7 3 9
7 3 2
6 4
7 3
6 4
7 3
0 0.5 0.5
4 2
4 2
6 4
7 3
MAX 6 6 8 7 MIN
4 2 9 3
6 9
7 3 9
7 3 2
6 4
7 3 6
4 2
4 2
6 4
7 3
51
52
53
54
Anlise correcta a
* Intuio que o valor de uma aco a mdia de todos os seus valores ca ca e e em todos os estados poss vels ERRADA e Com obervao parcial, valor de uma aco depende do ca ca estado de informao ou estado de crena em que o agente se encontra ca c Pode gerar e procurar a rvore de estados de informao a ca Origina os seguintes comportamentos racionais Agir para obter informao ca Fazer sinais ao parceiro Agindo aleatoriamente para minimizar a descoberta de informao ca
55
Sumrio a
Jogos ilustram vrios aspectos importantes da IA a perfeio inating tem de se aproximar ca e vel boa ideia pensar sobre o que se vai pensar a incerteza limita a atribuio de valores a estados ca Os jogos esto para IA como a Frmula I est para a indstria automvel a o a u o
56