Conferência Tratamento de listas no PROLOG

Tamanho: px
Começar a partir da página:

Download "Conferência Tratamento de listas no PROLOG"

Transcrição

1 Inteligência Artificial Conferência Tratamento de listas no PROLOG O Docente: MSc. Angel Alberto Vazquez Sánchez

2 Objetivo Caracterizar as listas no Prolog, fazendo ênfase em sua definição recursiva.

3 Bibliografía Elaine Rich y Kevin Knight, Inteligencia Artificial. Stuart J. Russell and Peter Norvig, Artificial Intelligence A Modern Approach. Ivan Bratko, PROLOG Programming for Artificial Intelligence.

4 Recordando Feitos, Regras, Pergunta, Árvores SLD. Recursividad: Quando um predicado se demonstra em função de uma chamada a si mesmo, a chamada se converte em um sub-objetivo quase idêntico ao objetivo a cumprir, salvo pelo conjunto de dados sobre o que se aplica. Tem um caso apóie para finalizar as chamadas.

5 Listas Uma lista é uma seqüência de elementos que pode ter qualquer longitude. Na programação prescritiva, os elementos de uma lista L se acessam através de seu índice (ex. L[2]), entretanto no PROLOG não se tem acesso direto aos mesmos, devido à forma de representar a estrutura por parte da linguagem.

6 Representação Terá que ter em conta dois casos: a lista vazia [ ] e a lista não vazia que está formada por duas partes: o primeiro elemento (cabeça) pode ser qualquer tipo de dado o resto da lista (cola) tem que ser uma lista

7 Representação A cabeça e a cola são então combinadas por um functor especial em uma estrutura. A eleição deste functor depende da implementação do PROLOG; aqui se usa a chamada notação de ponto:.(cabeça, Cola)

8 Notação de ponto Exemplo. ( a, [ ] ) Devido a que Côa é uma lista, pode estar vazia ou ter sua própria cabeça e cauda. Do anterior pode ver-se a definição recursiva das listas no PROLOG. Exemplo:.( a,.( b,.( c,.( d, [ ] ) ) ) )

9 Notação [Cabeça Cola] PROLOG brinda uma notação mais clara para as listas: [ a, b, c, d ] Para expresar lo anterior en notación de corchetes para listas, Prolog brinda otra extensión notacional, la barra vertical, la cual separa la cabeza y la cola: [Cabeça Cola]

10 Conclusões Parciais Uma lista é uma estrutura de dados que pode estar vazia ou consistir de duas partes: uma cabeça e uma cauda que tem que ser uma lista. As listas no PROLOG são dirigidas como árvores binárias. Para melhorar a legalidade PROLOG provê uma notação especial para listas [cabeça cola]

11 Representações. Sintaxis Por elementos Cabeça Cola Ponto [a, b, c] [a [b, c] ] [a [b [c] ] ] [a [b [c [] ] ] ].(a, [b, c])

12 Exemplo prog(tomas, ana). prog(tomas, raul). prog(tomas, pedro). prog(maria, ana). prog(maria, felipe). prog(maria, rosa). prog(tomas,[raul,ana,pedro]).

13 Exemplo prog(tomas, ana). prog(tomas, raul). prog(tomas, pedro). prog(maria, ana). prog(maria, felipe). prog(maria, rosa). prog(maria,[ana,felipe,rosa]).

14 Percorrido A diferença da programação imperativa, em que se conta com instruções como for ou while que permitem o percurso iterativo das listas, PROLOG não brinda estes mecanismos. É através da recursividad que a linguagem cobre a falta de procedimentos iterativos.

15 Importante Quando quer percorrer uma lista até o final, é necessário utilizar na condição de parada a lista vazia, pois esta indica que se chegou ao final da lista. Logo se define a regra recursiva, na qual se passa como parâmetro a cauda da lista que se está tratando nesse momento; isto se repetirá até que se cumpra a condição de parada.

16 Percorrido É usual e necessário poder separar a cabeça da cauda de uma lista o que é possível graças à barra vertical?-l = [nora, angel, jose], L = [X P]. L = [nora, angel, jose], X= nora, P = [angel, jose]. À esquerda da barra vertical podemos acessar a qualquer quantidade de elementos na cabeça da lista e depois dela uma lista com o resto dos elementos.?-[nora [angel, jose]] = [nora,angel [jose]] = yes [nora,angel,jose []].

