Programação Lógica. Programação Lógica PROLOG
|
|
|
- Eliza Camilo Paixão
- 8 Há anos
- Visualizações:
Transcrição
1 Programação Lógica PROLOG
2 A programação em lógica se desenvolveu no início dos anos 70 a partir de alguns trabalhos sobre prova de teoremas. Desde então ela tem demonstrado ser um formalismo simples, mas muito poderoso, que é bastante adequado tanto para a representação do conhecimento quanto como ferramenta de programação. Programação Lógica unifica: Engenharia de Software (especificação formal, linguagens de programação) IA (raciocino e Representação do Conhecimento (RC)) Banco de Dados -- Dedutivos (BDDs) Teoria Lógica (TL) das provas
3 Primeira linguagem de programação que seguiu o novo paradigma associado à programação em lógica foi PROLOG. PROLOG é uma linguagem baseada em um conjunto de conceitos: casamento de padrões; estruturação em forma de árvore; backtracking automático É uma linguagem orientada ao processamento simbólico. Representa uma implementação da lógica como linguagem de programação;
4 Paradigmas de linguagem de programação Linguagens Procedimentais (C, Pascal, Basic...) Especifica como realizar determinada tarefa. Linguagens Orientadas a Objetos (C++, Java, C#...) Especifica objetos e seus métodos. Linguagens Lógica (Prolog) Especifica o quê se sabe sobre um problema e o quê deve ser feito. É mais direcionada ao conhecimento e menos direcionada a algoritmos.
5 A programação em lógica baseia-se em estruturas lógicas denominadas Cláusulas de Horn, herdados da lógica de predicados, que se apresentam em quatro formas distintas: fatos, regras, consulta, vazia. Onde: Fatos verdades incondicionais Regras podem ser verdadeiras ou não Consultas provoca a execução do programa O PROLOG é uma linguagem de programação baseada em lógica de primeira ordem.
6 Na lógica de predicados usamos regras de inferência para demonstrar que uma tese é consequência de determinadas hipóteses Programação em Lógica e especificamente a linguagem Prolog Progamming in Logic também pode provar teses a partir de hipóteses A linguagem Prolog inclui: predicados, conectivos lógicos e regras de inferência - Princípio da Resolução
7 Prolog é uma linguagem declarativa ao invés de procedimental Um programa Prolog consiste na declaração (ou descrição de uma interpretação) de hipóteses que são verdadeiras em uma interpretação O conjunto de declarações que forma um programa Prolog é chamada a base de dados (BD) desse programa Para determinar se uma tese (consulta do usuário ao BD) é ou não verdadeira, Prolog aplica suas regras de inferência na BD.
8 Um programa em lógica é um modelo de um determinado problema ou situação expresso por meio de um conjunto de sentenças lógicas. Um programa em lógica não é a descrição de um procedimento para obter soluções de um problema. BD convencionais descrevem apenas fatos Oscar é um avestruz As sentenças de um Programa em Lógica, além de descrever fatos, permite a descrição de regras Todo avestruz é um ave Havendo regras, novos fatos podem ser deduzidos Oscar é uma ave
9 Fatos servem para estabelecer um relacionamento existente entre objetos de um determinado contexto de discurso. Por exemplo, num contexto familiar, pai(sebastião,livia) Predicado ou relação Argumento do predicado é um fato que estabelece que Sebastião é pai de Lívia, ou seja, que a relação pai existe entre os objetos denominados sebastião e livia.
10 Em Prolog, identificadores de relacionamentos são denominados predicados e identificadores de objetos são denominados átomos. Tanto predicados quanto átomos devem iniciar com letra minúscula. Ex.: Programa árvore genealógica. pai(adao,cain). pai(adao,abel). pai(adao,seth). pai(seth,enos).
11 Consulta são usadas para recuperar informações de um programa lógico. Uma consulta pergunta se uma determinado relacionamento existe entre objetos. Por exemplo, a consulta?- pai(sebastião,lívia). pergunta se a relação pai vale para os objetos sebastião e lívia ou, em outras palavras, pergunta se Sebastião é pai de Lívia. Então, dados os fatos estabelecidos no programa, a resposta a essa consulta será yes.
12 Sintaticamente, fatos e consultas são muito similares. pai(sebastiao, livia)?pai(sebastiao, livia) A diferença é que fatos são agrupados no arquivo que constitui o programa, enquanto consultas são sentenças digitadas no prompt (?-) do interpretador Prolog. Responder uma consulta com relação a um determinado programa corresponde a determinar se a consulta é consequência lógica desse programa, ou seja, se a consulta pode ser deduzida dos fatos expressos no programa.
13 Outra consulta que poderíamos fazer com relação ao Programa árvore genealógica é:?- pai(adao,enos). Nesse caso, porém, o sistema responderia no. As consultas tornam-se ainda mais interessantes quando empregamos variáveis, ou seja, identificadores para objetos não especificados. Por exemplo:?- pai(x,livia). pergunta quem é o pai de Livia ou, tecnicamente, que valor de X torna a consulta uma consequência lógica do programa. A essa pergunta o sistema responderá X = sebastiao.
14 Uma consulta com variáveis pode ter mais de uma resposta. Nesse caso, o sistema apresentará a primeira resposta e ficará aguardando até que seja pressionado enter, que termina a consulta, ou ponto-e-vírgula, que faz com que a próxima resposta possível, se houver, seja apresentada.?- pai(adao,x). X = cain ; X = abel ; X = seth ; no (final da consulta)
15 Variável compartilhada Suponha que desejássemos consultar o Programa árvore genealógica para descobrir quem é o avô de Enos. Nesse caso, como a relação avô não foi diretamente definida nesse programa, teríamos que fazer a seguinte pergunta: Quem é o pai do pai de Enos? Então, como o pai de Enos não é conhecido a priori, a consulta correspondente a essa pergunta tem dois objetivos: primeiro, descobrir quem é o pai de Enos, digamos que seja Y; depois, descobrir quem é o pai de Y.
16 Variável compartilhada?- pai(y,enos), pai(x,y). Y = seth X = adão yes Para responder essa consulta, primeiro o sistema resolve pai(y,enos), obtendo a resposta Y = seth. Em seguida, substituindo Y por seth no segundo objetivo, o sistema resolve pai(x,seth), obtendo X = adão. Nessa consulta, dizemos que a variável Y é compartilhada pelos objetivos pai(y,enos) e pai(x,y). Variáveis compartilhadas são úteis porque permitem estabelecer restrições entre objetivos distintos.
17 Variável anônima Uma variável anônima deve ser usada quando seu valor específico for irrelevante numa determinada consulta. Por exemplo, considerando o Programa árvore genealógica, suponha que desejássemos saber quem já procriou, ou seja, quem tem filhos. Então, como o nome dos filhos é uma informação irrelevante, poderíamos digitar:?- pai(x,_). A essa consulta o sistema responderia: X = adão X = seth.
18 Regras permitem definir novas relações em termos de outras relações já existentes. Por exemplo, a regra avô(x,y) :- pai(x,z), pai(z,y). se e define a relação avô em termos da relação pai, ou seja, estabelece que X é avô de Y se X tem um filho Z que é pai de Y. Com essa regra, podemos agora realizar consultas tais como:?- avo(x,enos). X = adão
19 Regras são utilizadas para expressar dependência entre um fato e outro fato: criança(x) :- gosta(x,sorvete). criança(x) :- not odeia(x,sorvete). Ou grupo de fatos: avó(x,z) :- (mãe(x,y),mãe(y,z)); mãe(x,y),pai(y,z)).
20 Fatos e regras são tipos de cláusulas e um conjunto de cláusulas constitui um programa lógico. Como definir a relação irmão em termos da relação pai, já existente? Podemos dizer que duas pessoas distintas são irmãs se ambas têm o mesmo pai. Em Prolog, essa regra é escrita como: irmão(x,y) :- pai(z,x), pai(z,y), X\=Y.
21 Evidentemente, poderíamos definir a relação simplesmente listando todas as suas instâncias. irmão irmão(cain,abel). irmão(cain,seth). irmão(abel,cain). irmão(abel,seth). irmão(seth,cain). irmão(seth,abel). Entretanto, usar regras, além de muito mais elegante e conciso, também é muito mais consistente. Por exemplo, se o fato pai(adão,eloi) fosse acrescentado ao Programa árvore genealógica, usando a definição por regra, nada mais precisaria ser alterado. Por outro lado, usando a definição por fatos, teríamos que acrescentar ao programa mais seis novas instâncias da relação irmão.
22 Fatos para uma base de dados Exemplo: um sistema ecológico para especificar cadeia alimentar a come (urso, peixe) come (urso, raposa) come (cavalo, mato) animal (urso) animal (peixe) animal (raposa % predicado binário % predicado unário
23 Consultas Exemplos:? come (cavalo, mato) Regras Resposta: yes? come (urso, coelho) Resposta: no? come (urso, X) Resposta: peixe coelho Exemplo: um animal é presa se é comido por outro animal. Linguagem simbólica: Prolog: come(y,x) ^ animal(x) -> presa(x) presa(x) :- come(y,x), animal(x)
24 Regras e Consultas Acrescentando a nova regra à BD podemos fazer novo tipo de consulta come (urso, peixe) come (urso, raposa) % predicado binário come (cavalo, mato) animal (urso) animal (peixe) % predicado unário animal (raposa) presa(x) :- come(y,x), animal(x) % regra?-presa(x) resposta: peixe; raposa
25 Regras de inferência: resolução As regras e os fatos de um programa Prolog correspondem à fórmulas de 1 a ordem transformada em Cláusulas de Horn. Prolog trata as regras como sendo quantificadas universalmente. A regra de inferência usada pelo interpretador Prolog é a regra da resolução. Como foi obtida a resposta do exemplo anterior?
26 Regras de inferência: resolução Observe que a regra (Cláusula de Horn) presa(x) :- come(y,x), animal(x) Corresponde a wff (fórmula bem formada) x y(come(y,x) ^ animal(x)) -> presa(x) Corresponde a cláusula ~(come(x,y) ^ animal(x)) v presa(x ~come(x,y) v ~animal(x) v presa(x)
27 Regras de inferência: resolução Regra da resolução : Duas cláusulas de Horn são resolvidas em uma nova cláusula se uma delas contiver um predicado negado que corresponda a um predicado nãonegado na outra cláusula. A nova cláusula elimina o termo de correspondência e fica disponível para uso em resposta a pergunta. As variáveis são substituídas por constantes associadas de maneira consistente
28 Regras de inferência: resolução? presa(x) O Prolog procura, na BD, por uma regra com o predicado presa(x) como o consequente Busca outras cláusulas que possam ser resolvidas com a regra Faz as substituições das variáveis na cláusula regra 1. ~come(x,y) v ~animal(x) v presa(x) 2. come(urso,peixe) 3. ~animal(peixe) v presa(peixe) {resolvente de 1 e 2} 4. animal (peixe) 5. presa (peixe) {resolvente de 3 e 4} Refaz o processo procurando na BD outra cláusula a resolver com a cláusula da regra. Encontrará come(urso,peixe)
29 Regras de inferência: resolução Outro exemplo: acrescentando a BD a regra: x é caçado se é presa equivalente a caçado(x) :- presa(x) Como é feita a consulta que segue?? caçado(x) a regra na forma simbólica é: presa(x) -> caçado(x) a cláusula correspondente é: ~(presa(x) v caçado(x) essa cláusula é resolvida como a regra de definição de presa e seguindo a resolução obtém-se as respostas: peixe raposa
30 Programação em Prolog Programar em Prolog envolve: Declarar alguns fatos a respeito de objetos e seus relacionamentos. Definir algumas regras sobre os objetos e seus relacionamentos. Fazer perguntas sobre os objetos e seus relacionamentos
31 Sentenças Prolog Nomes de constantes e predicados iniciam sempre com letra minúscula. O predicado (relação unária, n-ária ou função) é escrito primeiro e os objetos relacionados são escritos depois entre parênteses. Variáveis sempre começam por letra maiúscula. Toda sentença termina com ponto. Exemplo: gosta(maria, jose).
32 Operadores Lógicos símbolo conectivo Operador lógico :- If (se) implicação, and conjunção ; or disjunção not not negação Operadores relacionais operador X=Y X \= Y X < Y Y > X Y =< X Y >= X significado Igual a Não igual a Menor que Maior que Menor ou igual a Maior ou igual a
33 Regras Regras são utilizadas para expressar dependência entre fatos: criança(x) :- gosta(x,sorvete). criança(x) :- not odeia(x,sorvete). Ou grupo de fatos: avó(x,z) :- (mãe(x,y),mãe(y,z)); (mãe(x,y),pai(y,z)).
34 Fatos Os fatos permitem definir os predicados: - Exemplo: um sistema ecológico para especificar a cadeia alimentar come (urso, peixe) come (urso, raposa) come (cavalo, mato) animal (urso) animal (peixe) animal (raposa) % predicado binário % predicado unário
35 Consultas De posse do programa Prolog (base de dados, podemos fazer consultas. Exemplos:? come (cavalo, mato) Resposta: yes? come (urso, coelho) Resposta: no? come (urso, X) Resposta: peixe raposa
36 Exemplo de um programa em Prolog come (urso, peixe). come (peixe,peixinho). come (peixinho,alga). come (quati,peixe). come(urso,quati). come (urso, raposa). come(raposa,coelho). come (coelho, mato). come(urso,fruta). come(cavalo,mato). come(gato-selvagem,cavalo). animal(urso). animal(peixe). animal(peixinho). animal(quati). animal(raposa). animal(coelho). animal(cavalo). animal(gato-selvagem). planta(mato). planta(alga). presa(x) :- come(y,x), animal(x).
37 Consulta ao programa em Prolog Consultas e respostas: cavalo mato? animal(coelho) yes? come(gato-selvagem,mato) no? come(x,peixe) urso quati? come(x,y),planta(y) peixinho alga coelho mato? presa(x) peixe Peixinho quati raposa coelho cavalo
38 Exercício. 1. Crie uma base de dados com informações de sua família e estabeleça as regras em Prolog que possibilite as seguintes questões: a) Quem são os pais? b) Quem são os avos? (avô, avó) c) Quem são os primos? (primo e prima) d) Quem é cunhado? e) Relação irmãos. f) Relação tios.
39 Referencias Judith L. Gersting: Fundamentos Matemáticos para a Ciência da Computação, LTC Editora, 3 a edição, Luiz A. M. Palazzo: Introdução à Programação PROLOG, Editora da Universidade Católica de Pelotas/UCPEL - Pelotas
INF 1771 Inteligência Artificial
Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 08 Introdução ao Prolog Introdução O Prolog é uma linguagem de programação baseada em lógica de primeira ordem. Não é
Inteligência Artificial. Prolog. Aula 2 Introdução (cont.)
Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2017.html Inteligência Artificial Prolog Aula 2 Introdução (cont.) Características
Programação Lógica. A Linguagem Prolog. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia
Programação Lógica A Linguagem Prolog Paulo Henrique Ribeiro Gabriel [email protected] Faculdade de Computação Universidade Federal de Uberlândia 21 de agosto de 2015 Paulo H. R. Gabriel (FACOM/UFU) Programação
Introdução à Programação em Prolog
Introdução à Programação em Prolog Thiago A. S. Pardo Solange Rezende Exercício em duplas Introdução (1 de 4) Escrever um programa completo em C que armazene quem gosta de quem e que responda sim ou não
03/04/2016 LÓGICA MATEMÁTICA. Prof. Esp. Fabiano Taguchi. Introdução ao Prolog
LÓGICA MATEMÁTICA Prof. Esp. Fabiano Taguchi [email protected] http://fabianotaguchi.wordpress.com Introdução ao Prolog 1 PROLOG PROgramming in LOGic Linguagem utilizada para resolver problemas
SCC Capítulo 5 Representação de Conhecimento através do Prolog
SCC-630 - Capítulo 5 Representação de Conhecimento através do Prolog João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São
CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG. Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira
CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira Roteiro Linguagens de Programação em Lógica: histórico THIS IS PROLOG!!!! SWI-Prolog
Fundamentos de Lógica Matemática
Webconferência 6-29/03/2012 Introdução à Lógica de Predicados Prof. L. M. Levada http://www.dc.ufscar.br/ alexandre Departamento de Computação (DC) Universidade Federal de São Carlos (UFSCar) 2012/1 Introdução
Paradigmas de Linguagens de Programação
Paradigmas de Linguagens de Programação Faculdade Nova Roma Cursos de Ciências da Computação (6 Período) Prof. Adriano Avelar - Site: www.adrianoavelar.com Email: [email protected] PROGRAMAÇÃO
Programação em Lógica. UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010
Programação em Lógica UCPEL/CPOLI/BCC Lógica para Ciência da Computação Luiz A M Palazzo Maio de 2010 Roteiro Introdução Conceitos Básicos Linguagens Lógicas Semântica de Modelos Semântica de Prova Programação
Matemática Discreta - 01
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 01 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Métodos para a construção de algoritmo
Métodos para a construção de algoritmo Compreender o problema Identificar os dados de entrada e objetos desse cenário-problema Definir o processamento Identificar/definir os dados de saída Construir o
SEMÂNTICA. Rogério Rocha. rode = program simples = var x : int := 3 in x := x + 5 end.
SEMÂNTICA program simples = var x : int := 3 in x := x + 5 end. rode =? Rogério Rocha Roteiro Introdução Sintaxe Semântica Dinâmica (Métodos formais) Operacional Axiomática Denotacional Estática Conclusão
30/04/2013. Prof. Hudson Costa
Prof. Hudson Costa PROLOG é uma linguagem de programação que é utilizada para resolver problemas que envolvam objetos e relações entre objetos. Em PROLOG o que se define basicamente são objetos e relações
Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial
Lógica de primeira ordem (Capítulo 8 - Russell) Inteligência Artificial Estrutura 1- Contextualização 2- Definições 3- Lista de exercício 4- Prolog 5- Regras em Prolog - Mundo Wumpus 6- Aplicação do Mundo
Fundamentos 1. Lógica de Predicados
Fundamentos 1 Lógica de Predicados Predicados e Quantificadores Estudamos até agora a lógica proposicional Predicados e Quantificadores Estudamos até agora a lógica proposicional A lógica proposicional
Prof. Jorge Cavalcanti
Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta - 01 Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Cálculo proposicional
O estudo da lógica é a análise de métodos de raciocínio. No estudo desses métodos, a lógica esta interessada principalmente na forma e não no conteúdo dos argumentos. Lógica: conhecimento das formas gerais
Raciocínio Automatizado
Raciocínio Automatizado Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Raciocínio automatizado simula raciocínio lógico por meio
Lógica. Cálculo Proposicional. Introdução
Lógica Cálculo Proposicional Introdução Lógica - Definição Formalização de alguma linguagem Sintaxe Especificação precisa das expressões legais Semântica Significado das expressões Dedução Provê regras
Linguagens de Programação Funcional
Linguagens de Programação Funcional Conceitos de Linguagens de Programação Pedro Libório Setembro de 2013 2 Roteiro Introdução Funções matemáticas Fundamentos das linguagens de programação funcionais A
Inteligência Artificial. Sistemas Baseados em Conhecimento. Representação de Conhecimento (continuação)
Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação http://www.inf.unioeste.br/~claudia/ia2018.html Inteligência Artificial Sistemas Baseados em Conhecimento Representação
Aula 2 Programação Lógica Sintaxe Prolog. Profa. Elaine Faria UFU -2014
Aula 2 Programação Lógica Sintaxe Prolog Profa. Elaine Faria UFU -2014 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro Santos Soares
Programação Orientada a Objetos. Programação Lógica
Programação Orientada a Objetos Programação Lógica Cristiano Lehrer, M.Sc. Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência
Os Fundamentos: Lógica de Predicados
Os Fundamentos: Lógica de Predicados Área de Teoria DCC/UFMG Introdução à Lógica Computacional 2019/01 Introdução à Lógica Computacional Os Fundamentos: Lógica de Predicados Área de Teoria DCC/UFMG - 2019/01
Programação Lógica. (Capítulo 11) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto
Programação Lógica (Capítulo 11) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Programação Lógica 2. Prolog 3. Exemplos Sintaxe da Programação Lógica Definição
SCC Capítulo 2 Lógica de Predicados
SCC-630 - Capítulo 2 Lógica de Predicados João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
Fundamentos de Lógica Matemática
Webconferência 5-22/03/2012 Prova por resolução Prof. L. M. Levada http://www.dc.ufscar.br/ alexandre Departamento de Computação (DC) Universidade Federal de São Carlos (UFSCar) 2012/1 Introdução É possível
Lógica de primeira ordem First Order Logic (FOL)
Lógica de primeira ordem First Order Logic (FOL) Prós e Contras da Lógica Proposicional É declarativa: partes da sintaxe correspondem a fatos Permite informação disjuntiva e/ou negada (a diferença da maioria
Aula 2: Linguagem Proposicional
Lógica para Computação Primeiro Semestre, 2015 Aula 2: Linguagem Proposicional DAINF-UTFPR Prof. Ricardo Dutra da Silva Linguagens naturais, como o nosso Português, podem expressar ideias ambíguas ou imprecisas.
Algoritmos e Programação I
Algoritmos e Programação I Operadores Relacionais, Lógicos e Aritméticos Prof. Fernando Maia da Mota [email protected] CPCX/UFMS Fernando Maia da Mota 1 Expressões Uma expressão relacional, ou
Dedução Natural e Sistema Axiomático Pa(Capítulo 6)
Dedução Natural e Sistema Axiomático Pa(Capítulo 6) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Dedução Natural 3. Sistemas axiomático Pa 4. Lista
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/59 1 - LÓGICA E MÉTODOS DE PROVA 1.1) Lógica Proposicional
Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Introdução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Linguagens de Programação Aula 15
Linguagens de Programação Aula 15 Celso Olivete Júnior [email protected] Na aula passada Linguagem Haskell 2 Na aula de hoje Paradigma Lógico Linguagem Prolog (PROgrammation en LOGique) 3 Introdução
Matemática discreta e Lógica Matemática
AULA 1 - Lógica Matemática Prof. Dr. Hércules A. Oliveira UTFPR - Universidade Tecnológica Federal do Paraná, Ponta Grossa Departamento Acadêmico de Matemática Ementa 1 Lógica Sentenças, representação
Linguagens de Programação
45 Linguagens de Programação O paradigma de programação imperativo está diretamente atrelado à arquitetura básica dos computadores sobre os quais os programas eram executados. Boa parte dos computadores
UNIDADE ACADÊMICA: Faculdade de
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Programação Lógica ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GSI010 PERÍODO: 2
2. Linguagem de Programação Prolog
Inteligência Artificial - IBM1024 2. Linguagem de Programação Prolog Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2. Linguagem de Programação Prolog 2.1.
Capítulo 3 Lógica de Primeira Ordem
Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Martins J.P., Lógica para Programação, Capítulo
A Lógica de Primeira Ordem
Capítulo 10 A Lógica de Primeira Ordem A Lógica de Primeira Ordem: A necessidade de uma linguagem mais expressiva O cálculo proposicional possui limitações com respeito a codificação de sentenças declarativas.
Inteligência Artificial IA II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO
Inteligência Artificial IA Prof. João Luís Garcia Rosa II. LÓGICA DE PREDICADOS PARA REPRESENTAÇÃO DO CONHECIMENTO 2004 Representação do conhecimento Para representar o conhecimento do mundo que um sistema
Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012
Elisabete Raposo Freire Departamento de Matemática Universidade dos Açores 21 Abril 2012 Problema de Einstein (adaptado) Existem 5 casas de 5 cores diferentes. Em cada casa vive uma pessoa de nacionalidade
Linguagens de Programação Princípios e Paradigmas
Copyright The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Linguagens e Ambientes de Programação 2002-2003 Linguagens de Programação Princípios e Paradigmas Gladys Castillo
Demonstrações. Terminologia Métodos
Demonstrações Terminologia Métodos Técnicas de Demonstração Uma demonstração é um argumento válido que estabelece a verdade de uma sentença matemática. Técnicas de Demonstração Demonstrações servem para:
Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Linguagem de programação Linguagem de Programação Linguagem de máquina http://www.assemblyprogressivo.net/p/curso.html Linguagem de
5. Expressões aritméticas
5. Expressões aritméticas 5.1. Conceito de Expressão O conceito de expressão em termos computacionais está intimamente ligado ao conceito de expressão (ou fórmula) matemática, onde um conjunto de variáveis
Introdução ao Curso. Área de Teoria DCC/UFMG 2019/01. Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG /01 1 / 22
Introdução ao Curso Área de Teoria DCC/UFMG Introdução à Lógica Computacional 2019/01 Introdução à Lógica Computacional Introdução ao Curso Área de Teoria DCC/UFMG - 2019/01 1 / 22 Introdução: O que é
Capítulo 7. Expressões e Sentenças de Atribuição
Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário
Lógica Proposicional. LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08. c Inês Lynce c Luísa Coheur
Capítulo 2 Lógica Proposicional Lógica para Programação LEIC - Tagus Park 2 o Semestre, Ano Lectivo 2007/08 c Inês Lynce c Luísa Coheur Programa Apresentação Conceitos Básicos Lógica Proposicional ou Cálculo
Lógica Formal. Matemática Discreta. Prof Marcelo Maraschin de Souza
Lógica Formal Matemática Discreta Prof Marcelo Maraschin de Souza Implicação As proposições podem ser combinadas na forma se proposição 1, então proposição 2 Essa proposição composta é denotada por Seja
Lógica proposicional
Lógica proposicional Sintaxe Proposição: afirmação que pode ser verdadeira ou falsa Proposições podem ser expressas como fórmulas Fórmulas são construídas a partir de símbolos: De verdade: true (verdadeiro),
Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.
Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem
Recursividade e listas
Recursividade e listas Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Princípio de recursividade Recursividade é um princípio que permite
Fundamentos da Computação 1. Aula 03
Fundamentos da Computação 1 Aula 03 Conteúdo Introdução à Lógica. Definição da Sintaxe. Traduzindo Sentenças. Introdução à Lógica O que é lógica? Introdução à Lógica O que é lógica? Lógica é a análise
Prolog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando.
Prolog MATA56 - Paradigmas de Linguagens de Programação, UFBA, 2016.1. Prof. Rodrigo Rocha ([email protected]) Baseada na lógica de primeira ordem (lógica de predicados) Concebida na década de 1970
Programação I Apresentação
Programação I Apresentação Prof. Carlos Alberto [email protected] [email protected] Referências JUNIOR, D. P.; NAKAMITI, G. S.; ENGELBRECHT, A. de M. E.; BIANCHI, F. Algoritmos e Programação
JOÃO NUNES de SOUZA. LÓGICA para CIÊNCIA da COMPUTAÇÃO. Uma introdução concisa
JOÃO NUNES de SOUZA LÓGICA para CIÊNCIA da COMPUTAÇÃO Uma introdução concisa 2 de junho de 2009 1 A linguagem da Lógica Proposicional Errata Caso você encontre algum erro nesse capítulo ou tenha algum
Lógica Formal. Matemática Discreta. Prof. Vilson Heck Junior
Lógica Formal Matemática Discreta Prof. Vilson Heck Junior [email protected] Objetivos Utilizar símbolos da lógica proposicional; Encontrar o valor lógico de uma expressão em lógica proposicional;
A linguagem da Lógica de Predicados. (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto
A linguagem da Lógica de Predicados (Capítulo 8) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Contextualização 2. Definições 3. Exemplos 4. Lista 3 O que não é
Lógica. Professor Mauro Cesar Scheer
Lógica Professor Mauro Cesar Scheer Objetivos Reconhecer e manipular com os símbolos formais que são usados no Cálculo Proposicional (CPC) e Cálculo de Predicados (CP). Determinar o valor de verdade de
BUSCA DE SOLUÇÕES EM PROLOG
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BUSCA DE SOLUÇÕES EM PROLOG Resolução em PROLOG: Unificação e substituição 1 UNIFICAÇÃO EM PROLOG HISTÓRICO 2 HISTÓRIA A PARTIR DE 1950 1958 forma clausal:
Aula 6: Dedução Natural
Lógica para Computação Primeiro Semestre, 2015 DAINF-UTFPR Aula 6: Dedução Natural Prof. Ricardo Dutra da Silva Em busca de uma forma de dedução mais próxima do que uma pessoa costuma fazer, foi criado
Algoritmos e Programação - Engenharia da Computação -
Algoritmos e Programação - Engenharia da Computação - Prof. Alessandro Zimmer Pseudo Linguagem de Programação - PORTUGOL - Pseudo-Linguagem Linguagem de Programação? Notação formal servindo para: - Expressar
Afirmações Matemáticas
Afirmações Matemáticas Na aula passada, vimos que o objetivo desta disciplina é estudar estruturas matemáticas, afirmações sobre elas e como provar essas afirmações. Já falamos das estruturas principais,
MD Lógica de Proposições Quantificadas Cálculo de Predicados 1
Lógica de Proposições Quantificadas Cálculo de Predicados Antonio Alfredo Ferreira Loureiro [email protected] http://www.dcc.ufmg.br/~loureiro MD Lógica de Proposições Quantificadas Cálculo de Predicados
Grupo de Usuários Java do Noroeste Paulista. Tópicos Avançados em Java
Grupo de Usuários Java do Noroeste Paulista Tópicos Avançados em Java Aula 1 Objetivos Programa exemplo; Programação Orientada a Objetos. Conceitos Orientada a Objetos Mundo real Conceitos Orientada a
Lógica Proposicional (Consequência lógica / Dedução formal)
Faculdade de Tecnologia Senac Pelotas Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Matemática Aplicada Prof. Edécio Fernando Iepsen Lógica Proposicional (Consequência lógica /
Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO. Professor: Rosalvo Ferreira de Oliveira Neto
Dedução Natural LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Dedução Natural 3. Lista Um dos objetivos principais da lógica é o estudo de estruturas
Conhecimento e Raciocínio Lógica Proposicional
Conhecimento e Raciocínio Lógica Proposicional Agente Baseado em Conhecimento ou Sistema Baseado em Conhecimento Representa conhecimento sobre o mundo em uma linguagem formal (KB) Raciocina sobre o mundo
Introdução à Programação Aula 03. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação
Aula 03 Prof. Max Santana Rolemberg Farias [email protected] Colegiado de Engenharia de Computação Linguagens de Programação A primeira linguagem de programação foi criada por Ada Lovelace. Amiga
Aula 1: Introdução ao curso
Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer [email protected] Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos
Expressões e sentença de atribuição
Expressões e sentença de atribuição Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual
Sistemas de Banco de Dados
Sistemas de Banco de Dados Fundamentos em Bancos de Dados Relacionais Wladmir Cardoso Brandão www.wladmirbrandao.com Departamento de Ciência da Computação (DCC) Instituto de Ciências Exatas e Informática
PROGRAMAÇÃO COMPUTACIONAL I
Algoritmos Devemos ter consciência que um computador não é dotado da capacidade de tomar decisões com base em premissas. Portanto, não podemos instruir um computador com sentenças dúbias. Os métodos em
PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA
PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA SUMÁRIO Introdução Conceitos básicos Formato básico Tipos primitivos Variáveis Constantes Operadores Operações
