• Nenhum resultado encontrado

Inteligência Artificial

1.2 Técnicas empregadas em IA

1.2.1 Representação do conhecimento Representação do

Conhecimento Processos Inferências Sistemas de Visão e de Voz Planejamento e Resolução de Problemas Redes Neurais Sistemas Evolutivos Robótica Reconhecimento de Padrões Ciências Cognitivas Sistemas Baseados em Conhecimento Processamento de Linguagem Natural Sistemas de Apoio à Descoberta Científica Síntese de Programas Sistemas de Dedução Disciplina de IA Método ou Técnica de IA Busca Heurística Aquisição de Conhecimento

Problemas relacionados com a representação do conhecimento não surgiram com o advento dos computadores digitais. Há séculos têm sido estudados por filósofos [Alfredo 2001], cujos trabalhos jamais puderam ser ignorados pelos cientistas da computação. Para os pesquisadores em IA, estes problemas continuam sendo bastante significativos.

A representação do conhecimento é tarefa crucial. Um dos resultados mais claros da pesquisa da inteligência artificial é que, para resolução de problemas aparentemente simples, é requerido muito conhecimento. Realmente, entender uma única frase requer um conhecimento extenso do idioma e do seu contexto. Problemas que envolvem um determi- nado domínio particular geralmente requerem conhecimento dos objetos do domínio e co- nhecimento de como argumentar dentro daquele domínio – deve-se procurar maneiras de representar ambos os tipos de conhecimento.

O conhecimento deve ser representado eficazmente e de um modo significativo. E- ficiência é importante, por isso é impossível (ou pelo menos não prático) representar todo fato explicitamente. Tem-se que ser capaz de deduzir fatos novos a partir do conhecimento existente.

O conhecimento deve ser adequadamente representado de forma que se possa rela- cioná-lo ao mundo real. Um esquema de representação de conhecimento deve prover um mapeamento de características do mundo para um idioma formal. Isto é o que se quer di- zer quando se aborda a semântica de idiomas de representação.

Na representação do conhecimento deve-se, portanto, usar técnicas que:

• Capturem generalizações acerca do que se quer representar.

• Possam ser compreendidos por todas as pessoas que manuseiem o conhecimento (aquisição e processamento).

• Possa ser facilmente modificado.

• Possa ser utilizado em diversas situações, mesmo que não seja totalmente exato ou completo.

• Possa ser utilizado para reduzir a faixa de possibilidades, que, usualmente deveria se considerar para buscar soluções.

O conhecimento declarativo pode ser representado com modelos relacionais e es- quemas baseados em lógica. Os modelos relacionais podem representar o conhecimen- to em forma de árvores, grafos ou redes semânticas. Os esquemas de representação ló- gica incluem o uso de lógica proposicional e lógica dos predicados.

Capítulo 1 – Inteligência Artificial 26

1.2.2 Busca

Outra prática geral crucial requerida para elaborar programas de IA é à procura de uma solução. Freqüentemente não há um caminho direto para achar uma solução para um determinado problema. Porém, é possível gerar caminhos para atingir metas pré- estabelecidas. Por exemplo, na resolução de um quebra-cabeça pode-se saber todos os pos- síveis movimentos, mas não a sucessão que vai conduzir a um estado meta.

Um problema em IA é definido em termos de um espaço de estados possíveis, in- cluindo: um estado inicial e um (ou mais) estado final que é o objetivo a ser atingido e um conjunto de ações (ou operadores) que permitem passar de um estado a outro.

As técnicas que fazem uso de força bruta, ou seja, aquelas para as quais são geradas e experimentadas todas as possíveis soluções para alcançar um objetivo, são freqüentemen- te muito ineficientes, pois são muitos os espaços de busca possíveis.

Os processos de busca que explora todas as condições podem ser:

Em profundidade: Utiliza menos memória. A busca é realizada por acaso (depende da ordenação dos sucessores) e pode encontra a solução sem examinar grande parte do es- paço de busca.

O algoritmo da busca em profundidade pode ser esquematizado como [Rich at al 1994]:

1. Se o estado inicial é um estado de meta, saia e retorne sucesso.

2. Caso contrário, faça o seguinte até a sinalização de sucesso ou fracasso:

a. Gere um sucessor, E, do estado inicial. Se não houver mais sucessores, sina- lize fracasso.

b. Chame busca em profundidade com E como estado inicial.

c. Se for retornado sucesso, sinalize sucesso. Caso contrário, continue nesse laço (“loop”).

Figura 1. 2– Busca em profundidade

Esta estratégia deve ser evitada quando as árvores geradas são muito profundas ou geram caminhos infinitos. Para problemas com várias soluções, esta estratégia pode ser bem mais rápida do que a busca em largura.