17 Predicado membro El acceso a cualquier elemento de la lista es a través de la cabeza (descabezar). Exemplo membro(x, [X _]). X é membro da lista L, se: Caso base membro(x, [_ L]) :- membro(x, L). Regra recursiva

18 Predicado membro A relação membro é um claro exemplo da flexibilidade das definições no PROLOG já que se pode utilizar para: 1. Checar se um elemento pertence a uma lista. 2. Obter todos os elementos de uma lista por backtracking. 3. Obter listas com um elemento X em primeira, segunda,... n- ésima posição

19 concat([],ys,ys). Predicado concatenar concat([x Xs],Ys,[X Zs]):- concat(xs,ys,zs). Zs é o resultado de concatenar as listas Xs e Ys

20 longitude([],0). Predicado Longitude longitude([_ C],L):-longitude(C,L1), L is L1+1. A longitude L da lista é o resultado de acrescentar 1 à longitude da cola C.

21 member(x,lista). Predicados predefinidos append(lista1,lista2,lista3). length(lista,c).

22 Se quer perguntar 1. Quem não tem filhos? 2. Quem tem um só filho? 3. Quem tem ao menos um filho? 4. Quem tem exatamente dois filhos? 5. Quem tem ao menos dois filhos? 6. Quem é o primeiro filho de Tomás?

23 Estudo Individual Estudar dos epígrafes 3.1 e 3.2 do Bratko, onde vêm resolvidos exemplos bem ilustrativos do trabalho sobre listas como a implementação de investir uma lista e obter as permutações de uma lista.

24 Estudo Individual 1.Programar los predicados que permitan: a) Adicionar un elemento en el principio b) Eliminar el primer elemento de una lista c) Adicionar un elemento al final d) Eliminar el último elemento de una lista e) Eliminar el N-ésimo elemento de una lista

25 Concluções As listas no Prolog são variáveis não atômicas que permitem armazenar em uma ordem seqüencial um grupo de elementos. Existem três formas de representar as listas no PROLOG, a mais utilizada é a de [cabeza cola] pois permite ir descabeçando a lista e realizar o percurso com a cauda. Os predicados já definidos sobre listas são length, member e append.

26 Que respondería Prolog?? - [a, b, c, d] = [a, [b, c, d]].? - [a, b, c, d] = [a [b, c, d]].? - [a, b, c, d] = [a, b, c, d, [ ]].? - [a, b, c, d] = [a, b [c, d]].? - [a, b, c, d] = [a, b, c, [d]].

27 Predicado membro?- membro(pedro, [jose,pedro,tomas]).?- membro(jose,[]).?- membro(x, [jose,pedro,tomas]).

28 ?- concat([1,2],[3,4],v).?- concat([1,2],x,[1,2,3,4]).?- concat(x,y,[1,2,3]). Predicado concatenar

Conferência Predicados de corte e falha

Conferência Predicados de corte e falha Inteligência Artificial Conferência Predicados de corte e falha O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Descreva como funcionam os predicados "!" E "fail". Use os predicados de corte e falha

Leia mais

Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores. MSc. Angel Alberto Vazquez Sánchez

Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores. MSc. Angel Alberto Vazquez Sánchez Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores MSc. Angel Alberto Vazquez Sánchez Objetivo Caracterizar as estruturas como elemento importante da programação no Prolog. 2/41

Leia mais

Conferência Árvores de resolução SLD

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

Leia mais

Sintaxe e Semântica de Programas Prolog

Sintaxe e Semântica de Programas Prolog Sintaxe e Semântica de Programas Prolog Esta aula trata da sintaxe e semântica de conceitos básicos em Prolog relacionados à manipulação de listas Lista é uma das estruturas mais simples em Prolog, muito

Leia mais

Aplicações de Lógica. Lógica como Linguagem de Programação. Mario Benevides UFRJ

Aplicações de Lógica. Lógica como Linguagem de Programação. Mario Benevides UFRJ Aplicações de Lógica Lógica como Linguagem de Programação Mario Benevides UFRJ Listas Lista L=[a,b,c,d,e,f] onde a,b,...,f são elementos da lista. o elemento a é chamado de cabeça e a lista restante [b,c,d,e,f]

