Resolução.

Slides:



Advertisements
Apresentações semelhantes
Exercícios Resolvidos
Advertisements

Sumário Exercícios
Lógica de Predicados e Representação de Conhecimento
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Marco Antonio Montebello Júnior
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Inversor Trifásicos com Três Pernas
MÁQUINAS UNIVERSAIS Fabrício Dias
Unidade 7 SEQUÊNCIAS E REGULARIDADES
Material pedagógico Multiplicar x 5 Clica!
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
Tópicos de Lógica Proposicional
Sumário Teorema de Jevon.
Ludwig Krippahl, 2007 Programação para as Ciências Experimentais 2006/7 Teórica 2.
Introdução à Programação Lógica
Análise de regressão linear simples: abordagem matricial
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
Árvores.
EXPRESSÕES ARITMÉTICAS
Linguagens Livres de Contexto
BCC101 – Matemática Discreta
FUNÇÃO MODULAR.
9. Modelos de Alta Freqüência Pequenos Sinais:
CAP. 2 RESPOSTA EM FREQÜÊNCIA TE 054 CIRCUITOS ELETRÔNICOS LINEARES
Exame de Qualificação Silvio do Lago Pereira
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
Mecânica dos Sólidos não Linear
Técnica de Contagem.
Provas de Concursos Anteriores
Conceitos Básicos.
MATEMÁTICA PARA NEGÓCIOS
Campus de Caraguatatuba
ESTATÍSTICA.
Módulo Financeiro Centro de Custo.
Calculada a solução óptima
Como aplicar leis da lógica
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap. 12.
Cinemática Plana de um Corpo Rígido Cap. 16
MECÂNICA - DINÂMICA Cinemática de uma Partícula Cap Exercícios.
Object Oriented Software Construction (MEYER, Bertrand)
Oferta e Demanda A Curva de Oferta
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Lógica de Predicados Teorema de Herbrand.
Estruturas de Dados com Jogos
Coordenação Geral de Ensino da Faculdade
SISTEMAS DIGITAIS ALGEBRA DE BOOLE E SIMPLIFICAÇÃO DE CIRC. LÓGICOS
Aula 17 1 Análise Sintáctica Compiladores, Aula Nº 17 João M. P. Cardoso.
Cássio Cristo Dawyson Guerra Matheu Santos
EXERCÍCIOS PARA GUARDA-REDES
Capítulo 11 Programação Lógica
Teorema de Herbrand e Unificação
Teorema de Herbrand e Unificação
Projeto de Banco de Dados
1 2 Observa ilustração. Cria um texto. Observa ilustração.
ELETRÔNICA DIGITAL Circuitos Aritméticos
Conceitos básicos em grafos
SairPróximo Itens de Seleção Probabilidades e Combinatória Cálculo de Probabilidades. Regra de Laplace. ITENS DE SELEÇÃO DOS EXAMES NACIONAIS E TESTES.
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Curso: Cerimonial, Protocolo e Eventos
Máquina de Turing Universal
Dinâmica do Movimento Plano de um Corpo Rígido: Força e Aceleração
Elsa Carvalho 186 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição.
BCC101 Matemática Discreta I
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Sistema Formal Um Sistema Formal para a lógica proposicional é uma 2-tupla < L, R >, onde: L: linguagem proposicional R: conjunto de regras de inferências.
Lógica Proposicional.
Resolução.
Transcrição da apresentação:

Resolução

Resolução 5.1 O Princípio da Resolução (Lógica Proposicional) Para quaisquer duas cláusulas C1 e C2, se existe um literal L1 em C1 que seja complementar a um literal L2 em C2, então retire L1 e L2 de C1 e de C2 respectivamente, e construa a disjunção das cláusulas remanescentes. A cláusula assim construida é dita ser um resolvente de C1 e C2.

Resolução Considere a seguintes cláusulas C1 e C2 abaixo: C1: P  R C2: ~P  Q R  Q é um resolvente de C1 e C2.

Resolução Teorema 1: Dado duas cláusulas C1 e C2, um resolvente C de C1 e C2 é consequência lógica de C1 e C2. Def.1  Dado um conjunto S de cláusulas, uma resolução (dedução) de uma cláusula C a partir de S é uma sequência finita C1, ... ,Ck de cláusulas tal que cada Ci é uma cláusula em S ou um resolvente de cláusulas precedendo Ci, e Ck = C. Uma dedução de  a partir de S é chamada uma refutação de S.

