Programmation en logique. UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando.

Slides:



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

Introdução a Algoritmos
Introdução à Ciência da Computação Linguagens de Programação.
3 Paradigmas e Linguagens de Programação
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Lógica Matemática e Computacional 1.1 – Inteligência Artificial
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 32 Departamento de Informática Centro.
Linguagens de Programação
Software Básico Silvio Fernandes
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Sistemas Baseados em Conhecimento
Programação em lógica e lógica
Prolog: Predicados Built-in 2
FACENS – Engenharia da Computação Inteligência Artificial
INTRODUÇÃO À PROGRAMAÇÃO
Programação Lógica: PROLOG
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Universidade Federal do Espírito Santo Programação II Professora: Norminda Luiza.
Introdução à Programação
2. A Linguagem Prolog.
Introdução à Modelagem Conceitual 3. Prolog
Luiz A. M. Palazzo Pelotas, maio de 2010
Linguagens de Programação
Programação em Lógica Augusto Marks Batista Guilherme dos Santos Fujiyoshi Marlon Bill Santos.
Resolução Proposicional
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
Inteligência Artificial
Princípios e Conceitos de Software(v2)
INF 1771 – Inteligência Artificial
Inteligência Artificial
Professor Fernando Luís
Paradigmas de programação
Inteligência Artificial: A Linguagem Prolog (parte 2)
Aula Prática - Prolog Sistemas Inteligentes /~if684
Prolog Programação Lógica Ícaro A. Souza.
Paradigma Lógico.
Dedução Natural.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Aula prática - análise contextual
Programação Avançada Prof. Natalia Castro Fernandes
Conceitos e Linguagens de Programação
Introdução a Programação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
REPRESENTAÇÃO DO CONHECIMENTO
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Uma Breve Introdução á programação lógica
Sistemas Especialistas
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Sistemas Baseados em Conhecimento
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
Princípios da Programação em Prolog
INTRODUÇÃO À PROGRAMAÇÃO EM LÓGICA Profa. Joseluce de Farias Cunha
Introdução a Banco de Dados Aula 04
Lógica para Computação
Acabias Marques Luiz. I - Introdução ao Ruby Parte 1 – Introdução a linguagem  O que é Ruby  Instalação  O IRB  Operadores Aritméticos  Tipos de.
Programação de computadores Prof. Giovanni Castro.
Linguagens de Programação Introdução Prof. Renato Melo.
Programação Lógica com Prolog
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Engenharia de Software
Departamento de Informática
Métodos Formais Juan Andrés Mussini.
1 Linguagens de Programação Pedro Lopes 2010/2011.
SISTEMAS DE INFORMAÇÃO
Revisão 1º Bimestre Inteligência Artificial
Revisão 2º Bimestre Inteligência Artificial - IA Nome: Leonardo Brussolo de Paula.
INTRODUÇÃO THOBER CORADI DETOFENO, MSC. Aula 01 JOINVILLE 2015 Universidade do Estado de Santa Catarina – CCT/UDESC.
Transcrição da apresentação:

programmation en logique

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE Daniel Augusto da Costa Ambrósio Eduardo Agostinho Oliveira dos Santos Fernando Chaves Dantas Ítalo Tobias de Souza Dantas José Maria de Oliveira Cavalcante Thiago Medeiros de Menezes

Características Como Programar em Prolog? Aplicações Prolog versus Linguagens Imperativas APRESENTAÇÃO À LINGUAGEM PROLOG Aspectos Gerais Considerações Finais Por que estudar Prolog?

O nome Prolog é um acrônimo para programmation en logique; Linguagem enquadrada nos paradigmas lógico e declarativo da programação; Projetada, em 1972, por Alain Colmerauer e Philippe Roussel na França; Sua semântica foi formalizada por Robert Kowalski baseada no conceito das cláusulas de Horn; Desenvolvida para criar programas de tradução de linguagens naturais como português, francês e inglês; O nome Prolog é um acrônimo para programmation en logique; Linguagem enquadrada nos paradigmas lógico e declarativo da programação; Projetada, em 1972, por Alain Colmerauer e Philippe Roussel na França; Sua semântica foi formalizada por Robert Kowalski baseada no conceito das cláusulas de Horn; Desenvolvida para criar programas de tradução de linguagens naturais como português, francês e inglês; ASPECTOS GERAIS

