Vous êtes sur la page 1sur 64

INTRODUO INTELIGNCIA ARTIFICIAL

Prof. Antonio A. Pinho

Rio de Janeiro Julho de 1999

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

INDICE I. INTRODUO 1. Definio de Inteligncia Artificial 2. Primeiros trabalhos 3. Dificuldades no processamento de IA 4. Uma classificao das atividades inteligentes 5. O ressurgimento da IA ESTRATGIAS DE BUSCA 1. Sistemas de produo 2. Grafos de estado 3. Mtodos de busca 4. Mtodo irrevogvel 5. Backtracking 6. Backtracking iterativo 7. Busaca em largura e em profundidade 8. Busca ordenada 9. Complexidade dos mtodos no informados BUSCA HEURSTICA 1. Funo de avaliao 2. O algoritmo A* 3. O algoritmo IDA* BUSCA EM HIPERGRAFOS 1. Grafos E/OU 2. Grafo soluo e seu custo 3. O algoritmo AO* JOGOS 1. Grafos de jogos 2. Resolvendo o jogo 3. Procedimento Minimax REPRESENTAO DO CONHECIMENTO 1. Introduo 2. Lgica de Primeira Ordem: Clculo Proposicional 3. Resoluo no Clculo Proposicional 4. Clculo de Predicados 5. Resoluo no Clculo de Predicados 2 2 3 4 5 7 8 12 13 15 15 17 19 21 23 24 29 32 35 36 41 44 46 49 51 54 58 60

II.

III.

IV.

V.

VI.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

I.

INTRODUO

1. Definio de Inteligncia Artificial Uma das primeiras dificuldades daquele que inicia o estudo de Inteligncia Artificial tentar delimitar seu campo de estudo. O que , exatamente, Inteligncia Artificial ? Quais seus objetivos ? De uma forma simples, poderamos definir Inteligncia Artificial como a rea da Computao que procura fazer com que o computador resolva problemas para os quais se exige inteligncia; essa definio, no entanto, costuma acarretar discusses filosficas e psicolgicas a respeito do significado do termo inteligncia e da possibilidade de existncia de mquinas inteligentes. Essa questo, de saber se uma mquina pode ou no ser inteligente, se uma mquina pode ou no exibir comportamento inteligente vem sendo discutida j h muito tempo; uma das principais contribuies a essa discusso foi dada pelo matemtico ingls Alan Turing, em 1950, definindo o que ficou conhecido como Teste de Turing : colocase em uma sala A um ser humano, e em uma sala B, um computador. Uma outra pessoa, fazendo perguntas ao ser humano e ao computador, deve decidir qual deles a mquina; se errar em mais de 50% das vezes, a mquina pode ser considerada inteligente. Esse critrio exige uma habilidade em manipulao de linguagem natural que, ainda hoje, nenhuma mquina possui. Pelo Teste de Turing, ainda hoje no existe nenhuma mquina inteligente. Uma outra definio de Inteligncia Artificial, devida a Rich, diz que IA o estudo de como fazer os computadores realizarem tarefas que, no momento, so melhor executadas pelas pessoas. Essa definio no inclui aqueles problemas nos quais os computadores j so melhores que os humanos, nem as reas nas quais os problemas no so bem solucionadas nem pelos humanos nem pelos computadores; no entanto, uma definio til, pois limita, de forma razoavelmente precisa, o escopo da Inteligncia Artificial. At onde sabemos, o termo Inteligncia Artificial foi utilizado pela primeira vez, por John McCarthy, em agosto de 1956, no convite para o encontro que ficou conhecido por Conferncia de Dartmouth. Esse encontro tinha por objetivo estudar as bases da conjectura de que cada aspecto do aprendizado e da inteligncia pode, em princpio, ser to precisamente descrito que o torne passvel de ser simulado por uma mquina, e reuniu 15 pioneiros do que viria a constituir a rea de Inteligncia Artificial. 2. Primeiros trabalhos Listamos, abaixo, alguns dos principais projetos apresentados: Tradutor Automtico Ingls-Russo

Desenvolvido por Oettinger, desde 1954; pretendia ser um programa que traduzisse textos (especialmente tcnicos) do ingls para o russo e viceversa. Logic Theorist

Desenvolvido por Newell, Shaw e Simon, de 1956 a 59; pretendia ser um programa que , a partir dos postulados da Lgica, desenvolvesse e provasse seus teoremas; seus criadores acreditavam que em pouco tempo, ele provaria teoremas ainda desconhecidos.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

GPS General Problem Solver

Desenvolvido por Newell, Shaw e Simon, entre 1959 e 1967; pretendia ser um programa que estabelecesse critrios gerais de resoluo de problemas; isto , dadas as condies iniciais, a configurao final, e os meios de se passar de uma configurao para outra, o programa devia desenvolver estratgias que permitissem obter o caminho que levaria da configurao inicial final. Studant

Desenvolvido por Bobrow, entre 1956 e 1961; pretendia ser um programa que resolvesse problemas de lgebra elementar, isto , o programa deveria, a partir do enunciado do problema, estabelecer e resolver as equaes algbricas necessrias para a resoluo do problema. interessante ressaltar o otimismo (ou a ingenuidade) dos pesquisadores, na poca; os problemas abordados so extremamente difceis, e, mesmo hoje em dia, no esto satisfatoriamente resolvidos. 3. Dificuldades no processamento de IA Em 1972, o filsofo Hubert Dreyfus publicou um livro chamado Uma crtica da Razo Artificial, no qual examina o desenvolvimento da Inteligncia Artificial. Com respeito ao desenvolvimento dos primeiros trabalhos, diz Dreyfus: Todos os trabalhos tinham em comum um inicio auspicioso, para, em seguida, esbarrar em dificuldades intransponveis. No era difcil construir um programa que realizasse certa tarefa; mas parecia impossvel fazer o programa realiz-la bem, isto , torn-lo competitivo, em termos de qualidade, com o ser humano. Em virtude desses fatos, Dreyfus conclui que os pesquisadores em IA baseavam, implicitamente, seus trabalhos, em quatro pressupostos falsos: Pressuposto biolgico: o crebro pode ser modelado por um computador digital.

O crebro humano possui, pelo menos, 106 vezes mais conexes do que qualquer computador; alem disso, o processamento do crebro apresenta certas caractersticas (diversidade, simultaneidade, interatividade) que os computadores no possuem. Pressuposto psicolgico: a mente pode ser simulada por um programa.

Esse pressuposto fica claro em algumas afirmaes da poca: Em 10 anos, as teorias psicolgicas assumiro a forma de um programa de computador (Simon, 1957); A tarefa de um psiclogo que tenta compreender a cognio humana anloga de algum que tenta descobrir como um computador foi programado (Neisser, 1959). No sabemos o suficiente sobre a mente humana para decidir se pode ou no ser simulada por um programa, mas tudo indica que no. Pressuposto epistemolgico: todo conhecimento pode ser formalizado.

O conhecimento cientfico certamente pode ser formalizado, mas o conhecimento comum, no. O exemplo mais claro o da linguagem: possvel (e simples) ao ser humano compreender uma frase em que uma regra gramatical foi infringida, mas impossvel programar um computador para que compreenda infrao de regras (seria necessrio incluir regras gramaticais, meta-regras, meta-metaregras, e assim por diante).

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

Pressuposto ontolgico: existem tomos de conhecimento.

Em outras palavras, tudo que essencial para o comportamento inteligente, deve, em princpio, poder ser expresso em termos de um conjunto de elementos independentes os tomos de conhecimento. Se esses tomos de conhecimento existissem, todo comportamento humano poderia ser precisamente descrito, o que, pelo menos at hoje, se revelou impossvel. Alm disso, Dreyfus estabeleceu quatro tipos de processamento humano que resiste formalizao, e que inviabiliza todo programa que tem por objetivo sua simulao. So eles: Conscincia marginal

Dreyfus chamou de conscincia marginal um tipo de processamento secundrio do crebro humano, e que as pessoas raramente se do conta; eis alguns exemplos: o tique taque de um relgio, que s percebido quando pra; a percepo de um rosto conhecido na multido, mesmo quando no est sendo procurado. Tolerncia ambigidade

O ser humano utiliza o contexto para reduzir a ambigidade, sem que necessite uma formalizao; por exemplo, reconhecimento de escrita cursiva, compreenso de frases como ele segue Marx, ou o trem saltou da linha, ou, ainda, fique perto de mim. Discriminao essencial / no essencial

Na resoluo de um problema, o ser humano descarta imediatamente o conhecimento no essencial (por exemplo, em um diagnstico mdico, o nome do paciente). Decidir o que no essencial extremamente difcil de formalizar. Reconhecimento de similaridades

possvel reconhecer um amigo na rua, mesmo que no o vejamos h muito tempo. Seu rosto, embora diferente, apresenta certa similaridade com o que conhecemos. No possvel formalizar esse conceito de similaridade. 4. Uma classificao das atividades inteligentes Em sua obra, Dreyfus prope uma classificao das atividades do pensamento, em quatro reas, de acordo com a maior ou menor utilizao de inteligncia, e os procedimentos computacionais adequados para sua soluo; em sua argumentao, a ltima rea seria inacessvel ao processamento artificial. rea I Comportamento associativo elementar onde o significado e o contexto so irrelevantes. Exemplos: jogos de memria associativa; jogos resolvveis por tentativa e erro; dicionrio mecnico; Soluo: busca em tabelas, rvores de deciso.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

rea II Comportamentos formais simples onde os significados so completamente explcitos e independentes do contexto. Exemplos jogos computveis ou quase computveis (jogo da velha, jogo de damas); problemas combinatrios simples (problema do labirinto); prova de teoremas utilizando procedimentos mecnicos (lgica formal); reconhecimento de configuraes rgidas simples (leitura de pgina impressa); Soluo: procedimentos exaustivos de busca. rea III Comportamentos formais complexos onde os significados no so totalmente explcitos nem totalmente independentes do contexto. Exemplos: jogos imcomputveis (xadrez); problemas combinatrios complexos (planejamento); demonstraes de teoremas que exijam procedimentos no mecnicos, como a intuio; reconhecimento de configuraes complexas (fotografia por satlite); Soluo: busca heurstica. rea IV Comportamentos no formais onde os significados no so explcitos e dependem completamente do contexto. Exemplos: problemas mal definidos (charadas); problemas de estrutura aberta - no so claras as condies relevantes (diagnstico mdico); traduo de linguagem natural; reconhecimento de configuraes variadas e alteradas (fala, escrita cursiva, paisagem natural). Soluo: restringir o problema a uma poro pelo menos parcialmente formalizvel e enquadr-lo na rea III. 5. O ressurgimento da IA A partir da dcada de 80, comearam a aparecer alguns fatores que levaram a uma intensificao das pesquisas e a um ressurgimento da rea de Inteligncia Artificial; em linhas gerais so os seguintes: orientao das pesquisas no sentido de auxiliar (e no substituir) a inteligncia humana; so exemplos as pesquisas em sistemas especialistas, em matemtica semi-automatizada, em gerao de programas, em agentes inteligentes, etc.; desenvolvimento de novas arquiteturas, como o projeto japons de 5a. gerao e as pesquisas em processamento paralelo;

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

