Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
PROLOG Programmation en Logique 1 - LÓGICA PROLOG Estudo das estruturas de raciocínio Lógica formal Lógica matemática Lógica de predicados Lógica nebulosa ... 2 - HISTÓRIA PROLOG Origem Motivação: Lógica Formal e Cálculo Predicacional. Criada em 1972, na França, por Alain Colmerauer na Universidade de Aix-Marseille. Desenvolvimento impulsionado pelo desenvolvimento dos Sistemas Computacionais de Quinta Geração 3 -APLICAÇÕES DA PROLOG PROLOG Principais Aplicações Sistemas Baseados em Conhecimentos Sistemas de Base de Dados Sistemas Especialistas Processamento da Linguagem Natural Educação Modelagem de Arquiteturas Não-Convencionais Inteligência Artificial 4 – PARADIGMA LÓGICO PROLOG PROGRAMAÇÃO VOLTADA À LÓGICA Planner PROLOG Mercury Visual Prolog Oz Frill Paradigma Declarativo – Lógico Definições: Paradigma Declarativo: Foca na solução e não no problema propriamente dito. Paradigma Declarativo (Lógico): Pergunta chave: “Qual é o problema?” Descobrir um algoritmo geral para solucionar problemas Obstaculo: encontrar um algoritmo geral que resolva determinado tipo de problema. Paradigma Declarativo – Lógico Desvantagens. Variáveis de programa sem tipo Vantagens. Alto nível de abstração Determinação de todas as soluções possíveis para determinado problema. Exemplo: Cálculo de Predicados Predicado; Preposição; Cálculo; Exemplos de Predicados: P(x) : “(x) é P”; P(x,y) : “(x) é P de (y)”. Cálculo de Predicados Exemplo de Proposição: P: “Cristina é estudante de computação”; PROLOG LP usada para solucionar problemas que envolvem objetos e suas relações Declaração; Definição; Resposta. PROLOG Estabelecer Relações; Usado em: Bioquímica; Inteligência Artificial; Automação de Projetos. Estruturas do PROLOG Termos (variáveis) X, _4, altura, Quem. Fatos amiga(joana,maria). amiga(clara,maria). Questões ?- amiga(joana,Quem) , amiga(clara,Quem). Exemplo: Banco de dados (meta-dados) Regra amiga(joana,maria). amiga_intima(Ela1,Ela2) :- amiga(Ela1,Ela2), amiga(Ela2,Ela1), ama(Ela1,Ela2), ama(Ela2,Ela1). amiga(maria,joana). amiga(maria,clara). amiga(clara,maria). ama(joana,maria). ama(maria,joana). Pergunta ?- amiga_intima(maria, clara). PROGRAMASCONVENCIONAIS PROGRAMAS EM LÓGICA Processamento Numérico Processamento Simbólico Soluções Algorítmicas Soluções Heurísticas Estruturasde Controle e Conhecimento Integradas Estruturasde Controle e Conhecimento Separadas Difícil modificação Fácil modificação Somente respostas totalmente corretas Incluirespostas parcialmente corretas Somente a melhor solução possível Incluem todas as soluções possíveis 5 - PROLOG PROLOG Prolog Orientada ao Processamento Simbólico Semântica declarativa Programas reversíveis Permite obter respostas alternativas Suporta recursão e iteração Compilada Principais Características Paradigma Lógico Processamento Simbólico Soluções Heurísticas Estrutura de Controle e Conhecimentos Separadas Fácil Modificação Respostas Parcialmente Corretas Inclui todas as soluções possíveis Linguagem de Programação/Especificações Capacidade Dedutiva Representação de relações reversíveis Recursividade 6 – COMPILADORES PROLOG PROLOG GNU - PROLOG SWI - PROLOG 7 – TIPOS DE DADOS EM PROLOG PROLOG Tipos de Dados - Prolog Termos Compostos 8 – COMANDOS BÁSICOS PROLOG COMANDOS TRIVIAIS Declaração de fatos Definição de regras de inferência Comandos de Escrita e Leitura Comandos aritméticos Declarando fatos Exemplo: gosta(maria, pedro). Equivale a declarar a seguinte afirmação: Maria gosta de Pedro Fatos Exemplo: gosta(maria, pedro). Relação Objetos Declarando conjunções Exemplo: gosta(maria, pedro), namora(bia, caio). Equivale a declarar a seguinte afirmação: Maria gosta de Pedro e Bia namora Caio. Declarando regras de inferência (Cláusulas) Exemplo: filho(Y, maria, pedro) :- mae(maria, Y), pai(pedro, Y). Equivale a declarar a seguinte afirmação: Se Maria é mãe de Y, e Pedro é pai de Y, então Y é filho de Maria e Pedro Operadores Lógicos Operador em Língua Natural Operador em Prolog ‘e’ (Conjunção) , ‘ou’ (Disjunção) ; ‘se... então’ (Implicação) :- ‘não’ (Negação) not() ‘é’ (Afirmação) is Write e read write(‘teste’). -> Imprime texto na saída read(X). -> Lê um valor e unifica à variável X 9 – ESTRUTURA DE UM PROGRAMA EM PROLOG PROLOG Fatos Em geral, programas escritos em PROLOG lidam com objetos e relações entre esses objetos. A estrutura de um programa em PROLOG é a seguinte: Fatos sobre os objetos Regras de Inferência Perguntas sobre os objetos (consultas) Código Execução Fazendo consultas ao sistema Para fazer uma consulta ao sistema PROLOG, deve-se iniciar com ?- O sistema responderá SIM ou NÃO, dependendo dos fatos declarados em seu banco de dados. O Sistema Prolog também permite respostas múltiplas. 10 – RECURSIVIDADE E ESTRUTURA DE DADOS EM PROLOG PROLOG Exemplo de Programa Recursivo Estrutura de Dados As principais estrutura de dados implementadas em PROLOG, são as árvores. Porém, pode-se implementar listas, filas e pilhas também. 11 – EXEMPLO DE UM PROGRAMA EM PROLOG PROLOG PARA QUEM QUER APRENDER MAIS SOBRE PROLOG Curso da UFPE sobre PROLOG: http://www.di.ufpe.br/~compint/aulas-IAS/prolog-962-971/#Intro Learn Prolog Now: http://www.learnprolognow.org/lpnpage.php?pageid=top LIVROS, APOSTILAS E MATERIAIS RECOMENDADOS PALAZZO, Luís A. M; Introdução à Programação PROLOG; UCPEL – 1997. BARBOSA, Alexandre de Andrade; CUNHA, Joseluce de Farias; Introdução à Programação em Lógica; CCT – UFCG – 2006. CASANOVA, Marco A.; GIORNO, Fernando A. C.; FURTADO, Antônio L.; Programação em Lógica e a Linguagem PROLOG; 2006 SEBESTA, Robert W.; Conceitos de linguagens de programação; 5. ed; Bookman; 2003. MORTARI, César A.; Introdução à Lógica; 1ª ed.; UNESP – Imprensa Oficial do Estado; 2001
Compartilhar