Tem na lógica um formalismo conveniente para representar e processar o conhecimento de maneira natural; Linguagem não-numérica, orientada a símbolos; É adequada à solução de problemas envolvendo objetos e suas relações; Tem sido aplicada em inteligência artificial, redes de computadores, educação, base de dados e sistemas paralelos. Tem na lógica um formalismo conveniente para representar e processar o conhecimento de maneira natural; Linguagem não-numérica, orientada a símbolos; É adequada à solução de problemas envolvendo objetos e suas relações; Tem sido aplicada em inteligência artificial, redes de computadores, educação, base de dados e sistemas paralelos. ASPECTOS GERAIS

Há uma preferência por serviços de especificação no mercado de trabalho; Pode ser vista como uma linguagem de programação e de especificação; Eficaz na elaboração de ambientes e interfaces computacionais para seres humanos; Permite definir e estender sistemas reflexivos, utilizados em robótica; É adequado para a descrição do mundo real com todos os seus aspectos e sutilezas. Há uma preferência por serviços de especificação no mercado de trabalho; Pode ser vista como uma linguagem de programação e de especificação; Eficaz na elaboração de ambientes e interfaces computacionais para seres humanos; Permite definir e estender sistemas reflexivos, utilizados em robótica; É adequado para a descrição do mundo real com todos os seus aspectos e sutilezas. POR QUE ESTUDAR PROLOG?

A programação limita-se a fornecer uma descrição do problema que se pretende computar; A execução de um programa em Prolog é efetivamente a prova de um dado teorema; Obtém respostas alternativas através de backtracking; Suporta código recursivo e iterativo, dispensando o uso de mecanismos como while, for e repeat ; Apesar do longo tempo de desenvolvimento, ainda não é uma linguagem portável. A programação limita-se a fornecer uma descrição do problema que se pretende computar; A execução de um programa em Prolog é efetivamente a prova de um dado teorema; Obtém respostas alternativas através de backtracking; Suporta código recursivo e iterativo, dispensando o uso de mecanismos como while, for e repeat ; Apesar do longo tempo de desenvolvimento, ainda não é uma linguagem portável. CARACTERÍSTICAS

É uma implicação cujo antecedente é uma conjunção de fórmulas atômicas e cujo conseqüente consiste em, no máximo, uma fórmula atômica. Lógica: ( α 1... α n) β Prolog: β :- ( α 1,..., α n) CLÁUSULAS DE HORN

A evolução da busca por soluções assume a do padrão da busca em profundidade em árvores; Quando a pesquisa falha ou é encontrado um nó terminal, o sistema retorna pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas; O backtracking pode se tornar em uma fonte de ineficiência, uma vez que o programa pode executar passos tentando satisfazer objetivos que não contribuirão para a solução do problema. A evolução da busca por soluções assume a do padrão da busca em profundidade em árvores; Quando a pesquisa falha ou é encontrado um nó terminal, o sistema retorna pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas; O backtracking pode se tornar em uma fonte de ineficiência, uma vez que o programa pode executar passos tentando satisfazer objetivos que não contribuirão para a solução do problema. BACKTRACKING

TIPOS DE DADOS sapato, Sapato átomos X, _X variáveis 43, -35, a = 97 números inteiros 43.0,.8e21 números em ponto flutuante $ele foi ao cinema$, ele foi ao cinema strings nasceu(joca, natal) estruturas [a, b, c] listas

CONCEITOS BÁSICOS CONSULTAS ?-mae(pedro). REGRAS mae(Ana) :- mulher(Ana). FATOS mae(pedro, ana).

OPERADORES BÁSICOS pré-definidos _:-?-! não, e, ou lógicos not,; aritmética +-*///mod^is relacional ====:=\===\=<=<>>= outros member(elemento, [ ])\+