desenvolvimento de novos ambientes de programao, como o de linguagens voltadas para os problemas de IA, principalmente Lisp e Prolog; desenvolvimento de uma nova tecnologia de programao, na qual o conhecimento e o procedimento so considerados separadamente, e tratados de forma independente.

Em virtude desses fatos, a rea de Inteligncia Artificial diversificou-se, abrindo novas reas de pesquisa e desenvolvimento; entre as principais, podemos citar: organizao e representao do conhecimento prova automtica de teoremas raciocnio aproximado sistemas especialistas planejamento processamento de linguagem natural programao automtica reconhecimento de padres aprendizagem compreenso percepo

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

II.

ESTRATGIAS DE BUSCA

1. Sistemas de Produo Um dos paradigmas mais utilizados na resoluo de problemas de IA, o modelo conhecido como Sistema de Produo; um Sistema de Produo um programa no qual podemos identificar: uma base de dados um conjunto de operadores uma estratgia de controle

e que processado segundo o Algoritmo Bsico: 1. DADOS Base inicial de dados 2. At que DADOS satisfaa condio de trmino, faa: a. Selecione um operador R b. DADOS R (DADOS) As bases de dados so as diversas configuraes que o problema pode assumir; a base inicial a configurao inicial do problema, e, em geral, existem uma ou mais configuraes s quais se deseja chegar: so as configuraes finais; resolver o problema significa estabelecer o caminho para se chegar a uma dessas configuraes. Os operadores so procedimentos que transformam uma base (ou configurao) de dados em outra; resolver um problema obter a sucesso de operadores que levam da configurao inicial a uma das configuraes finais. Quando existe mais de um operador aplicvel a uma configurao, necessitamos de uma estratgia de controle, ou seja, um processo que nos permita selecionar o operador mais adequado quela situao. Neste algoritmo, condies de trmino pode significar: obteno de uma configurao final impossibilidade de aplicao de operadores exausto de recursos computacionais

O objetivo do algoritmo obter uma configurao final; na primeira condio de trmino, o algoritmo alcana seu objetivo, e dizemos que ele termina com SUCESSO; nas demais, termina com FRACASSO. Este modelo apresenta algumas vantagens e algumas desvantagens sobre os modelos tradicionais de processamento; entre as principais vantagens podemos citar a modularidade (o programa composto de diversas partes, com certo nvel de interdependncia), e a possibilidade de rastrear o raciocnio (o processamento consiste basicamente de aplicao de uma seqncia de operadores; a determinao da forma pela qual o programa escolhe os operadores chamada, por alguns autores, rastreamento do raciocnio)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

Entre as desvantagens da utilizao desse modelo, podemos citar: a programao mais complexa (pela necessidade de modularizao; atualmente, o desenvolvimento de ambientes apropriados de programao tende a minimizar esse problema), e o consumo de recursos computacionais (o desenvolvimento de procedimentos mais eficientes e o aumento continuado de potncia das mquinas tendem a diminuir esse problema). 2. Grafos de Estado Os Grafos de Estado so representaes grficas dos Sistemas de Produo, e auxiliam enormemente a compreenso do seu funcionamento. Em termos matemticos, um grafo G = { V, A } um sistema constitudo por um conjunto no vazio V, de elementos chamados vrtices, e de um conjunto A, cujos elementos so pares ordenados de elementos de V, e so chamados arestas. Os grafos possuem uma representao grfica, na qual os vrtices so indicados por pontos, e as arestas so representadas por setas ligando esses pontos. Por exemplo, seja o grafo G constitudo pelo conjunto de vrtices V = {a, b, c} e pelas arestas A = {(a, b), (a, c)}; uma possvel representao grfica seria: b

Grafos de Estado so grafos nos quais cada vrtice representa uma configurao distinta da base de dados, e cada aresta representa a aplicao de um operador, de forma que se o operador R leva da configurao A para a configurao B, a aresta que representa R leva do vrtice que representa A para o vrtice que representa B. Vamos ilustrar com alguns exemplos, iniciando com o Problema dos Jarros dgua Dados dois jarros dgua, A e B, inicialmente vazios, com capacidade para 4 e 3 litros respectivamente, sem marcas intermedirias, determinar como colocar 2 litros dgua no jarro A. Podemos executar sobre os jarros, trs tipos de operaes : encher totalmente um jarro, com a gua de uma torneira; esvaziar totalmente um jarro, lanando fora seu contedo; passar a gua de um jarro para outro.

Em uma possvel representao em grafos de estado, cada vrtice seria constituido por um par ordenado, indicando a quantidade de gua em cada jarro; assim, o par (2, 3) indicaria que o jarro A tem dois litros de gua, enquanto o jarro B possui 3 litros.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

Cada aresta, por sua vez, representaria a aplicao de um operador sobre o par ordenado, obtendo outro par ordenado. Por exemplo, o operador R, que representa esvaziar o jarro B, quando aplicado sobre o vrtice (2, 3), produziria o vrtice (2, 0). Como podemos executar trs operaes sobre cada jarro, podemos identificar seis operadores: R1 encher o jarro A, com a gua da torneira; R2 encher o jarro B, com a gua da torneira; R3 esvaziar o jarro A, lanando fora sua gua; R4 esvaziar o jarro B, lanando fora sua gua; R5 passar a gua do jarro A para o jarro B; R6 passar a gua do jarro B para o jarro A. Como os jarros esto inicialmente vazios, a base inicial de dados constituda pelo par ordenado (0,0); como o problema consiste em como colocar 2 litros de gua no jarro A, sem exigncia sobre a quantidade de gua no jarro B, a condio de trmino se torna obter um par ordenado no qual a primeira ordenada 2; por exemplo, (2, 0), (2, 1), (2, 2) ou (2, 3). Representamos, abaixo, um trecho do grafo de estados do problema: R1 R1 R3 (4,0) R6 R5 (1,3) R1 R1 R2 R3 (0,3) R3 R4

R2 (4,3)

(3,0) R6

R3

(0,0) R4

R5
Jogo dos 8

O Jogo dos 8 foi inventado em meados do sculo XIX, e consistia de uma pequena caixa retangular de madeira, na qual 8 peas eram dispostas em forma de matriz 3 x 3. A falta de uma pea permitia que as peas adjacentes pudessem deslizar, alterando a configurao da matriz. Esse jogo fez enorme sucesso em todo o mundo, em particular porque os fabricantes costumavam oferecer vultosos prmios para quem obtivesse determinadas configuraes. Mais tarde, os matemticos puderam determinar quais configuraes eram acessveis, a partir da configurao inicial, e os prmios perderam o interesse, pois as configuraes premiadas nunca eram acessveis. Em termos matemticos, o Jogo dos 8 pode ser representado por uma matriz 3 x 3, com os elementos numerados de 0 (representando a casa vazia) a 8, na qual podemos permutar a posio de elemento 0 com um elemento adjacente. Dada uma configurao inicial e uma configurao final, o problema consiste em obter a seqncia de movimentos do elemento 0 que permita passar da configurao inicial final.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

10

No grafo de estados, cada vrtice representado por uma matriz 3 x 3, com elementos numerados de 0 a 8, indicando uma configurao do problema; as arestas representam a troca de posio do elemento 0 com um elemento adjacente. Como existem quatro possveis elementos adjacentes, temos os operadores: R1 troca do 0 com elemento acima; R2 troca do 0 com elemento direita; R3 troca do 0 com elemento abaixo; R4 troca do 0 com elemento esquerda. Abaixo, exemplos de configuraes inicial e final, e um trecho do grafo de estados: Configurao inicial Configurao final

4 1 3 7 2 5 8 0 6

1 2 3 4 5 6 7 8 0

Um trecho do grafo de estados:

4 1 3 7 2 5 8 0 6 R3 R1 4 1 3 7 0 5 8 2 6 R3 R2 R4 R2 4 1 3 0 7 5 8 2 6 R4 4 1 3 7 5 0 8 2 6 R2 R4 R2 4 1 3 7 2 5 0 8 6
R3

R4 4 1 3 7 2 5 8 6 0
R3

R1 4 0 3 7 1 5 8 2 6

R1 4 1 3 0 2 5 7 8 6

R1 4 1 3 7 2 0 8 6 5

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

11

Problema do Labirinto Dado um labirinto, encontrar um caminho entre a Entrada e pelo menos uma Sada.

Saida

Entrada

Como o labirinto constitudo por cmaras e passagens entre as cmaras, podemos, nomeando as cmaras com as letras de A a Z, e representando as ligaes entre as cmaras por linhas ligando as letras, prescindir da estrutura do labirinto, e representar o problema de uma forma mais esquemtica: A B C D E

Na construo do grafo de estados para esse problema, podemos fazer com que cada vrtice represente uma cmara (ou uma letra); a configurao inicial seria Z, e a final, U. Cada aresta, por sua vez, representa uma direo a tomar; observe que as arestas no so direcionadas: uma aresta

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

12

entre A e B indica que podemos passar tanto de A para B como de B para A; nesse caso, como em cada posio podemos tomar quatro direes possveis, temos os operadores: R1 acima R2 esquerda R3 abaixo R4 direita Eis um trecho do Grafo de Estados:

R3

R2

T
R1

R1

R4

Y
R4

R4

R1

3. Mtodos de Busca O objetivo do Algoritmo Bsico dos Sistemas de Produo obter uma seqncia de operadores que levem a base de dados, da configurao inicial a uma possvel configurao final. Para isso so necessrias formas sistemticas de percorrer o grafo de estados, chamadas Mtodos de Busca. Esses mtodos, durante seu processamento, constrem sobre o grafo de estados, um outro tipo de grafo, que chamamos rvore de Busca. Uma rvore de busca um subgrafo do grafo de estados, com as seguintes caractersticas: o estado inicial corresponde raiz da rvore; todos os vrtice, exceto a raiz, tm exatamente um pai.

As condies acima exigem que, se durante a construo da rvore, forem obtidos dois vrtices que representem a mesma configurao, apenas um deles permanece na rvore. De um modo geral, podemos classificar os mtodos de busca em dois tipos, conhecidos como mtodos informados e mtodos no informados. Os mtodos no informados atuam unicamente sobre o modelo em grafo de estados; os principais so:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

13

Irrevogvel Backtracking Busca em Largura e em Profundidade Busca Ordenada

Os mtodos informados, por sua vez, atuam sobre o grafo de estados, mas utilizam tambm informaes especficas sobre o problema. Os principais so: BF* A* IDA*