Leia mais

UNIDADE ACADÊMICA: Faculdade de

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

Leia mais

Listas em Prolog. Listas

Listas em Prolog. Listas Listas em Prolog Esta aula trata da estrutura de dados lista e programas Prolog para processamento de listas Inteligência Artificial 1 Listas Lista é uma das estruturas mais simples em Prolog, muito comum

Leia mais

SCC Capítulo 5 Representação de Conhecimento através do Prolog

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

Leia mais

Redes Neurais (Inteligência Artificial)

Redes Neurais (Inteligência Artificial) Redes Neurais (Inteligência Artificial) Apresentação da Disciplina Edirlei Soares de Lima O que é Inteligência Artificial? O que é Inteligência Artificial? Área de pesquisa que tem

Leia mais

Inteligência Artificial - IA. Resolução de problemas por meio de busca

Inteligência Artificial - IA. Resolução de problemas por meio de busca Resolução de problemas por meio de busca 1 Agente reativo - definido por ação reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável.

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Busca heurística

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Busca heurística Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Resolução de problemas por meio de algoritmos de busca Busca heurística Roteiro Retomada do

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Apresentação da Disciplina Edirlei Soares de Lima O que é Inteligência Artificial? O que é Inteligência Artificial? Área de pesquisa que tem como

Leia mais

A 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. 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 mais

Algoritmos de ordenação em forma paralela.

Algoritmos de ordenação em forma paralela. ISUTIC 2017 Algoritmos de ordenação em forma paralela. Docente: MSc. Angel Alberto Vazquez Sánchez Bibliografía A. Grama, Introduction to parallel computing. Pearson Education, 2003. I. Foster, Designing

Leia mais

Eugénio Oliveira Outros docentes da cadeira:

Eugénio Oliveira  Outros docentes da cadeira: eco@fe.up.pt www.fe.up.pt/~eco.html Outros docentes da cadeira: Daniel Moura- T e P dcm@fe.up.pt Rui Gomes- P rjgomes@fe.up.pt 1 Objectivos Adquirir familiaridade com os paradigmas da, Programação com

Leia mais

Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Prentice-Hall.

Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Prentice-Hall. Figura: Capa do Livro Russell, S., Norvig, P. Artificial Intelligence A Modern Approach, Prentice-Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado

Leia mais

Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1

Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1 Programação em Lógica Prof. A. G. Silva 24 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 24 de agosto de 2017 1 / 1 Termos Referem-se a todas as construções sintáticas da linguagem Um termo

Leia mais

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE

Árvores. Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque. Engenharia da Computação. Poli - UPE Árvores Prof. Byron Leite Prof. Tiago Massoni Prof. Fernando Buarque Engenharia da Computação Poli - UPE Motivação Para entradas realmente grandes, o acesso linear de listas é proibitivo Estrutura de dados

Leia mais

Prof. Dr. Alexandre da Silva Simões UNESP

Prof. Dr. Alexandre da Silva Simões UNESP UNESP!! Definição de paradigma!! Principais paradigmas da robótica:!! Paradigma Hierárquico (Deliberativo)!! Exemplos!! Paradigma Reativo!! Exemplos!! Paradigma Híbrido (Reativo-Deliberativo) 1 2!! Números

Leia mais

Apresentação da Unidade Curricular 2012/13

Apresentação da Unidade Curricular 2012/13 Inteligência Artificial Apresentação da Unidade Curricular 2012/13 Objectivos, Programa,, Bibliografia,... Paulo Fazendeiro Universidade da Beira Interior 1 Conteúdo Objectivos Programa Bibliografia Atendimento

Leia mais

Paradigmas de Linguagens de Programação. Linguagens de Programação Lógicas

Paradigmas de Linguagens de Programação. Linguagens de Programação Lógicas Linguagens de Programação Lógicas Cristiano Lehrer Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência lógica para produzir

Leia mais

Programação Orientada a Objetos. Programação Lógica

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

Leia mais

Inteligência Artificial - IA