Escrita de compiladores Prova de Teoremas Redes de Computadores Sistemas Baseados em Conhecimento Sistemas de Bases de Dados Sistemas Especialistas Processamento de Linguagem Natural Educação Arquiteturas Não- Convencionais APLICAÇÕES

ParadigmasImperativoEstruturado Orientado a Objetos ConcorrenteDeclarativoFuncionalLógico PROLOG VERSUS LINGUAGENS IMPERATIVAS

Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Execução de passos algorítmicos Declarativo Especificações sobre a Tarefa a Ser Realizada Predicados Dedução Automática Difícil Implementação computacional Imperativo Processo de Mudanças de Estados Variável, Valor e Atribuição Execução de passos algorítmicos Declarativo Especificações sobre a Tarefa a Ser Realizada Predicados Dedução Automática Difícil Implementação computacional PARADIGMAS

PROLOG VERSUS LINGUAGENS IMPERATIVAS Imperativasprolog processamento numéricoprocessamento simbólico soluções algorítmicassoluções heurísticas modificação difícilfácil modificação melhor solução possíveltodas as soluções possíveis fácil re-usabilidadedifícil re-usabilidade iteratividade integradaiteratividade separada apenas respostas corretas incluem respostas parcialmente corretas conexão a base de dadosnão conecta a base de dados alta produtividade baixa produtividade

INTEGRANDO PROLOG Para que!??? Possibilidade de buscas mais complexas não definidas através de SQL. Prolog interpreta um scripts. Passos para integração Definição de conjuntos e regras em script prolog.pl; Utilização de programação Imperativa para selecionar situações; Verificar veracidade das situações com execução de um script prolog; Organizar resultados; Torna o prolog mais reutilizável; Para que!??? Possibilidade de buscas mais complexas não definidas através de SQL. Prolog interpreta um scripts. Passos para integração Definição de conjuntos e regras em script prolog.pl; Utilização de programação Imperativa para selecionar situações; Verificar veracidade das situações com execução de um script prolog; Organizar resultados; Torna o prolog mais reutilizável;

CONSIDERAÇÕES FINAIS Para resolução de problemas lógicos, podemos utilizar o Prolog como uma forma de facilitar o encontro de uma solução; Pelo fato de ser uma linguagem interpretada, pode ser facilmente incorporada a uma linguagem de programação que faça chamadas de execução de programas; Prolog é uma linguagem muito utilizada na área da pesquisa, desenvolvimento de projetos científico, vem tentando ser utilizada no mercado. Para resolução de problemas lógicos, podemos utilizar o Prolog como uma forma de facilitar o encontro de uma solução; Pelo fato de ser uma linguagem interpretada, pode ser facilmente incorporada a uma linguagem de programação que faça chamadas de execução de programas; Prolog é uma linguagem muito utilizada na área da pesquisa, desenvolvimento de projetos científico, vem tentando ser utilizada no mercado.

BEBREGAL, Benjamín Callejas; ACIOLY, Benedito Melo. Introdução à Lógica Clássica para a Ciência da Computação, versão preliminar DANTAS, Luciano Assis. Descobrindo o Prolog. Disponível em br/Artigo.aspx?id=1697. Acesso em 25 jul MITSUO, Marcelo Niside. Prolog. Disponível em Acesso em 25 jul PALLAZZO, Luiz A. M.. Introdução à Programação Prolog. Disponível em Prolog/introducaoProgramacaoProlog_Palazzo.pdf. Acesso em 25 jul Prolog. Disponível em Prolog#Extens.C3.B5es. Acesso em 25 jul BEBREGAL, Benjamín Callejas; ACIOLY, Benedito Melo. Introdução à Lógica Clássica para a Ciência da Computação, versão preliminar DANTAS, Luciano Assis. Descobrindo o Prolog. Disponível em br/Artigo.aspx?id=1697. Acesso em 25 jul MITSUO, Marcelo Niside. Prolog. Disponível em Acesso em 25 jul PALLAZZO, Luiz A. M.. Introdução à Programação Prolog. Disponível em Prolog/introducaoProgramacaoProlog_Palazzo.pdf. Acesso em 25 jul Prolog. Disponível em Prolog#Extens.C3.B5es. Acesso em 25 jul REFERÊNCIAS