Quando, em um problema, existe um nico caminho do estado inicial a um estado final, ento, resolver o problema encontrar esse caminho; muitas vezes, no entanto, existe mais de um caminho que leva do estado inicial a um final; nesse caso, em geral, existe um caminho que melhor que os outros, em algum sentido. Nesse ltimo caso, temos, portanto, duas instncias de resolver: encontrar uma soluo (um caminho) ou encontrar a soluo tima (o melhor caminho). Nos exemplos dados, nos modelos do Problema dos Jarros dgua, do Jogo dos 8 e do Labirinto, resolver o problema pode significar, apenas, encontrar caminho mais curto para o estado final; esse seria o melhor caminho. 4. Mtodo Irrevogvel o mtodo mais simples de se construir a rvore de busca sobre um grafo de estados: a partir da raiz, e por aplicao sucessiva dos operadores, percorre-se um caminho at que a soluo seja encontrada (SUCESSO) ou at que no se possa mais prosseguir, seja pela impossibilidade de aplicar operadores, seja por exausto dos recursos computacionais (FRACASSO). Veja um fluxograma para o mtodo Irrevogvel na pgina seguinte. A questo da duplicidade de configuraes Nesse mtodo, a rvore de busca se reduz a uma seqncia linear de vrtices; se for produzida uma configurao j alcanada anteriormente, esta desconsiderada, sob pena de o algoritmo repetir o ciclo indefinidadamente (entrar em loop); por isso, dizemos que um operador R aplicvel configurao a N quando essa aplicao pode ser realizada, isto , produz alguma configurao, e essa configurao no consta do caminho de S a N. A questo da qualidade da soluo O mtodo Irrevogvel no garante encontrar soluo para o problema; e, quando encontra alguma, no podemos saber se a mais curta ou no.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

14

Mtodo Irrevogvel S Base inicial de Dados NS

S Foi excedido o limite de computao ? N Selecione operador R aplicvel a N

Existe ? S

FRACASSO

N R(N)

N N o objetivo ? S

SUCESSO

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

15

5. Backtracking uma modificao do mtodo Irrevogvel; no Irrevogvel, quando no for mais possvel aplicar um operador, o processo pra; no Backtracking, volta-se a um vrtice anterior (o pai, em geral), e tenta-se outro caminho. Desta forma, se houver recursos computacionais suficientes, todo o grafo de estados examinado; por esse motivo, dito um mtodo exaustivo. Se existir algum caminho entre o estado inicial e algum vrtice final, o Baktracking o encontrar. Na pgina seguinte, apresentamos um fluxograma para o mtodo Backtracking. A questo da duplicidade de configuraes Da mesma forma que no mtodo Irrevogvel, no se deve permitir que a configurao obtida pela aplicao do operador R a um vrtice N figure no caminho de S a N. Mas, e se essa configurao j figurar na rvore, mas no no caminho de S a N ? Digamos que, na construo da rvore de busca, foi obtido um vrtice V com configurao X; posteriormente, foi obtido um vrtice T, no descendente de V, com a mesma configurao X. Ora, o Bactracking j explorou todos os caminhos que passam por V, quando de sua incluso na rvore; como a soluo no foi encontrada, conclui-se que a configurao X no leva soluo; por isso, do ponto de vista computacional, intil incluir o vrtice T na rvore. Por outro lado, para evitar a incluso de T na rvore, necessrio manter a rvore permanentemente na memria, o que demanda grande quantidade de espao, e pesquis-la a cada incluso de vrtice, o que demanda grande quantidade de tempo de processamento. Por isso, usual no algoritmo de Backtracking, sempre que se conclui que um vrtice no leva soluo (isto , quando se volta ao pai), exclui-lo da rvore, devolvendo memria o espao por ele utilizado. Dessa forma, quando aplicado um operador ao vrtice N, existe na memria apenas o caminho de S a N. Com esse procedimento, arriscamo-nos a explorar novamente caminhos j explorados, mas esse fato largamente compensado pela economia de memria (no armazenando a rvore) e de tempo de processamento (reduzindo a pesquisa por configuraes repetidas apenas ao caminho de S a N). A questo da qualidade da soluo O Backtracking um algoritmo exaustivo, isto , percorre todo o grafo; portanto, se houver alguma soluo, o Backtracking a encontra. Se houver mais de uma soluo, o algoritmo pra na primeira encontrada e, portanto, pode no garante encontrar a soluo mais curta. 6. Backtracking Iterativo Um algoritmo iterativo de busca um algoritmo que constri a rvore de busca, repetidas vezes, a partir da raiz, ampliando a rvore construida, a cada iterao. Embora os algoritmos iterativos possam parecer, a principio, ineficientes, s vezes so teis, em virtude de suas caractersticas. Um dos algoritmos iterativos mais interessantes o Backtracking Iterativo. Este algoritmo consiste em executar repetidas vezes o Backtracking: na primeira vez, at a profundidade 1; na segunda vez, at a profundidade 2; na terceira vez, at a profundidade 3, e assim por diante, at que na psima vez, o algoritmo executado at a profundidade p.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

16

Backtracking S Base inicial de Dados NS

Foi excedido o limite de computao ? N Nivel de N p ? N S

N pai (N)

Selecione operador R aplicvel a N

N pai (N) S

No existe e N = S ? N S No existe e N S ?

FRACASSO

N N R(N)

N o objetivo ? S SUCESSO

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

17

fcil perceber que o Backtracking Iterativo percorre a rvore de busca nvel a nvel; dessa forma, encontra a soluo mais curta, parando no vrtice terminal mais prximo da raiz. O espao de memria requerido pelo Backtracking Iterativo o mesmo que para o Backtracking comum enquanto que o tempo de processamento do algoritmo iterativo claramente maior. No entanto, possvel mostrar que, para problemas muito grandes, os tempos de processamento de ambos os algoritmos convergem para o mesmo valor; ento podemos dizer que o tempo de procecessamento, em ambos os casos, tema a mesma ordem de grandeza. 7. Busca em Largura e em Profundidade Nos mtodos Irrevogvel e Backtracking, apenas um filho de cada vrtice gerado por vez; nos mtodos de busca em Largura e em Profundidade, todos os filhos de cada vrtice so gerados de uma vez e colocados na rvore. Por esse motivo, podemos distinguir, na rvore de busca, dois tipos de vrtices: ABERTOS, isto , vrtices instalados na rvore, mas cujos filhos ainda no foram obtidos, e FECHADOS, isto , vrtices instalados na rvore, cujos filhos tambm esto instalados na rvore. Os mtodos de busca em Largura e em Profundidade esto apresentados no fluxograma da pgina seguinte, chamado rvore de Busca. O algoritmo costuma utilizar listas auxiliares, para gerenciar os dois tipos de vrtices, chamadas, respectivamente, Lista de ABERTOS e Lista de FECHADOS. No algoritmo, a expanso da rvore est limitada ao nvel p. No passo Selecione N em ABERTOS e coloque em FECHADOS podemos distinguir duas polticas: Selecionar o vrtice que est h mais tempo na lista nesse caso, a Lista de ABERTOS tem o comportamento de uma fila, e a rvore gerada nvel a nvel; esta a busca em Largura. Selecionar o vrtice instalado mais recentemente na lista nesse caso, a Lista de ABERTOS se comporta como uma pilha, e a rvore gerada lateralmente; esta a Busca em Profundidade. Esse mtodo semelhante ao Backtracking, em termos de tempo de processamento, em memria utilizada, e em qualidade da soluo; por esse motivo muitos autores no o consideram distinto do Backtracking.

A questo da duplicidade de configuraes Normalmente, procuramos obter, com esses algoritmos, a melhor soluo para o problema, se existir alguma; ento, dados dois vrtices que representam o mesmo estado, devemos desprezar aquele que se encontra mais longe da raiz. Portanto, ao gerar um vrtice A cuja configurao j consta em um vrtice B, comparamos as distancias de S a A e de S a B, e desprezamos o mais distante. A questo da qualidade da soluo O algoritmo de busca em Largura tambm exaustivo, e encontra uma soluo, se existir alguma; se existir mais de uma, o algoritmo de busca encontra soluo mais curta, atingindo o vrtice terminal mais prximo da raiz.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

18

Algoritmo rvore de Busca S Base inicial de dados Ponha S em ABERTOS Crie a lista FECHADOS, vazia

ABERTOS = ? N

FRACASSO

Selecione N em ABERTOS e coloque-o em FECHADOS

N o objetivo ? N

SUCESSO

Nivel (N) > p ? N

Gere o conjunto M, de filhos de N. Coloque em ABERTOS aqueles cuja configurao no aparece nem em ABERTOS nem em FECHADOS. Para os demais, decida se devem ser desprezados os antigos ou os agora gerados.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

19

8. Busca Ordenada Muitas vezes, quando modelamos um problema em grafos, necessrio rotular as arestas com valores numricos, que representem um custo para passar de um estado para outro. Considere, por exemplo, o grafo abaixo: nesse grafo, A, B, C, D e E representam cidades em uma regio, e os valores aos lados das arestas representam as distancias ao longo das rodovias entre as cidades. Nosso problema seria encontrar o caminho mais curto entre as cidades A e D. A 4 B 1 2 C

3 1

Grafos em que as arestas so associadas a custos so chamados grafos ponderados. Em grafos ponderados, soluo tima a soluo de menor custo, e no soluo mais curta; o algoritmo de rvore de Busca ainda pode ser utilizado para esse problema, mas com algumas modificaes; essas modificaes do origem ao algoritmo de Busca Ordenada. No algoritmo rvore de Busca, temos o seguinte passo: Selecione N em ABERTOS e coloque-o em FECHADOS J vimos que selecionar o mais antigo na lista de ABERTOS produz o que chamamos busca em Largura e que selecionar o mais recente na lista de ABERTOS produz a busca em Profundidade. Propomos agora nova poltica: selecionar o vrtice N em ABERTOS tal que o custo do caminho do vrtice inicial at N seja mnimo. Essa poltica d origem a um mtodo de busca conhecido como busca Ordenada, que tem como objetivo encontrar a soluo de custo mnimo. Para encontrar o vrtice em aberto de custo mnimo, usual estruturar o conjunto de vrtices em aberto como uma lista, organizada de forma crescente dos custos dos caminhos da raiz at o vrtice; nesse caso, o vrtice de custo mnimo seria o cabea da lista. Vamos exemplificar o mtodo de Busca Ordenada, aplicando o algoritmo sobre o grafo acima. No primeiro passo, o vrtice inicial A, com filhos B e C; nesse passo, a rvore de busca ficaria assim: A 4 B 2 C

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

20