Inteligência Artificial - IA Busca sem informação Estratégias para determinar a ordem de expansão dos nós: 1. Busca em extensão 2. Busca de custo uniforme 3. Busca em profundidade 4. Busca com aprofundamento iterativo Direção da expansão:

Leia mais

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho

Inteligê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 mais

Recursividade e listas

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

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação 2005 06 Apresentação da Disciplina Equipa docente: Jorge Louçã coordenador da disciplina, docente de EI gab. D609 Jorge.L@iscte.pt Nuno David docente de ETI gab. D633 Nuno.David@iscte.pt

Leia mais

Busca Heurística - Informada

Busca Heurística - Informada Busca Heurística - Informada Estratégias de Busca Exaustiva (Cega) encontram soluções para problemas pela geração sistemática de novos estados, que são comparados ao objetivo; são ineficientes na maioria

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 19 a Aula Raciocinar sobre programas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 19 a Aula Raciocinar sobre programas Programação Funcional 19 a Aula Raciocinar sobre programas Pedro Vasconcelos DCC/FCUP 2014 Raciocínio equacional Para simplificar expressões matemáticas podemos usar igualdades algébricas como regras de

Leia mais

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL: INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Estrutura de dados Listas Pilhas Conjuntos Árvores Grafos Classificação

Leia mais

Inteligência Computacional

Inteligência Computacional Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Métodos Revogáveis de Busca Busca em profundidade Busca em largura Busca em profundidade iterativa Busca ordenada

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial Métodos de resolução de problemas Prof. Angel Alberto Vazquez Sánchez Objetivos Caracterizar a busca como um método para resolver problemas a partir de seus elementos fundamentais

Leia mais

Inteligência Artificial. Prolog. Aula 2 Introdução (cont.)

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

Leia mais

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV PROGRAMAÇÃO EM LÓGICA Recursão CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte IV Usado desde a arte (em figuras, telas, etc) como também em Matemática

Leia mais

Algoritmos e Estrutura de Dados Aula 08 Pilhas

Algoritmos e Estrutura de Dados Aula 08 Pilhas Algoritmos e Estrutura de Dados Aula 08 Pilhas Profa. Alana Oliveira e Prof. Davi Viana alanaslz@gmail.com e davi.viana@lsdi.ufma.br Se não entender, pergunte! Dados e Tipos de Dados Um dado é uma informação

Leia mais

Sistemas Especialistas

Sistemas Especialistas Agenda Sistemas Especialistas Revisão Conceitos Básicos Entender uma ferramenta para S.E. Sistemas de Informação Inteligentes Prof. Esp. MBA Heuber G. F. Lima Aula2 Page 2 Conceitos I.A. Sistemas Especialistas

Leia mais

Alguns Exercícios de Inteligência Artificial

Alguns Exercícios de Inteligência Artificial Alguns Exercícios de Inteligência Artificial Ana Paula Tomás Nelma Moreira Departamento de Ciência de Computadores Faculdade de Ciências, Universidade do Porto email: {apt,nam}@ncc.up.pt 1997 1. Números

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas

Trabalho Prático 2 Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Disciplina: Algoritmos e Estrutura de Dados I CIC / 9 Trabalho Prático Mundo dos Blocos Alocação Dinâmica / Listas Encadeadas Valor:,5 pontos (5% da nota total) Documentação não-latex: -, pontos Impressão

Leia mais

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega

Inteligência Artificial. Resolução de problemas por meio de algoritmos de busca. Aula II Algoritmos básicos de busca cega Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Inteligência Artificial Resolução de problemas por meio de algoritmos de busca Aula II Algoritmos básicos de busca

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Segundo Teste 10 de Janeiro de 2014 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 8 páginas com 12 perguntas. A cotação de cada pergunta está assinalada

Leia mais

INF 1771 Inteligência Artificial

INF 1771 Inteligência Artificial INF 1771 Inteligência Artificial Aula 09 Prolog Edirlei Soares de Lima Variáveis Variáveis são representadas através de cadeias de letras, números ou _ sempre começando com letra

Leia mais

Introdução Paradigmas

Introdução Paradigmas Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens

Leia mais

Árvores. Aula 04. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Árvores. Aula 04. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria Engenharia de CONTROLE e AUTOMAÇÃO Árvores Aula 04 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br Sumário

