SlideShare uma empresa Scribd logo
CADERNOS DE INTELIGÊNCIA ARTIFICIAL
Exemplos em Python
Prof. Ronaldo F. Ramos, Dr
14 de julho de 2020
1/19
PROLOG AULA IX
Mais Recursos
2/19
Fatorial
É possı́vel usar prolog de forma iterativa?
3/19
Normal Recursiva
fatorial(N,F) :- N > 0, N1 is N-1, fatorial(N1,F1), F is N*F1.
fatorial(0,1).
4/19
Iterativa
fatorial(N,F) :- fatorial(N,1,F).
fatorial(N,T,F) :- N > 0, T1 is T*N, N1 is N-1, fatorial(N1,T1,F).
fatorial(0,F,F).
5/19
Acumulador
Observem bem como funciona o acumulador em prolog.
contar(0,0).
?contar(N,K):-N>0, N1 is N -1, write(N1), contar(N1,K).
contar(50,X)
contar(0,0).
contar(N,J):-N>0, N1 is N - 1, J1 is J + 1, write(J1),
contar(N1,J1).
?contar(50,0)
6/19
Loop Recursivo em Python
7/19
CUT - !
Podando a árvore de busca evitando o backtrack.
max(A, B, A) : −A >= B.
max(A, B, B) : −A < B.
Vamos abri-lo no SWI ligando o trace.
Observemos quantas iterações foram feitas.
Em Python:
if A >= B :
return A
if A < B :
return B
8/19
CUT - !
Agora vamos fazer uma pequena modificação e verificar com trace.
Vejamos o exemplo.
maior(X, Y , X) : −X >= Y , !.
maior(X, Y , Y ).
Vamos abri-lo no SWI ligando o trace. Observemos quantas
iterações foram feitas.
Em Python:
if A >= B :
return A
else:
return B
9/19
CUT - !
Usando a disjunção explı́cita no prolog teremos
maior(X, Y , Z) : −X >= Y , !, Z is X; Z is Y .
10/19
CUT - !
Uso do Cut não é obrigatório em muitos casos.
11/19
GREEN CUT X RED CUT
O dito Green cut que não altera o significado (meaning) do
programa. Usado apenas para melhorar a eficiência do mesmo. Ao
contrário do Red Cut que altera o significado do programa.
Ex.
Red Cut
maior(X, Y , X) : −X >= Y , !.
maior(X, Y , Y ).
Green Cut
maior(X, Y , X) : −X >= Y , !.
maior(X, Y , Y ) : −X < Y , !.
12/19
Red Cut - Significado Incorreto
Até aqui estava tudo bem, mas o Red Cut na verdade tornou este
programa incorreto.
maior(X, Y , X) : −X >= Y , !.
maior(X, Y , Y ).
Vejamos o que acontece se usarmos metas sem variáveis. Tipo
maior(21,20,20). Veja o que acontece.
13/19
Resumindo
Cuidado com os Cuts.. Estude mais.
14/19
Negação - fail
fail é uma meta que sempre falha em prolog. Costumeiramente
usada com cut. Vejamos um exemplo de uso:
dif (X, X) : −!, fail.
dif ( , ) : −!.
15/19
Cutting
Vamos dar um ”cut”aqui no curso pra mostrar mais algumas
particularidades dos ambientes prolog.
16/19
Tratamentos de Tipos - types - em prolog
atom, integer, number, functor — verifique a sua distribuição
17/19
Predicados Meta Lógicos
Predicados para usados em controle lógico dos programas.
Exs.
var(X) - Verifica se um termo é uma variável.
nonvar(X) - Faz o contrário.
unify(X,Y). - Realiza a unificação.
etc.
18/19
Predicados Extra Lógicos
Predicados relacionados a funções não lógicas (E/S por exemplo).
write() - Escreve no terminal.
getc() ou read() - Lê arquivos ou textos do terminal.
etc...
19/19
A seguir
Usando prolog para fazer IA. Um exemplo.
20/19

Mais conteúdo relacionado

Mais de ronaldo ramos

paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdf
ronaldo ramos
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdf
ronaldo ramos
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
ronaldo ramos
 
40-aula40.pdf
40-aula40.pdf40-aula40.pdf
40-aula40.pdf
ronaldo ramos
 
43-aula43.pdf
43-aula43.pdf43-aula43.pdf
43-aula43.pdf
ronaldo ramos
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf
ronaldo ramos
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf
ronaldo ramos
 
46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf
ronaldo ramos
 
42-aula42.pdf
42-aula42.pdf42-aula42.pdf
42-aula42.pdf
ronaldo ramos
 
39-aula39.pdf
39-aula39.pdf39-aula39.pdf
39-aula39.pdf
ronaldo ramos
 