Observe que a distancia entre A e C menor que entre A e B; ento nossa lista de abertos ficaria na forma [ C B ]. Tomamos ento o primeiro da lista e o fechamos (ou expandimos), isto , obtemos seus sucessores; os sucessores de C so o prprio A, B, D e E. Evidentemente, A no pode ser considerado (est no caminho de A a C); B, por outro lado, j consta da rvore, mas no no caminho de A a C e tem custo associado igual a 4; como no novo caminho ter custo 3, o caminho antigo eliminado da rvore. Os vrtices D e E esto aparecendo pela primeira vez; a rvore se torna: A 2 C 1 5 D 2 E

Os vrtices em aberto so B, D e E, com custos associados respectivamente iguais a 3, 7 e 4. Nossa lista de abertos se torna [ B E D ]. Retiramos o primeiro da lista e obtemos seus sucessores, A C e D. Os vrtices A e C no podem ser considerados, pois j esto no caminho de A a B; o vrtice D j consta da rvore com custo 7, e o novo caminho apresenta custo 6; portanto, o caminho anterior eliminado, e D reinstalado na rvore, agora como filho de B:

A 2 C 1 2 E 3

Nossa lista de abertos se torna [ E D ]. Os sucessores de E so C (que j consta do caminho) e D, agora com custo 5. A rvore se torna:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

21

A 2 C 1 2 E 1

Fechando o nico vrtice da lista de abertos, D, verificamos que terminal. O algoritmo encerrado, apresentando o caminho timo, A C E D, com custo mnimo, igual a 5. A questo da duplicidade de configuraes Uma vez que os custos dos operadores so positivos, os vrtices so expandidos em ordem crescente dos custos; portanto, quando o algoritmo gera um vrtice cuja configurao j se encontra na rvore, a mais antiga tem custo associado menor, e a mais recente deve ser abandonada. A questo da qualidade da soluo obtida Novamente, como os vrtices so fechados em ordem crescente dos custos, possvel mostrar que, se existirem dois vrtices terminais, com custos diferentes, o algoritmo fecha primeiro o de custo menor. Podemos considerar grafos no ponderados como grafos ponderados em que todas as arestas tm o mesmo custo associado; esses grafos so ditos de custo uniforme. Em problemas de custo uniforme, como o Jogo dos 8, a busca Ordenada se comporta como a busca em Largura (se o critrio de desempate favorecer o vrtice mais antigo na Lista de ABERTOS) ou busca em Profundidade (se o critrio de desempate optar pelo vrtice mais recente na Lista de ABERTOS). 9. Complexidade dos mtodos no informados Se fizemos: b numero mdio de filhos por vrtice p profundidade da busca

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

22

ento podemos apresentar a tabela abaixo, que compara a ordem de grandeza dos tempos de processamento e da memria utilizada para os algoritmos descritos, no pior caso, isto , em situaes nas quais a rvore de busca construda alcana tamanho mximo. O smbolo O indica ordem de grandeza:

Mtodo Irrevogvel Backtracking Busca em Largura Busca em Profundidade Busca Ordenada

Tempo O (p) O (bp) O (bp) O (bp) O (bp)

Espao O (p) O (p) O (bp) O (bp) O (bp)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

23

III.

BUSCA HEURSTICA

1. Funo de Avaliao O algoritmo de Busca Ordenada, ao escolher para fechar o vrtice associado ao caminho com soma mnima de custos, tem por objetivo, no caso de o problema possuir mais de uma soluo, encontrar a soluo de custo mnimo. No entanto, este algoritmo possui algumas limitaes (s faz sentido em grafos ponderados, por exemplo), de forma que, para construir algoritmos mais gerais, tornouse necessrio a incluso de alguns novos conceitos. Com esse objetivo, definimos uma funo f, chamada funo de avaliao, que associa a cada caminho do vrtice inicial S ao vrtice n no grafo de estados ou ao vrtice n na rvore de busca um nmero real, que indique a possibilidade de este caminho levar a um vrtice terminal. Pretendemos, como essa funo, medir a qualidade do vrtice n, e, com isso, escolher para fechar, o vrtice mais promissor, aquele que tiver maiores possibilidades de pertencer ao caminho timo. Para a definio dessa funo, podemos levar em conta: a configurao do vrtice; os operadores utilizados no caminho; informaes adicionais do problema.

Considere, por exemplo, o Jogo dos 8; examinando a configurao associada ao vrtice, podemos contar quantas peas j esto nos seus lugares corretos; quanto mais peas no lugar, melhor a qualidade do vrtice, isto , maior a possibilidade de pertencer ao caminho que leva soluo. Em princpio, no existe nenhum critrio para se definir a funo de avaliao. No entanto, para que possamos obter certos resultados que nos sero teis, devemos construir funes de avaliao que atendam aos seguintes critrios: a) a funo de avaliao deve preservar a ordem Considere um grafo de estados G, tal que existam dois caminhos, P1 e P2, de S a um vrtice n. Se a funo de avaliao f for tal que julgue P1 melhor que P2, e nenhuma extenso de P1 e P2 possa mais tarde reverter o julgamento, ento dizemos que f preserva a ordem. b) a funo de avaliao deve associar melhor a menor Para qualquer funo de avaliao f, sempre podemos definir outra funo de avaliao f tal que se f(m) < f(n), ento m mais promissor que n. Por exemplo, se f d preferencia a valores mximos, fazemos f= 1/f; se f d preferencia a valores mais prximos de uma constante k, fazemos f= abs (f k) .

No Jogo dos 8, podemos fazer f (n) = numero de peas fora do lugar na configurao associada a n.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

24

2. Algoritmo A* Em 1985, dois pesquisadores, Detcher e Pearl, definiram um algoritmo, ao qual denominaram BF*, cujo fluxograma apresentamos a seguir, que procurava generalizar o conceito de busca ordenada; neste algoritmo, a funo de avaliao f preserva a ordem e indica o vrtice mais promissor como aquele com f mnimo dentre os abertos. Dizemos que um algoritmo de busca admissvel se, para qualquer grafo de estados, ele encontra a soluo tima, se ela existir. Detcher e Pearl mostraram que, se no grafo pesquisado pelo BF*, existir um caminho timo, ao longo do qual f atinge seu valor mximo no vrtice objetivo, ento BF* admissvel. Detcher e Pearl mostraram tambm que, no BF*, se atribuirmos a cada operador um custo positivo, de forma que caminho timo signifique caminho de soma mnima e definirmos a funo de avaliao f (n) como a soma dos custos dos operadores, da raiz S ao vrtice n, ento o BF* ser admissvel. Desse resultado decorre imediatamente que o algoritmo de Busca Ordenada, como definimos no captulo anterior, admissvel. Em 1968, os pesquisadores Hart, Nilsson e Raphael, haviam definido um algoritmo, chamado A*, que era, na verdade, um BF* com a funo de avaliao f definida por f (n) = g (n) + h (n) onde: g (n) = custo do caminho, de S at o vrtice n; h (n) = uma estimativa do custo do caminho, de n at um vrtice objetivo t. A funo h chamada funo heurstica, e representa apenas uma estimativa de quanto falta do caminho para se chegar a um objetivo, de forma que no existem critrios para sua definio; evidentemente, a qualidade do algoritmo vai depender da qualidade da estimativa. Vejamos alguns exemplos: No Jogo dos 8, podemos definir vrias heursticas: h1(n) = nmero de peas fora do lugar; h2(n) = soma das distncias das peas aos seus lugares; h3(n) = 1.5 * soma das distncias das peas aos seus lugares. No Problema do Labirinto: h (n) = (distancia horizontal + distancia vertical) entre n e o vrtice Sada. No problema de encontrar o menor caminho entre duas cidades: h (n) = distancia area entre a cidade n e a cidade terminal O Algoritmo BF* apresentado a seguir:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

25

Algoritmo BF* S Base inicial de dados Calcule f(s) e ponha S em ABERTOS Crie a lista FECHADOS, vazia

ABERTOS = ? N Retire de ABERTOS o vrtice N com f mnimo (desempate de forma arbitrria, mas sempre em favor do vrtice objetivo) e coloque-o em FECHADOS

FRACASSO

N o objetivo ? N

SUCESSO

Gere todos de filhos de N. Para cada filho n de N, faa: Calcule f (n). Se for uma nova configurao, coloque-o em ABERTOS. Se no, despreze o vrtice com maior f

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

26

Hart, Nilsson e Raphael obtiveram vrios resultados importantes no A*: A. Admissibilidade Seja h* (n) o custo do caminho timo, de n a um vrtice objetivo. Se, no A*, h (n) h* (n) para todo vrtice n, ento A* admissvel. B. Limitao do numero de vrtices fechados Seja C* o custo da soluo tima; se A* admissvel, ento todo vrtice n, com f (n) < C* ser fechado. S sero fechados vrtices n tais que f (n) C*. C. Otimalidade Se, no A*, h (n) = h* (n) para todo vrtice n, apenas os vrtices n com f (n) = C* sero fechados; existe um A* com critrio de desempate timo no qual apenas os vrtices do caminho timo sero fechados. D. Consistncia de Heurstica Uma heurstica h admissvel dita consistente se, para todo par de vrtices m e n, onde n descendente de m, tivermos h (m) h (n) c (m,n), onde c (m,n) representa o custo do caminho de m a n. Veja os exemplos abaixo: m h (m) =10 5 n h (n) = 5 m h (m) = 10 5 n h (n) = 7 m h (m) = 10 5 n h (n) = 11 m h (m) =10 5 n h (n) = 3

As trs primeiras heursticas so consistentes, e destas, a terceira a melhor; a quarta no consistente. Uma heurstica consistente quando se torna mais precisa, medida que se aproxima do objetivo. E. Consistncia e admissibilidade Se uma heurstica consistente, ento o A* admissvel. De fato, h (n) h (t) c (n, t) Mas c (n, t) = h* (n), e h (t) = 0; portanto, h (n) h* (n) F. A questo da duplicidade de configuraes Pode ser demonstrado que quando h consistente e se g* (n) representa o custo do caminho timo de S a n, ento, quando A* fecha o vrtice n, temos g (n) = g* (n).

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

27

Isto significa que quando o A* obtm um vrtice com configurao duplicata de um vrtice fechado, ento este pode ser descartado, pois, se o vrtice est fechado, foi obtido o caminho timo para ele. Por outro lado, se for obtido um vrtice com configurao duplicata de um vrtice aberto, deve-se descartar o de maior f; se os valores de f empatarem, desempate arbitrariamente. G. A seqncia de vrtices fechados Se a heurstica consistente, a seqncia de vrtices fechados pelo A* tem valores no decrescentes. H. Poda O numero de vrtices gerados pelo A* cresce muito rapidamente, podendo dificultar ou at mesmo inviabilizar o processamento do algoritmo; por esse motivo, usual a adoo de um ou mais critrios de poda para a rvore de busca. Podar uma rvore de busca significa eliminar vrtices j gerados (ou impedir sua gerao) para manter o numero de vrtices dentro de limites aceitveis. Se for podado um vrtice para o qual no h garantia de que no pertena ao caminho timo, o A* perde a admissibilidade. Apresentamos, abaixo, dois dos principais critrios de poda: Limitao do tamanho da lista de ABERTOS

