• Nenhum resultado encontrado

Capítulo 2: Programação em Lógica Indutiva

2.2 Conceitos Preliminares

2.3.1 Motivação para Estudo do Problema

Quando se deseja resolver um problema com auxílio de um computador, o primeiro passo a ser realizado é traduzir o problema para termos computacionais. Desta forma, deve ser escolhida uma linguagem de representação para o problema.

Sob o ponto do AIC, a linguagem de representação utilizada para representar as hipóteses determina, até certo ponto, a complexidade do problema de aprendizado. A grosso modo, pode-se dizer que representações mais simples originarão problemas de busca mais simples quando comparados a problemas de busca gerados quando se utiliza representações mais complexas (MITCHELL, 1997). As linguagens de representação variam de fragmentos da lógica proposicional à lógica de segunda ordem, sendo a primeira detentora de baixo poder de expressividade e a última muito complexa, e por isso raramente usada. A seguir apresentam-se duas das várias formas de representação de hipóteses, a saber: Representação Proposicional e Representação em Lógica de Primeira Ordem7.

7

Embora seja dito que a linguagem de representação utiliza Lógica Proposicional ou Lógica de Primeira Ordem, é importante notar que a representação propriamente dita do problema é feita utilizando-se apenas um fragmento da Lógica Proposicional ou da Lógica de Primeira Ordem.

21

Uso de Lógica Proposicional: usa-se a representação proposicional quando o

problema pode ser representado por um número fixo de atributos, sendo que cada um representa uma característica específica do problema. Talvez o exemplo mais clássico de aprendizado de hipóteses utilizando a representação proposicional seja o de buscar por uma hipótese que defina quando jogar tênis (MITCHELL, 1997) baseando-se em algumas condições climáticas do dia. Para isso, anotam-se informações climáticas dos dias (tempo, temperatura, umidade, e vento) em que se joga e em que não se joga tênis. Após esta anotação, estas informações podem ser facilmente dispostas em uma tabela. A tabela 2.1 exibe parte destas anotações.

Tabela 2.1: Situações Favoráveis para se Jogar Tênis (MITCHELL, 1997)

Atributos Classe

Dia Tempo Temperatura Umidade Vento Joga Tênis?

1 Sol Quente Alta Fraco Não

2 Sol Quente Alta Forte Não

3 Nublado Quente Alta Fraco Sim

4 Chuva Moderado Alta Fraco Sim

Como apresentado na tabela 2.1, o problema de se determinar a ocorrência ou não de um jogo de tênis pode ser facilmente representado utilizando-se a representação proposicional. Assim, uma possível hipótese aprendida (também expressa de forma proposicional) poderia ser: Se (tempo = nublado ou chuvoso) então jogue tênis.

Uso da Lógica de Primeira Ordem: a motivação para o uso de Lógica de

Primeira Ordem vem do fato de que para alguns problemas, a lógica proposicional não pode representar adequadamente as estruturas de dados nele presentes. Como exemplo, considere a figura 2.3 que ilustra alguns exemplos de problemas (GOADRICH, 2009). Os domínios de aplicação de ILP podem ser divididos em dois grupos, a saber: o grupo que trata das relações entre os objetos (exemplos a e b da figura 2.3) e o grupo que trata das relações entre as conexões dos objetos (exemplo c da figura 2.3). No primeiro grupo, o objetivo é discriminar os objetos em classes distintas, enquanto que no segundo grupo, o objetivo é discriminar as conexões entre os objetos em vez de os objetos propriamente ditos.

22

Figura 2.1: Ilustração de uma Molécula

Considere, a título de ilustração das limitações da representação proposicional, o problema de determinar se uma dada molécula é mutagênica ou não. Uma molécula consiste de vários átomos, cada qual descrito por algumas propriedades. Além das propriedades de cada átomo, existem relações entre os átomos. Caso dois átomos sejam conectados entre si, dizemos que existe uma conexão (bond) entre eles. Átomos podem estar associados a várias conexões e, além disto, existem diversos tipos destas.

Caso tente-se representar uma molécula usando Lógica Proposicional, primeiramente deve-se determinar o número máximo de atributos que descrevem as propriedades dos átomos, contudo, nem todos os átomos da molécula possuem as mesmas propriedades, e, consequentemente, vários destes atributos, para alguns átomos, não irão possuir valor algum, uma vez que existem propriedades que não são relativas a todos os átomos. Além disso, para cada relação entre os átomos, deve existir um atributo para cada possível tupla da relação. Seguindo esta abordagem, verifica-se que o número de atributos para relação é polinomial de acordo com o número de objetos disponíveis. Outro importante problema reside no fato de que para se representar uma molécula, deve-se impor uma ordem aos seus átomos, uma vez que, sem uma ordem predefinida, existe um número exponencial de representações equivalentes da mesma estrutura.

23

Claramente, estes problemas proíbem uma representação eficiente por par atributo-valor e torna clara a necessidade de se apelar para uma linguagem com maior capacidade de expressão.

Com a utilização de Lógica de Primeira Ordem, não é necessário fixar um número máximo de atributos, tão pouco criar um atributo para cada possível tupla da relação. Cada átomo pode ser descrito usando apenas as propriedades que lhes são relativas, e relações podem ser representadas por predicados cujos argumentos são os átomos envolvidos na relação e também o tipo de relação. Considere, por exemplo, uma conexão entre dois átomos a1 e a2. Esta relação poderia ser representada de forma clara e objetiva por: conexão(a1, a2, tipo_de_conexão).

Pela discussão exposta, fica claro que, para certos problemas, o uso de uma linguagem mais expressiva é fundamental para uma boa representação do problema, o que acaba por culminar em uma tradução mais simples do problema em termos computacionais.