38-aula38.pdf
38-aula38.pdf38-aula38.pdf
38-aula38.pdf
ronaldo ramos
 
35-aula35.pdf
35-aula35.pdf35-aula35.pdf
35-aula35.pdf
ronaldo ramos
 
34-aula34.pdf
34-aula34.pdf34-aula34.pdf
34-aula34.pdf
ronaldo ramos
 
33-aula33.pdf
33-aula33.pdf33-aula33.pdf
33-aula33.pdf
ronaldo ramos
 
30-aula30.pdf
30-aula30.pdf30-aula30.pdf
30-aula30.pdf
ronaldo ramos
 
29-aula29.pdf
29-aula29.pdf29-aula29.pdf
29-aula29.pdf
ronaldo ramos
 
28-aula28.pdf
28-aula28.pdf28-aula28.pdf
28-aula28.pdf
ronaldo ramos
 
27-aula27.pdf
27-aula27.pdf27-aula27.pdf
27-aula27.pdf
ronaldo ramos
 
26-aula26.pdf
26-aula26.pdf26-aula26.pdf
26-aula26.pdf
ronaldo ramos
 
25-aula25.pdf
25-aula25.pdf25-aula25.pdf
25-aula25.pdf
ronaldo ramos
 

Mais de ronaldo ramos (20)

paradigmas_de_programacao.pdf
paradigmas_de_programacao.pdfparadigmas_de_programacao.pdf
paradigmas_de_programacao.pdf
 
paradigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdfparadigmas_de_programacao_3_X.pdf
paradigmas_de_programacao_3_X.pdf
 
python_funcional.pdf
python_funcional.pdfpython_funcional.pdf
python_funcional.pdf
 
40-aula40.pdf
40-aula40.pdf40-aula40.pdf
40-aula40.pdf
 
43-aula43.pdf
43-aula43.pdf43-aula43.pdf
43-aula43.pdf
 
48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf48-aula48-modelosTemporais.pdf
48-aula48-modelosTemporais.pdf
 
47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf47-aula47-fuzzy-aplicacao.pdf
47-aula47-fuzzy-aplicacao.pdf
 
46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf46-aula46-fuzzy.pdf
46-aula46-fuzzy.pdf
 
42-aula42.pdf
42-aula42.pdf42-aula42.pdf
42-aula42.pdf
 
39-aula39.pdf
39-aula39.pdf39-aula39.pdf
39-aula39.pdf
 
38-aula38.pdf
38-aula38.pdf38-aula38.pdf
38-aula38.pdf
 
35-aula35.pdf
35-aula35.pdf35-aula35.pdf
35-aula35.pdf
 
34-aula34.pdf
34-aula34.pdf34-aula34.pdf
34-aula34.pdf
 
33-aula33.pdf
33-aula33.pdf33-aula33.pdf
33-aula33.pdf
 
30-aula30.pdf
30-aula30.pdf30-aula30.pdf
30-aula30.pdf
 
29-aula29.pdf
29-aula29.pdf29-aula29.pdf
29-aula29.pdf
 
28-aula28.pdf
28-aula28.pdf28-aula28.pdf
28-aula28.pdf
 
27-aula27.pdf
27-aula27.pdf27-aula27.pdf
27-aula27.pdf
 
26-aula26.pdf
26-aula26.pdf26-aula26.pdf
26-aula26.pdf
 
25-aula25.pdf
25-aula25.pdf25-aula25.pdf
25-aula25.pdf
 

Último

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
Suzy De Abreu Santana
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
djincognito
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
DECIOMAURINARAMOS
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
cmeioctaciliabetesch
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
analuisasesso
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
AmiltonAparecido1
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Biblioteca UCS
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
DanielCastro80471
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
profesfrancleite
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
SILVIAREGINANAZARECA
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
TomasSousa7
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
DeuzinhaAzevedo
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 

Último (20)

Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
atividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinhaatividade 8º ano entrevista - com tirinha
atividade 8º ano entrevista - com tirinha
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
Funções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prismaFunções e Progressões - Livro completo prisma
Funções e Progressões - Livro completo prisma
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Redação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptxRedação e Leitura_7º ano_58_Produção de cordel .pptx
Redação e Leitura_7º ano_58_Produção de cordel .pptx
 
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptxSlides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
Slides Lição 10, Central Gospel, A Batalha Do Armagedom, 1Tr24.pptx
 
livro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdflivro ciclo da agua educação infantil.pdf
livro ciclo da agua educação infantil.pdf
 
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de CarvalhoO sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
O sentimento nacional brasiliero, segundo o historiador Jose Murlo de Carvalho
 
OS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdfOS elementos de uma boa Redação para o ENEM.pdf
OS elementos de uma boa Redação para o ENEM.pdf
 
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
Sistema de Bibliotecas UCS - Chronica do emperador Clarimundo, donde os reis ...
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
Especialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdfEspecialidade - Animais Ameaçados de Extinção(1).pdf
Especialidade - Animais Ameaçados de Extinção(1).pdf
 
Famílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do AssaréFamílias Que Contribuíram Para O Crescimento Do Assaré
Famílias Que Contribuíram Para O Crescimento Do Assaré
 
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
1_10_06_2024_Criança e Cultura Escrita, Ana Maria de Oliveira Galvão.pdf
 
Fernão Lopes. pptx
Fernão Lopes.                       pptxFernão Lopes.                       pptx
Fernão Lopes. pptx
 
educação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmenteeducação inclusiva na atualidade como ela se estabelece atualmente
educação inclusiva na atualidade como ela se estabelece atualmente
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 

36-aula36.pdf

  • 1. CADERNOS DE INTELIGÊNCIA ARTIFICIAL Exemplos em Python Prof. Ronaldo F. Ramos, Dr 14 de julho de 2020 1/19
  • 2. PROLOG AULA IX Mais Recursos 2/19
  • 3. Fatorial É possı́vel usar prolog de forma iterativa? 3/19
  • 4. Normal Recursiva fatorial(N,F) :- N > 0, N1 is N-1, fatorial(N1,F1), F is N*F1. fatorial(0,1). 4/19
  • 5. Iterativa fatorial(N,F) :- fatorial(N,1,F). fatorial(N,T,F) :- N > 0, T1 is T*N, N1 is N-1, fatorial(N1,T1,F). fatorial(0,F,F). 5/19
  • 6. Acumulador Observem bem como funciona o acumulador em prolog. contar(0,0). ?contar(N,K):-N>0, N1 is N -1, write(N1), contar(N1,K). contar(50,X) contar(0,0). contar(N,J):-N>0, N1 is N - 1, J1 is J + 1, write(J1), contar(N1,J1). ?contar(50,0) 6/19
  • 7. Loop Recursivo em Python 7/19
  • 8. CUT - ! Podando a árvore de busca evitando o backtrack. max(A, B, A) : −A >= B. max(A, B, B) : −A < B. Vamos abri-lo no SWI ligando o trace. Observemos quantas iterações foram feitas. Em Python: if A >= B : return A if A < B : return B 8/19
  • 9. CUT - ! Agora vamos fazer uma pequena modificação e verificar com trace. Vejamos o exemplo. maior(X, Y , X) : −X >= Y , !. maior(X, Y , Y ). Vamos abri-lo no SWI ligando o trace. Observemos quantas iterações foram feitas. Em Python: if A >= B : return A else: return B 9/19
  • 10. CUT - ! Usando a disjunção explı́cita no prolog teremos maior(X, Y , Z) : −X >= Y , !, Z is X; Z is Y . 10/19
  • 11. CUT - ! Uso do Cut não é obrigatório em muitos casos. 11/19
  • 12. GREEN CUT X RED CUT O dito Green cut que não altera o significado (meaning) do programa. Usado apenas para melhorar a eficiência do mesmo. Ao contrário do Red Cut que altera o significado do programa. Ex. Red Cut maior(X, Y , X) : −X >= Y , !. maior(X, Y , Y ). Green Cut maior(X, Y , X) : −X >= Y , !. maior(X, Y , Y ) : −X < Y , !. 12/19
  • 13. Red Cut - Significado Incorreto Até aqui estava tudo bem, mas o Red Cut na verdade tornou este programa incorreto. maior(X, Y , X) : −X >= Y , !. maior(X, Y , Y ). Vejamos o que acontece se usarmos metas sem variáveis. Tipo maior(21,20,20). Veja o que acontece. 13/19
  • 14. Resumindo Cuidado com os Cuts.. Estude mais. 14/19
  • 15. Negação - fail fail é uma meta que sempre falha em prolog. Costumeiramente usada com cut. Vejamos um exemplo de uso: dif (X, X) : −!, fail. dif ( , ) : −!. 15/19
  • 16. Cutting Vamos dar um ”cut”aqui no curso pra mostrar mais algumas particularidades dos ambientes prolog. 16/19
  • 17. Tratamentos de Tipos - types - em prolog atom, integer, number, functor — verifique a sua distribuição 17/19
  • 18. Predicados Meta Lógicos Predicados para usados em controle lógico dos programas. Exs. var(X) - Verifica se um termo é uma variável. nonvar(X) - Faz o contrário. unify(X,Y). - Realiza a unificação. etc. 18/19
  • 19. Predicados Extra Lógicos Predicados relacionados a funções não lógicas (E/S por exemplo). write() - Escreve no terminal. getc() ou read() - Lê arquivos ou textos do terminal. etc... 19/19
  • 20. A seguir Usando prolog para fazer IA. Um exemplo. 20/19