Quando a lista de ABERTOS est completa, e gerado novo vrtice, descarte o de maior f. Com esse critrio de poda, o A* perde a admissibilidade; porem, se, ao trmino do processamento, observarmos que todos os vrtices podados tm valor f maior ou igual ao valor f da soluo obtida, ainda podemos garantir que a soluo tima. Como o A*, com heurstica consistente, fecha vrtices com valores f no decrescentes, podemos garantir que nenhum vrtice podado seria fechado. Boas solues

Um outro critrio de poda seria obter, por algum processo, uma soluo prxima da tima, e podar, no A*, os vrtices com valor f maiores que o custo da soluo obtida. Como todos os vrtices fechados pelo A* tm valor f menor ou igual ao da soluo tima, podemos garantir que nenhum vrtice podado seria fechado pelo A*; portanto, este critrio de poda mantm a admissibilidade do A*. Vamos exemplificar a utilizao do A* resolvendo novamente nosso problema de encontrar o caminho timo entre as cidades A e D, segundo o grafo apresentado no algoritmo de busca ordenada. Vamos utilizar, como funo heurstica, a distancia area, isto , a distancia em linha reta entre cada cidade e a cidade terminal D. Evidentemente, a distancia em linha reta entre duas cidades menor (ou, na melhor hiptese, igual) que a distancia medida na rodovia. Ento, com essa estimativa, nosso A* ser admissvel, isto , vai fechar com a soluo tima. Supomos ento a seguinte funo heurstica:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

28

vrtice h

A 4

B 3

C 2

D 0

E 1

Iniciamos ento a construo da rvore de busca com a cidade inicial A e suas sucessoras B e C. Abaixo de cada vrtice em aberto indicamos a funo f, a soma da distancia j percorrida com uma estimativa (a distancia area) do que falta percorrer. A lista de abertos organizada em ordem crescente dessa funo f. No primeiro passo, a rvore de busca assume a forma: A 4 B f=7 2

C f=4

Expandindo o vrtice C (o de menor f), encontramos A, que j est fechado e desconsiderado; encontramos B, com f = 6 e retiramos B com f = 7 da rvore; e encontramos D e E; a rvore assume a forma: A 2 C 1 5 D f=7 2 E f=5

B f=6

Expandindo o vrtice E, encontramos C, que j est fechado, e D, agora com f = 5. A rvore se torna: A 2 C 1 B f=6 2

E 1 D f=5

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

29

Expandindo o vrtice D, verificamos que terminal, e o algoritmo termina com a soluo A C E D, com custo igual a f (D) = 5. 3. Algoritmo IDA* Da mesma forma que o Backtracking, o A* possui uma forma iterativa, chamado algoritmo IDA* (Iterative Deepning A*), cujo fluxograma apresentamos a seguir. S Base inicial de dados Calcule f (S) PATAMAR f (S) NS

f (N) > PATAMAR ? N Selecione R aplcvel a N

Marque N como descartado N pai (N)

N Existe ? S N R (N) Calcule f (N) N=S? N S


PATAMAR mnimo dos f (N) dos vrtices descartados

N o objetivo e f (N) < PATAMAR ? S

N pai (N)

SUCESSO

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

30

O IDA* utiliza um valor chamado PATAMAR. Em cada iterao so fechados todos os vrtices n tais que f (n) PATAMAR; sempre que for gerado um vrtice m com f (m) > PATAMAR, ele descartado. Na primeira iterao, o valor de PATAMAR f (S), e, nas iteraes seguintes, o valor de PATAMAR o menor dentre os f (n) dos vrtices descartados. O IDA* constri a rvore de busca da mesma forma que o Backtracking, gerando um filho de cada vez, utilizando o PATAMAR como limite de profundidade. Por esse motivo no existe lista de ABERTOS. Korf, em 1985, mostrou que se a heurstica for consistente, o IDA* admissvel, isto , encontra a soluo tima, e que o tempo de processamento do IDA* tende, assintoticamente, ao tempo de processamento do A*. O gasto de memria o mesmo que o Backtracking. Para exemplificar o IDA* vamos utilizar novamente o problema de encontrar o caminho mnimo entre as cidades A e D no grafo do exemplo. Como f (A) = h (A) = 4, esse o nosso primeiro patamar. Utilizando como estratgia de controle a ordem alfabtica dos vrtices, temos que o primeiro filho de A o vrtice B; como f (B) = 7, ele retirado da rvore, e A tenta outro filho, C. Como f (C) = 4, est dentro do patamar, os sucessores de C so, nessa ordem, A (que no considerado, pois est no caminho), B, com f = 6, D, com f = 7 e E, com f -= 5. Como todos tm f maior que patamar, todos so retirados da rvore. Como C no tem mais filhos tambm retirado. Como no h outro caminho para o vrtice A, este tambm retirado, o que encerra o primeiro passo. Neste passo, o IDA* explora a seguinte rvore: Passo 1 A 2 C 1 5 D f=7 2 E f=5

B f=7

B f=6

Neste primeiro passo, o patamar foi igual a 4. O menor valor de f dos vrtices cortados, maior que 4 foi f = 5, do vrtice E. Ento, o novo patamar 5, e o procedimento recomea. A partir de A, o vrtice B, com f = 7 cortado, e C, com f = 4, expandido; seus filhos, B (com f = 6) e D (com f = 7) so cortados, mas E, com f = 5,(dentro do patamar) expandido. Seus filhos so C (que pertence ao caminho), e D, ainda com f = 5. D, portanto, expandido, e o algoritmo encerrado, pois D terminal, com a soluo tima A C E D, com custo igual a f (D) = 5. Abaixo, a rvore construda pelo IDA*, no segundo passo:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

31

Passo 2 A 4 2 C 1 5 D f=7 1 D f=5 2 E

B f=7

B f=6

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

32

IV.

BUSCA EM HIPERGRAFOS

1. Grafos E/OU Os operadores que vimos at agora simplesmente transformam uma configurao A do problema em outra configurao B; assim, se resolvermos a configurao B (isto , encontrarmos um caminho de B at um vrtice objetivo), teremos resolvido o problema em sua configurao A. No entanto, na modelagem do problema, s vezes necessrio definir operadores que, ao invs de transformar um estado em outro, o decompe em dois ou mais estados. Por exemplo, um operador pode decompor uma configurao A do problema em duas outras, B e C. Nesse caso, para que possamos resolver a configurao A, necessrio resolver B e C. Por exemplo, digamos que eu queira resolver (x2 + sen x) dx; ora, sabemos que a integral de uma soma igual soma das integrais, o que nos permite decompor o problema dois outros: resolver x2 dx e resolver sen x dx. No modelo em grafos, os operadores que decompem problemas so representados por hiperarcos; grafos que contem hiperarcos so chamados hipergrafos. Um hiperarco que decompe um estado em k outros tambm chamado um kconector. Assim, os operadores que vimos at agora, que simplesmente transformam uma configurao em outra, so chamados 1conector; os operadores que decompem so chamados 2conectores, 3conectores, e assim por diante. As arestas do tipo 1conector so ainda chamadas arestas OU enquanto as arestas do tipo kconector, k 2, so chamadas arestas E; os grafos que possuem os dois tipos de arestas so chamados grafos E/OU

4 1 3 7 2 5 8 0 6

(x2 + sen x) dx

4 1 3 7 0 5 8 2 6

4 1 3 7 2 5 0 8 6 Arestas OU

4 1 3 7 2 5 8 6 0

x2 dx

sen x dx

Aresta E

Exemplos de grafos E/OU Considere o problema de resolver a integral indefinida (-cos x + sen x cos x + tg x) dx utilizando os seguintes operadores: R1: un du = 1 / (n+1) un+1 R2: (f1 + f2 + ... + fn) du = f1 du + f2 du + ... + fn du

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

33

R3: u dv = uv v du R4: sen x dx = cos x R5: cos x dx = sen x R6: k f (x) dx = k f (x) dx Vrtices terminais so aqueles que no possuem o smbolo de integral. Os operadores que constituem o grafo soluo esto indicados por uma seta.

(cos x + sen x cos x + tg x) dx

R2

cos x dx
R6

sen x cos x dx
R3 R1

tg x dx
R3

cos x dx
R5

x tg x

x dx
R3 R1

sen x

sen2 x dx

cos 2 x

x2

x dx

x2 / 2

Se cada kconector tem custo k, ento o grafo soluo acima vale 9. Outro exemplo: considere o hipergrafo da pgina seguinte, onde cada kconector tem um custo k:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

34

V0

V1

V3

V2

V4

V6

V5

V7

V8

O hipergrafo acima possui vrios grafos soluo, dos quais apresentamos dois, o primeiro com custo 8, e o segundo com custo 7:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

35

V0 V0

V1 V5 V3 V4

V6 V5

V7

V8

Segundo grafo soluo

V7 V8

Primeiro grafo soluo 2. Grafo soluo e seu custo Nos grafos comuns, resolver o problema encontrar um caminho (isto , uma sucesso linear de operadores) entre a configurao final e uma das configuraes finais. Nos grafos E/OU, resolver o problema encontrar um subgrafo chamado grafo soluo, em geral de menor custo. O grafo soluo o equivalente, nos grafos E/OU, ao caminho nos grafos comuns. O grafo soluo consiste de um conjunto de operadores, que no constituem necessariamente uma sucesso, e que permitem passar da configurao inicial para as configuraes finais. Abaixo a definio de grafo soluo e a forma de calcular seu custo. Seja G(n) o grafo soluo com raiz n; seja T o conjunto vrtices objetivos:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

36

(i) (ii) (iii)

se n T, G(n) consiste apenas de n; se n T, e no possui conector de sada, G(n) no existe; se n T, mas possui um k-conector de sada, para n1, n2, ..., nk, ento G(n) consiste de n, do k-conector, de n1, n2, ..., nk e dos grafos soluo G(n1), G (n2) , ..., G(nk).

Para calcular o custo C (n,T) do grafo soluo G(n): (i) (ii) se n T, c (n,T) = 0; se n T, mas possui um k-conector de sada, para n1, n2, ..., nk, de custo C, ento:

C (n,T) = C + C (n1, T) + C (n2, T) + ... + C (nk, T) 3. O Algoritmo AO* Desenvolvido por Nilsson (1971, 1980), Martelli e Montanari (197378), o AO* um algoritmo heurstico para obter o grafo soluo de menor custo, em um grafo E/OU Um vrtice V rotulado R (resolvido) quando: (i) (ii) (iii) pertence ao conjunto de vrtices objetivo possui um filho OR rotulado R possui todos os filhos de uma aresta AND rotulados R

