SlideShare uma empresa Scribd logo
1 de 20
Baixar para ler offline
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

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

QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxAntonioVieira539017
 
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxSlides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxLuizHenriquedeAlmeid6
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxDeyvidBriel
 
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETO
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETOProjeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETO
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETODouglasVasconcelosMa
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxJMTCS
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxHlioMachado1
 
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptx
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptxSlides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptx
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptxLuizHenriquedeAlmeid6
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdfCarlosRodrigues832670
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURA
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURACRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURA
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURADouglasVasconcelosMa
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptAlineSilvaPotuk
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...LuizHenriquedeAlmeid6
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.HildegardeAngel
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREIVONETETAVARESRAMOS
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoCelianeOliveira8
 
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfO Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfQueleLiberato
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024GleyceMoreiraXWeslle
 
Orientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxOrientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxJMTCS
 

Último (20)

QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptxQUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
QUIZ – GEOGRAFIA - 8º ANO - PROVA MENSAL.pptx
 
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptxSlides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
Slides Lição 3, CPAD, O Céu - o Destino do Cristão, 2Tr24,.pptx
 
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptxÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
ÁREA DE FIGURAS PLANAS - DESCRITOR DE MATEMATICA D12 ENSINO MEDIO.pptx
 
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETO
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETOProjeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETO
Projeto leitura HTPC abril - FORMAÇÃP SOBRE O PROJETO
 
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptxPOETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
POETAS CONTEMPORANEOS_TEMATICAS_explicacao.pptx
 
Revolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptxRevolução Industrial - Revolução Industrial .pptx
Revolução Industrial - Revolução Industrial .pptx
 
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptx
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptxSlides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptx
Slides Lição 01, Central Gospel, Os Sinais do Fim dos Tempos 2Tr24.pptx
 
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
“O AMANHÃ EXIGE O MELHOR DE HOJE”       _“O AMANHÃ EXIGE O MELHOR DE HOJE”       _
“O AMANHÃ EXIGE O MELHOR DE HOJE” _
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURA
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURACRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURA
CRONOGRAMA: AÇÕES DO PROJETO ESTAÇÃO LEITURA
 
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.pptTREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
TREINAMENTO - BOAS PRATICAS DE HIGIENE NA COZINHA.ppt
 
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
Slides Lição 3, Betel, Ordenança para congregar e prestar culto racional, 2Tr...
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
 
Os Ratos - Dyonelio Machado FUVEST 2025
Os Ratos  -  Dyonelio Machado  FUVEST 2025Os Ratos  -  Dyonelio Machado  FUVEST 2025
Os Ratos - Dyonelio Machado FUVEST 2025
 
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTREVACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
VACINAR E DOAR, É SÓ COMEÇAR - - 1º BIMESTRE
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e feminino
 
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdfO Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
O Espetaculo das Racas - Cienti - Lilia Moritz Schwarcz capítulo 2.pdf
 
Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024Apresentação sobre o Combate a Dengue 2024
Apresentação sobre o Combate a Dengue 2024
 
Orientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptxOrientações para a análise do poema Orfeu Rebelde.pptx
Orientações para a análise do poema Orfeu Rebelde.pptx
 

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