0.2 – Raciocinio e Inferencia
0.2.3 – Encadeamento para Frente e para Tras
0.2.3.1 – Algoritmo de Encadeamento para Frente
0.2.3.2 – Algoritmo de Encadeamento para Tras
raciocinando do objetivo para os dados
O algoritmo de encadeamento para trás começa com um objetivo específico e trabalha reversamente. Primeiramente, ele busca regras cuja conclusão (parte ENTÃO) corresponda ao objetivo desejado. Para cada regra encontrada, o algoritmo verifica se as condições (parte SE) são verdadeiras. Se alguma condição não for conhecida, ela se torna um novo subobjetivo a ser provado. Esse processo recursivo continua até que todos os subobjetivos se confirmem ou se refutem. Dessa forma, o sistema foca exclusivamente no que é relevante para responder à pergunta inicial.
pilha de objetivos e backtracking
O algoritmo mantém uma pilha de objetivos durante sua execução recursiva. Quando um objetivo gera subobjetivos, eles são empilhados para processamento posterior. Se um caminho de prova falha, o sistema retorna (backtrack) para tentar alternativas. Por exemplo, para provar “avo(joao, ana)”, o algoritmo busca regras de avô. Ele encontra “avo(X,Y) :- pai(X,Z), pai(Z,Y)” e cria subobjetivos “pai(joao, Z)” e “pai(Z, ana)”. Em seguida, ele tenta encontrar Z que satisfaça ambas as condições. Se falha, retorna e busca outra definição de avô disponível.
exemplo passo a passo
Considere o objetivo “gosta(maria, pizza)” em um sistema com regras específicas. O algoritmo primeiro busca regras que tenham “gosta(maria, pizza)” como conclusão direta. Ele encontra “gosta(maria, X) :- saudavel(X)” e “gosta(maria, X) :- rápido(X)”. Ele então tenta provar “saudavel(pizza)”. Se falha, o sistema retrocede e tenta provar “rápido(pizza)”. Caso “rápido(pizza)” seja verdadeiro, o objetivo original se prova com sucesso. Se ambos falham, o algoritmo conclui que Maria não gosta de pizza. Esse processo demonstra como o sistema explora sistematicamente diferentes caminhos de prova.
base de fatos e regras como guia
O algoritmo utiliza fatos como pontos de parada para a recursão dos subobjetivos. Quando um subobjetivo corresponde diretamente a um fato na base, ele se prova imediatamente. Regras, por outro lado, geram novos subobjetivos que aprofundam a busca recursivamente. O algoritmo mantém controle dos subobjetivos já visitados para evitar loops infinitos. Em sistemas com muitas regras, essa organização permite navegação eficiente pelo espaço de busca. A base de conhecimento funciona como um mapa que guia o raciocínio do sistema. O algoritmo simplesmente percorre esse mapa seguindo as conexões estabelecidas pelas regras.
aplicações práticas do encadeamento para trás
Sistemas de diagnóstico médico utilizam extensivamente o encadeamento para trás em sua operação. O médico insere uma suspeita de doença, e o sistema busca sintomas que a confirmem. Sistemas de suporte à decisão jurídica também empregam essa abordagem para analisar casos. Dado um veredito possível, o sistema verifica quais evidências seriam necessárias para sustentá-lo. Assistentes virtuais usam encadeamento para trás para interpretar perguntas complexas dos usuários. Quando você pergunta “preciso de guarda-chuva?”, o sistema verifica regras sobre previsão de chuva. Assim, essa abordagem se mostra especialmente eficaz quando o objetivo é claro e os dados disponíveis são limitados.