Veja, na pgina seguinte, o algoritmo AO* Vamos exemplificar a utilizao do AO* aplicandoo sobre o grafo apresentado na pgina 33, com a seguinte funo heurstica: vrtices V0 0 h V1 2 V2 4 V3 4 V4 1 V5 1 V6 2 V7 0 V8 0

Nas pginas 37 e 38 apresentamos o desenvolvimento do grafo de busca, e na pagina 39 a soluo encontrada.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

37

Algoritmo AO* G(s) s Calcule h (s)

S A raiz est rotulada com R ? SUCESSO

N N

Existe vrtice a ser expandido ? S

FRACASSO

Escolha o grafo soluo parcial de menor custo; expanda o vrtice de menor h, colocando seus filhos em G e calculando h desses filhos.

Propague as informaes grafo acima, atualizando os valores h e R Marque o melhor grafo soluo parcial

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

38

1 passo V0 h=0

2 passo

V0 h=3 3 4 V4 h=1 V5 h=1

V1 h=2

3 passo V0 h=4

V1 h=5

V5 h=1

V4 h=1

V3 h=4

V2 h=4

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

39

4 passo V0 h=5 V1 h=5 V5 = R h=2 V4 h=1

V3 h=4 5 passo

V2 h=4

V7 = R h=0

V8 = R h=0

V0 = R h=5

V4 = R h=1

V5 = R h=2 V3 h=4 V2 h=4

V7 = R h=0

V8 = R h=0

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

40

Soluo

V0

V5

V4

V7

V8

Custo: 5

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

41

V.

JOGOS

1. Grafos de Jogos Provavelmente, os jogos foram a primeira atividade que recebeu ateno dos pesquisadores em Inteligncia Artificial, principalmente por sua simplicidade de programao (as regras so facilmente formalizveis) e facilidade de determinar a qualidade do programa, em comparao com outros programas ou seres humanos. Os jogos que vamos examinar so jogos: de duas pessoas, chamadas A (que inicia) e B; de estratgia (no so jogos de habilidade motora, nem de azar cartas ou dados); de informao completa (o conhecimento de ambos os jogadores idntico).

Nosso objetivo resolver o jogo, isto , obter uma estratgia que permita garantir a vitria de um dos jogadores, a partir da posio inicial, independentemente das jogadas do seu oponente. Com pequenas modificaes, os jogos podem ser representados por grafos E/OU, onde os vrtices representam as configuraes do jogo, e as arestas representam as possveis jogadas; do ponto de vista de um jogador, as arestas OU representam suas prprias jogadas, uma vez que ele pode escolher uma para efetuar, enquanto as arestas E representam as jogadas de seu oponente, uma vez que todas devem ser levadas em conta. Podemos exemplificar com um dos jogos mais simples que existe, e que chamado Jogo de Grundy. A configurao inicial consiste de uma pilha de n fichas, e cada jogador deve escolher uma pilha e dividi-la em duas desiguais. O jogador que no conseguir porque todas as pilhas possuem apenas uma ou duas fichas perde. Apresentamos, abaixo, um grafo para este jogo; cada vrtice constitudo pela lista de pilhas com mais de duas fichas, seguida pelo nome do jogador da vez. O rtulo do vrtice indica o vencedor naquela posio. Para resolver o jogo: 1. Construa a rvore de jogo 2. Rotule as posies terminais com o vencedor naquela posio. 3. At que seja rotulado a configurao inicial, e para cada vrtice N com os sucessores rotulados, faa: a. se for X a jogar e existir um sucessor de N com rtulo X, rotule N com X; b. se for X a jogar e todos os sucessores de N tiverem rtulo Y, rotule N com Y.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

42

Exemplo: Jogo de Grundy para n = 7 B

(7,A)

(6,B)

(5,B)

(4,3,B)

(5,A)

(4,A)

(3,3,A) B

(4,B)

(3,B)

(3,A)

(,A)

(,B)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

43

Uma possvel estratgia de vitria:

B (7,A)

B (6,B)

B (5,B)

B (4,3,B)

B (4,A)

B (3,B)

(,A)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

44

2. Resolvendo o jogo Abaixo, um algoritmo que pode ser utilizado para resolver o jogo, isto , rotular o vrtice inicial com o vencedor:

Rotule os vrtices terminais

S Raiz rotulada ? N Escolha vrtice V com todos os sucessores rotulados. Seja X o jogador.

Existe pelo menos um sucessor com rtulo X ?

Rotule V com X.

Rotule V com Y

Escolha um subgrafo soluo em que todos os vrtices tm o mesmo rtulo que a raiz

Um processo eficiente para rotular a raiz utilizar o backtracking para construir a rvore de jogo, rotulando os vrtices logo que se dispe de informao suficiente (ou terminal, ou tem um filho rotulado com o jogador atual, ou todos os filhos esto rotulados com o adversrio). Uma vez que o vrtice j tenha rtulo, no h necessidade de obter mais filhos; por esse motivo, esse algoritmo mais eficiente.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

45

Abaixo, um algoritmo para resolver o jogo, utilizando backtracking:

N Raiz

S N est rotulado ? N S

N = Raiz ? N Rotule N com o vencedor

O vencedor o rtulo da Raiz

N terminal ? N X jogador em N

N tem algum filho com rtulo X ? N

S Rotule N com X

Todos os filhos de N foram gerados ? N

S Rotule N com Y

N filho (N)

N pai (N)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

46

3. Procedimento Minimax Nem sempre possvel ou conveniente percorrer todo o grafo de jogo para se obter uma estratgia; nesse caso, nos contentamos em obter, dada uma posio, um bom lance para essa posio. O procedimento Minimax considera dois jogadores, Min e Max, e constri a rvore de busca, completa, at uma profundidade P; utiliza, ento, uma funo de avaliao f, nos vrtices terminais, definida de forma que Max prefira os vrtices com valores mximos de f, enquanto Min d preferencia aos valores mnimos de f; esses valores so propagados, ento, at a raiz da rvore, na seguinte forma se V um vrtice Max, f (V) = max {f (filhos de V)} se V um vrtice Min, f (V) = min {f (filhos de V)}

indicando o melhor lance para a raiz. Construa a rvore at o nivel P

Avalie os vrtices terminais

A raiz est avaliada ? N Escolha vrtice V com filhos avaliados.

V um vrtice MAX ?

f (V) max {f(filhos (V))}

f (V) min {f(filhos (V))}

Se a raiz MAX, escolha max {filhos} Se a raiz MIN, escolha min {filhos}

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

47

Exemplo: Jogo da Velha Funo de avaliao: , se V representa uma situao de vitria para Min , se V representa uma situao de vitria para Max n de fileiras abertas para Max n de fileiras abertas para Min, se no

f (V) =

Por exemplo, se Max utiliza o smbolo X e Min utiliza o smbolo 0, temos, na posio V abaixo, V= 0 X

6 fileiras abertas para Max e 4 fileiras abertas para Min; portanto, f (V) = 6 4 = 2. Veja na pgina seguinte, o grafo para o Jogo da Velha at o nvel 2.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

48

1 X

0 X

X 0

0 X 0

-2

0 -2 0 -1 1 X X X

0 X

-1 0 X 0 X 0 -1 X -1

0 X

0 X 0

X 0

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

49

VI.

REPRESENTAO DO CONHECIMENTO

1. Introduo Novos Paradigmas Os procedimentos de resoluo de problemas utilizando Grafos de Estados tm duas caractersticas: a representao do conhecimento simples e quase sempre baseada em conceitos matemticos; os procedimentos de busca so poderosos.

Essa forma de resoluo de problemas no adequada simulao dos processos humanos; as pessoas costumam utilizar formas sofisticadas de representao do conhecimento e poucos procedimentos de busca. A partir do fim da dcada de 70, as pesquisas em IA passaram a dar mais nfase representao do conhecimento, em detrimento dos procedimentos de busca, visando uma maior similaridade com o processamento humano. Segundo esse novo ponto de vista da IA: Conhecimento a capacidade que um agente possui e que o torna capaz de realizar certa tarefa; pressupe a conjugao de dois fatores: a informao e o procedimento. Inteligncia a capacidade de utilizar o conhecimento de forma eficiente.

Dessa forma, as pesquisas em IA foram direcionadas no sentido de tornar os computadores mais eficientes na representao do conhecimento, e nos processos de tomada de deciso. A Linguagem Nos seres humanos, a representao do conhecimento est fortemente ligada linguagem; o conhecimento sempre expresso atravs de uma linguagem. As linguagens naturais, no entanto, no so adequadas representao computacional do conhecimento, principalmente por causa de:

dependncia do contexto explcito: Gosto de futebol, e Joo, de tnis. Gosto de andar descalo, e Joo, de tnis.

As duas frase tm a mesma forma; no entanto, na primeira, parece claro que o termo tnis se refere ao jogo, enquanto no segundo, no h dvida que se refere a um tipo de calado. O significado de tnis depende dos termos utilizados anteriormente na frase, isto , do contexto explcito.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

50

dependncia de contexto implcito (ambigidade): Vi o homem com uma p. Vi o homem com um binculo. Vi o homem na montanha com um binculo.

Embora as frases tenham formas similares, parece claro que na primeira, quem possui o objeto (a p) o homem visto; na segunda, j no claro quem possui o objeto (o binculo), se a pessoa que viu, ou o homem visto; finalmente, na terceira, o objeto est, claramente, nas mos da pessoa que v. Em virtude desses fatos, torna-se necessrio a criao de novas formas de representao do conhecimento Problemas Completos e Incompletos Podemos distinguir em IA dois tipos de problemas:

problemas completos todo o conhecimento necessrio execuo da tarefa est presente no sistema no inicio do processamento; problemas incompletos nem todo o conhecimento necessrio est presente no inicio do processamento; nesse caso o sistema precisa representar e utilizar novos conhecimentos obtidos: a) do conhecimento j existente no sistema (inferncia); b) de fontes exteriores ao sistema (aquisio); podem ser utilizados sensores, perguntas ao usurio, bancos de dados, etc.

Caractersticas desejveis para a representao do conhecimento Segundo Rich [ 8 ], os sistemas em IA devem possuir formas de representao do conhecimento com as seguintes caractersticas:

adequao representacional capacidade de representar os diversos tipos de conhecimento; adequao inferencial capacidade de manipular as estruturas de representao de forma a obter novas estruturas correspondentes ao conhecimento inferido; eficincia inferencial capacidade de incorporar informaes que possibilitem direcionar os mecanismos de inferncia; eficincia aquisicional capacidade de adquirir novas informaes com facilidade.

