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

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

Programação Lógica com Prolog

Apresentações semelhantes


Apresentação em tema: "Programação Lógica com Prolog"— Transcrição da apresentação:

1 Programação Lógica com Prolog
Curso de Sistemas de Informação 2º Período – 2010/02 Prof.:Edmilson Ferreira

2 O que é diferente na Programação Lógica
Num algoritmo qualquer identificamos dois principais componentes: lógica - o que solucionar (problema) controle - como solucionar (solução). Na programação em lógica o programador deve descrever somente o componente lógico. O controle é exercido pelo sistema usado.

3 INTRODUÇÃO Alguns fatos sobre Prolog:
O termo Prolog é derivado da expressão “Programming in Logic”; Foi criado em 1973, na Universidade de Marseille, França Propósito da criação: criar programas para tradução de linguagem natural (linguagens faladas). Não é uma linguagem padronizada: padrão ANSI esta sendo formalizado. Enquanto isso, o livro de Clocksin e Mellish, “Programming in Prolog” (1984) é um padrão não oficial. Geralmente é interpretado, mas pode ser compilado. Escolhida para o projeto japonês da linguagem de 5a. Geração.

4 APLICAÇÕES Lógica matemática, prova automática de teoremas e semântica; Solução de equações simbólicas; Bancos de dados relacionais; Linguagem Natural; Sistemas Especialistas; Planejamento Automático de Atividades; Aplicações de “General Problem Solving”, como jogos (Xadrez, Damas, Jogo da Velha, etc.); Compiladores; Análise Bioquímica e projetos de novas drogas.

5 PROLOG E OUTRAS LINGUAGENS
C, Pascal, Basic: são linguagens Procedimentais (ou imperativas) - especificam como deve ser feita alguma coisa. Codificam algoritmos. C++, SmallTalk, Eiffel: são linguagens Orientadas a Objetos - especificam objetos e seus métodos. Prolog: é uma linguagem declarativa - especifica o quê se sabe e o quê deve ser feito. Prolog é mais direcionada ao conhecimento, menos direcionada aos algoritmos.

6 Continuação Prolog não possui estruturas de controle como do-while, repeat-until, if-then-else, for, case ou switch como os encontrados em outras linguagens: em Prolog utiliza-se métodos lógicos para declarar como o programa atinge seu objetivo. O Prolog reside em sua capacidade de Busca.

7 CONCEITOS BÁSICOS Definição: Prolog é uma linguagem de programação que é utilizada para resolver problemas que envolvam objetos e relações entre objetos. Um programa em Prolog consiste basicamente de: declaração de fatos/Cláusulas (facts) sobre objetos e suas relações; definições de regras (rules)sobre os objetos e suas relações; Questões/Consultas (goals) que são feitas sobre os objetos e suas relações.

8 Argumento do Predicado, com vários Objetos
FATOS/CLÁUSULAS Os fatos são os elementos fundamentais da programação em Prolog, pois determinam as relações que existem entre os objetos conhecidos. Exemplo: gosta (josé, maria). Predicado ou Relação Argumento do Predicado, com vários Objetos

9 Características dos fatos:
Os nomes dos predicados e dos objetos devem começar com letra minúscula. Por exemplo: joão, casa, gosta. Os predicados são escritos primeiro e os objetos são escritos depois, separados por vírgulas. Os objetos são escritos dentro de parênteses. Todo fato é terminado com um ponto final.

10 Características dos fatos:
A ordem dos objetos é importante: gosta (maria, josé).  gosta (josé, maria). Uma coleção de fatos é chamada de “banco de conhecimento” ou “banco de dados”. Os fatos podem ter um número arbitrário de objetos como argumento. NOTA: Para padronizar a criação de predicados (tanto os fatos quanto as regras), devemos sempre pensar que o predicado é uma propriedade do primeiro objeto do argumento. Assim, “gosta (joão, maria).” deve ser lido como “João gosta de Maria”.

11

12 Exemplos progenitor(maria, josé). % Maria é progenitor de José.
progenitor(joão, josé). progenitor(joão, ana). progenitor(josé, júlia). progenitor(josé, íris). progenitor(íris, jorge). masculino(joão) % João é do sexo masculino. masculino(josé). masculino(jorge). feminino(maria) % Maria é do sexo feminino. feminino(ana). feminino(júlia). feminino(íris).

13 O que é diferente na Programação Lógica
Um programa não é a descrição de um procedimento para se obter a solução do problema. Somente descreve o que solucionar. O responsável pelo procedimento a ser adotado na execução da solução é o sistema usado no processamento dos programas.

14 O que é diferente na Programação Lógica
Um programa em lógica (programação declarativa) é a representação de determinado problema através de um conjunto finito de sentenças lógicas denominadas cláusulas. As cláusulas componentes dos programas em PROLOG podem ser fatos ou regras.

15 O que é diferente na Programação Lógica
A programação declarativa engloba também a programação funcional (LISP e Haskell, por exemplo). Programar em uma linguagem funcional consiste em construir funções, expressas obedecendo a princípios matemáticos, para resolver um problema dado.

16 Cláusulas, Fatos, Regras e Predicado
Cláusulas são as sentenças lógicas componentes dos programas. Um fato denota uma verdade incondicional. As regras definem as condições a serem satisfeitas para que uma certa declaração seja considerada verdadeira. O conjunto completo de cláusulas (fatos e regras) empregados para descrever uma relação, é denominado predicado.

17 Objetos e suas Relações
A programação em lógica reforça a tese de que a lógica é um formalismo conveniente para representar e processar conhecimento. Para tanto faz-se necessário identificar nos problemas objetos (entidades) relação entre estes compondo os fatos (verdades incondicionais).

18 Objetos e suas Relações
A programação em lógica reforça a tese de que a lógica é um formalismo conveniente para representar e processar conhecimento. Para tanto faz-se necessário identificar nos problemas objetos (entidades) relação entre estes compondo os fatos (verdades incondicionais).

19 Objetos e suas Relações
É possível definir, entre os objetos (indivíduos) uma relação chamada progenitor. progenitor(jo, ze). progenitor(iris, gal).

20 Objetos e suas Relações
Cláusula: progenitor(jo, ze). Sendo:   RELAÇÃO ARGUMENTOS

21 Objetos e suas Relações
Cláusulas: progenitor(jo, ze). progenitor(jo, ana). progenitor(ze, beth). Estas constituem três cláusulas que denotam três fatos acerca da relação progenitor.

22 Objetos e suas Relações
Cláusulas: progenitor(jo, ze). progenitor(jo, ana). progenitor(ze, beth). Exercício 1: Usando o compilador SWI-ProLog, implementar a árvore ao lado.


Carregar ppt "Programação Lógica com Prolog"

Apresentações semelhantes


Anúncios Google