Leia mais

Conferencia 10 Métodos Locais

Conferencia 10 Métodos Locais Conferencia 10 Métodos Locais Objetivo Caracterizar os métodos de busca local Bibliografía Patrick Henry Winston, Inteligencia Artificial, 3ra edición, 1992. AI. A Modern Approach Russell Norvig 3rd ed.

Leia mais

CES-11. Algoritmos e Estruturas de Dados

CES-11. Algoritmos e Estruturas de Dados CES-11 Algoritmos e Estruturas de Dados CES-11 Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Conceito de árvore Tantos as pilhas como as filas são estruturas lineares, isto é, de uma única

Leia mais

2. Linguagem de Programação Prolog

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.

Leia mais

Prof. Marcos A. Schreiner. 15 de junho de Prof. Marcos A. Schreiner (UFPR) 15 de junho de / 18

Prof. Marcos A. Schreiner. 15 de junho de Prof. Marcos A. Schreiner (UFPR) 15 de junho de / 18 Prolog - Programação Lógica Prof. Marcos A. Schreiner Disciplina de Introdução à Lógica 15 de junho de 2015 Prof. Marcos A. Schreiner (UFPR) 15 de junho de 2015 1 / 18 1 Introdução 2 Prolog Definições

Leia mais

Capítulo 3 Lógica de Primeira Ordem

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 Baseados nos slides de Andrew Rice, Universidade

Leia mais

AULA TEÓRICA RESOLUÇÃO DE PROBLEMAS 4ª

AULA TEÓRICA RESOLUÇÃO DE PROBLEMAS 4ª AULA TEÓRICA RESOLUÇÃO DE PROBLEMAS 4ª Aula por Helder Coelho IIA 1 REPRESENTAÇÃO E INTELIGÊNCIA QUESTÕES PARA DISCUSSÃO: Transformação do problema compreender o problema reflectir/pensar o problema lógica,

Leia mais

Revisão: Tipo Abstrato de Dados Recursividade

Revisão: Tipo Abstrato de Dados Recursividade Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira kkco@dei.unicap.br Introdução Estudo das estruturas de dados envolve dois objetivos complementares:

Leia mais

USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio

USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS Bruno Maffeo Departamento de Informática PUC-Rio MÉTODO INDUTIVO O método indutivo para resolver problemas aqui empregado inspira-se na formulação mais

Leia mais

SCC Capítulo 6 Planejamento

SCC Capítulo 6 Planejamento SCC-630 - Capítulo 6 Planejamento 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 joaoluis@icmc.usp.br

Leia mais

Agentes Inteligentes. Inteligência Artificial

Agentes Inteligentes. Inteligência Artificial Agentes Inteligentes (Capítulo 2 - Russell) Inteligência Artificial Professor: Rosalvo Ferreira de Oliveira Neto Estrutura 1. Definições 2. Ambiente de Tarefas 3. Exemplos de ambiente de Tarefas 4. Propriedades

Leia mais

3. Resolução de problemas por meio de busca

3. Resolução de problemas por meio de busca Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.

Leia mais

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc.

Leia mais

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I

Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas. SCC-502 Algoritmos e Estruturas de Dados I Listas: nós de cabeçalho, listas não homogêneas, listas generalizadas SCC-502 Algoritmos e Estruturas de Dados I Lista com nó de cabeçalho Nó de cabeçalho Header, sentinela, etc. Para que? Sentinela Beth

Leia mais

Mecanismos de Controle

Mecanismos de Controle Mecanismos de Controle Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Embora o Prolog seja uma linguagem de programação declarativa,

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

FACULDADE LEÃO SAMPAIO

FACULDADE LEÃO SAMPAIO FACULDADE LEÃO SAMPAIO Paradigmas de Programação Curso de Análise e Desenvolvimento de Sistemas Turma: 309-5 Semestre - 2014.2 Paradigmas de Programação Prof. MSc. Isaac Bezerra de Oliveira. 1 PARADIGMAS

Leia mais

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação

Resolução de problemas por meio de busca. Capítulo 3 Inteligência Artificial Sistemas de Informação Resolução de problemas por meio de busca Capítulo 3 Inteligência Artificial Sistemas de Informação Conteúdo Um exemplo Resolução de problemas por meio de busca Exemplos de problemas Em busca de soluções