Resolução Exemplo: Prove que o conjunto de cláusulas S é insatisfatível: S = {~P  Q, ~Q, ~P} 1. ~P  Q 2. ~Q 3. P 4. Q de 1 e 3, R 5.  de 4 e 2, R

Unificação Aplicar o Princípio da Resolução implica em procurar literais complementares. Para cláusulas sem variáveis é muito simples. Para cláusulas com variáveis, é necessário fazer substituições para unificar os literais Exemplo: C1: P(x)  Q(x) C2: ~P(f(y))  R(y)

Unificação: Exemplo:C1 (P(x)  Q(x)) e C2 (~P(f(y))  R(y)) Aplicando-se as substituições s1 e s2 à C1 e C2, C1: P(x)  Q(x) s1 = {x/f(a) } C2: ~P(f(y))  R(y) s2 = {y/a } Obtém-se C’1 e C’2, C’1: P(f(a))  Q(f(a)) C’2: ~P(f(a))  R(a) Aplicando-se o princípio da Resolução à C’1 e C’2 obtém-se o resolvente C: C: Q(f(a))  R(a)

Unificação Outras substituições também poderiam ser aplicadas Exercício: Para s1 = {x/f(f(a))} e s2 = {y/f(a)}, Qual seria o resolvente obtido? Teria outras possíveis substituições? Uma substituição mais geral seria substituir x por f(y) em C1 e obter-se: C1*: P(f(y))  Q(f(y)) e um resolvente mais geral C: C: Q(f(y))  R(y)

Unificação A cláusula C é a cláusula mais geral no sentido de que todas as outras cláusulas que podem ser obtida pelo processo anterior são instâncias de C. Por exemplo, C’ é uma instância de C. C: Q(f(y))  R(y) C’: Q(f(a))  R(a)

Unificação Def.2  Sejam as substituições  = {x1/t1, ... ,xn/tn } e  = { y1/u1, ... , ym/um} a composição de  com  () é a substituição obtida do conjunto { x1/t1, ... , xn/tn, y1/u1, ... , ym/um} pela retirada dos elementos: xj/tj para o qual tj = xj e yi/ui tal que yi  {x1, ... ,xn}.

Unificação Exemplo: Sejam as substituições  = {t1/x1, t2/x2} = { x/f(y), y /z }  = { y1/u1, y2/u2, y3/u3 } = { x/a, y/b, z/y } () = { x1/t1, x2/t2, y1/u1, y2/u2, y3/u3 } = { x/f(b), y/y, x/a, y/b, z/y } = { x/f(b), z/y }

Unificação Def.3  Uma substituição  é chamada um unificador para um conjunto de expressões {E1, ... ,En} se e somente se E1 = E2 = ... = En. O conjunto {E1, ... ,En} é dito ser unificável se existe um unificador para ele.

Unificação Def.4  Um unificador s para um conjunto de expressões {E1, ... ,En} é um unificador mais geral (umg) se e somente se para cada unificador  para o conjunto, existe uma substituição l tal que  = sl.

Unificação Def.5  Um conjunto de termos D é o conjunto de discórdia de um conjunto de expressões E = {E1, ... ,En} se e somente se: (i) D =  , se n = 1 (ii) D = {t1, ... ,tn}, se n > 1 e todas as expressões em E são idênticas até o i-ésimo símbolo, exclusive, e t1, ... ,tn são os termos ocorrendo em E1, ... ,En que começam na posição i.

Unificação Exemplo1: E = {P(x), P(a)} D = {x, a} Exemplo2: E = {P(x, f(y, z)), P(x, a), P(x, g(h(k(x))))} D = {f(y, z), a, g(h(k(x)))}

Unificação Exemplo1: Discórdia de E1 E1 = {P(x), P(a)} E = {P(x, f(y, z)), P(x, a), P(x, g(h(k(x))))} D = {x, a} D = {f(y, z), a, g(h(k(x)))}

