Uma Breve Introdução á programação lógica

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Introdução à Linguagem Prolog
Concepção da linguagem, ou seja, porque e como ela é como é?
Prof. Marcone Sotéro Cálculo de Predicados Prof. Marcone Sotéro
Grupo nominal e grupo verbal
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Lógica Proposicional-1
Elsa Carvalho 163 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Teoria dos Modelos.
Programação Lógica ProLog
Lógicas em Dedução Natural
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Busca em Profundidade Para encontrar um caminho de solução Sol, de um dado nó para algum nó objetivo Se N é um nó objetivo, então Sol=[N] Se há um nó N1.
PREDICATIVO DO SUJEITO DO OBJETO.
BCC 101– Matemática Discreta
Programação em lógica e lógica
Life Leonardo Lemos (lal)Paulo Oliva (pbo)& Controle de Fluxo * de predicados: Como em Prolog: fail. conjunção (A,B). disjunção (A;B). Diferente de Prolog:
Prolog: Predicados Built-in 2
LIFE: predicados, funções e sorts built-in Jacques Robin Paulo Oliva Leonardo Lemos DI-UFPE.
Programação Lógica: PROLOG
Curso Sistemas de Informação Disciplina: Arquitetura de Software
5. Processamento de Listas
2. A Linguagem Prolog.
3. Sintaxe e Semântica.
Introdução à Modelagem Conceitual 3. Prolog
Análise Sintática.
Otter Provador de Teoremas
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Inteligência Artificial
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Inteligência Artificial: A Linguagem Prolog (parte 2)
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Prolog Programação Lógica Ícaro A. Souza.
Conceitos de Linguagem de Programação
Aula Prática - Prolog Sistemas Inteligentes /~if684
{Períodos, Frase, Oração
Conceitos e Linguagens de Programação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Profª Adriana Paula Chaves
INF 1771 – Inteligência Artificial
Grupo nominal e grupo verbal
Verbal, Nominal, Adjetival e Preposicionado
Algoritmos de Busca em Prolog
Procedimentos Pré-definidos em prolog comunicação
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
TIPOS DE PREDICADO.
Lógica para Computação
Elsa Carvalho 18 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Estruturas de.
LÍNGUA PORTUGUESA IV: SINTAXE: TERMOS DA ORAÇÃO
O QUE FALO SOBRE O SUJEITO?
Lambda Cálculo & Programação Funcional
Banco de Dados Dedutivos
Programação Lógica com Prolog
Inteligência Artificial: A Linguagem Prolog (Parte 1)
GRUPOS CONSTITUINTES DA FRASE
Lógica Aula 3.
Sintaxe da Frase - Funções sintáticas - Complementação do verbo AZEREDO, José Carlos de. Iniciação à sintaxe do português. p e PERINI,
Revisão 1º Bimestre Inteligência Artificial
Vinicius Ponte Machado
Tipos de predicado “O predicado verbal, que exprime um fato, um acontecimento, ou uma ação, tem por núcleo um verbo, acompanhado ou não, de outros elementos".
SISTEMAS DE INFORMAÇÃO Inteligência Artificial 2011/01 UNIPAC - FACAE Faculdade de Ciências Administrativas e Exatas Araguari - MG.
Conteúdos: Classes gramaticais Morfossintaxe
Inteligência Artificial Objetos em Prolog  Esta aula introduz objetos de dados simples e estruturados  Os tópicos abordados são:  Unificação como operação.
Transcrição da apresentação:

Uma Breve Introdução á programação lógica Inteligência Artificial Wladimir Araújo Tavares

Prolog É uma linguagem simples baseada na lógica simbólica Prolog é uma linguagem interativa projetada para manipulação de dados simbólicos Prolog é baseado em um provador de teoremas para cláusulas Horn.

Exemplos Sócrates é homem. Todo homem é mortal.

Programa homem(socrates) mortal(X) :- homem(X) ?- mortal(socrates). yes

Objetos manipulados pelo Prolog Os objetos manipulados pelo prolog são os termos. Os termos podem ser átomos ou estruturas. Os átomos podem ser constantes ou variáveis.

Variáveis Nas linguagem convencionais as variáveis representa um célula de memória. Em PROLOG uma variável é associada a um objeto. A vantagem da ligação sobre a atribuição está no fato de que qualquer tipo de objeto pode ser ligado a uma mesma variável; não se tem restrições às ligações, pois uma variável não possui estrutura interna.

Estrutura Uma estrutura é um objeto que possui organização interna. Em PROLOG estruturas são representadas por símbolo funcional(lista de argumentos) onde símbolo funcional é um identificador e lista de argumentos é uma lista de termos que pode ser vazia; isto é, um átomo é um caso particular de estrutura.

Exemplo Estrutura livro(gabriela,autor(amado,jorge)) cidade(sao-paulo, pais(brasil))

Programa Prolog mae(antonio, maria). /* fato1 */ mae(pedro, maria). /* fato2 */ mae(jose, ana). /* fato 3 */ pai(antonio,carlos). /* fato 4 */ pai(pedro,jose). /* fato5 */ pai(paulo,jose). /* fato6 */ irmao(X,Y):-pai(X,Z), pai(Y,Z), X\==Y. /* regra1 */ irmao(X,Y):-mae(X,Z), mae(Y,Z), X\==Y. /* regra2 */

?-irmao(antonio,I) irmao(antonio,I):-pai(antonio,Z), pai(I,Z), antonio \== I. irmao(antonio,I):-pai(antonio,carlos),pai(I,carlos),antonio\==I. irmao(antonio,I):-pai(antonio,carlos),pai(antonio,carlos),antonio\==antonio. irmao(antonio,I):-mae(antonio,Z),mae(I,Z),antonio\==I.

amigo(antonio,andre). amigo(andre,juliana). amigo(antonio,maria). amigo(juliana,jose). amigo(X,Y):-amigo(Y,X). ?- amigo(X,Y) X=antonio Y=andre

Recursividade á esquerda amigo(X,Y):-amigo(Y,X). amigo(antonio,andre). amigo(andre,juliana). amigo(antonio,maria). amigo(juliana,jose). ?-?-amigo(X,Y)

fat(0,1). fat(N,F) :- N1 is N-1, fat(N1,F1), F is N*F1.

Lista Uma lista é um termo estruturado que é operado como um conjunto ordenado de elementos. Os elementos podem ser átomos ou termos estruturados, inclusive listas.

Uma operação comum sobre uma lista é dividi-la em sua cabeça e cauda. Há uma notação especial para representar “a lista com cabeça X e cauda Y”: X|Y.

membro(X,[X|_]). membro(X,[_|Y]):-membro(X,Y). add_to_set(X,[],[X]). add_to_set(X,Y,Y) :- member(X,Y). add_to_set(X,Y,[X|Y]). escreve_lista([]). escreve_lista([X|Y]) :- write(':'),write(X),escreve_lista(Y).

binario(1) :- write('1'). binario(X) :- Z is X // 2,binario(Z),N is X mod 2,write(N).

Processamento de linguagem Natural frase :- sujeito predicado sujeito :- artigo substantivo predicado :- verbo artigo substantivo artigo :- o substantivo :- gato j rato verbo :- caçou

frase(L1,L3) :- sintagma_nominal(L1,L2), sintagma_verbal(L2,L3). sintagma_nominal(L1,L3) :- determinante(L1,L2), nome(L2,L3). sintagma_verbal(L1,L3) :- verbo(L1,L2), sintagma_nominal(L2,L3). determinante([o|R],R). nome([homem|R],R). nome([disco|R],R). verbo([vira|R],R).

frase --> sujeito, predicado. sujeito --> artigo(G), substantivo(G). predicado --> verbo, artigo(G), substantivo(G). artigo(m) --> [o]. artigo(f) --> [a]. substantivo(m) --> [gato] | [rato]. substantivo(f) --> [gata] | [rata]. verbo --> [caçou].

frase(L1,L3) :- sintagma_nominal(L1,L2), sintagma_verbal(L2,L3). sintagma_nominal(L1,L3) :- artigo_masculino(L1,L2), nome_masculino(L2,L3). artigo_feminino(L1,L2), nome_feminino(L2,L3). sintagma_verbal(L1,L3) :- verbo(L1,L2), sintagma_nominal(L2,L3). artigo_masculino([o|R],R). artigo_feminino([a|R],R). nome_masculino([homem|R],R). nome_feminino([mulher|R],R). nome([disco|R],R). verbo([vira|R],R).