Leia mais

Árvores: conceitos gerais e representações

Árvores: conceitos gerais e representações 1 1. Conceitos fundamentais Até agora estudamos estruturas de dados lineares, isto é, estruturas apropriadas ao armazenamento de dados que têm uma relação seqüencial: 1. Estruturas lineares contíguas em

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG PROF. CESAR A. TACLA UTFPR/CURITIBA

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG PROF. CESAR A. TACLA UTFPR/CURITIBA PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG 1 PROLOG: UTILIZAÇÃO A principal utilização da linguagem Prolog reside no domínio da programação simbólica, não-numérica, sendo especialmente adequada

Leia mais

Introdução à Programação em Prolog

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

Leia mais

Aula 08. Estruturas de dados Árvore e Grafo

Aula 08. Estruturas de dados Árvore e Grafo Logo Aula 08 Estruturas de dados Árvore e Grafo 2 Árvore Estruturas estudadas até agora não são \ adequadas para representar dados que devem ser dispostos de maneira hierárquica Ex., hierarquia de pastas

Leia mais

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra Árvores CES-11 Conceito de árvore Definição recursiva de árvore Definições Representações de árvores Ordenação

Leia mais

Listas. Em PROLOG os elementos das listas não têm de ser do mesmo tipo (por exemplo, [a,2,abc,[x,1,zzz]])

Listas. Em PROLOG os elementos das listas não têm de ser do mesmo tipo (por exemplo, [a,2,abc,[x,1,zzz]]) Listas Em PROLOG as listas podem ser: Não vazias, tendo uma cabeça (1º elemento da lista) e uma cauda (lista com os restantes elementos) Vazias, quando não têm nenhum elemento (equivalente ao NULL ou NIL

Leia mais

Ensino de IA Simbólica com Abordagem à Resolução de Problemas p. 1/5

Ensino de IA Simbólica com Abordagem à Resolução de Problemas p. 1/5 Ensino de IA Simbólica com Abordagem à Resolução de Problemas Vivian Cremer Claudio Cesar de Sá viviancremer@yahoo.com.br claudio@joinville.udesc.br UDESC - Universidade do Estado de Santa Catarina Ensino

Leia mais

parent parent corpo, corpo 1 2 Prolog - João C. P. da Silva

parent parent corpo, corpo 1 2 Prolog - João C. P. da Silva Prolog é uma linguagem de programação utilizada para resolução de problemas que envolvem objetos e relações entre objetos. s José possui um livro. O carro é vermelho. Duas pessoas são irmãs se ambas são

Leia mais

Programação de Computadores LAÇOS E LISTAS

Programação de Computadores LAÇOS E LISTAS Programação de Computadores LAÇOS E LISTAS Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma Tabela Suponha que você deseja construir uma tabela

Leia mais

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO

INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO INSTITUTO DE PÓS GRADUAÇÃO ICPG GESTÃO DA TECNOLOGIA DA INFORMAÇÃO Prof. Msc. Saulo Popov Zambiasi (saulopz@gmail.com) Informação - ICPG - Criciuma - SC 1 Conceitos de Inteligência e Inteligência Artificial.

Leia mais

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35

Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35 INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),

Leia mais

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 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

Leia mais

Recursão. Definição. Características. Recursividade 31/08/2010

Recursão. Definição. Características. Recursividade 31/08/2010 Recursão Introdução à Ciência da Computação II (009) Rosane Minghim Apoio na confecção: Rogério Eduardo Garcia Danilo Medeiros Eler Definição Um objeto é dito ser recursivo se ele é definido parcialmente

Leia mais

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina

Anatomia do motor de um programa de xadrez. Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Anatomia do motor de um programa de xadrez Hugo Vinicius M. D. Santana Orientador: José Coelho de Pina Conteúdo Objetivo O que é um motor de xadrez? Arquitetura Entrada e saída Representação do tabuleiro

Leia mais

Recursividade Exaustiva e Backtracking

Recursividade Exaustiva e Backtracking Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA UFES Departamento de Computação Recursividade Exaustiva e Tópicos Especiais em Programação Site: http://jeiks.net E-mail: jacsonrcsilva@gmail.com

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

