Fundamentos e prática de Prolog
|
|
- Milton Martini Castilho
- 6 Há anos
- Visualizações:
Transcrição
1 Disciplina: Lógica Aplicada à Computação Nome: Matrícula: 1. Considere a seguinte base de conhecimentos Prolog: filho(paulo,pedro). % "Paulo é filho de Pedro" filho(paulo,marcela). filho(pedro,josé). filho(pedro,isabel). filho(josé,luiz). filho(josé,ana). filho(tiago,luiz). filho(tiago,gabriela). filha(lúcia,ana). % "Lúcia é filha de Ana" filha(lúcia,luiz). filha(carol,luiz). filha(carol,fernanda). filha(isabel,jo~ao). filha(isabel,fernanda). filha(maria,luiz). filha(maria,gabriela). sexo(marcela, feminino ). % "Marcela é do sexo feminino" sexo(ana, feminino ). sexo(fernanda, feminino ). sexo(gabriela, feminino ). sexo(luiz, masculino ). sexo(jo~ao, masculino ). Estenda esta base de conhecimentos acrescentando regras para os predicados irm~aos/2 (filhos de pelo menos um progenitor comum, qualquer que seja o sexo), tiaavó/2 (irmã de um dos avós) e trifamília/3 (dois homens e uma mulher, onde a mulher tem filhos com cada um dos homens, ou duas mulheres e um homem, onde o homem tem filhos com cada uma das mulheres). Escreva sempre um comentário com o significado de cada novo predicado introduzido. Nota. Você pode estender os predicados primitivos da base de conhecimentos acima, caso necessite, mas somente pela adição de novas regras, nunca de novos fatos. Você também pode utilizar predicados auxiliares para facilitar a tarefa acima mas não poderá se referir a eles nas tarefas abaixo.
2 Soluções. % regras para a relaç~ao irm~aos/2 % (filhos, de qualquer sexo, com pelo menos um progenitor em comum) % predicado auxiliar, que será usado aqui e novamente logo adiante: filhoa(x,y) :- filho(x,y). % "X é filho ou filha de Y" filhoa(x,y) :- filha(x,y). % definiç~ao principal irm~aos(x,y) :- filhoa(x,z), % "X é irm~ao ou irm~a de Y" filhoa(y,z), X \== Y. % para usar tiaavó/2 (irm~a de um dos avós) de forma a cobrir % toda a base de conhecimento, devemos antes de mais nada estender % o predicado primitivo sexo/2 pela adiç~ao de novas regras: sexo(x, masculino ) :- filho(x,_). %"X é do sexo masculino" sexo(x, feminino ) :- filha(x,_). % um predicado auxiliar que pode ser útil adiante é o seguinte: netoa(u,v) :- filhoa(u,z), % "U é neto ou neta de V" filhoa(z,v). % definiç~ao principal tiaavó(x,y) :- netoa(y,w), % "X é tia-avó de Y" irm~aos(w,x), sexo(x, feminino ). % regras para trifamília/3 % (dois homens e uma mulher, onde a mulher tem filhos com cada um dos homens, % ou duas mulheres e um homem, onde o homem tem filhos com cada uma das mulheres) % predicado auxiliar: filhocasal(t,u,v) :- filhoa(t,u), "T é filho ou filha da m~ae U com o pai V" filhoa(t,v), sexo(u, feminino ), sexo(v, masculino ). % definiç~ao principal trifamília(x,y,z) :- filhocasal(_,z,x), "X e Y t^em filhos em comum com Z" filhocasal(_,z,y), X \== Y. trifamília(x,y,z) :- filhocasal(_,x,z), filhocasal(_,y,z), X \== Y. Prof. João Marcos 2
3 Em seguida, formule as seguintes consultas à base de conhecimentos, usando somente os predicados supra-mencionados de forma explícita (sejam eles primitivos, definidos ou estendidos ao longo da solução da tarefa anterior): (a) Quais são os filhos de Luiz ou de João que não são filhos de Fernanda? (b) Quem é a avó paterna de Paulo? (c) Paulo tem tias-avós por parte de pai? Em caso afirmativo, quem são elas? (d) Quais são os irmãos dos irmãos de Tiago que são eles próprios irmãos de Tiago? Apresente todas as respostas relevantes, na mesma ordem mas sem repetição, que o compilador Prolog daria a cada uma destas consultas. Soluções. (a)?- (filho(x,luiz);filha(x,luiz);filho(x,jo~ao);filha(x,jo~ao)), not(filho(x,fernanda);filha(x,fernanda)). X = josé ; X = tiago ; X = lúcia ; X = maria ; false. Nota: observe que puramente a partir da sintaxe não temos por que concluir que Paulo seria do sexo masculino e que não poderia portanto ser filha de ninguém de fato, tudo que sabemos sobre o significado da string filha é o que a base de conhecimentos nos informa; a interpretação pretendida desta string como um predicado é sempre algo extra-linguístico, e alheio assim ao campo de conhecimento do compilador Prolog. (b)?- (filho(paulo,x) ; filha(paulo,x)), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). X = pedro Y = isabel ; false. Nota: a resposta procurada é o termo atribuído a Y. (c)?- tiaavó(_,paulo). true.?- setof(x,tiaavó(x,paulo),z). Z = [carol, lúcia, maria]. (d)?- irm~aos(x,tiago),irm~aos(x,y),irm~aos(y,tiago). Y = lúcia ; Y = carol ; Y = maria ; Y = josé ; false. Nota: fica excluída assim Isabel, que é irmã de Carol, uma das irmãs de Tiago... Com efeito, a relação de irmandade não é transitiva. Prof. João Marcos 3
4 No caso da consulta (b) acima, apresente em detalhe o procedimento de resolução usado pelo compilador na obtenção da resposta. Solução. A consulta que fizemos foi a seguinte: :- (filho(paulo,x);filha(paulo,x)), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). Note que esta consulta inicial, que contém uma disjunção, é equivalente em Prolog às duas consultas seguintes, nesta ordem: :- filho(paulo,x), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). :- filha(paulo,x), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). Mostraremos assim o processo de resolução para estas duas cláusulas. Começamos o processo percorrendo a base de conhecimentos da esquerda para a direita e de cima para baixo, buscando alguma regra (ou fato) cuja cabeça contenha uma expressão que unifique com o literal filho(paulo,x). Daí, segue o [Passo 1]: :- filho(paulo,x), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). filho(paulo,pedro). σ 1 = [X pedro] :- filho(paulo,pedro), sexo(pedro, masculino ), filho(pedro,y), sexo(y, feminino ). filho(paulo,pedro). :- sexo(pedro, masculino ), filho(pedro,y), sexo(y, feminino ). Em seguida, buscaremos na base de conhecimentos alguma regra (ou fato) cuja cabeça unifique com o literal sexo(pedro, masculino ). A tarefa terminaria neste ponto se não tivéssemos estendido o predicado primitivo sexo de modo a obter respostas completas para o predicado tiaavó/2, na primeira tarefa acima. Nestas condições, temos então o seguinte [Passo 1.1]: :- sexo(pedro, masculino ), filho(pedro,y), sexo(y, feminino ). sexo(x1, masculino ) :- filho(x1, ). σ 1.1 = [X1 pedro] :- sexo(pedro, masculino ), filho(pedro,y), sexo(y, feminino ). sexo(pedro, masculino ) :- filho(pedro, ). :- filho(pedro,y), sexo(y, feminino ), filho(pedro, ). Continuando, no [Passo 1.1.1]: :- filho(pedro,y), sexo(y, feminino ), filho(pedro, ). filho(pedro,josé). σ = [Y josé] :- filho(pedro,josé), sexo(josé, feminino ), filho(pedro, ). filho(pedro,josé). :- sexo(josé, feminino ), filho(pedro, ). Prof. João Marcos 4
5 Seguimos no [Passo ]: :- sexo(josé, feminino ), filho(pedro, ). sexo(x2, feminino ) :- filha(x2, ). σ = [X2 josé] :- sexo(josé, feminino ), filho(pedro, ). sexo(josé, feminino ) :- filha(josé, ). :- filho(pedro, ), filha(josé, ). :- filho(pedro, ), filha(josé, ). filho(pedro,josé). :- filha(josé, ). :- filha(josé, ). fail Os passos seguintes, e , envolvem variáveis anônimas, para as quais não há unificação envolvida, mas apenas uma resposta booleana determinística do Prolog: Como a avaliação da consulta acima não foi bem sucedida em eliminar todos os literais, dadas as regras e unificações escolhidas, força-se um backtracking até o último ponto em que houve uma escolha, a saber, a unificação σ Como não há nova opção de escolha, neste ponto, o backtracking continua até o [Passo ], e aqui também não há nova opção de escolha. Backtrackings até a unificação σ e em seguida ao correspondente [Passo 1.1.1] que nos dá finalmente uma opção, que chamaremos de [Passo 1.1.2]: :- filho(pedro,y), sexo(y, feminino ), filho(pedro, ). filho(pedro,isabel). σ = [Y isabel] :- filho(pedro,isabel), sexo(isabel, feminino ), filho(pedro, ). filho(pedro,isabel). :- sexo(isabel, feminino ), filho(pedro, ). Continuamos agora pelo [Passo ]: :- sexo(isabel, feminino ), filho(pedro, ). sexo(x3, feminino ) :- filha(x3, ). σ = [X3 isabel] :- sexo(isabel, feminino ), filho(pedro, ). sexo(isabel, feminino ) :- filha(isabel, ). filho(pedro, ), filha(isabel, ). Daí seguem, deterministicamente, de forma abreviada, os seguintes passos e : filho(pedro, ), filha(isabel, ). filho(pedro,isabel). filha(isabel, ). filha(isabel,jo~ao). Prof. João Marcos 5
6 Atingimos assim por fim à cláusula vazia. Conclusão do [Passo ], com relação à consulta original: X = pedro Y = isabel Forçando agora um backtracking para obter outras eventuais respostas à consulta original, retornamos sucessivamente à unificação σ , à regra escolhida no [Passo ], à unificação σ 1.1.2, ao literal escolhido no [Passo 1.1.2], à unificação σ 1.1, à regra escolhida no [Passo 1.1], à unificação σ 1 e ao literal escolhido no [Passo 1]. Como todos estes backtrackings falham, acabamos retornando portanto à segunda regra de nossa consulta original, naquele que poderíamos denominar [Passo 2]: :- filha(paulo,x), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). :- filha(paulo,x), sexo(x, masculino ), filho(x,y), sexo(y, feminino ). fail A nova avaliação não é bem-sucedida pois não há expressão que unifique com o literal filha(paulo,x). Logo, não há essencialmente novas respostas à consulta original (a rigor, o Prolog apresentará outras vezes a mesma resposta anterior, antes de falhar) senão aquela já exibida ao fim do [Passo ]. Prof. João Marcos 6
Fundamentos e prática de Prolog
Disciplina: Lógica Aplicada à Computação Nome: Matrícula: 1. Considere a seguinte base de conhecimentos Prolog: pai(josé,ana). % "José é pai de Ana" pai(josé,carlos). pai(felipe,fernanda). pai(jo~ao,pedro).
Leia maisProgramação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel
Programação Lógica Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 7 de outubro de 2015 Paulo H. R. Gabriel (FACOM/UFU)
Leia mais01. [Sebesta, 2000] Quais são os três principais usos da lógica simbólica na lógica formal?
01. [Sebesta, 2000] Quais são os três principais usos da lógica simbólica na lógica formal? 02. [Sebesta, 2000] Quais são as duas partes de um termo composto? 03. [Sebesta, 2000] Qual é a forma geral de
Leia maisProlog. 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 (rodrigo@dcc.ufba.br) Baseada na lógica de primeira ordem (lógica de predicados) Concebida na década de 1970
Leia maisSoluções dos exercícios propostos
Indução e Recursão Soluções dos exercícios propostos 1 Iremos demonstrar que a expressão proposta a seguir é correta: i = 0 + + + + + (n 1) = n(n 1), para n > 0 0 i
Leia maisProgramaçã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
Leia maisA linguagem Prolog. Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos.
A linguagem Prolog Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos. Um termo ou é uma constante, ou uma variável ou um termo composto. As constantes incluem
Leia maisOficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini
Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini Apresentação do Professor Professor: José Carlos Perini E-mail: jose.perini@metrocamp.edu.br Blog: http://profperini.com Formação
Leia maisAlgoritmos e Técnicas de programação. Professora: Luciana Faria
Algoritmos e Técnicas de programação Professora: Luciana Faria Estruturas básicas da construção de algoritmos Controle de fluxo condicionais (se, se-senao e escolha) Continuando Comandos Compostos é um
Leia maisPROGRAMAÇÃO EM LÓGICA
PROGRAMAÇÃO EM LÓGICA CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte II Prof. Sergio Ribeiro Adaptado do material de: Prof José Augusto Universidade
Leia maisVetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli
Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,
Leia maisLinguagens Lógicas. Aluno: Victor Rocha
Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação
Leia maisAlgoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Leia maisIntrodução à Computação Engenharia Civil
Conceitos Básicos Excel Introdução à Computação Engenharia Civil Uma referência básica Material didático disponibilizado na página da disciplina. Elaborado pelo prof. Edmar André Bellorini Excel O Microsoft
Leia mais2.3.4 Algoritmos de SAT
114 CAÍTULO 2. LÓGICA ROOSICIONAL 2.3.4 Algoritmos de SAT Os algoritmos de SAT (do inglês satisfiability ) têm o objectivo de determinar se uma dada fbf α é satisfazível ou não; em caso afirmativo, devolvem
Leia maisControle de Retrocesso. Programação Lógica. Controle de Retrocesso. Controle de Retrocesso
Programação Lógica Prolog: controle de retrocesso, predicado especial corte (!), verificação de tipos, exemplos O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para
Leia maisConceitos de Linguagem de Programação - 2
Conceitos de Linguagem de Programação - 2 Arthur Jovita Guerra Thalles Santos Silva Universidade Estadual de Santa Cruz - Ilhéus, BA 1 de novembro de 2011 1 Revisão Natureza das linguagens de Programação
Leia maisVetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli
Vetores De modo geral, em linguagem de programação, vetores ou arrays são estruturas de dados que permitem que uma mesma variável possa armazenar mais de um valor; Em Java, vetores são coleções de dados,
Leia maisAula 12: Lógica de Predicados
Lógica para Computação Primeiro Semestre, 2015 Aula 12: Lógica de Predicados DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos estender a lógica proposicional para torná-la mais expressiva. Na lógica proposicional,
Leia maisJava e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }
Java e sua Sintaxe Java e sua Sintaxe Estrutura mínima de um programa em Java: public class Exemplo { } Como todo programa deve ter um início, convenciona-se que a primeira ação de um programa é a execução
Leia maisINE5403 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/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisVALEC FEMPERJ
VALEC FEMPERJ - 2012 01. Observe a sequência: O próximo termo é: (A) 99 (B) 0 (C) 1 (D) 2 (E) 3 121, 119, 116, 112, 7,... diminuiu 2 unidades 121 diminuiu 3 unidades 119 119 116 diminuiu 4 unidades 116
Leia maisALGORITMOS E ESTRUTURA DE DADOS
ALGORITMOS E ESTRUTURA DE DADOS Algoritmos Tipos de Dados Prof. André Peixoto - Todo o trabalho realizado por um computador é baseado na manipulação dos dados/informações contidas em sua memória. Podemos
Leia maisDesenvolvimento de Aplicações Desktop
Desenvolvimento de Aplicações Desktop Operadores Lógicos; Estruturas de Controle (Decisão) Professor: Charles Leite Fluxo de Controle A ordem com que as instruções são executadas em um programa é chamada
Leia maisBUSCA 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:
Leia maisExpressões Condicionais
Programação Funcional Capítulo 4 Expressões Condicionais José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/38 1 Combinando funções 2 Expressão condicional 3
Leia maisRelações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5)
Relações semânticas entre os conectivos da Lógica Proposicional(Capítulo 5) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Conjunto de conectivos completo 2. na
Leia mais2.5 FORMAS NORMAIS. Forma normal da negação
Forma normal da negação 2.5 FORMAS NORMAIS Newton José Vieira 05 de agosto de 2007 Definições preliminares: literal: variável proposicional (literal positivo) ou negação de variável proposicional (literal
Leia mais[B&A] Computação na Lógica de Predicados
[B&A] Computação na Lógica de Predicados Soluções dos Exercícios 1. Transforme as seguintes fbf s para a forma normal prenex, elimine os quantificadores e transforme-as para a forma normal clausal. (a)
Leia mais1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA. Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C. Página 1
1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 E-books PCNA Vol. 1 TECNOLOGIA ELEMENTAR CAPÍTULO 3 APRESENTANDO A LINGUAGEM C Página 1 2 TECNOLOGIA ELEMENTAR CAPÍTULO 3 SUMÁRIO Apresentação -----------------------------------------------------------
Leia maisProblemas NP-Completos Bolas Mágicas
NP-Completo 1 Problemas NP-Completos Bolas Mágicas Já vimos antes alguns problemas NP-completos. Um deles é o jogo de cartões perfurados. Quem encontrar uma solução polinomial para o problema geral desse
Leia maisLógica e Programação - Folha de trabalho n. 7
Os exercícios 1, 2, 5, 6, 7, 8 e 12 são de Alguns Problemas de Prolog, Miguel Filgueiras, Pedro Ribeiro DCC-FCUP 2004-2006. Todos os exercícios são para ser resolvidos em linguagem Prolog. 1 Listas 1 Define
Leia maisBCC242. Auômato Finito Determinístico
BCC242 Auômato Finito Determinístico Máquinas de Estados Finitos As máquinas de estados finitos são máquinas abstratas que capturam partes essenciais de algumas máquinas concretas. Tipos Tradutores máquinas
Leia maisLógica para Computação
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br Resolução e PROLOG Passos para obter a forma clausal de uma fbf: 1. Obter a forma normal
Leia maisInteligê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
Leia maisUma linguagem de especificação formal simplificada
Uma linguagem de especificação formal simplificada Adolfo Neto Departamento Acadêmico de Informática (DAINF) Universidade Tecnológica Federal do Paraná (UTFPR) Versão 1.1 15 de junho de 2010 Sumário 1
Leia maisProcessamento da Informação Teoria. Desvio Condicional
Processamento da Informação Teoria Desvio Condicional Semana 03 Prof. Jesús P. Mena-Chalco 08/05/2013 Operador módulo O operador módulo trabalha com inteiros e produz o resto quando o primeiro operando
Leia maisOficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
Leia maisElisabete 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
Leia maisLó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
Leia maisUMA INTRODUÇÃO A PROLOG
Introdução UMA INTRODUÇÃO A PROLOG Newton José Vieira 18 de novembro de 2011 Programação em lógica: O ideal: especificação executável. O problema: explosão combinatória. Prolog impõe dois tipos de restrições:
Leia maisUTILIZANDO MORFOL PARA ANÁLISE DE CENAS ESPECIFICAÇÃO E IMPLEMENTAÇÃO
UTILIZANDO MORFOL PARA ANÁLISE DE CENAS ESPECIFICAÇÃO E IMPLEMENTAÇÃO Aluno: Caio Pimentel Seguin Orientador: Edward Hermann Haeusler Introdução No projeto MORFOL[1] foi desenvolvida a ferramenta MORFOL
Leia mais01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.
Engenharia de Controle e Automação Programação I Prof. Ricardo Sobjak ricardo.sobjak@ifsc.edu.br Tipos de dados Numéricos Alfanuméricos Lógicos Tipos de dados Os tipos de dados primitivos ou básicos são
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/lp Expressões condicionais Scala tem uma expressão if-else para expressar escolha entre alternativas que se parece muito
Leia maisConferência Árvores de resolução SLD
Inteligência Artificial Conferência Árvores de resolução SLD O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Construir uma árvore de resolução SLD a partir de um objetivo do PROLOG, aplicando o
Leia maisLinguagens de Programação
Linguagens de Programação Fabio Mascarenhas - 2015.2 http://www.dcc.ufrj.br/~fabiom/lp Introdução Quais das expressões abaixo têm o mesmo significado? (vector-ref a 42) Introdução Quais das expressões
Leia maisCENTRO 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
Leia maisInteligência Artificial Apontamentos para as aulas Luís Miguel Botelho
Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho Departamento de Ciências e Tecnologias da Informação ISCTE-IUL - Instituto Universitário de Lisboa Dezembro de 2016 1 Notas sobre
Leia maisSumário. 2 Índice Remissivo 12
i Sumário 1 Definições Básicas 1 1.1 Fundamentos de Probabilidade............................. 1 1.2 Noções de Probabilidade................................ 3 1.3 Espaços Amostrais Finitos...............................
Leia maisINE5403 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/26 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Leia maisIntrodução à Ciência da Computação (ICC) PROVA P2 Sexta-feira 1 de Junho de 2001
Introdução à Ciência da Computação (ICC) 2001.1 PROVA P2 Sexta-feira 1 de Junho de 2001 Nome do Aluno: Matrícula PUC: Questões P2 Revisão 1 (1.5) 2 (1.5) 3a (1.0) 3b (1.0) 3c (1.0) 3d (1.0) 4 (2.0) Prova
Leia maisOficina de Python Prof. Me. José Carlos Perini
Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação
Leia maisExemplo:- CONTROLE DE RETROCESSO. Construir um programa Prolog para implementar a função:
CONTROLE DE RETROCESSO O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para uma dada consulta são tentadas exaustivamente. No Prolog, o retrocesso é automático. É possível
Leia maisAfirmaçõ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,
Leia mais2. 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.
Leia maisIME, UFF 4 de novembro de 2013
Lógica IME, UFF 4 de novembro de 2013 Sumário e ferramentas Considere o seguinte texto, da aritmética dos números naturais. Teorema: Todo número inteiro positivo maior que 1 tem um fator primo. Prova:
Leia maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisMé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
Leia maisLinguagens de Programação Aula 15
Linguagens de Programação Aula 15 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell 2 Na aula de hoje Paradigma Lógico Linguagem Prolog (PROgrammation en LOGique) 3 Introdução
Leia maisSCC 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
Leia maisINE5403 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/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Leia maisPrimeira Prova de Linguagens de Programação - DCC024B -
Primeira Prova de Linguagens de Programação - DCC024B - Ciência da Computação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem
Leia maisFundamentos. Paradigma de Programação Lógico. Marco A L Barbosa
Fundamentos Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Visão mais detalhada
Leia maisLayout. Módulos. Normalmente, cada módulo está armazenado num ficheiro com o mesmo nome do módulo. Exemplo.hs
Layout Ao contrário de quase todas as linguagens de programação, o Haskell não necessita de marcas para delimitar as diversas declarações que constituem um programa. Em Haskell a identação do texto (isto
Leia maisFUNÇÃO SE. = SE ([condição]; [valor se verdadeiro]; [valor se falso]). A condição pode ser efetuada usando sinais matemáticos comparativos:
FUNÇÃO SE A função SE() é uma função especial que determina o valor da célula de acordo com um teste-lógico. Ela sempre contém uma condição, que definirá o valor da célula. Se a condição for verdadeira
Leia maisBiblioteca de auxílio ao uso de elementos gráficos
UFU Universidade Federal de Uberlândia Faculdade de Computação Biblioteca de auxílio ao uso de elementos gráficos Caio de Oliveira Campos Orientador: André Ricardo Backes Uberlândia Março de 2014 Introdução
Leia maisCURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO
CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO Lógica de Programação Lógica de programação é a técnica de encadear pensamentos (instruções) para atingir determinado objetivo. Instruções Instruções são regras
Leia maisCurso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos
Curso: Ciência da Computação Turma: 6ª Série Aula 4 Autômatos Finitos Autômatos Finitos Não Determinísticos Um autômato finito não-determinístico (AFND, ou NFA do inglês) tem o poder de estar em vários
Leia maisSCC 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
Leia maisProfessor Jefferson Chaves Jefferson de Oliveira Chaves - IFC Araquari
Professor Jefferson Chaves Jefferson.chaves@ifc-araquari.edu.br Tipos de dados; Operadores; Arrays; Por vezes, será importante saber o tipo de dados; Quando dissemos ao usuário, digite sua idade, por
Leia maisProbabilidade Condicional
18 Probabilidade Condicional Sumário 18.1 Introdução....................... 2 18.2 Probabilidade Condicional............... 2 1 Unidade 18 Introdução 18.1 Introdução Nessa unidade, é apresentada mais uma
Leia maisProgramaçã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
Leia maisLógica Computacional
Aula Teórica 22: Departamento de Informática 16 de Maio de 2011 Introdução Revisão do procedimento Exemplo em Primeira Ordem Considere-se o seguinte conjunto de cláusulas, assumindo as variáveis universalmente
Leia maisLógica Computacional
Lógica Computacional Aplicações da Lógica Verificação de Programas, Bases de Dados, Sistemas inteligentes Programação em Lógica Exemplos 27 Novembro 2013 Lógica Computacional 1 - Base de Conhecimentos:
Leia maisConceito de Linguagens de Programação - 1
Conceito de Linguagens de Programação - 1 Arthur Jovita, Thalles Silva November 1, 2011 1 Natureza das linguagens de Programação Linguagens Estáticas e Dinâmicas 2 Tipificação 3 4 Linguagens Estáticas
Leia mais08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,
Leia maisTipos Algébricos. Programação Funcional. Capítulo 11. José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto
Programação Funcional Capítulo 11 Tipos Algébricos José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2012.1 1/33 1 Tipos Algébricos 2/33 Tópicos 1 Tipos Algébricos 3/33
Leia mais2 AULA. Conectivos e Quantificadores. lógicas. LIVRO. META: Introduzir os conectivos e quantificadores
1 LIVRO Conectivos e Quantificadores Lógicos META: Introduzir os conectivos e quantificadores lógicos. OBJETIVOS: Ao fim da aula os alunos deverão ser capazes de: Compreender a semântica dos conectivos
Leia maisLinguagem Lógica Prolog
Linguagem Lógica Prolog Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Conteúdo O que é diferente na Programação Lógica Cláusulas, Fatos, Regras e Predicado Objetos
Leia maisProf. A. G. Silva. 31 de agosto de Prof. A. G. Silva Programação em Lógica 31 de agosto de / 1
Programação em Lógica Prof. A. G. Silva 31 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 31 de agosto de 2017 1 / 1 Listas (revisão) Elementos separados por vírgulas entre colchetes: [a, b,
Leia maisLinguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)
Linguagens Formais e Autômatos Autômatos Finitos Determinísticos (AFD) Cristiano Lehrer, M.Sc. Linguagens Regulares A teoria da computação começa com uma pergunta: O que é um computador? É, talvez, uma
Leia maisAula 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
Leia maisLinguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés
Linguagens Lógicas Alunos: Josiane Novais Cláudio Moisés Declarativos em vez de baseados em procedimentos Sintaxe diferente das linguagens imperativas e funcionais. Semântica é pouco semelhante a linguagem
Leia maisSistemas de Numeração. Tiago Alves de Oliveira
Sistemas de Numeração Tiago Alves de Oliveira Sumário Sistemas Numéricos Binário Octal Hexadecimal Representação Interna de Caracteres Sistemas Numéricos Sistemas numéricos Sistemas de notação usados para
Leia maisAula 7: Dedução Natural 2
Lógica para Computação Segundo Semestre, 2014 DAINF-UTFPR Aula 7: Dedução Natural 2 Prof. Ricardo Dutra da Silva -introdução Dada uma premissa A, nós podemos concluir A B para qualquer fórmula B. A justificativa
Leia maisMCG114 Programação de Computadores I. Comandos de condição 3/26/18. Comando if. Comando if. Até agora... Comandos de Condição! Comandos de Condição
3/26/18 MCG114 Programação de Computadores I Profa. Comandos de condição 20:32:09 1 2 Até agora... Todos os programas têm fluxo de execução único As instruções que serão executadas são sempre as mesmas,
Leia maisMaterial Teórico - Módulo Cônicas. Elipses. Terceiro Ano do Ensino Médio
Material Teórico - Módulo Cônicas Elipses Terceiro Ano do Ensino Médio Autor: Prof. Fabrício Siqueira Benevides Revisor: Prof. Antonio Caminha M. Neto 1 Introdução Conforme mencionamos na primeira aula
Leia maisMatemática Discreta. Fundamentos e Conceitos da Teoria dos Números. Universidade do Estado de Mato Grosso. 4 de setembro de 2017
Matemática Discreta Fundamentos e Conceitos da Teoria dos Números Professora Dr. a Donizete Ritter Universidade do Estado de Mato Grosso 4 de setembro de 2017 Ritter, D. (UNEMAT) Matemática Discreta 4
Leia maisLógica Computacional. Normalização e Formas Normais. Literais, Cláusulas e Monómios; Formas Normais NNF, CNF e DNF. Algoritmos de Conversão
Lógica Computacional Normalização e Formas Normais Literais, Cláusulas e Monómios; Formas Normais NNF, CNF e DNF Algoritmos de Conversão 2 Outubro 2014 Lógica Computacional 1 Forma Normal Negativa - NNF
Leia maisFundamentos de Algoritmos
Fundamentos de Algoritmos CIC/UFRGS 2006/1 Mais em definições auto-referenciáveis foi visto como definir árvores de ascendência, definindo dois campos do tipo nó que indicam os dois pais árvores de descendência
Leia maisINF 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 é
Leia maisAula 4 Estrutura Condicional
Aula 4 Estrutura Condicional Relações e Exp. Booleanas Relações Operadores: >, =,
Leia maisA semântica da Lógica Proposicional(Capítulo 2)
A semântica da Lógica Proposicional(Capítulo 2) LÓGICA APLICADA A COMPUTAÇÃO Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Interpretação 2. Semântica dos conectivos 3. Exemplos 4. Questão desafio
Leia maisSimbolização de Enunciados com Conectivos
Lógica para Ciência da Computação I Lógica Matemática Texto 4 Simbolização de Enunciados com Conectivos Sumário 1 Conectivos: simbolização e sintaxe 2 2 Enunciados componentes 5 2.1 Observações................................
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO Prof.ª Danielle Casillo Diferencia-se das máquinas de Turing e Post principalmente pelo fato de possuir a memória de entrada separada
Leia maisAlgoritmos e Lógica de Programação Introdução e formas de representação
Algoritmos e Lógica de Programação Introdução e formas de representação Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 15 de agosto de
Leia maisLinguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da
istemas de Apoio à Decisão Clínica, 09-1 1 Linguagem com sintaxe e semântica precisas: lógica. Mecanismo de inferência: derivado da sintaxe e da semântica. Importante: distinguir entre os fatos e sua representação
Leia maisProva Final de Linguagens de Programação - DCC024 - Sistemas de Informação
Prova Final de Linguagens de Programação - DCC024 - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia mais