Fundamentos e prática de Prolog
|
|
|
- Milton Martini Castilho
- 8 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).
Programação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel
Programação Lógica Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel [email protected] Faculdade de Computação Universidade Federal de Uberlândia 7 de outubro de 2015 Paulo H. R. Gabriel (FACOM/UFU)
01. [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
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
Soluçõ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
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
Oficina 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: [email protected] Blog: http://profperini.com Formação
Algoritmos 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
Vetores. 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,
Algoritmos. 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
2.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
Controle 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
Conceitos 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
Vetores. 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,
Aula 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,
Java 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
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/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
ALGORITMOS 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
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:
Relaçõ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
2.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
BCC242. 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
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
Processamento 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
Oficina 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
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
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
01/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 [email protected] Tipos de dados Numéricos Alfanuméricos Lógicos Tipos de dados Os tipos de dados primitivos ou básicos são
Conferê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
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
Sumá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...............................
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/26 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Oficina 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
Exemplo:- 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
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,
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.
Programaçã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
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
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
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
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/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos
Primeira 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
Layout. 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
FUNÇÃ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
CURSO 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
Curso: 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
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
Professor Jefferson Chaves Jefferson de Oliveira Chaves - IFC Araquari
Professor Jefferson Chaves [email protected] Tipos de dados; Operadores; Arrays; Por vezes, será importante saber o tipo de dados; Quando dissemos ao usuário, digite sua idade, por
Probabilidade 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
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
Ló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
Ló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:
08/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,
Tipos 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
2 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
Linguagem 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
Linguagens 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
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
Sistemas 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
Aula 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
MCG114 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,
Matemá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
Ló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
Fundamentos 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
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 é
A 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
Simbolizaçã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................................
UNIVERSIDADE 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
Linguagem 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
Paradigmas. 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,