Lógica para Computação

Ló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 mais

Recursividade, Tentativa e Erro

Recursividade, Tentativa e Erro Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas

Leia mais

Programação I Estruturas de Repetição

Programação I Estruturas de Repetição Programação I Estruturas de Repetição Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Expressões compactas Frequentemente existe a necessidade de escrever expressões da forma:

Leia mais

Projeto de Algoritmos e Indução Matemática

Projeto de Algoritmos e Indução Matemática Capítulo 3 Projeto de Algoritmos e Indução Matemática Um algoritmo é uma descrição precisa de um método para a resolução de determinado problema. Este capítulo apresenta a relação entre a prova de teoremas

Leia mais

Fernando Silva DCC-FCUP. Estruturas de Dados

Fernando Silva DCC-FCUP. Estruturas de Dados 3. Recursividade, Bactracking e Dividir-para-Conquistar Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 3. Recursividade, Bactracking e Dividir-para-Conquistar Estruturas de Dados

Leia mais

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 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 04 Programa Recursivo e Máquinas Prof.ª Danielle Casillo Funções recursivas Alguma função é recursiva quando

Leia mais

Problemas de Satisfação de Restrições 03/05/2012

Problemas de Satisfação de Restrições 03/05/2012 Universidade Estadual do Oeste do Paraná Curso de Bacharelado em Ciência da Computação Problemas de Satisfação de Restrições 03/05/2012 Prof. a Claudia Brandelero Rizzi claudia_rizzi@hotmail.com Roteiro

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

Leia mais

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

Leia mais

Prof. A. G. Silva. 31 de agosto de Prof. A. G. Silva Programação em Lógica 31 de agosto de / 1

Prof. 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 mais

SCC Capítulo 2 Lógica de Predicados

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

Leia mais

Algoritmos e Estruturas de Dados I

Algoritmos e Estruturas de Dados I Algoritmos e Estruturas de Dados I Aula 19: - Comparação empírica de algoritmos de ordenação - Árvores Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2016 1 Comparação empírica de algoritmos de

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

Aula 05. Modularização Função Subrotina Recursividade

Aula 05. Modularização Função Subrotina Recursividade Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo

Leia mais

Matrizes Esparsas. atribuição (M, i, j, v) (i, j) IND. v nulo. v não nulo v nulo v não nulo. há espaço. não há espaço. retira substitui nada

Matrizes Esparsas. atribuição (M, i, j, v) (i, j) IND. v nulo. v não nulo v nulo v não nulo. há espaço. não há espaço. retira substitui nada Matrizes Esparsas atribuição (M, i, j, v) (i, j) IND (i, j) IND v nulo v não nulo v nulo v não nulo retira substitui nada há espaço não há espaço insere erro! estouro da representação 83 Matrizes Esparsas

Leia mais

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS Acadêmico: Cleison Vander Ambrosi Orientador: José Roque Voltolini da Silva Roteiro da Apresentação Introdução Motivação

Leia mais

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore

CES-11. Árvores. Conceito de árvore. Definição recursiva de árvore Definições associadas a árvore. Ordenação dos nós de uma árvore Árvores Conceito de árvore CES-11 Definição recursiva de árvore Definições associadas a árvore Representações de árvores Ordenação dos nós de uma árvore CONCEITO DE ÁRVORE Tantos as pilhas como as filas

Leia mais

Linguagem Haskell. Maria Adriana Vidigal de Lima

Linguagem Haskell. Maria Adriana Vidigal de Lima em Haskell Linguagem Haskell Faculdade de Computação - UFU Dezembro - 2009 em Haskell 1 em Haskell Noções sobre Fundamentos em Haskell Noções sobre Uma árvore é uma estrutura de dados baseada em listas

Leia mais

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTELIGÊNCIA ARTIFICIAL Ano Lectivo 2018/2019

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular INTELIGÊNCIA ARTIFICIAL Ano Lectivo 2018/2019 Programa da Unidade Curricular INTELIGÊNCIA ARTIFICIAL Ano Lectivo 2018/2019 1. Unidade Orgânica Instituto de Engenharia e Tecnologias (1º Ciclo) 2. Curso Engenharia Informática 3. Ciclo de Estudos 1º

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais