Você está na página 1de 22

Notas de Aula Inteligncia Computacional I 1. Introduo 1.1.

Definio de Inteligncia Artificial

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 significa o 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 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. 1.2. Dificuldades no processamento de IA Em 1972, o filsofo Hubert Dreyfus publicou em um livro 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 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 virtudes 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 uma computador digital (O computador no posui diversidade, simultaneidade, interatividade). Pressuposto psicolgico: a mente pode ser simulada por uma programa (idia do psiclogo entender o funcionamento da mente Pressuposto epistemolgico: todo conhecimento formalizado (ex. Linguagem no pode ser formalizada).

pode

ser

Pressuposto ontolgico: existem tomos do conhecimento. Tudo que essencial para o comportamento inteligente, deve, em princpio, poder ser expresso em termos de uma conjunto de elementos independentes.

Notas de Aula Inteligncia Computacional I

Dreyfus estabeleceu quatro tipos de processamento humano que resite formalizao, e que inviabiliza todo programa que tem por objetivo sua simulao. So eles: Conscincia marginal: Processamento secundrio que as pessoas raramente se do conta. Tolerncia ambigidade: o ser humano utiliza o contexto para reduzir a ambigidade, sem que necessite de uma formalizao. Discriminao essencial / no essencial: Decidir o que e no essencial extremamente difcil de formalizar. Reconhecimento de similaridade: possvel reconhecer um amigo na rua mesmo que no o vejamos a muito tempo. 1.3. 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 de sistemas especialistas. Desenvolvimento de novas arquiteturas, como o projeto japons de 5 gerao e as pesquisas em processamento paralelo. 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.

Notas de Aula Inteligncia Computacional I 1.4. Definies de autores diversos

A automao de atividades que associamos ao pensamento humano, atividades tais como tomadas de deciso, resoluo de problemas, aprendizado ... (Bellman, 1978) O estudo das computaes que tornam possvel perceber, raciocinar e agir (Winston, 1992) A arte de criar mquinas que executem funes que exijam inteligncia quando executadas por pessoas (Kurzweil, 1990) O estudo de como fazer computadores realizarem coisas nas quais, no momento, as pessoas so melhores (Rich and Knight, 1991) O campo de estudos que procura emular comportamento inteligente em termos de processos computacionais (Schalkoff, 1990) O ramo da cincia da computao que est interessado em automatizar comportamento inteligente (Luger e Stubblefield, 1993) O campo de estudos que busca desenvolver tcnicas computacionais para realizar tarefas que requerem inteligncia quando realizadas por seres humanos. Envolve o desenvolvimento de tecnologia que permita lidar com categorias tais como raciocnio, aprendizado e percepo. (Takimoto, 1987) 1.5. O que inteligncia?

Jogar xadrez? Entender linguagem humana? Decidir diante da incerteza? Resolver problemas combinatrios? Reconhecer um objeto pela imagem? 1.6. Tcnicas e reas de aplicao 1.6.1. Problemas bsicos

De que forma o conhecimento expresso? Qual linguagem usar para representar o conhecimento? Como formar uma base de conhecimento suficiente para compreenso do domnio do problema? Como realizar inferncias automaticamente? Como proceder na presena de informaes incompletas ou incorretas? Como agregar conhecimento?

1.6.2. Caractersticas do conhecimento

Notas de Aula Inteligncia Computacional I 4 Ao contrrio dos dados simples, o conhecimento humano organizado, volumoso e difcil de caracterizar. Est em constante mudana. individual e depende de interpretao. Pode ser dividido em conhecimento de senso comum (enxergar, falar, ouvir, reconhecer, perceber, se mover, reconhecer) e conhecimento de saber especializado (jogos, clculos matemticos e problemas especficos de Engenharia, Medicina, Economia, Psicologia, Direito, etc.). Possibilita o desenvolvimento da inteligncia. 1.6.3. Paradigmas atuais em IA Um paradigma uma estrutura ou linha de pensamento, um modelo. Em IA, existem trs paradigmas principais: Simbolista: estuda a relao estmulo-resposta, o comportamento. Conexionista: estuda os sinais biolgicos (neurnios e conexes). Neurocincia: estuda o comportamento cerebral, a neurofisiologia. Outros: Lgica Difusa, Algoritmos Genticos, Simulated Annealing. Simbolista Esse paradigma utiliza, principalmente, sistemas baseados em conhecimento (SBC), que funcionam baseados em algoritmos de buscas (buscas em tabelas, rvores de deciso, busca heurstica, sistemas baseados em regras, etc.) que lidam com conhecimento explcito representado simbolicamente. Seus principais componentes so: a base de conhecimento, o mecanismo de inferncia, a interface entre o sistema e o ambiente e os dispositivos de explicao das decises tomadas e de aquisio de conhecimento. Uma vantagem desse tipo de modelo que a sua capacidade de justificar as concluses atingidas. Atuam mesmo com conhecimento incompleto ou impreciso. Algumas aplicaes dos SBC so: - Jogos, - sistemas comerciais (configurao de produtos, emisso de propostas, telemarketing, distribuio), - sistemas financeiros (concesso de crdito, gesto de carteira, orientao a clientes), - sistemas de gesto (seleo, oramento, planejamento estratgico, alocao de recursos), - sistemas mdicos (diagnstico, teraputica, sistemas tutoriais, testes psicolgicos). Conexionista (Redes Neurais) Inspirados no comportamento do crebro, elas processam a informao de forma paralela e distribuda, atravs da utilizao de um conjunto de elementos de computao que simulam o funcionamento dos neurnios. Suas

Notas de Aula Inteligncia Computacional I 5 principais caractersticas so: capacidade de generalizao, paralelismo, memria distribuda e aprendizado autnomo. So capazes de aprender atravs de treinamento e generalizar o conhecimento adquirido. Porm, no justificam suas decises, tornando sua aplicao inaceitvel em algumas reas. Algumas aplicaes: Reconhecimento de padres (fala, imagens, caracteres), Identificao de sinais (radar, sonar), Previso (ndices do mercado financeiro, sries temporais), Classificao (diagnstico mdico, exame de motores).

Computao evolucionria (Algoritmos Genticos) Consistem de um mtodo de soluo de problemas atravs da aplicao de princpios da teoria da evoluo gentica. Mantm uma populao de estruturas do conhecimento, que representam candidatos soluo, evoluindo no tempo atravs de competio e variaes controladas. Representam as variveis do problema na forma de genes, organizados em uma seqncia chamada cromossomo. Algumas aplicaes: Controle de sistemas dinmicos, Induo e otimizao de bases de regras, Configurao de redes neurais, Simulao de modelos biolgicos, Evoluo interativa de imagens.

Sistemas Fuzzy (Lgica Nebulosa) Procuram fornecer uma base matemtica para o raciocnio humano, atravs da utilizao da teoria dos conjuntos nebulosos. Seu processamento inclui: nebulizao das variveis de entrada, mecanismo de inferncia e desnebulizao das variveis de sada, convertendo-as em aes no-nebulosas. A Lgica Nebulosa uma forma elegante e altamente eficaz de solucionar problemas, pois sistemas construdos com base neste paradigma so mais compactos e baratos que aqueles que utilizam solues convencionais. Alm disso, esses sistemas possuem a capacidade de processar dados inexatos ou parcialmente corretos. Algumas aplicaes: imagem Sistemas de controle (aeronaves, mquinas, robtica, ajuste da de TV, foco automtico para cmera de vdeo), Anlise do mercado de aes, Classificao de dados.

2. Espao de problemas e busca de solues 2.1. Sistemas de Produo

Notas de Aula Inteligncia Computacional I 6 So sistemas computacionais de propsito especfico, baseados em conhecimento restrito e especificvel. Os sistemas de produo possuem uma base de dados, um conjunto de operadores e uma estratgia de controle. As bases de dados so as configuraes que o problema pode assumir. Parte-se de uma configurao inicial e deseja-se descobrir um caminho que leve a uma das configuraes finais aceitveis. Os operadores transformam uma base de dados em outra. Resolver o problema determinar a seqncia de operadores que levam o sistema do estado inicial a um estado final. Se podemos escolher entre diversos operadores em uma determinada situao, ento precisamos de uma estratgia de controle. O sistema basicamente computa: Dados Base inicial de dados Enquanto no for satisfeita uma condio de trmino Selecione um operador R Dados R (dados) A condio de trmino alcanada se foi atingida uma configurao final, se no h mais operadores ou se no h mais recursos computacionais. possvel representar um Sistema de Produo atravs de Grafos de Estado. Os grafos so constitudos por conjuntos de vrtices e de arestas. possvel representar graficamente este conceito. Por exemplo, uma grafo G com vrtices V = {a, b, c} e arestas A = ((a, b), (a, c)}, pode ser representado graficamente como:

b a

Se o grafo possui setas indicando a transio entre os vrtices uma grafo direcionado. Se s possui retas um grafo no direcionado. Em um grafo de estados, cada vrtice representa uma configurao da base de dados e cada aresta a aplicao de um operador. Vamos exemplificar com o problema dos jarros dgua: Um jarro A tem capacidade para 4 litros e um jarro B tem capacidade para 3 litros. Queremos colocar dois litros no jarro A, tendo as seguintes operaes disponveis: encher totalmente um jarro; esvaziar totalmente um jarro; e, passar o contedo de um jarro para o outro.

Os dados de jarro. Ex : (2, aresta pode ser nomeadas: R1 encher o R2 encher o R3 esvaziar R4 esvaziar

cada estado podem ser a quantidade de gua de cada 3) indica 2 litros no jarro A e 3 no jarro B. Cada uma das operaes possveis, que podem ser assim jarro A jarro B o jarro A o jarro B

Notas de Aula Inteligncia Computacional I 7 R5 passar a gua do jarro A para o jarro B R6 passar a gua do jarro B para o jarro A Saindo do estado (0, 0) queremos alcanar (2, x), onde x um valor qualquer. O grafo, para algumas das possveis transies, teria a seguinte forma:
(4,0) R1 R2 (0,0) R4 (0,0) R4 (0,0) R6 (0,3) R6 (3,0) R2 (3,3)

(0,0)

2.2. Mtodos de busca O objetivo em um Sistema de Produo obter uma seqncia de operadores que levem um problema do estado inicial a um estado final. A forma sistemtica de percorrer o grafo procura desta seqncia, chamada de Mtodo de Busca. Um Mtodo de Busca constri uma rvore de Busca, na qual a raiz o estado inicial e os ns filhos so obtidos pela aplicao sucessiva dos operadores. Cada estado s deve aparecer uma vez na rvore, de forma que, caso a aplicao de um operador sobre um determinado estado leve a outro estado que j est na rvore, ento este novo estado deve ser descartado (no deve ser includo na rvore). 2.2.1. O mtodo irrevogvel Este mtodo procura uma soluo qualquer (que no garantidamente a melhor) e encontra-a ou no (o mtodo no garante que uma soluo ser encontrada). A estratgia consiste em expandir os estados a partir do estado inicial, aplicando qualquer um dos possveis operadores aplicveis quele estado. Caso no haja operadores possveis de aplicar ou caso todos os estados gerados j constem da rvore, o mtodo fracassa. O mtodo obtm sucesso se atinge um estado final. 2.2.2. Busca em profundidade (Backtraking) Neste mtodo, quando encontrado um final pelos critrios do mtodo irrevogvel, volta-se para o n pai e escolhe-se outro operador. Por causa da volta ao n pai, este mtodo tambm conhecido como backtraking. Agindo desta forma, o algoritmo garante que, caso haja alguma soluo, ela ser encontrada, j que todos os caminhos so investigados (a busca exaustiva).

Notas de Aula Inteligncia Computacional I 8 Veja uma ilustrao da estratgia no grfico da figura abaixo:
A

2.2.3. Busca em largura Neste mtodo, ao invs de escolhermos um operador para um estado, gerarmos o filho e aplicarmos uma nova escolha, investigamos todos os operadores que podem ser aplicados quele n e geramos todos os filhos possveis. Veja o grfico explicativo da estratgia:
A

Este mtodo sempre encontra o caminho, caso ele exista. Como expande um nvel de cada vez, o mtodo tambm encontra o caminho mais curto. Entretanto, a quantidade de possibilidades avaliadas muito grande, o que torna o mtodo computacionalmente intenso. Exerccio: Suponha um jogo de movimentao de quadrados em que h um tabuleiro com nove espaos para quadrados e oito quadrados (portanto, um espao est vazio). A posio vaga pode ser qualquer uma das nove numeradas na figura abaixo. Suponha tambm que o estado do problema dado pelo nmero que indica a posio vaga. Os movimentos possveis so: B mover pea de baixo para o espao vago acima C mover pea de cima para o espao vago abaixo D mover pea da direita para o espao vago esquerda E mover pea da esquerda para o espao vago direita 1 2 3

Notas de Aula Inteligncia Computacional I 9 4 5 6 7 8 9 Partindo do estado inicial (9), queremos alcanar o estado (5). Construa a rvore de busca pelo mtodo de busca em profundidade, considerando que a escolha dos operadores, dentre os de aplicao possvel, feita na ordem em que eles foram descritos B, C, D, E. Em seguida, repita o processo pelo mtodo de busca em largura.

2.3. Buscas com custos Em alguns tipos de problemas, o caminho de um estado para o prximo possui um custo associado. Na pratica, todos os problemas importantes de roteamento possuem custos envolvidos. o caso de rotas de transporte de cargas, rotas de distribuio de energia eltrica, rotas de encaminhamento de ligaes telefnicas, etc. Essa classe de problemas geralmente genericamente descrita como o problema do caixeiro viajante. No problema do caixeiro viajante original, temos um conjunto de cidades ligadas por estradas, que possuem um custo de ligao entre elas (voc pode imaginar que esse custo a distncia entre elas ou o preo da passagem ou o tempo de viagem ou qualquer outra combinao de fatores que produza um custo).

B
3 4

C
7 8 4

A
6

D
O objetivo levar o caixeiro de um ponto determinado a outro, ao menor custo possvel. Se queremos ir da cidade A at a cidade E, temos custos diferentes para cada caminho. Alguns desses custos so: ABCE custo: 3+4+8 = 16 ACDE custo: 4+7+4 = 15 ACE custo: 4+8 = 12 ADE custo: 6+4 = 10

2.3.1. Busca pelo vizinho mais prximo Uma estratgia possvel a busca pelo vizinho mais prximo. Neste caso, escolhemos a cada passo o vizinho ainda no visitado que apresente o menor custo (no devemos repetir cidades, sob o risco de introduzir ciclos, como nas buscas no ponderadas).

Notas de Aula Inteligncia Computacional I 10 Esta estratgia eqivale busca irrevogvel e, portanto, no garante encontrar um caminho, muito menos o de menor custo. No exemplo acima, seguindo esta estratgia, a rota escolhida seria ABCDE, o que representaria um custo de 3+5+7+4=19. Como pode ser visto, este caminho pior que todos os acima sugeridos. 2.3.2. Busca pelo caminho de soma mnima ou busca ordenada Uma outra estratgia guardar a soma do custo de cada caminho e procurar a cada passo o caminho que implicar na menor soma. Esta estratgia parecida com a busca em largura. A diferena que, caso um n deva ser colocado na rvore mas j aparea em algum outro caminho (outro ramo diferente deste), deve haver uma comparao entre os custos totais destes dois ns e eliminado o de maior custo. Analisemos passo a passo a aplicao do algoritmo para o grafo anteriormente apresentado (AE): 2.3.3. Algoritmo de Busca Ordenada 1. Faa S Base inicial de dados. Ponha S na lista de Abertos, faa custo (S) = 0 e crie a lista de Fechados vazia. 2. Se a lista de Abertos est vazia, termine com Fracasso; 3. Escolha o vrtice N, da lista de Abertos, de custo mnimo; 4. Se N terminal, termine com Sucesso. 5. Gere o conjunto M de Filhos de N. Para cada vrtice V, de M, faa: 5.1. Faa custo(V) = custo(N) + custo da aresta de N a V 5.2. Se V no est nem em Abertos nem em Fechados, coloque V em Abertos; 5.3. Se V est em Fechados, despreze o agora gerado; 5.4. Se V est em Abertos, despreze o de maior custo; desempate de forma arbitrria; 6. Volte a 2. Exerccio: Considere que temos um labirinto, dado pelo desenho abaixo, para o qual queremos achar uma sada (entrada pelo compartimento Z e sada pelo compartimento T). Considere o custo do caminho igual distncia medida quando se caminha, apenas em linhas paralelas s paredes, do centro de uma sala para o centro de outra sala adjacente, como exemplificado nas linhas pontilhadas de O para U (distncia 1,5) ou de A para B (distncia 2). Calcule o custo do caminho de sada (de Z para T) pelo mtodo do vizinho mais prximo e pelo mtodo de busca ordenada. Compare os custos.

Notas de Aula Inteligncia Computacional I

11

2.4. Buscas heursticas Uma heurstica (do grego heuriskein descobrir) uma tcnica que aponta um caminho a seguir na busca que seja mais promissor, ou seja, que oferea uma resposta com uma qualidade aceitvel, embora no necessariamente a melhor resposta. Para muitos problemas reais, o espao de busca pode ser muito grande e a adoo de uma heurstica pode ser determinante para impedir uma exploso combinatria de caminhos possveis.

2.4.1. Busca A* Hart et al. (1968), propuseram uma funo de custo para avaliar a qualidade de um n N que possui a seguinte forma: f(N) = g(N) + h(N) onde: g(N) = custo do caminho at N h(N) = estimativa do custo do caminho de N at um n terminal funo h(N) uma heurstica sobre o menor caminho do n N at o n final. A qualidade da nossa soluo depende desta estimativa. Se soubermos como calcular h(N), ou seja, se tivermos uma boa estimativa do custo de caminho de N at nosso objetivo, podemos orientar nossa busca por esta estimativa. O algoritmo A* consiste em: 2.4.2. Algoritmo A* 1. Faa S Base inicial de dados 1.1. Calcule h(S), faa f(S) = h(S); 1.2. Ponha S na lista de Abertos; 1.3. Crie a lista de Fechados, vazia; 2. Se a lista de Abertos est vazia, termine com Fracasso; 3. Escolha o vrtice N, da lista de Abertos, com f(N) mnimo;

Notas de Aula Inteligncia Computacional I 12 4. Se N terminal, termine com Sucesso. 5. Gere o conjunto M de Filhos de N. Para cada vrtice V, de M, faa: 5.1. Calcule h(V). Faa g(V) = g(N) + custo da aresta de N a V 5.2. Se V no est nem em Abertos nem em Fechados, coloque V em Abertos; 5.3. Se V est em Fechados, despreze o agora gerado; 5.4. Se V est em Abertos, despreze o de maior f; desempate de forma arbitrria; 6. Volte a 2. Este algoritmo muito parecido com a busca ordenada, exceto pelo fato que o clculo de f(N) agora exige que se calcule a estimativa h(N). Como calcula-la? Os autores ressaltam que o importante que a estimativa torne o algoritmo admissvel, isto , permita que o algoritmo encontre a soluo tima, caso ela exista. Em seu trabalho, os autores mostram que o algoritmo ser admissvel desde que a estimativa h(N) no seja maior que o custo real do caminho de N at o n terminal, isto : h(N) < custo real de N at o n final. Vrias observaes podem ser feitas sobre o algoritmo: Sobre g(N): se fizermos g(N)=0, estaremos sempre nos preocupando somente com o futuro (estimativa). Podemos tambm aplicar um custo constante de movimentao de um n para outro, de forma que o algoritmo sirva para encontrar o menor caminho (mais rpido) e no o de menor custo.

Sobre h(N): Se h(N) for um estimador perfeito, ento o algoritmo convergir para o objetivo pelo caminho ideal. Ao contrrio, se h(N) for 0, a busca ser orientada somente pelo caminho passado (busca ordenada). Se g(N) tambm for zero a busca ser aleatria. Se o valor de g(N) for sempre 1 a busca ser em largura. Para o caso intermedirio, isto , h(N) no for zero nem perfeito, o algoritmo sempre encontrar o caminho ideal, caso ele exista, desde que a estimativa h(N) seja otimista, isto , seja menor que o custo real do caminho. Na prtica, estimar corretamente pode ser difcil e garantir que a estimativa otimista, tambm. Assim, o teorema provado poderia ser de pouca utilidade. Pensando nisso, os autores provaram tambm um corolrio mais til (degradao suave da admissibilidade), que enuncia: Se a estimativa for otimista na maioria das vezes ento o algoritmo A* encontra o melhor caminho tambm na maioria das vezes. No problema do labirinto, podemos tomar como estimativa de custo a distncia do compartimento at o compartimento de sada sem considerarmos haverem paredes entre eles (que o melhor possvel). Assim a estimativa sempre melhor ou igual ao custo real. No problema do jogo de nove posies a estimativa otimista poderia ser a distncia da casa em que est a posio analisada at a casa em que est a posio desejada. A aplicabilidade da estimativa pode levar em considerao

Notas de Aula Inteligncia Computacional I caractersticas particulares do problema movimentao em uma determinada direo.

como

13 facilidades

de

Um resumo dos resultados que os autores provaram sobre o algoritmo: Seja h*(N) o custo do caminho timo. Se h(N)<h*(N) para todo N, ento A* admissvel; (admissibilidade) Seja C* o custo da soluo tima. Se A* admissvel, ento todo N com f(N)>C* ser fechado; (limitao no nmero de ns fechados) Se h(N)=h*(N) para todo N, ento apenas os vrtices com caminho timo sero fechados. (otimalidade) Uma heurstica consistente se para cada par de ns M e N, de um mesmo ramo, h(M) h(N) < C(M,N), onde C(M,N) o custo de M a N. Ex: M h(M) = 10 M h(M) = 10 M h(M) = 10 5 5 h(N) = 5 5 h(N) = 11

h(N) = 3

A heurstica consistente nos dois primeiros casos e no no terceiro caso.

Exerccio: Considere o labirinto do item 2.3.2, para o qual queremos achar a sada. Considere o custo do caminho j percorrido igual distncia medida quando se caminha, apenas em linhas paralelas s paredes, do centro de uma sala para o centro de outra sala adjacente, como anteriormente. Agora considere a estimativa do caminho a percorrer para cada compartimento, como a distncia, medida da mesma forma que anteriormente, entre este compartimento e o compartimento T, sem considerar a existncia ou no de passagens. Note que esta estimativa otimista, na medida em que o custo real no mnimo este (se existirem portas em todo o caminho) ou maior, caso no haja portas em todos os compartimentos entre o atual e T. Construa a rvore de busca e encontre o caminho com seu respectivo custo, usando esta estimativa e o algoritmo A*.

Notas de Aula Inteligncia Computacional I 3. Representao do Conhecimento 3.1. Limitaes dos grafos

14

Nos problemas vistos at aqui, tnhamos formas sofisticadas de busca em uma forma de representao simples (os grafos) quase sempre baseada em conceitos matemticos. Entretanto, para muitos processos de deciso humanos (em finanas, engenharia, manuteno, sistemas tutoriais ou de diagnsticos e vrias outras aplicaes), necessrio armazenar uma grande massa de conhecimento e possuir mecanismos de busca mais geis. Para estes sistemas, os grafos no se mostram estruturas ideais, na medida em que h uma quantidade grande de estados possveis. H que se descobrir, portanto, novas formas de representao do conhecimento. Como vimos no captulo 1, o conhecimento mais do que a simples informao. Ele embute os conceitos de informao e de propsito. Ou seja, ele alia informao com procedimento. J a inteligncia, luz daquela classificao piramidal, pode ser definida como o uso sensato do conhecimento, dentro de um propsito moral ou tico e, neste sentido, alia o conhecimento sensatez (eficincia). As pesquisas em IA, em um certo perodo (a partir da dcada de 60) foram direcionadas para formas mais eficientes de representao do conhecimento e da interpretao (tomada de decises) deste conhecimento. O problema que o conhecimento humano fortemente baseado na linguagem natural, a qual apresenta muitas fontes de ambigidade e dependncia do contexto. De fato, nos problemas com representaes de grafos, todo o conhecimento necessrio soluo do problema est disponvel, quer atravs da enumerao das aes possveis (representadas pelos operadores), quer atravs dos estados possveis (dedutveis atravs da aplicao dos operadores), quer ainda pelo conhecimento de um estado inicial e do(s) estado(s) final(is) que se desejava alcanar. Ocorre que, muitos problemas para os quais procuramos respostas, so incompletos. Para estes problemas, necessrio criar mecanismos de inferncia, que gerem novos conhecimentos a partir de conhecimentos existentes ou considerem fontes exteriores de aquisio de conhecimento, tais como perguntas que se faam aos usurios, leituras de sensores disponveis, consultas a bancos de dados existentes ou a incorporao de conhecimentos aprendidos de casos analisados no passado. 3.2. Outras formas de representao do conhecimento Para representar o conhecimento, pelo que acabamos de ver, devemos possuir formas de representar tanto as informaes, como os procedimentos (aes). Existem vrias formas de representao do conhecimento. Algumas do mais nfase representao da informao (so chamadas de fortemente declarativas) como os Grafos de Estados que vimos at agora, ou as Redes Semnticas ou ainda os Objetos Estruturados. Outras do mais nfase aos procedimentos (so chamadas de fortemente procedimentais), como a Lgica de Primeira Ordem ou os sistemas de Regras de Produo (como os Sistemas Especialistas). Destes, talvez os de maior emprego sejam os ltimos (Sistemas de Regras de Produo). Entretanto, para que possamos compreende-los, necessrio entender com quais entidades eles lidam. Fundamentalmente, podemos falar em duas

Notas de Aula Inteligncia Computacional I 15 entidades: os fatos (ou seja, as verdades ou informaes que possumos sobre um determinado contexto) e a representao dos fatos (formalismo simblico que permite representar e manipular o conhecimento em um determinado contexto). A forma de representao mais comum a linguagem natural. Mas podemos empregar tambm lgica matemtica como formalismo representacional. Considere, por exemplo, a frase: Thor um cachorro (1)

Este fato, pode ser representado em um formalismo lgico como: Cachorro (Thor) (2)

Se tivermos um formalismo para representar que todos os cachorros tem rabo, poderamos escrever: x:cachorro(x)tem-rabo(x) (3)

Usando mecanismos de deduo lgica, poderamos concluir: Tem-rabo(Thor) Que em linguagem natural eqivale a: Thor tem rabo (5) (4)

O que se fez (embora no esteja explicado como), foi criar novos fatos (4 ou 5, de acordo com a representao usada), a partir de um fato inicial (1 ou 2) e de um conhecimento que permite inferncia de novos fatos (3). Este novo fato, pode agora ser considerado, juntamente com os demais conhecimentos existentes para produzir novas inferncias, ou seja, gerar novos fatos. Se esta gerao tiver uma orientao adequada, poderemos produzir fatos que sejam relevantes em um determinado contexto, ou seja, poderemos encontrar as respostas que objetivamos. 3.3. Regras de Produo Uma outra forma de representar o conhecimento atravs de regras. Sistemas baseados em regras so os mais populares, principalmente em aplicaes especializadas em uma determinada rea. Tais sistemas so conhecidos como Sistemas Especialistas. As regras so uma forma de representao do conhecimento bastante prxima da forma humana de express-lo. Por exemplo, conhecimentos como os abaixo expressos, podem ser fcil e naturalmente postos em formas de regras: Se a temperatura maior que 38 graus, o paciente tem febre. Se o paciente tem febre h mais de 3 dias, o paciente tem uma infeco. Se h tenso na entrada da fonte e no h tenso na sada da fonte, ento o transformador est queimado. Uma regra formada por uma ou mais premissas, combinadas atravs de operadores lgicos e uma ou mais concluses que so acionadas quando as

Notas de Aula Inteligncia Computacional I 16 premissas so verdadeiras. As premissas/concluses so tambm chamadas de situao/ao ou ainda de antecedente/conseqente. Os sistemas baseados em regras usam a regra de inferncia Modus Ponens. Assim, dado que o fato A verdadeiro e a implicao AB verdadeira, conclui-se que o fato B verdadeiro. Os sistemas que usam esta tcnica de representao, empregam tcnicas de busca por regras e inferncia de novos fatos, de forma a encontrar os fatos que tenham sido definidos como objetivos. A idia encontrar um caminho entre os fatos e conhecimentos que se tem e os fatos que se deseja descobrir. Por exemplo, considere que temos os seguintes conhecimentos: Regra 1: Se a temperatura ambiente est acima de 35 graus Ento o tempo est quente Regra 2: Se a umidade relativa do ar maior que 75% Ento a atmosfera est mida Regra 3: Se o tempo est quente e a atmosfera est mida Ento provvel que se formem tempestades Considere ainda que conhecemos os seguintes fatos: Fato 1: A temperatura ambiente de 37 graus Fato 2: A umidade relativa do ar de 81% As regras 1 e 2 podem, a partir deste fatos, concluir novos fatos: Fato 3: A atmosfera est mida ( da regra 2) Fato 4: O tempo est quente (da regra 1) Os fatos 3 e 4 satisfazem as premissas da regra 3, levando a outro fato: Fato 5: provvel que se formem tempestades. A forma como percorremos as regras, produzindo as inferncias, isto , a escolha de quais regras examinar e ativar, pode obedecer a duas abordagens bsicas: Dirigida a dados (forward chain): aciona-se todas as regras que seja possvel, a partir dos dados (fatos) conhecidos. Dirigida a objetivos: aciona-se somente as regras que possuam na concluso algum dos objetivos que procuramos. Caso as premissas da regra que desejamos acionar sejam desconhecidas, estabelecemos estas premissas como o novo objetivo e passamos a buscar regras que as contenham na parte da concluso. Assim, o objetivo original provisoriamente abandonado e ser retomado (atravs do acionamento da regra abandonada) quando as premissas necessrias obteno do objetivo original tenham sido encontradas. O procedimento recorrente, isto , os objetivos so provisoriamente abandonados tantas vezes quantas se faa necessrio, formando uma cadeia de busca para trs (backward chain). Considere, por exemplo, que temos a seguinte base de conhecimentos:

Notas de Aula Inteligncia Computacional I Regra 1: Se a taxa de juros baixa Ento a bolsa de valores est em alta Regra 2: Se a taxa de juros alta Ento a bolsa de valores est em baixa Regra 3: Se a cotao do Dolar est baixa Ento a taxa de juros alta Regra 4: Se a cotao do Dolar est alta Ento a taxa de juros baixa Considere tambm que conhecemos o seguinte fato: Fato 1: a cotao do Dolar est baixa.

17

O que desejamos saber : "Qual a tendncia da bolsa de valores?" Se executarmos a busca com a abordagem orientada a dados, teremos a seguinte cadeia de investigao e acionamento de regras: 1 2 3 4 1 2 Bolsa de valores est em baixa

Taxa de juros alta

Onde as regras com crculos sero acionadas, porque as premissas assim o permitem, enquanto que as demais sero apenas investigadas. Se a busca for com a abordagem orientada a objetivos, teremos: 1 1 2 3 1 2 Taxa de juros alta Bolsa de valores est em baixa

Do primeiro para o segundo passo, o objetivo seria trocado de "bolsa de valores" para "taxa de juros" e iniciar-se-ia a busca por este novo objetivo. Quando ele fosse encontrado (aps o acionamento da regra 3), retornar-se-ia regra abandonada (regra 1) para buscar novamente pelo objetivo original, que seria encontrado aps o acionamento da regra 2. O que acontece quando no mais possvel encontrar regras que gerem o conhecimento objetivado, no esquema de backward chain ou no mais possvel gerar novos conhecimentos no esquema forward chain? Bem, neste caso ocorre o mesmo que quando se vai a uma consulta mdica e somente com as informaes relatadas e o seu conhecimento, o mdico no capaz ainda de produzir um diagnstico. Ele precisa de agregar novos Em uma consulta isto pode conhecimentos vindos de fora do sistema. representar outras perguntas ao paciente ou a requisio de exames complementares. Em um sistema especialista montado a partir de regras de produo, a agregao de novos conhecimentos que no sejam possveis de deduzir a partir das regras existentes, geralmente se d atravs de perguntas que se faz ao usurio sobre valores das variveis que sejam importantes na cadeia de conhecimento necessria resoluo do problema que se objetiva. A evoluo na elaborao de sistemas especialistas com estrias de sucesso, levou os projetistas a separar os sistemas em trs partes, de forma a facilitar a elaborao de novos sistemas:

Notas de Aula Inteligncia Computacional I 18 1. Motor de inferncias - responsvel por estabelecer uma estratgia ou uma heurstica de como proceder a busca do conhecimento a partir da base de conhecimentos (regras de produo) e dos fatos (base de dados) existentes; 2. Base de conhecimentos - responsvel por armazenar de forma explcita em regras de produo o conhecimento de uma rea especfica de aplicao; 3. Base de dados - responsvel pelo armazenamento dos fatos conhecidos. Esta estratgia acabou gerando o aparecimento de ambientes de desenvolvimento de sistemas especialista em que h algum tipo de editor e sintaxe para se editar a base de conhecimentos e estabelecer os fatos, acoplado a um motor de inferncias para realizar as buscas. Tais ambientes, denominados de Shells de Sistemas Especialistas, permitem que o usurio desenvolva sua prpria base de conhecimentos, de uma forma mais fcil e rpida. Alguns destes sistemas possuem ainda tradutores de cdigo para alguma linguagem procedimental (C, por exemplo), permitindo que o sistema, aps ter sido depurado, seja integrado com o restante do cdigo que tenha sido desenvolvido de forma tradicional. Vamos analisar como seriam geradas estas perguntas a partir um exemplo com a seguinte base de regras: Regra Se Ento 1 Formato = longa E Fruta = banana Cor = verde OU amarela 2 Dimetro > 10 cm E Origem = parreira Formato = redonda OU bojuda 3 Formato = redonda E Origem = rvore Dimetro < 10 cm 4 Quantidade de sementes = 1 Classe = mono semente 5 Quantidade de sementes > 1 Classe = multi semente 6 Origem = parreira E Fruta = melancia Cor = verde 7 Origem = parreira E Fruta = maracuj Superfcie = lisa E Cor = amarela 8 Origem = parreira E Fruta = melo Superfcie = rugosa E Cor = amarela 9 Origem = rvore E Fruta = abric Cor = alaranjada E Classe = mono semente 10 Origem = rvore E Fruta = laranja Cor = alaranjada E Classe = multi semente 11 Origem = rvore E Fruta = cereja Cor = vermelha E Classe = mono semente 12 Origem = rvore E Fruta = pssego Cor = alaranjada E Classe = mono semente

Notas de Aula Inteligncia Computacional I 13 Origem = rvore E Classe = multi semente E Cor = vermelha OU amarela OU verde 14 Origem = rvore E Classe = mono semente E Cor = arroxeada

19 Fruta = ma

Fruta = ameixa

Suponha que inicialmente no conhecemos fato algum e que o objetivo determinar qual a fruta. Seguindo a abordagem de busca retroativa (backward chain) teremos:
Pilha de objetivos Regra Efeito avali ada Pergunta : Fato inferido ou resposta ou Qual o observao valor de...

Fruta Forma, Fruta Forma, Fruta Fruta Fruta Origem, Fruta Dimetro, Origem, Fruta Dimetro, Origem, Fruta Origem, Fruta Origem, Fruta Fruta Fruta Fruta Fruta Cor, Fruta Cor, Fruta Fruta Fruta Fruta Classe, Fruta Quant. sementes, Classe, Fruta Quant. sementes, Classe, Fruta Classe, Fruta Fruta

suspensa Forma ?

1 6 2

falhou suspensa suspensa

Novo objetivo: forma No h regras p/ forma Formato = redonda (usurio) Falhou na premissa 1 Novo objetivo: origem Novo objetivo: dimetro No h regras p/ dimetro

Dimetro ? Dimetro = 3 cm (usurio) 2 3 6 7 8 9 falhou ativada falhou falhou falhou suspensa Cor ? 9 10 11 4 falhou falhou suspensa suspensa Falhou na premissa 1 Origem = rvore Falhou na premissa 1 Falhou na premissa 1 Falhou na premissa 1 Novo objetivo: cor No h regras p/ cor Cor = vermelha (usurio) Falhou na premissa 2 Falhou na premissa 2 Novo objetivo: classe Novo objetivo: quant. sement. No h regras p/ quantidade de sementes Quant. de sementes = 1 (usurio) Classe = mono semente Fruta = cereja Pilha de objetivos vazia, fim!

Quant. de sementes? 4 11 ativada ativada

Uma estratgia auxiliar de busca usada por alguns sistemas especialista ou shells (Crisalys, VP-expert) visando diminuir o espao de busca e facilitar a implementao de interfaces com o usurio. Este esquema consiste em ativar regras a partir de modificaes em valores de variveis, no que poderia ser chamado de uma busca dirigida a eventos. Nestes sistemas, a alterao de uma varivel, a partir por exemplo de uma ao do usurio, produz a avaliao de todas as regras em que aquela varivel aparea na parte das premissas. Assim, novos fatos podem ser automaticamente ativados a cada mudana do valor de uma varivel.

Notas de Aula Inteligncia Computacional I 3.4. Trabalhando com probabilidades

20

Muitas das decises que tomamos, so baseadas em algum clculo da probalidade de acerto, dadas as incertezas sobre os fatos conhecidos. Assim, um mdico capaz de diagnosticar mesmo ter certeza sobre os sintomas relatados pelo paciente, ou das taxas reportadas pelos exames. Da mesma forma, um analista financeiro capaz de tomar decises com boas perspectivas de acerto, mesmo diante das incertezas e conflitos dos indicadores do mercado financeiro. Esta capacidade inata do ser humano, est associada a algum tipo de clculo de probabilidades. Entretanto, implementar clculos estatsticos a partir dos princpios Bayesianos de probabilidade, torna os sistemas especialistas difceis de especificar, na medida em que tratamentos rigorosamente matemticos de probabilidade utilizam informaes nem sempre disponveis ou simplificaes que no so claramente justificveis em aplicaes prticas. Assim, foram construdas alternativas que tambm lidam com confiabilidade das afirmativas, embora em uma base menos rigorosa e ligada basicamente teoria dos conjuntos. Na maioria dos sistemas, para cada afirmativa possvel usar um fator de confiana. Este fator um nmero entre 0% e 100% que est relacionado expectativa de que aquela afirmativa seja verdadeira. A partir destes valores, se estabelece um limite (em geral 50%, mas que freqentemente pode ser mudado nas shells), para que as afirmativas sejam consideradas verdadeiras ou falsas. Assim se temos uma varivel Tempo que possui o valor Bom com um grau de confiana 55%, a regra: Se Tempo = Bom ento..., ser ativada assim que seja examinada, dado que o fator de confiana do valor Bom maior que 50%. Caso o fator de confiana fosse 43%, a regra no seria ativada pois o valor menor que 50% e a premissa seria considerada Falsa. Os clculos com os fatores de confiana envolvem os operadores de implicao (ENTO), conjuno (E) e disjuno (OU), da seguinte forma: 1. Para operaes de implicao - o grau de confiana da premissa multiplicado pelo grau de confiana da concluso; 2. Para operaes de conjuno - o grau de confiana de todas as premissas multiplicado para obter o grau de confiana da premissa composta; 3. Para operaes de disjuno - o grau de confiana de todas as premissas somado e o resultado subtrado da multiplicao dos mesmos graus de confiana, para obter o grau de confiana da premissa composta. Alguns sistemas tratam as operaes com fatores de confiana de uma forma alternativa, utilizando funes de mximo e mnimo. Assim as operaes de conjuno tm seu fator de confiana resultante calculado como o mnimo entre os valores de confiana das diversas premissas. J a operao de disjuno leva a um fator de confiana igual ao mximo dos fatores das premissas envolvidas. A operao de implicao, nesta forma de clculo, geralmente tambm feita atravs do produto entre o fator de confiana resultante da premissa e o fator de confiana atribudo implicao. Em qualquer caso, a atribuio dos fatores de confiana relativos s implicaes de responsabilidade do especialista que definiu a regra

Notas de Aula Inteligncia Computacional I 21 e, provavelmente, oriundo da experincia na aplicao do conhecimento formal aprendido em casos de uso do passado. Para analisar a aplicao dos clculos dos fatores de confiana, vamos observar sua aplicao ao conjunto de regras do seguinte problema: O carro de Odete Roitman foi furtado e os suspeitos so o mordomo e o genro da vtima. Temos os seguintes conhecimentos sobre furto de carros: Regra Se Ento 1 O suspeito tinha um motivo E O suspeito culpado CF(0,6) O suspeito teve oportunidade 2 O suspeito tem um libi O suspeito no culpado CF(0,8) 3 As impresses digitais do O suspeito culpado CF(0,4) suspeito foram encontradas no carro 4 As chaves foram deixadas no carro O suspeito teve uma oportunidade CF(0,9) 5 O suspeito no gostava da vtima O suspeito tinha um motivo CF(0,5) 6 O suspeito precisava de um meio O suspeito tinha um motivo de transporte CF(0,9) 7 As impresses digitais do O suspeito culpado CF(0,7) suspeito foram encontradas na chave Alm do conhecimento acima, retirados das estatsticas criminais sobre roubos de carros, sabemos os seguintes fatos sobre o roubo do carro de Odete Roitman: 1. O carro do mordomo (um fusca 68) estava quebrado (portanto ele precisava de um meio de transporte) com CF(1,0) 2. O carro do genro de Odete Roitman (um gol 2.0) no estava quebrado (portanto ele no precisava de um meio de transporte) com CF(1,0) 3. As impresses digitais do mordomo estavam no carro de Odete Roitman com CF(1,0) 4. As impresses digitais do genro de Odete Roitman no estavam no carro de Odete Roitman com CF(1,0) 5. As impresses digitais do mordomo no estavam na chave do carro de Odete Roitman com CF(1,0) 6. As impresses digitais do genro de Odete Roitman estavam na chave do carro de Odete Roitman com CF(1,0) 7. As chaves do carro de Odete Roitman foram deixadas no carro com CF(1,0) 8. O mordomo no gostava de Odete Roitman com CF(0,6) 9. O genro gostava de Odete Roitman com CF(0,8) 10. O mordomo estava assistindo TV quando o crime ocorreu (portanto ele tinha um alibi) com CF(0.85) 11. O genro estava dormindo quando o crime ocorreu (portanto ele tinha um alibi, apesar de ningum ter visto) com CF(0,2)

Notas de Aula Inteligncia Computacional I

22

Desejamos computar a possibilidade do mordomo ser o culpado e a possibilidade do genro ser o culpado. Usando as regras de operao de teoria dos conjuntos, temos:

Para o suspeito mordomo, usando busca retroativa: Pilha de Regra Efeito Fato inferido com calculo do grau de objetivos avali confiabilidade ou observao ada Culpado 1 Suspensa Novo objetivo: Motivo Motivo, Culpado 5 Ativada Motivo = sim CF = 0,6*0,5 = 0,3 Oportunidade, 1 Suspensa Novo objetivo: Oportunidade Culpado Oportunidade, 4 Ativada Oportunidade = sim CF = 1*0,9 = 0,9 Culpado Culpado 1 Falhou CF = 0,3*0,9 = 0,27 < 0,5 Culpado 2 Ativada CF(libi)*CF(no culpado) = 0,85 * 0,8 = 0,68Culpado = sim CF = 1 0,68 = 0,32 Culpado 3 Ativada Culpado = sim CF = 1 * 0,4 = 0,4 nova CF = 0,4+0,32-0,4*0,32 = 0,592 Culpado 7 Falhou CF(no estavam)=1CF(estavam)=0<0,5 No havendo mais regras que tenham como concluso um conclui-se que o mordomo culpado com 59,2% de confiabilidade. Para o suspeito genro, usando Pilha de Regra Efeito objetivos avali ada Culpado 1 Suspensa Motivo, Culpado 5 Falhou Motivo, Culpado Motivo, Culpado 6 1 Falhou Abandona da Falhou Falhou culpado,

busca retroativa: Fato inferido com calculo do grau de confiabilidade ou observao Novo objetivo: Motivo CF(gostava)=0,8 CF(no gostava)= (1-0,8) = 0,2 < 0,5 CF(no precisava)=1,0 CF(precisava)= (1-1) = 0 < 0,5 Retira objetivo: Motivo (no h mais regras para motivo e ainda h para culpado) CF(libi) = 0,2 < 0,5 CF(sem impresses no carro) = 1 CF(impresses no carro)= (1-1) = 0 < 0,5 Culpado = sim CF = CF(impresses na chave)*0,7 = 0,7 * 1 = 0,7 culpado,

Culpado Culpado

2 3

Culpado

Ativada

No havendo mais regras que tenham como concluso um conclui-se que o genro culpado com 70,0% de confiabilidade.