Formas Declarativas e Procedimentais Toda forma de representar conhecimento exige que possa representar informaes e procedimentos; as formas que do nfase maior representao da informao esttica so chamadas Declarativas, enquanto aquelas nas quais a maior parte do conhecimento constituda por procedimentos, so chamadas Procedimentais. Em geral, as formas de representao do conhecimento no so exclusivamente declarativas ou exclusivamente procedimentais; apenas do maior nfase a um aspecto ou outro.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

51

Principais Formas de Representao do Conhecimento Grafos de Estado Lgica de Primeira Ordem Redes Semnticas Regras de Produo Objetos Estruturados (quadros, roteiros, etc.) Dependncia Conceitual

Grafos de estados, redes semnticas, e objetos estruturados so principalmente declarativas, enquanto que lgica de primeira ordem, regras de produo e dependncia conceitual do nfase aos procedimentos. O conjunto de conhecimentos, representado em um sistema computacional, costuma receber o nome de Base de Conhecimento. 2. Lgica de Primeira Ordem: Clculo Proposicional A Lgica de Primeira Ordem se constitui em um modelo de representao de expresses, que evita a ambigidade inerente linguagem natural, e que possui mecanismos de inferncia (isto , de obteno de novas expresses decorrentes das que j existem) muito simples e poderosos; por esse motivo tem sido utilizada de forma intensiva em muitos sistemas de Inteligncia Artificial para representar conhecimento. Em principio, podemos classificar as declaraes da linguagem natural em dois tipos: declaraes a respeito de um nico objeto, como Joo ganhou na Loteria, Scrates um homem, a casa amarela, e declaraes a respeito de um conjunto de objetos, como todos os homens so mortais, alguns gatos caam ratos, nenhum estudante foi ao baile. As primeiras declaraes so chamadas proposies singulares, e so tratadas na rea da Lgica conhecida como Clculo Proposicional; as declaraes que tratam de conjuntos de objetos so ditas no singulares e so objeto de estudo do Clculo de Predicados. O elemento fundamental do Clculo Proposicional , portanto, a proposio singular, em geral simbolizada por letras minsculas: p a Lua o satlite da Terra q Cabral descobriu o Brasil r Machado de Assis escreveu Os Sertes Alem das proposies, a Lgica dispe de uma funo, chamada valor lgico, que associa a cada proposio um valor lgico verdadeiro ou falso, de acordo com o conhecimento que pretende representar; nesse sentido, as duas primeiras proposies acima tm valor lgico V, enquanto a terceira assume o valor F. Quando as proposies expressam uma nica idia, como as do exemplo dado, so ditas proposies simples. As proposies simples, no entanto, podem ser combinadas, atravs de certos termos chamados conectivos, em proposies compostas; essas formas de conexo so chamadas operaes lgicas, e cada uma possui um smbolo; os nomes, conectivos e smbolos das operaes lgicas esto apresentados na tabela abaixo:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

52

Operao Conjuno Disjuno Negao Condicional Bicondicional

Conectivo e ou no se ...ento se e somente se

Smbolo

Dessa forma podemos representar proposies compostas: Jos magro e alto Ou vou ao cinema ou vou ao teatro A janela no est fechada Se continuar chovendo, ficaremos em casa Pedro ser aprovado se e somente se estudar pq pq p pq pq

Para obter o valor lgico das proposies compostas, a partir dos valores lgicos das proposies simples, definimos a Tabela Verdade das operaes: p V V F F q V F V F pq V F F F pq V V V F p F F V V pq V F V V pq V F F V

Na linguagem natural, comum podermos descrever o mesmo fato de formas diferentes, ou utilizando outras palavras; por exemplo, vou ao cinema ou ao teatro tem o mesmo significado que vou ao teatro ou ao cinema; da mesma forma, se continuar chovendo, ficaremos em casa pode ser expresso tambm por ou pra de chover ou ficaremos em casa , ou por se no ficamos em casa, ento no continuou chovendo. Em Lgica, as proposies que descrevem fatos idnticos so ditas equivalentes; por exemplo, se p significa vou ao cinema ou ao teatro e q significa vou ao teatro ou ao cinema, ento p e q so equivalentes, e, para indicar isso escrevemos p q. No caso geral, como podemos saber se duas proposies dadas so equivalentes ? Como duas proposies equivalentes descrevem o mesmo fato, suas Tabelas Verdade so idnticas, e, por isso, a operao bicondicional entre elas resulta sempre verdadeira, ou seja, uma tautologia. As equivalncias tambm so chamadas Leis da Lgica; abaixo, listamos algumas das mais simples: Leis da Comutatividade pq qp pq qp Leis da Associatividade p (q r) (p q) r p (q r) (p q) r Leis da Distributividade p (q r) (p q) (p r) p (q r) (p q) (p r)

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

53

Leis de De Morgan (p q) p q (p q) p q Lei da Condicional pqpq Lei da Bicondicional p q (p q) (q p) Lei da Contraposio pqqp Outro aspecto importante da linguagem o fato de que se voc admite que uma determinada proposio verdadeira, uma outra tambm o ser. Por exemplo, se voc admite que se Joo viajar, vai aos Estados Unidos e admite que Joo viajou, ento deve admitir que Joo foi aos Estados Unidos; dizemos ento que Joo foi aos Estados Unidos decorre logicamente das expresses se Joo viajar vai aos Estados Unidos e Joo viajou. Em Lgica, se uma proposio q decorre logicamente de uma proposio p, escrevemos p q. No caso geral, dados p e q, como podemos saber se p q ? Dizer que q decorre logicamente de p significa dizer que sempre que p for verdadeira, q tambm o ser; nesse caso a operao p q ser sempre verdadeira, ou seja, ser uma tautologia. Expresses do tipo p q so chamadas Regras de Inferncia, e algumas das mais conhecidas so: (p q) p q (p q) q p (p q) (p q) p (p q) p q (p q) (q r) p r Modus Ponens Modus Tollens Simplificao Disjuntiva Silogismo Disjuntivo Silogismo Hipottico

As regras de inferncia podem ser consideradas formas de obteno de novos conhecimentos, a partir de conhecimento j existente. Por exemplo, considere a base de conhecimento: Se Joo culpado, teria que estar na cidade no dia do crime. Joo no estava na cidade no dia do crime. Ento, podemos concluir que Joo no culpado. De fato, se fizermos p Joo culpado q Joo estava na cidade no dia do crime podemos representar a base de conhecimento por (p q) q

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

54

de onde se infere, por Modus Tollens, p, isto , Joo no culpado. Na maioria das vezes, no entanto, a inferncia no to direta; considere por exemplo, a base: Ou Joo culpado, ou Mrio culpado ou Pedro culpado. Se Pedro culpado, Joo estava na cidade Mrio no culpado. Se Joo estava na cidade, Mrio culpado. Dessa base podemos concluir que Joo culpado, mas isso no to evidente quanto no exemplo anterior. Uma estrutura como essa, na qual uma proposio, chamada concluso, decorre de um conjunto de outras, chamadas premissas, chamado, em Lgica, de argumento, e a prova de que o argumento vlido, isto , de que a concluso decorre das premissas, chamada deduo. Dentre os vrios mtodos de deduo j desenvolvidos, um dos mais usados em sistemas em Inteligncia Artificial o mtodo de Resoluo, desenvolvido por Robinson, em 1965. 3. Resoluo no Clculo Proposicional O processo de Resoluo baseado na seguinte Regra de Inferncia, conhecida como Regra da Simplificao Disjuntiva: (p r) (q r) p q Essa regra diz simplesmente que se soubermos que pelo menos uma das proposies p ou r verdadeira, e se soubermos que pelo menos uma das proposies q ou r tambm verdadeira, ento conclumos que p ou q, pelo menos uma dos duas, verdadeira. De fato, se p e q forem ambos falsas, isso obrigaria que r e r fossem ambos verdadeiras, o que impossvel. Essa regra pode ser representada por um grafo, como abaixo: pr qr

pq

O mtodo de Resoluo consiste na aplicao sucessiva dessa regra, at que se obtenha a concluso. O grafo construdo chamado Grafo de Derivao. Para exemplificar, vamos aplicar esse mtodo sobre a base de conhecimento descrita acima; podemos fazer: p Joo culpado q Mrio culpado r Pedro culpado s Joo estava na cidade A base de conhecimento fica representada por:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

55

pqr rs q sq Podemos eliminar as operaes de condicional utilizando as eqivalncias rsrs sqsq A base se torna pqr rs q sq Podemos ento construir o Grafo de Derivao: pqr q

p r

rs

ps

sq

pq

p De onde se conclui que Joo culpado. O mtodo de Resoluo um processo iterativo que consiste de, em cada etapa, escolher duas proposies da base de conhecimento, chamadas pais, e resolve-las, isto , obter uma nova proposio atravs da regra de inferncia apresentada; a proposio obtida incorporada base de conhecimento, e o processo se repete at, que se obtenha a proposio objetivo, isto , a concluso.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

56

A Regra da Simplificao Disjuntiva, que serve de base para o processo de Resoluo, exige que cada resolvente esteja na forma p1 p2 ... pn onde cada pi uma proposio simples ou a negativa de uma proposio simples. Essa forma chamada clusula, e, evidentemente, nem sempre as expresses proposicionais da base de conhecimento se apresentam dessa forma. Por isso, apresentamos abaixo um procedimento que obtm a forma de clusula de uma expresso qualquer do Clculo Proposicional: 1. Elimine a operao de bicondicional, utilizando a Lei da Bicondicional: p q (p q) (q p) 2. Elimine a operao de condicional utilizando a Lei da Condicional: pqpq 3. Reduza o escopo da negao a uma nica proposio simples, utilizando a Lei da Dupla Negao e as Leis de De Morgan: pp (p q) p q (p q) p q 4. Elimine as conjunes, escrevendo uma expresso proposicional para cada conjuno. Normalmente, os sistemas em Inteligncia Artificial no utilizam o processo de Resoluo como foi apresentado; utilizam uma variao chamada Refutao, que corresponde ao processo de deduo chamado Deduo por Absurdo. Sabemos que p p uma contradio, isto , sempre falso, quaisquer que sejam os valores de p; em termos de inferncias podemos escrever p p F, ond F representa uma contradio. Na forma clausal, indicamos a contradio pela clusula vazia, ou Nil. Assim, na forma de grafo de derivao, temos: p p

Nil Suponha, ento, uma Base de Conhecimento representada por um conjunto P de premissas, e uma concluso a ser obtida, representada por Q. Queremos saber se a concluso decorre logicamente das premissas, isto , se P Q uma condicional tautolgica; ou, equivalentemente, se P Q uma tautologia; ou ainda se sua negao P Q uma contradio; se for, poderemos obter, por Resoluo,

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

57

P Q Nil. Em outras palavras, o processo de Refutao consiste em juntar a negao da concluso ao conjunto de premissas, e procurar concluir Nil. Como exemplo, vamos mostrar, por Refutao, que da Base de Conhecimento abaixo, 1. 2. 3. 4. p pqr stq t

