Árvore de Decisão

O objectivo geral deste trabalho é desenvolver um programa em Prolog capaz de simular em computador um processo de decisão com capacidade de aprendizagem. Esse tipo de programa pode ser útil para classificar objectos (físicos, ou não) de acordo com as suas características observáveis, ou para decidir da adequabilidade de uma coisa ou pessoa para determinado fim, ou para nos ajudar a tomar uma opção. Em qualquer um dos casos, o programa deve ter a capacidade de incorporar mais conhecimento, tornando-se mais esperto, se cada vez que for usado não apresentar a solução que o utilizador acha correcta.
Assim e para cumprir tal objectivo, o grupo de trabalho deverá escolher uma situação concreta --por exemplo, classificação de animais, classificação de figuras geométricas, classificação de doenças, escolha da toilete a usar em determinadas situações, etc.-- à qual quer aplicar esta técnica de programação baseada numa árvore binária de decisão.
Numa 1$^{\b{a}}$, o grupo deve implementar a sua árvore de decisão e a aprendizagem, sem qualquer preocupação com a interface, ou seja, o programa será usado invocando directamente os predicados desenvolvidos, sem facilidades especiais para formatação / apresentação dos resultados calculados.
Numa 2$^{\b{a}}$, pretende-se melhorar o programa desenvolvido dotando-o com um processador de linguagem que permita aos Utilizadores dialogarem numa linguagem mais livre, próxima da nossa língua natural (português). Na verdade, na versão que foi construida na fase anterior, para que alguém possa usar os programas e coloque questões à base de conhecimento, é necessário que conheça a sintaxe exacta de cada predicado (nome preciso do predicado, número de argumentos e ordem pela qual eles devem aparecer). Para optimizar a interface desses trabalhos será desejável que o Utilizador possa construir questões numa sintaxe mais natural, com maior grau de liberdade.
Os grupos que escolherem este trabalho, terão de definir a linguagem que querem fornecer aos Utilizadores do seu programa, especificá-la usando uma gramática (segundo o formalismo DCG) e construir um tradutor que reconheça as novas frases e gere os predicados convenientes para questionar a base de conhecimento.


Delfim F. Marado Torres
1998-06-16