Algoritmo de Unificação 1. Faça k = 0, Ek = E e sk =  2. Se Ek é um conjunto unitário, pare. sk é um unificador mais geral para E. Caso contrário, encontre o conjunto discórdia Dk de Ek. 3. Se existem vk e tk em Dk tal que vk é uma variável que não ocorre em tk, vá para 4. Caso contrário, pare. E não é unificável. 4. Faça sk+1= sk{ vk/tk } e Ek+1= Ek{ vk/tk } 5. Faça k = k+1 e vá para 2.

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))} K= 0 S0 = e E0 = {P(a, x, f(g(y))), P(z, f(z), f(u))} D0 = {a, z}. v0 = z e t0 = a. S1 = s0 {v0/t0} = e{z/a} = {z/a} E1= E0.{v0/t0} = {P(a, x, f(g(y))), P(a, f(a), f(u))} D1 = {x, f(a)}. v1 = x e t1 = f(a) K = 1 S2 = s1{v1/t1} = {z/a}{x/f(a)} = {z/a, x/f(a)} E2 = E1. { v1/t1} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))} D2 = {g(y), u} v2 = u e t2 = g(y) K = 2

Algoritmo de Unificação Exemplo: E = {P(a, x, f(g(y))), P(z, f(z), f(u))} Continuação ... S3 = s2 {v2/t2} = {z/a, x/f(a), u/g(y)} E3 = E2.{v2/t2} = {P(a, f(a), f(g(y))), P(a, f(a), f(u))}.{g(y)/u} = {P(a, f(a), f(g(y))), P(a, f(a), f(g(y)))} = { P(a, f(a), f(g(y)))} K = 3 Visto E3 ser unitário, S3 é um umg S3 = {z/a, x/f(a), u/g(y)} para E. E = {P(a, x, f(g(y))), P(z, f(z), f(u))}

Resolução: Definições Def.6  Se dois ou mais literais (com o mesmo sinal) de uma única cláusula C tem um unificador mais geral s, então Cs é chamado um fator de C

Resolução: Definições Exemplo: Seja C = P(x)  P(f(y))  ~Q(x) P(x) e P(f(y)) tem um umg s = {x/f(y)} Cs = P(f(y))  ~Q(f(y)) é um fator de C.

Resolução: Definições Def.7  Sejam C1 e C2 duas cláusulas sem variáveis comuns. Sejam L1 e L2 literais de C1 e C2, respectivamente. Se L1 e ~L2 tem um unificador mais geral s, então a cláusula: (C1s  L1s)  (C2s  L2s) é chamada um resolvente binário de C1 e C2.

Resolução: Definições Exemplo: Sejam C1: P(x)  Q(x) (C2 não tem x) C2: ~P(a)  R(y) (C1 não tem y) literais L1 = P(x) L2 = ~P(a), então, ~L2 = P(a). umg de L1 e L2 é s = {x/a} logo, (C1s  L1s)  (C2s  L2s) = Q(a)  R(y) um resolvente binário de C1 e C2.

Resolução: Definições Def.8  Um resolvente de cláusulas C1 e C2 é um dos seguintes resolventes binários: (i) um resolvente binário de C1 e C2 (ii) um resolvente binário de C1 e um fator de C2 (iii) um resolvente binário de um fator de C1 e C2 (iv) um resolvente binário de um fator de C1 e um fator de C2

Resolução: Definições Exemplo: Sejam C1 = P(x)  P(f(y))  R(g(y)) C2 = ~P(f(g(a)))  Q(b) Um fator de C1 é: C1’ = P(f(y))  R(g(y)) Um resolvente binário de C1’ e C2 é: C = R(g(g(a)))  Q(b)

Resolução: Definições Teorema 2: Se C é um resolvente de duas cláusulas C1 e C2 então C é consequência lógica de C1 e C2.

O Sistema Formal da Resolução Def.9  O Sistema Formal da Resolução R consiste de: (i) Classe de linguagens Para cada alfabeto de 1a ordem, o conjunto das cláusulas sobre este alfabeto. (ii) Axiomas Nenhum. (iii) Regras de Inferência Regra da Resolução definida como: Se C’ e C’’ são cláusulas e C é um resolvente de C’ e C’’, então derive C de C’ e C’’

O Sistema Formal da Resolução Observe que a noção de uma dedução (derivação ou prova) em R é formalizada de maneira semelhante à noção de dedução em um sistema formal axiomático, no qual usa-se regras de inferência e axiomas.

O Sistema Formal da Resolução Teorema 3: Teorema da Correção Para todo conjunto S de cláusulas, se existe uma refutação a partir de S em R, então S é insatisfatível. “tudo que se deriva é semanticamente correto” Teorema 4: Teorema da Completude Para todo conjunto S de cláusulas, se S é insatisfatível, então existe uma refutação a partir de S em R. “se é consequência lógica existe uma derivação”

