A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos.

Apresentações semelhantes


Apresentação em tema: "Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos."— Transcrição da apresentação:

1 Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

2 Expressa programas na forma de lógica simbólica; Um processo de inferência lógica é usado para produzir os resultados; – Não são declarados os procedimentos para determinar os resultados; – Declarados as especificações dos resultados desejados; Programas declarativos;

3 Proposição: – Declaração lógica que pode ou não ser verdadeira; – Consiste em objetos e relações entre si; Lógica Formal: – Desenvolvida para fornecer um método para descrever proposições; – Buscando que essas proposições formalmente declaradas fossem verificadas quanto a validade; – Relação entre lógica formal e a matemática; Axiomas fundamentais da teoria dos números e dos conjuntos são o conjunto inicial de proposições presumidas como verdadeiras;

4 Lógica Simbólica: – Pode ser utilizada para as necessidades básicas da lógica formal: Expressar proposições; Expressar relações entre proposições; Descrever como novas proposições podem ser inferidas de outras que se presumem verdadeiras; – Calculo de predicados: Forma particular de lógica simbólica usada para a programação lógica;

5 Os objetivos de proposições de programação lógica são apresentados por termos simples, constantes ou variáveis; – Constante: É um símbolo que representa um objeto; – Variável: É um símbolo que pode representar diferentes objetos em diferentes tempos; – No sentido matemático;

6 Proposições atômicas: – Proposições simples; – Constituído de termos compostos; Elemento de uma relação matemática; – Aparência de uma função matemática; – Termo composto e formado por duas partes: Functor: – Símbolo de função que nomeia a relação; Lista ordenada de parâmetros: – 1-tupla: termo composto com um único parâmetro; – 2-tupla: termo composto com dois parâmetros;

7 Proposições: Exemplo: – homem( jack ) 1-tupla na relação chamada homem; – gosta( bob, bife ) 2-tupla na relação chamada gosta; – Se adicionar homem( fred ), a relação homem terá dois elementos distintos; – Todos os termos simples dessas proposições são constantes e sem nenhuma semântica intrínseca; homem, jack, gosta, bob, bife e fred;

8 Proposições: Declarado de duas maneiras: – Proposição definida como verdadeira; – A verdade da proposição precisa ser determinado; Ou seja: – Podem ser declarados como fatos ou consultas; Proposições compostas: – Tem duas ou mais proposições atômicas, ligadas por conectores lógicos ou operadores; Da mesma maneira que expressões logicas compostas são construídas em linguagens imperativas;

9 Proposições: Nomes, símbolos e significados dos conectores lógicos do calculo de predicado sao os seguintes: – Negação ( ): a (não a); – Conjunção (): ab (a e b); – Disjunção( ): a b (a ou b); – Equivalência (): ab (a e equivalente a b); – Implicação: ( ): a b (a implica b); ( ): a b (b implica a);

10 Proposições Compostas: : precedência mais elevada;, e tem precedência maior que e ; Exemplo: – a b d ; ( a ( b ) ) d ;

11 Proposições (Variáveis): Variáveis podem aparecer em proposições, mas somente quando introduzidas por símbolos especiais, os quantificadores; Dois quantificadores no calculo de predicado: – Sendo X uma variável e P uma proposição; – Universal: X P Para todo X, P e verdadeiro; – Existencial: X. P Existe um valor de X tal que P seja verdadeiro; Ponto (.), simplesmente separa a variável da proposição;

12 Proposições (Variáveis): Exemplo: – X. ( mulher( X ) humano( X )) Significa que para qualquer valor de X, se X for uma mulher, X e humano; – X. ( mãe( mary, X ) homem( X )) Significa que existe um valor de X tal que mary e mãe de X e X e um homem (mary tem um filho);

13 O escopo dos quantificadores universais e existenciais são as proposições atômicas as quais eles são anexados; Pode ser estendido utilizando parênteses; Os quantificadores universais e existenciais tem precedência mais elevada do que qualquer um dos operadores;

14 Calculo de Predicados: – É a base para as linguagens de programação logica; Minimizar redundâncias; – Problema do calculo de Predicados: Existem muitas maneiras diferentes de declarar proposições com o mesmo significado; – Muita redundância; Não constitui um problema para logica; – Mas o calculo de predicado será um serio problema para sistemas automatizados; Forma Clausal: – Forma padrão, relativamente simples, de proposições; Sem perda de generalidade;

15 Forma Clausal: Sintaxe de uma proposição na Forma Clausal: – B1 U B2 U … U Bn A1 A2 … An Sendo os As e Bs termos; – Significado: Se todos os As forem verdadeiros, pelo menos um B será verdadeiro; – Características: Quantificadores existenciais não são necessários; Quantificadores universais ficam implícitos no uso de variáveis nas proposições atômicas; Nenhum outro operador além de conjunção e disjunção é necessário; Ordem da clausal geral: – Disjunção no lado esquerdo e a conjunção no lado direito;

16 Forma Clausal: Antecedente: – É o lado direito de uma proposição Consequente: – Consequência da verdade de seu antecedente; Exemplos: – gosta( bob, truta ) gosta(bob, peixe ) peixe( truta ) Se bob gosta de peixe e truta e um peixe, então bob gosta de truta; – pai( louis, alan ) U pai ( louis, violet ) pai( alan, bob ) mae( violet, bob ) avo( louis, bob ) Se alan e pai de bob e violet e mãe de bob e louis e avo de bob, então louis e pai de alan ou de violet;

17 Calculo de Predicados e Demonstração de Teoremas: Calculo de Predicados oferece um método para expressar coleções de preposições; – Um uso das coleções de preposições é determinar se quaisquer fatos interessantes ou uteis podem ser inferidos a partir das mesmas; – Processo semelhante ao dos matemáticos, que buscam descobrir novos teoremas que possam ser inferidos a partir de axiomas e de teoremas conhecidos;

18 Resolução: – È uma regra de inferência; Permite a computação de preposições inferidas a partir de proposições dadas; Constitui assim, um método potencial na demonstração automática de teoremas; – Idealizada para ser aplicada a proposições na forma clausal;

19 Conceito de resolução: Supondo duas proposições com as formas: – P1 P2 P2 implica em P1; – Q1 Q2 Q2 implica em Q1; – Supondo ainda que P1 seja idêntico a Q2, de modo que seja possível renomear P1 e Q2 como T; T P2 Q1 T – Assim: Q1 P2 – O Processo de inferir tal proposição a partir de duas proposições originais é uma resolução;

20 Conceito de resolução: Exemplo: – Considerando duas proposições: mais_velho( joanne, jake ) mae( joanne, jake ) mais_sabio( joanne, jake ) mais_velho( joanne, jake ) – Proposição usando resolução: mais_sabio( joanne, jake ) mae( joanne, jake ) – Construção da resolução: Os termos do lado esquerdo das duas proposições são unidos por um E para formar o lado esquerdo da nova proposição; – Mesmo processo para o lado direito; O termo que aparece em ambos os lados da nova proposição e removido;

21 Conceito de resolução: Exemplo: – Considerando duas proposições: pai( bob, jake ) U mae( bob, jake ) pais( bob, jake ) – Se: bob é um dos pais de jake, isto implica que bob é ou o pai ou a mãe de jake; avo( bob, fred ) pai( bob, jake ) pai( jake, fred ) – E: bob é pai de jake e jake é pai de fred, isto implica que bob é avô de fred; – Proposição usando resolução: pai( bob, jake), é a proposição atômica que permitiu a operação; mae( bob, jake ) U avo( bob, fred ) pais( bob, jake ) pai( jake, fred ) – Entao: Se: bob é um dos pais de jake e jake é o pai de fred, então ou bob é mãe de jake ou bob é avô de fred;

22 Conceito de resolução: Os conceitos, em geral são mais complexos que os exemplos; – Principalmente com variáveis em proposições; A resolução precisa determinar os valores para essas variáveis para que o processo de comparação possa ocorrer; Unificação: – Processo de determinar valores uteis; Instanciação: – Atribuição temporária de valores a variáveis para permitir a unificação;

23 Conceito de resolução: Capacidade de detectar inconsistência em um conjunto de dado de proposição: – Essa propriedade permite que a resolução seja usada para demonstrar teoremas: Prova pela contradição: – Método de prova indireta, não-construtiva; – Assumindo-se como verdade o contrario do que queremos provar e então chegando-se a uma contradição. Hipóteses: – Proposições originais; Meta: – A negação do teorema;

24 Conceito de resolução: Demonstração de teoremas e a base da programação logica; – Lista de fatos dados; – Relações como hipóteses; – Meta a ser inferida a partir das hipóteses; Utilizado a resolução; Quando proposições são usadas para resolução, somente um tipo restrito de forma clausal pode ser ativado; – Simplifica o processo de resolução;

