Conteúdos da cadeira

Lógica e conhecimento

Lógica proposicional e de primeira ordem, inferência e encadeamento para a frente e para trás.

Markdown

Perguntar sobre esta página

ChatGPTClaudePerplexityGeminiCopiar e abrir

Envia o link e pede à IA para ler a página. No Gemini, cola a pergunta copiada.

Ver pergunta para copiar
Nesta página

Para pesquisar, o agente precisa do problema bem descrito. A representação do conhecimento guarda factos e regras numa base de conhecimento, e a inferência deriva conclusões novas a partir dela. A lógica proposicional e a lógica de primeira ordem dão a linguagem; o encadeamento para a frente e para trás dão os dois sentidos de uso. O exemplo desta página usa blocos, com três regras e um objetivo provado das duas maneiras.

A base de exemplo

Factos sobre blocos: Bloco(a)Bloco(a), Bloco(b)Bloco(b), Sobre(a,b)Sobre(a, b) e Sobre(b,mesa)Sobre(b, mesa). Regras com variáveis (lê xx, yy e zz como “para todos”):

  • R1: Sobre(x,y)Acima(x,y)Sobre(x, y) \to Acima(x, y). Estar sobre implica estar acima.
  • R2: Acima(x,y)Acima(y,z)Acima(x,z)Acima(x, y) \land Acima(y, z) \to Acima(x, z). “Acima” é transitiva.
  • R3: Bloco(x)Sobre(x,y)PrecisaDe(y,x)Bloco(x) \land Sobre(x, y) \to PrecisaDe(y, x). O que está por baixo suporta o de cima.

As conetivas \land e \to e a mecânica de tabelas de verdade estão recordadas na página de lógica proposicional. A novidade aqui são os quantificadores e as variáveis: uma regra com variáveis representa todas as suas instâncias concretas de uma vez, o que compacta muito face a escrever cada caso.

Encadeamento para a frente

O encadeamento para a frente parte dos factos e aplica regras até derivar o objetivo ou esgotar as conclusões. Queremos provar Acima(a,mesa)Acima(a, mesa):

  1. R1 com x=ax = a, y=by = b, a partir de Sobre(a,b)Sobre(a, b): deriva Acima(a,b)Acima(a, b).
  2. R1 com x=bx = b, y=mesay = mesa, a partir de Sobre(b,mesa)Sobre(b, mesa): deriva Acima(b,mesa)Acima(b, mesa).
  3. R2 com x=ax = a, y=by = b, z=mesaz = mesa, a partir de 1 e 2: deriva Acima(a,mesa)Acima(a, mesa). Objetivo provado.

Cada passo instancia as variáveis com objetos concretos e só dispara quando as premissas já estão na base. É o modo dos sistemas que reagem a dados novos: chega um facto, disparam as regras, a base cresce. O risco é derivar muito que não interessa ao objetivo.

Encadeamento para trás

O encadeamento para trás parte do objetivo e procura regras que o conclusam, transformando-o em subobjetivos até chegar a factos. Para Acima(a,mesa)Acima(a, mesa):

  1. Que regra conclui algo da forma Acima(_,_)Acima(\_, \_) com mesamesa no fim? R2, com x=ax = a e z=mesaz = mesa. Subobjetivos: Acima(a,y)Acima(a, y) e Acima(y,mesa)Acima(y, mesa), para algum yy.
  2. Tenta y=by = b. Acima(a,b)Acima(a, b) conclui-se por R1 com x=ax = a, y=by = b, cujo subobjetivo Sobre(a,b)Sobre(a, b) é facto. Primeiro ramo fechado.
  3. Acima(b,mesa)Acima(b, mesa) conclui-se por R1 com x=bx = b, y=mesay = mesa, cujo subobjetivo Sobre(b,mesa)Sobre(b, mesa) é facto. Segundo ramo fechado. Objetivo provado.

Repara na escolha do passo 2: y=by = b não caiu do céu, é o único objeto que aparece como “meio” nos factos SobreSobre. Em geral, o encadeamento para trás pesquisa sobre substituições possíveis, e é por isso que a programação em lógica (Prolog) se comporta como uma pesquisa com retrocesso: cada escolha de regra e de instância é um ramo.

O papel de R3 no exemplo

R3 nunca foi usada na prova, e está no exemplo de propósito. O encadeamento para a frente com R3 derivaria PrecisaDe(b,a)PrecisaDe(b, a) e PrecisaDe(mesa,b)PrecisaDe(mesa, b), conclusões verdadeiras mas inúteis para este objetivo. É a demonstração viva do defeito do encadeamento para a frente: deriva tudo o que as regras permitem, não só o que precisas.

Sistemas periciais e limites

Um sistema pericial é uma base de conhecimento grande com um motor de inferência, tipicamente para trás, que explica as conclusões mostrando as regras usadas. Foram a primeira aplicação comercial da IA (diagnóstico, configuração) e funcionam bem em domínios estreitos com regras claras.

O limite é a aquisição e a rigidez: alguém tem de escrever as regras, e o mundo fora delas não existe para o sistema. Quando as regras são incertas ou aprendidas de dados, passam a interessar as probabilidades da próxima página em vez da verdade absoluta desta.

Ver o ficheiro no GitHub

À tua maneira

Escolhe como preferes ler.

Aparência
Ajustar cores e largura
Cor de destaque do tema FEUP
Tipo de letra

Álgebra, lógica e uma ideia de cada vez.

As tuas escolhas ficam guardadas neste navegador.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.