Exemplos de Aplicações: Banco de Dados Exemplo 1: Considere o Banco de Dados que segue a seguinte Questão ou Consulta: Quem é o chefe de João? gerente(Vendas, José) lotado(João, Vendas) lotado(y, x) & gerente(x, z)  chefe(y, z) FATOS REGRA

Exemplos de Aplicações: Banco de Dados Transformando essa descrição para cláusulas e fazendo derivações: 1. gerente(Vendas, José) 2. lotado(João, Vendas) 3. ~lotado(y, x)  ~gerente(x, z)  chefe(y, z) 4. ~lotado(y, Vendas)  ~gerente(Vendas, José)  chefe(y, José) 5. ~lotado(y, Vendas)  chefe(y, José) 1, 3 R 6. ~lotado(João, Vendas)  chefe(João, José) 7. chefe(João, José) 2, 5 R

Exemplos de Aplicações: Banco de Dados Exemplo 2: A figura que segue representa a maneira que umas caixas estão arrumadas: C A B chão Use a Linguagem da Lógica de 1a Ordem para descrever essa arrumação, ou seja, as caixas que estão no topo, no chão e o que está sobre cada caixa. Uma regra de restrição observada para as caixas que estão no topo é: “as caixas que estão no topo, não têm nenhuma caixa sobre elas”.

Exemplos de Aplicações: Banco de Dados Descrição da situação: 1. chão(A) 2. chão(B) 3. topo(C) 4. sobre(C, A) 5. x(topo(x)  ~y(sobre(y, x)) Questão: tem algum bloco sobre o bloco C? F A T O S REGRA

Exemplos de Aplicações: Banco de Dados Transformando para cláusulas e fazendo derivações: 1. chão(A) 2. chão(B) 3. topo(C) 4. sobre(C, A) 5. ~topo(x)  ~sobre(y, x) 7. ~topo(C)  ~sobre(y, C) 8. ~sobre(y, C)

Métodos Básicos de Resolução (Refutação) Método de Resolução por Saturação 1. Dado um conjunto finito de cláusulas S, construa uma sequência S0, S1, ... de conjuntos de cláusulas da forma seguinte: S0 = S Sn+1= Sn  {C : C é um resolvente de cláusulas em Sn} 2. Pare com SIM quando  for gerada. 3. Pare com NÃO quando não houver novos resolventes a derivar.

Métodos Básicos de Resolução (Refutação) Esse procedimento: sempre pára com SIM quando S for insatisfatível (método é refutacionalmente completo) nunca pára quando S for satisfatível e existir um conjunto infinito de resolventes obtidos a partir de S sempre pára com NÃO quando S for satisfatível mas o conjunto de resolventes obtido a partir de S é finito.

Exemplo: S = {P  Q, ~P  Q, P  ~Q, ~P  ~Q} 5. Q 1. e 2. 6. P 1. e 3. 7. Q  ~Q 1. e 4. 8. P  ~P 1. e 4. 9. Q  ~Q 2. e 3. 10. P  ~P 2. e 3. 11. ~P 2. e 4. 12. ~Q 3. e 4.

Exemplo (continuação): S2: 13. P  Q 1. e 7. 14. P  Q 1. e 8. . 37. Q 5. e 7. 38. Q 5. e 9. 39.  5. e 12.

Métodos Básicos de Resolução (Refutação) Outros métodos com implementações mais eficientes: Método por Saturação com Filtragem Método de Resolução por conjunto de Suporte Método da Resolução Linear Esses métodos implementam a Resolução visando otimização. Para isso, evitam gerar resolventes (novas cláusulas) que sejam irrelavantes a decisão de insatisfatibilidade do conjunto de cláusulas. O método mais eficiente é o da Resolução Linear, segue um exemplo:

Métodos Básicos de Resolução (Refutação Linear) Exemplo: Seja S o seguinte conjunto de cláusulas: 1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x, y) Questão: depende(a, e) ? A seguinte sequência de cláusulas é uma refutação linear a partir de S:

Métodos Básicos de Resolução (Refutação Linear) 1. chama(a, b) 2. usa(b, e) 3. ~chama(x, y), depende(x, y) 4. ~usa(x, y), depende(x, y) 5. ~chama(x, z), ~depende(z, y), depende(x, y) 6. ~depende(a, e) (negação da tese) 7. ~chama(a, z), ~depende(z, e) 6, 5 R 8. ~depende(b, e) 7, 1 R 9. ~usa(b, e) 8, 4 R 10.  9, 2 R