25 Cláusulas de Horn: Tipos especiais de proposições; Podem estar em somente duas formas: – Uma única proposição atômica no lado esquerdo; – Ou, lado esquerdo vazio; Cláusulas de Horn encabeçadas: – Uma única proposição atômica no lado esquerdo; Declaração de relações; – gosta( bob, truta ) gosta( bob, peixe ) peixe( truta ) Cláusulas de Horn sem-cabeça: – Lado esquerdo vazio; Declaração de fatos; – pai( bob, jake )

26 Cláusulas de Horn: Se a condição expressa pelo corpo da clausula: – progenitor (X, Y) - é verdadeira então, segue como consequência logica que a cabeça - filho(Y, X) - também o é; – Por outro lado, se não for possível demonstrar que o corpo da cláusula é verdadeiro, o mesmo irá se aplicar à cabeça.

27 Logic Programming; Programação Baseada em Lógica é uma forma de implementar computações que coincidem com provas de teoremas; – Se P então Q; onde P e Q denotam declarações; – Podem ser verdade ou falsa, mas não ambas; A declaração P é a hipótese do teorema; Enquanto que Q é a conclusão; Possibilita dupla interpretação dos passos de computação que ocorrem durante a execução de um programa; – Permitem que as especificações lógico-formais de certos problemas sejam também os próprios programas executáveis que resolvem aqueles problemas;

28 Inspirada na observação que provar um teorema lógico sem criatividade é um processo intelectual bastante semelhante a acompanhar a execução de um programa imperativo passo a passo, obedecendo as regras de inferência determinadas para a logica em uso: E partindo de um conjunto de expressões fornecidas (conjunto de axiomas); Novas expressões são geradas até que uma expressão alvo seja obtida (um teorema); Ou alternativamente que a impossibilidade de gerar aquela expressão alvo seja estabelecida (teorema foi refutado);

29 Expressão: Tanto as expressões fornecidas originalmente, como as expressões geradas durante o processo de busca do teorema (ou impossibilidade), podem em geral ser particularizadas; Exemplo: – Dedução que Sócrates é mortal, com base nas premissas: Sócrates é um homem e todo homem é mortal; se Sócrates é homem, ele também é mortal; – Sócrates é homem fornece Sócrates é mortal;

30 Particularização: Forma de passar parâmetros entre sentenças; todo homem é mortal; – se X é homem ele também é mortal; Sendo X uma variável; Sócrates é homem; Forneceu o valor Sócrates a variável X;

31 História: Artigo de 1965 de J. A. Robinson; – Apresenta resultados teóricos que possibilitaram a construção de linguagens de programação baseadas em particularização de sentenças e prova de teoremas; Primeira metade dos anos de 1970: – Primeiras implementações Prolog;

32 Historia: Anos 1980 – Projeto de Quinta Geração: – Objetivo principal: Era o desenvolvimento de hardware e software de alto desempenho, caracterizando uma nova geração de computadores; – Maquinas PSI (Personal Sequential Inference machines); – Paradigma básico; Atingiram maturidade teórico e pratico; – Desenvolvido no Japão;

33 Características: Linguagem Declarativa: – Descrição do problema que se pretende computar; – Base de Dados: Coleção de fatos; – Relações Logicas (regras): Domínio relacional do problema;

34 A Relação: Basicamente, nada existe na mente humana sem relação; – Não podemos conceber a existência de um objeto no mundo que não tenha uma relação no tempo e no espaço; Tudo é relação; A relação entre os objetos é que os define no mundo – Exemplo: Dois irmãos existem por ter pais em comum; Sem a relação de paternidade a definição irmãos não existiria;

35 A Relação: A Classificação e A Seriação: – Elementos fundamentais para a evolução cognitiva do homem, a classificação e a seriação permitem o agrupamento para discernimento e a organização hierárquica dos elementos do mundo; Exemplo: – Analisar o comportamento desde o nascimento: Inicialmente os bebes possuem movimentos de reflexos, que são repetidos durante meses ate o momento em que são combinados entre si e outros elementos sensoriais; Isto dá ínicio ao sistema cíclico de aprendizado; Uma vez portadora deste sistema, a criança pode distinguir os objetos ao seu redor classificando-os e atribuindo a eles relações de hierarquia; – A classificação e a seriação funcionam paralelamente;

36 A Relação: É necessário que tenhamos estes conceitos de relações na Linguagem Prolog; – Sendo que, através desta linguagem de programação, iremos representar o mundo através de relações; – A Linguagem de programação Prolog, que significa programação em lógica, não é baseada no sequenciamento de procedimentos, mas na definição de relações, na forma com a qual se representa o mundo que se quer implementar no computador;

37 Implementação mais popular dos conceitos de programação em lógica; Alguns recursos: – Representação e manipulação de negação explicita nas clausulas; – Funções e predicados predefinidos para a aritmética de números inteiros e de ponto flutuante; – Operadores meta-lógicos para controlar regras de escolha utilizada; – Recursos, semelhantes, de Entrada/Saída de dados;

38 Conversão usual entre logica de notação e linguagem de programação: – Conectivo pelos caracteres :- – Conectivo ^ pela virgula (,) – Terminar cada clausula com um ponto (.) – Todas as variáveis iniciam com letra maiúscula;

39 Especificações são Programas: – A linguagem de especificação é entendida pela máquina e é, por si só, uma linguagem de programação; Naturalmente, o refinamento de especificações é mais efetivo do que o refinamento de programas; Um número ilimitado de cláusulas diferentes pode ser usado e predicados (procedimentos) com qualquer numero de argumentos são possíveis; Não ha distinção entre o programa e os dados; As cláusulas podem ser usadas com grande vantagem sobre as construções convencionais para a representação de tipos abstratos de dados; A adequação da lógica para a representação simultânea de programas e suas especificações a torna um instrumento especialmente útil para o desenvolvimento de ambientes e protótipos;

40 Capacidade Dedutiva: – O conceito de computação confunde-se com o de (passo de) inferência; – A execução de um programa é a prova do teorema representado pela consulta formulada, com base nos axiomas representados pelas cláusulas (fatos e regras) do programa;

41 Não-determinismo: – Os procedimentos podem apresentar múltiplas respostas, da mesma forma que podem solucionar múltiplas e aleatoriamente variáveis condições de entrada; – Através de um mecanismo especial, denominado "backtracking", uma sequencia de resultados alternativos pode ser obtida;

42 Reversibilidade das Relações: – Ou "computação bidirecional"; – Os argumentos de um procedimento podem alternativamente, em diferentes chamadas representar ora parâmetros de entrada, ora de saída; Os procedimentos podem assim ser projetados para atender a múltiplos propósitos; – A execução pode ocorrer em qualquer sentido, dependendo do contexto; Por exemplo, o mesmo procedimento para inserir um elemento no topo de uma pilha qualquer pode ser usado, em sentido contrario, para remover o elemento que se encontrar no topo desta pilha;

43 Tríplice Interpretação dos Programas em Logica: – Um programa em logica pode ser semanticamente interpretado de três modos distintos: (1) por meio da semântica declarativa, inerente à lógica; (2) por meio da semântica procedimental, onde as cláusulas dos programas são vistas como entrada para um método de prova; (3) por meio da semântica operacional, onde as cláusulas são vistas como comandos para um procedimento particular de prova por refutação; – Essas três interpretações são intercambiáveis segundo a particular abordagem que se mostrar mais vantajosa ao problema que se tenta solucionar;

44 Recursão: – Forma natural de ver e representar dados e programas; Entretanto, na sintaxe da linguagem não ha laços do tipo "for" ou "while": – Podem ser programados; – São desnecessários; – Não usam comandos de atribuição; Uma estrutura de dados contendo variáveis livres pode ser retornada como a saída de um procedimento: – Essas variáveis livres podem ser posteriormente instanciadas por outros procedimentos produzindo o efeito de atribuições implícitas a estruturas de dados; Variáveis livres são automaticamente agrupadas por meio de referências transparentes ao programador;

45 Vantagens: – É de aprendizado muito mais fácil e natural do que as linguagens procedimentais convencionais, podendo inclusive ser ministrada a estudantes entre o final do primeiro e o inicio do segundo grau com grande aproveitamento; – Implementa com precisão todos os novos modelos surgidos nos últimos anos, inclusive redes neurais, algoritmos genéticos, sociedades de agentes inteligentes, sistemas concorrentes e paralelos; – Permite a implementação de extensões, inclusive em nível meta, e a definição precisa de sistemas reflexivos (essenciais, por exemplo, a robótica); – Libera o programador dos problemas associados ao controle de suas rotinas, permitindo-lhe concentrar-se nos aspectos lógicos da situação a representar.


Carregar ppt "Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos."

Apresentações semelhantes


Anúncios Google