podemos concluir r: Passando a Base para forma clausal e incluindo a negao da concluso, vem: 1. 2. 3. 4. 5. 6. p pqr s q t q t r

Resolvendo, vem pqr p

qr

tq

Nil

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

58

4. Clculo de Predicados No Clculo Proposicional tratamos de proposies ditas singulares, pois so afirmaes a respeito de um nico objeto; declaraes como todos os humanos so mortais e alguns gatos caam ratos, no entanto, fazem afirmaes a respeito de conjuntos de objetos; no primeiro caso, declara que todos os objetos de uma categoria (os humanos) partilham a mesma propriedade (so mortais) enquanto a segunda afirmao informa que alguns elementos de uma categoria (gatos) tm uma certa propriedade (caam ratos). Tais propriedades so chamadas predicados, enquanto o objeto aos quais o predicado se refere chamado sujeito. A parte da Lgica que estudas tais declaraes chamada Clculo de Predicados. Usualmente, em Lgica, os predicados so indicados por sua inicial maiscula, e o sujeito escrito a seguir, entre parnteses; assim, a declarao Scrates humano fica representada por H (Scrates) Muitas vezes, no entanto, o sujeito no um substantivo, mas um pronome, como na frase ele foi presidente do Brasil. Os pronomes podem ser representados, em Lgica, por variveis, como x, y, etc. Assim, se P indicar o predicado foi presidente do Brasil, a frase acima pode ser representada por P (x); ou, eliminando os parnteses para simplificar a notao, Px. Uma proposio na qual o sujeito uma constante, como Scrates humano pode ser verdadeira ou falsa; mas se o sujeito for uma varivel, como em x foi presidente do Brasil, no possvel atribuir a ela um valor verdadeiro ou falso; a veracidade ou falsidade depende de qual constante assumir o lugar da varivel. Proposies que podem assumir V ou F so chamadas sentenas fechadas, ou enunciados, enquanto aquelas que no podem assumir esses valores so chamadas sentenas abertas, ou, simplesmente, abertos. A substituio das variveis de um aberto por constantes chamase instanciao ou especificao, e transforma o aberto em uma sentena fechada. Chamase Universo de uma varivel o conjunto de valores que ela pode assumir; usualmente, em um problema, o Universo explicitado; se no for, podemos considerlo como o conjunto de todos os objetos que existem. Chamase Conjunto Verdade VP de um aberto Px o subconjunto do conjunto universo constitudo pelos elementos que, quando instanciam a varivel x, transformam o aberto em um enunciado verdadeiro. Por exemplo, se tivermos o conjunto universo U = {1, 2, 3, 4, 5, 6, 7, 8, 9}, ento o conjunto verdade da expresso Px = x primo, constitudo por VP = { 2, 3, 5, 7 }. Quando o conjunto verdade de um aberto o prprio conjunto universo, temos que Px verdadeiro para todo x do universo. Em Lgica, esse fato representado por (x U) Px. Se no for necessrio explicitar o conjunto universo, podemos escrever apenas x Px. O smbolo chamado quantificador universal e pode ser lido para todo, para cada, qualquer que seja, etc. Quando o conjunto verdade de um aberto no vazio, isto , temos que Px verdadeiro para pelo menos um elemento do universo. Em Lgica representamos esse fato pela expresso (x U) Px, ou se no for preciso explicitar o conjunto universo, simplesmente x Px,. O smbolo chamado quantificador existencial, e pode ser lido existe um, existe algum, existe pelo menos um, para algum, etc.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

59

Utilizando quantificadores e variveis, alem dos conectivos, estamos aptos a representar muitas expresses da linguagem em termos lgicos: Todos os que economizam so ricos Existem sbios que no so chineses falso que existem criminosos que no so punidos Todos so velhos ou crianas Nada de importante foi dito x (Ex Rx) x (Sx Cx) x (Cx Px) x (Vx Cx) x (Ix Dx)

Alem das eqivalncias e inferncias do Clculo Proposicional, que continuam vlidas no Clculo de Predicados, este dispe de sua prpria lista de eqivalncias e inferncias; dentre elas, as principais so:

eqivalncias:

x Px x Px x Px x Px x (Px Qx) x Px x Qx x (Px Qx) x Px x Qx

inferncias:

x Px x Px x (Px Qx ) x Px x Qx x Px x Qx x (Px Qx) x (Px Qx) x Px x Qx Da mesma forma que no Clculo Proposicional, o processo de Resoluo, no Clculo de Predicados, exige que as expresses que representam a Base de Conhecimento estejam escritas sob a forma de clusulas, isto , na forma p1 p2 ... pn onde cada pi um literal ou a negao de um literal. Um literal simplesmente um predicado seguido de seus termos, que tanto podem ser constantes como variveis. Para converter uma expresso do Clculo de Predicados para a forma de clusulas, execute a seguinte seqncia de etapas: 1. Elimine as operaes bicondicionais, utilizando a Lei da Bicondicional: p q (p q) (q p) 2. Elimine as operaes condicionais, utilizando a Lei da Condicional: pq pq 3. Elimine ou reduza o escopo do smbolo de negao a um nico termo, utilizando as eqivalncias abaixo, bem como as leis de De Morgan e de Dupla Negao:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

60

x Px x Px x Px x Px 4. Renomeie as variveis de forma que cada quantificador fique vinculado a uma varivel distinta. 5. Mova os quantificadores para a esquerda da expresso sem mudar sua posio relativa. 6. Elimine os quantificadores existenciais substituindo suas variveis por constantes (chamadas Constantes de Skolen). 7. Elimine os quantificadores universais. Todas as variveis so assumidas universalmente quantificadas. 8. Converta a expresso em uma conjuno de disjunes, utilizando as propriedades distributivas. 9. Crie uma clusula separada para cada conjuno. 10. Renomeie as variveis, de forma a no repetir variveis em clusulas distintas. 5. Resoluo no Clculo de Predicados A resoluo de duas clusulas no Clculo Proposicional simples; basta escolher para pais duas clusulas tais que uma contenha um literal e outra contenha sua negao; os dois literais se anulam e o resolvente constitudo pelos demais literais. No Clculo de Predicados, temos que levar em conta as variveis; por exemplo, H (Joo) e Hx s se anulam se x assumir o valor Joo; e, nesse caso, todas as ocorrncias da varivel x na Base de Conhecimento devem assumir esse valor. O processo de substituir uma varivel em uma expresso P por uma constante (ou outra varivel), de modo a torn-la idntica expresso Q, chamado Unificao. Veja a seguir um exemplo de Unificao, correspondente resoluo das duas clusulas Px Qx e P (A): Px Qx P (A) {x / A} Q (A) A instanciao de x por A na primeira clusula, indicada por {x / A}, tornaa P (A) Q (A); e a resoluo dessa clusula com P (A) Q (A). Tambm no Clculo de Predicados, o procedimento de Resoluo mais eficiente quando utilizado na forma de Refutao, descrito abaixo: 1. Converta todas as declaraes da Base de Conhecimentos (H) para a forma de clusulas. 2. Negue a tese, converta para forma de clusula e junte-a a H. 3. Repita os passos abaixo at encontrar Nil, ou nenhum progresso puder ser feito:

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

61

a) Selecione duas clusulas pais em H. b) Resolva-as. O resolvente ser a disjuno de todos os literais das clusulas pais; se existir um literal T1 em um resolvente e um literal T2 em outro, tais que T1 e T2 sejam unificveis, nem T1 nem T2 devem aparecer no resolvente. Use a substituio produzida pela unificao em todo o resolvente. c) Se o resolvente no for Nil, inclua-o em H. Vamos exemplificar o procedimento acima com o seguinte argumento: Quem infringe a lei deve ser condenado. Quem avana o sinal vermelho infringe a lei. Mrio avanou o sinal vermelho. Logo, Mrio deve ser condenado. Com a conveno Ix x infringe a lei, Cx x deve ser condenado, Ax x avana o sinal vermelho, podemos escrever, na forma simblica: x (Ix Cx) x (Ax Ix) A (Mrio) | C (Mrio) E na forma clausal: Ix Cx Ay Iy A (Mrio) C (Mrio) O grafo de derivao:

Ay Iy

A (Mario) {y/Mario}
I (Mario)

Ix Cx {x/Mario} C (Mario) C (Mario)

Nil

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

62

Estratgias de Controle Existem vrias estratgias de controle para a seleo das clusulas pais no passo 3.1, com o objetivo de acelerar a busca. Eis algumas, descritas por Nilsson: Busca em largura utilize todos os pares de clusulas; Conjunto de apoio utilize clusulas em que pelo menos um pai a negao da tese ou seu descendente; Preferencia por literal utilize clusulas em que pelo menos um pai constitudo por um nico literal; Forma linear utilize clusulas em que pelo menos um pai pertence ao conjunto original; Preferencia por ancestral utilize clusulas em que pelo menos um pai est no conjunto original ou descendente de outro pai.

INTRODUO INTELIGNCIA ARTIFICIAL Prof. Antonio de Almeida Pinho

63

BIBLIOGRAFIA [1] [2] [3] [4] [5] [6] [7] [8] [9] Bittencourt, G., Inteligncia Artificial, Ferramentas e Teorias, Editora da UFSC, Florianpolis, SC, 1998. Coelho, Helder, Inteligncia Artificial em 25 Lies, Fundao Colouste Gulbekian, Lisboa, Portugal, 1995. Dreyfus, Hubert L., What Computers Cant Do: A Critique of Artificial Reason, Harper & Row, New York, NY, USA, 1972. Goldszein, Mario et Ral Carnota, Inteligncia Artificial Aplicada, Editora da Unicamp, Campinas, SP, 1986. Jackson, Philip C., Introduction to Artificial Intelligence, Petrocelli Books, New York, NY, USA, 1974. Keller, Robert, Tecnologia de Sistemas Especialistas: Desenvolvimento e Aplicao, Makron Books do Brasil Ed. Ltda., So Paulo, SP, 1991. Levine, Robert I., Diane E. Drang et Barry Edelson, Inteligncia Artificial e Sistemas Especialistas, Ed. McGrawHill Ltda., So Paulo, SP, 1988. Nilsson, Nils J., Principles of Artificial Intelligence, Tioga Publh. Co., Palo Alto, CA, USA, 1980. Rabuske, Antonio R., Inteligncia Artificial, Editora da UFSC, Florianpolis, SC, 1995.

[10] - Rich, Elaine et Kevin Knight, Inteligncia Artificial, Makron Books do Brasil Ed. Ltda., So Paulo, SP, 1994. [11] - Schutzer, Daniel, Artificial Intelligence: An Applicationsoriented Approach, Van Nostrand Reinhold Co., New York, NY, USA, 1987.

Vous aimerez peut-être aussi