Em largura: não pesquisará becos sem saída. Se houver uma solução, ela será en- contrada. Se houver várias soluções, então uma solução mínima será encontrada (tamanho do caminho).

O algoritmo utilizado na busca em largura é [Rich at al 1994]:

1. Crie uma variável chamada Lista-de-Nós e ajuste-a para o estado inicial.

2. Até ser encontrado um estado-meta ou Lista-de-Nós ficar vazia, faça o seguinte: a. Remova o primeiro elemento de Lista-de-Nós e chame-o de E. Se Lista-de-

Nós estiver vazia, saia

b. Para cada maneira como cada regra pode ser casada com o estado descrito em E, faça o seguinte:

I. Aplique a regra para gerar um novo estado.

II. Se o novo estado for um estado-meta, saia e retorne este estado. III. Caso contrário, acrescente o novo estado ao final de Lista-de-Nós. A figura 1. 3 mostra os nós que são gerados sucessivamente a partir do nó fonte.

Capítulo 1 – Inteligência Artificial 28

A Figura 1. 4 mostra de maneira mais clara os passos utilizados para a realização da busca em largura. O nodo preenchido (preto) é o estado meta e a busca pára quando da ge- ração deste nodo.

Figura 1. 4– Busca em largura

Para os processos que objetivam resolução de problemas em IA, surgem, como se começa a perceber, possibilidades de decisão que podem ser representadas por árvores. Os métodos de busca e o uso de heurísticas indicam qual o ramo a ser seguido de forma a to- mar o menor caminho possível na procura da solução.

Técnicas heurísticas são freqüentemente melhores, pois só são tentadas as opções que se acha (baseado na melhor suposição atual) ser provável conduzir a uma solução boa, não necessariamente a melhor, implicando com isto, uma economia considerável de tempo no processo de busca.

Uma das dificuldades das heurísticas é que, algumas vezes, duas heurísticas fazem recomendações contraditórias. Sabendo-se que uma heurística é melhor que outra se deve dar prioridade a melhor. Mas o que fazer quando as duas parecem boas? Neste caso é me- lhor dar um valor numérico para os estados sucessores de um dado estado e decidir conti- nuar a busca pelo sucessor que tem o “melhor” valor. O método para calcular estes núme- ros é denominado função de avaliação (FA).

Por convenção, os valores assumidos por uma função de avaliação são números não negativos tal que o estado associado com o menor número é considerado o estado mais promissor. Freqüentemente, a função de avaliação do estado meta é zero.

1

2

3

Além das funções de avaliação há outras funções que podem auxiliar o processo de busca, denominadas funções de custo (FC). Elas são funções não negativas que medem a dificuldade de ir de um estado para um outro. Usando estas funções é possível encontrar não somente um caminho, mas um bom caminho ou ainda o melhor caminho para alcançar uma dada meta.

A fim de não confundir funções de custo com funções de avaliação, é importante observar que as funções de custo se referem ao passado, enquanto que as funções de avali- ação se referem ao futuro. Isto é, as funções de avaliação “adivinham” quão perto está um estado do estado meta, enquanto que as funções de custo “sabem” quão longe está um es- tado do estado inicial. Nesse contexto, as funções de custo são mais concretas que as fun- ções de avaliação.

Varias estratégias de busca heurísticas poderão ser utilizadas conforme evidencia a Tabela 1.2 (O termo agenda refere-se à organização das trajetórias em uma fila de espera):

Estratégia de busca Usa agenda? Usa FA? Usa FC? Próximo estado

Profundidade Não Não Não O sucessor do último estado, caso con- trário, o sucessor do predecessor.

Largura Sim Não Não O estado mais longe na agenda (fila)

Hill-Climbing Não Sim Não O sucessor com mínimo valor da FA

Best-First Sim Sim Não O estado da agenda com mínimo valor da FA

Branch-and-Bound Sim Não Sim O estado da agenda com mínimo valor da FC

A* Sim Sim Sim O estado da agenda com mínimo valor da soma de FA e FC

Tabela 1. 2 – Métodos de Busca heurística – Comparação

A Solução de problemas, usando técnicas de busca heurística, pode apresentar difi- culdades em definir e usar a função de avaliação (FA), principalmente quando não conside- ram conhecimento genérico do mundo (ou “senso comum”). A função de avaliação apre- senta compromisso na definição do tempo gasto na seleção de um nó e a redução do espaço de busca, o que faz com que achar o melhor nó a ser expandido a cada passo pode ser tão difícil quanto o problema da busca em geral.

Capítulo 1 – Inteligência Artificial 30