Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistemas Inteligentes
I
Docente: Henriques Fernando
Setembro/2022
Código: zdycfpg
Apresentação
Cadeira
• Sistemas Inteligentes
Sumário
• Informação Geral
• Objectivos e Programa
• Avaliação
• Material de Apoio
Informação Geral
Aulas
• Teóricas
• Teóricas_Práticas
Geral
Objectivos
• Dotar os estudantes de conhecimentos
sobre agente, aprendizagem, resolução
de problemas, busca, conhecimento,
raciocínio e programação em lógica de
formas capacita-los a desenvolver
aplicações inteligentes que resolvam
problemas complexos.
• Fornecer as competências necessárias
para a análise crítica de Aplicações e
algoritmos existentes de formas a
desenvolver Sistemas Inteligentes
Programa
Nº Aula Aula- Tema
1 Apresentação Metodologias
Introdução Conceitos e Evolução Histórica
Aplicações e Perspectivas
2 Agentes Inteligentes Estrutura e Modelos
Agentes Reactivos e não reactivos
Agentes baseados em objectivos
3 Métodos de Busca Busca cega: Algoritmos DFS e BDF;
Busca heurística:
Greedy search e A*;
busca competitiva: Algoritmo Minimax
4 Representação de Formalismos de representação do conhecimento;
Conhecimento Sistemas baseados em conhecimento.
5 Paradigmas de O Paradigma Lógico; Prolog: Características e aplicações;
Programação Criação de base de conhecimento.
6 Aprendizagem de Aprendizado supervisionado;
máquina Aprendizado não-supervisionado;
Aprendizagem por esforço.
7 Fundamento de Fundamentos de Mineração de Dados
Mineração de Dados
Programa
Ano/Semestre: 3º Ano / 1º Semestre Carga H.
Semanal: 2T + 2P Carga H. Semestral: 64 Créditos:
5 Tipo: Obrigatória
Agentes Inteligentes
Métodos de Busca
Representação de Conhecimento
Apredizado de Máquina
Disciplina
Objectivos
Síntese
Síntese
Comentário
Comentário
Comentário
Comentário
1956-1970 - Românticos
• Objectivo: simular a inteligência humana
• Métodos: Solucionadores gerais de problemas e lógica
• Motivo do fracasso: subestimação da complexidade computacional dos
problemas
• Motivo do fracasso: subestimação da quantidade de conhecimento
necessária para tratar mesmo o mais banal problema de senso comum
Cont..
Clássicos
• Nascimento da IA / Adopção do termo: Inteligência Artificial
• Formalismos gerais capazes de resolver qualquer tipo de problema
• Sistema GPS (General Problem Solver)
• Ajudaram a estabelecer os fundamentos teóricos dos sistemas de
símbolos
• Série de técnicas de programação voltadas à manipulação simbólica
(ex.: busca heurística)
• resultados interessantes e impressionantes, porém, em domínios
simplificados
• extensão a problemas de domínios reais mostrou-se inviável métodos
baseados em lógica de primeira ordem levam à explosão
• combinatória: memória e tempo necessários para resolver problemas
crescem exponencialmente
• conhecimento disponível do mundo real é incompleto e parcialmente
incoerente
• levou ao desenvolvimento de outros métodos de solução que
permitissem representar crenças, por exemplo, lógica nebulosa
Visão Clássica
Hebert Simon (1957)
Obs.
• Diante deste quadro, Luger propõe uma definição simplória para IA: “A
coleção de problemas e metodologias estudadas pelos pesquisadores da
inteligência artificial”
Evolução
Domínios de Aplicação de IA
Robotica IA
Ciências
Cognitivas + Engenharia de
Ciências de Conhecimento
Computação
Ciências
Agentes
de Autónamos
Dados
Categorias- Conceitos de IA
Pensar- Fazer as Máquinas Pensar
Humanos
Racionalidade - Lógica
• Sistemas que pesam racionalmente
• Sistemas que agem racionalmente
Aplicações- IA
Quase em todas as áreas
• Smartphones (cálculo de rotas)
• Spootify (recomendação de música)
• Google (anúncios )
• Simulação e Jogos
• Robótica
• Automação de Sistemas complexos (automação industrial)
• Sistemas de controlo (carros autonámos)
• Previsão do mercado
• Recuperação de informações
• Detecção de intrusão e filtragem de spam
• Interface Humana Computador
• Sistemas de informações(tomada de decisões)
Aprendizado Estátistico
Dados Aprendizado de
Saídas Máquina Modelo
Sistemas Especialistas
Características
• Geralmente baseados em regras,
• Possuem conhecimento intensivo do domínio da aplicação,
• Construídos por especialistas humanos,
• Podem empregar aprendizado automático,
• Têm dificuldade em lidar com conhecimento de senso comum,
• Orientados à reutilização do conhecimento.
Aplicações
• Diagnóstico,
• Suporte on-line,
• Controle de processos,
• Controladores de vôo,
• Identificação de padrões difusos,
• Medicina Digital,
• Aconselhamento jurídico...
Metas - IA
Ciêntifica
Engenharia
2 Dispositivos
• Sistemas inteligentes podem ajudar especialistas a
projectar novos dispositivos
Paradigmas de Programação - IA
Prolog
LISP
POP-11
Python
C e C++
Cont.. - IA
Representação e Métodos
Apredizado de Máquina
Aplicações em IA
• Planeamento
• Reconhecimento de Padrões
• Ciências de Computação e Engenharia
Eléctrica
Métodos Convencionais Vs. IA
Convencionais
IA
Sistemas sub-simbólicos
• Prova de Teoremas
• Sistemas Especialistas
• Programação em Lógica
• Redes Semânticas
• Sistemas de Frames
• Sistemas de Agentes
Sistemas Sub-Simbólicos
• Redes neurais
• Algoritmos genéticos
• Autômatos celulares
• Sistemas complexos adaptativos
Arquitectura de Sistemas
Computação Convencional Computação Simbólica Engenheiro de
Utilizador Conhecimento
Utilizador
Dados
Dados
Utilizador Interface
Explicação do
Raciocínio
Dados
Especialista
Dados Explicações
Utilizador
Dados
Treinados
Dados
Pesos(RN)
Provas(RB) ou Pesos(RN)
Programador individuais(AG) Provas(RB) ou
Treinados individuais(AG)
Treinados
Dados
Treinamento Dados Utilizador
Comprador Dados
Exemplos
• Humano: 5 sentidos, braços, boca, ...
• Robô: câmeras, detectores infravermelho,
sonares, motores, ...
• Software: teclado, arquivos, pacotes da rede,
impressora,
• vídeo, ... (sensações e ações estão codificados
em bits)
Agente
Software - Jennings (1995)
Ideal
Programa
Aspirador de Pó
• Aspirador de pó. Se a sala estiver limpa, vai para
outra sala, se tiver suja limpa
Agente Criança
• Mandar a criança comprar pão
Se mudar algum padrão de sensor ele para de funcionar. Facil de programar mais ele
não é tão intelgente
Funcionamento
Quando inserido num ambiente o agente gere uma
sequência de accções em função das percepções
Seguem-se Factos
Factos
Mundo
Semântica
Semântica
Representação
Fonte: Adaptado
Silva(2018)
Implica Frase
Frase
Cont..
Exemplo
• A) ∀( x,y,z) Americano(x) ∧ Arma(y) ∧ Nação(z) ∧ Hostil(z) ∧ Vende(x,z,y)
• ⇒ Criminoso(x)
• B) ∀ x Guerra(x,USA) ⇒ Hostil(x)
• C) ∀ x InimigoPolítico(x,USA) ⇒ Hostil(x)
• D) ∀ x Míssil(x) ⇒ Arma(x)
• E) ∀ x Bomba(x) ⇒ Arma(x)
• F) Nação(Cuba)
• G) Nação(USA)
• H) InimigoPolítico(Cuba,USA)
• I) InimigoPolítico(Irã,USA)
• J) Americano(West)
• K) ∃ x Possui(Cuba,x) ∧ Míssil(x)
• L) ∀ x Possui(Cuba,x) ∧ Míssil(x) ⇒ Vende(West, Cuba,x)
• M) Possui(Cuba,M1) - Eliminação: quantificador existencial e
• N) Míssil(M1) conjunção de K
• O) Arma(M1) - Modus Ponens a partir de D e N
• P) Hostil(Cuba) - Modus Ponens a partir de C e H
Agente Ideal
Para cada sequência de percepções possíveis
deve saber se a sua acção maximizará a sua
medida de empenho com base no histórico
Mapeamento ideal
• Especifica qual acção a tomar em resposta a
qualquer sequência de percepções.
• P.e. função raiz quadrada a sequência de
percepções seriam a digitação de números, a
acção seria mostrar o resultado correcto
Exemplo de Agente Ideal
Percepção Acção Z= SQRT(X)
function SQRT(x) (X)
z ←1.0 repeat 1.0 1.000000000000000
z ← z – (z2 – x)/(2z) 1.1 1.048808848170152
until |z2 – x| < 10–15 1.2 1.095445115010332
return z 1.3 1.140175425099138
1.4 1.183215956619923
1.5 1.224744871391589
1.6 1.264911064067352
1.7 1.303840481040530
1.8 1.341640786499874
1.9 1.378404875209022
…. ….
Modelar Agente
Um problema é definido através de: percepções, ações, metas e ambiente (e outros
agentes)
• Ex. Agente que indentificará alguém no meio da multidão. Problema será:
Identificar alguém no meio da multidão
Tipo de conhecimento que o programa agente deve posuir
• Quais são as propriedades relevantes do mundo;
• Como o mundo evolui;
• Como identificar os estados desejáveis do mundo;
• Como interpretar suas percepções;
• Quais as consequências de suas acções no mundo;
• Como medir o sucesso de suas acções ;
• Como avaliar seus próprios conhecimentos;
• Como capturar (aprender) mais conhecimento sobre o ambiente;
• Como colaborar ou competir com outros agentes e ;
• etc-
Médidas de Desempenho
• Critérios que definem o grau de sucesso de um agente na realização de uma
tarefa
• A escolha errada da médida de desempenho pode acarretar um comportamento
indesejado
Categória do Agente
Autonámo
• Capacidade de interagir com o ambiente e extrair informações
sobre o mundo;
• Possui algum conhecimento inicial e a habilidade de inferir ou
aprender novos conhecimentos;
• o comportamento do agente pode depender de dois factores: do
conhecimento embutido em seu programa e de sua própria
experiência
• Pode operar em ampla diversidade de ambientes
Onisciente
• Percebe quando executa acções
• Conhece todos os efeitos das suas acções
• Em certos ambientes é possivel modelar completamente a
realidade
• Relaxar os critérios de sucesso de um agente-> ambientes
artificiais.
Mapeamento
Fusão Agente
• Mapeia o conjunto ou sequência de percepções
especificas em acções [f: P->A], descreve o
comportamento do agente
Agente Sensor
Ambiente
Percepção
Ambiente
? Raciocinador
Actuador
Acção
Arquitectura Básica de um Agente
Um agente é completamente especificado por uma função de agente
que mapeia percepções em sequência de ações
Agente Sensor
Ambiente
Percepção
Ambiente
Tabela
Percepções Acções
Actuador
Acção
2 Lugares 22 Cumbinações
Algoritmo
função Agente-olha-tabela (percepção) devolve acção
estático: percepções(sequência de percepções, inicialmente vazia)
tabela ( uma tabela indexada pelas sequências de percepções,
inicialmente completamente especificada)
agregar(percepção) no final da sequência de percepções
ação ← LOOCKUP(percepções, tabela)
devolve acção
Limitações
• Número muito grande de entradas na tabela e.x. Xadrez 35100
• Nem sempre é possivel construir tabela devido ao tempo ou
ignorância. Levaria muito tempo para projectistas construir a tabela
• Agente sem autonómia. Decisões complicadas na fase de projecto.
O agente se perde diante de qualquer mudança no ambiente
• Algoritmos de apredizado de máquina levariam muito tempo para
actualizar a tabela
• Construir tabelas é viável para ambientes pequenos e limitados
Implementar Agente Motorista de Taxi
Criar tabela de percepção acção
• 50 MB de imagens por segundo (25 frames p/s, 1000x1000 pixels,
8 bits cores e 8 bits de intensidade)
• Tabela com 10250.000.000.000 entradas
• Para cada imagem possível -> uma ação !
Desafios de IA
• Escrever programas que, na medida do possível,
produzam um comportamento racional a partir de uma
pequena quantidade de código, e não a partir de um
grande número de entradas de tabela.
• Exemplo:
• método de Newton
Classificação do Agente
Simples
Baseado em
Reactivo
Modelo
Baseado em
Objectivos
Baseado em
Utilidade
Baseado em
Apredizado
Cont..
Agente Tabela
Baseados em Utilidade
•Mapeia um estado ou sequência de estados a um número real que descreve o grau de satisfação do agente com relação a
tomada de decisão
•Informa se um estado é perferivel mais util que outros avalia metas competitivas e guia a busca p.e. jogos
•Gera comportamento de alta qualidade
Agentes Reactivo Simples
Reage
Se mudar algum padrão de sensor ele para de funcionar. Facil de programar mais ele
não é tão intelgente
Agentes Reactivo Simples
Reage
Carro
Se mudar algum padrão de sensor ele para de funcionar. Facil de programar mais ele
não é tão intelgente
Agente Reactivo Simples Baseado em Regras
função Agente-Reativo-Simples (percepção) devolve acção
estática: regras, um conjunto de regras condição-acção
estado ← INTERPRETA-ENTRADA(percepção )
regra ← CASA-REGRA (estado, regras)
acção ← AÇÃO-DA-REGRA(regra)
devolve acção
Agente
Sensor
Percepção
(Entradas)
Ambiente
Qual é a aparência
actual do Mundo ?
Acção(Saídas)
Actuador
Exemplo Aspirador de Pó
A B
C
D
Estado
Sensor
Percepção
Ambiente
Ambiente
Como o mundo
era antes e
Como está o
como evoluiu
Mundo Agora ?
Impacto da
minhas acções
Que acção devo
Regras de
executar agora?
condição- Acção
Acção
Actuador
Exemplo
• O objetivo do agente
• Os resultados de suas ações
O agente pode escolher ações que alcancem o objetivo
• A seleção da açcão baseada em objectivo pode ser:
• Directa: quando o resultado de uma única ação atinge o
objetivo
• Mais complexa: quando será necessário longas sequências
de açcões para atingir o objectivo
• Busca é um subcampo da IA dedicado a encontrar
sequencias de açcões que alcançam os objetivos dos
agentes)
Cont..
Para encontrar sequências de ações que alcançam os
objectivos
• Algoritmos de Busca
A tomada de decisão envolve a consideração do futuro
“O que acontecerá se eu fizer isso ou aquilo?”
“O quanto isso me ajudará a atingir o objetivo?”
Agentes reactivos: reaçcão -> frear quando carro da frente
frear. Simplesmente aplica a regra condição-ação
Agentes baseado em objetivo: raciocínio -> carro da
frente freia -> carro da frente diminui velocidade ->
objetivo: Não atingir outros carros -> açcão para atingir
objectivo: travar
Agente Reactivo Baseado
em Objectivos
Agente
Sensor
Estado Percepção
Ambiente
Como o mundo Como está o
era antes e Mundo Agora ?
Ambiente
como evoluiu
Efeitos da Sinulação de
minhas acções Acções(Como o
mudo ficará se
realizar acção X)
Actuador
Ex. minimizar a poera no ambiente
Limitações
É mais flexivel
Permite modificações
Estado
Ambiente
Como está o
Ambiente
Como o mundo Mundo Agora ?
evoluiu
Sinulação de
Efeitos da Acções(Como o
minhas acções mudo ficará se
realizar acção X)
Utilidade Utilidade de Acções(Quão satisfeito
estarei nesse estado?)
Acção
Que acção devo
executar agora?
Actuador
Agente Baseado em Apredizagem
Em agentes sem aprendizagem tudo o que o agente
sabe foi colocado nele pelo projectista
• Aprendizagem também permite ao agente actuar
em ambientes totalmente desconhecidos e se
tornar mais competente do que o seu
conhecimento inicial poderia permitir Ex.
motorista sem o mapa da cidade
Componentes conceptuais
• Elemento de aprendizado
• Crítico
• Elementos de desempenho
• Gerador de problemas
Agente Baseado em Apredizagem
Elemento de Apredizado(Modificador de Regras)
• Responsável pela execução dos aperfeiçoamentos
• Utiliza realimentação do crítico sobre como o
agente está funcionando
• Determina de que maneira o elemento de
desempenho
Crítico
• Informa ao elemento de aprendizado como o
agente está se comportando em relação a um
padrão fixo de desempenho
• É necessário porque as percepções não fornecem
nenhuma indicação de sucesso
• Ex.: O crítico pode indicar para o agente que o
xeque-mate é algo bom. O agente não deverá
modifica-lo
Agente Baseado em Apredizagem
Elemento de desempenho
Gerador de problemas
• Responsável por sugerir ações que levarão a
• experiências novas e informativas. Ações não
ótimas a curto prazo para descobrir
• ações ótimas a longo prazo
Exemplo Motorista de Taxi
Elemento Crítico: conhecimento e procedimentos paradirigir
• Ex.: o agente vira sem dar seta. O crítico observa que
isso gera uma reação agressiva dos outros motoristas e
informa ao elemento de aprendizagem.
• Elemento de Apredizado
Elemento de Apredizado
• É capaz de formular uma regra afirmando que a ação foi
boa/ruim. Modifica o elemento de desempenho pela
instalação da nova regra
Gerador de problemas:
• Identifica áreas que precisam de melhorias
• Sugere experimentos: testar os freios em diferentes
superfícies
Inteligência colectiva
Situações /solução
• comunicação
• negociação (ex. compra-venda na Web)
• estados mentais
• crença,
• Tensão (Trade-Off)
• Quanto mais agentes, mais simples (subdividido) fica
o problema
• No entanto, mais complexa fica a comunicação e
coordenação entre os agentes
Padrão de
Desempenho
Agente com Apredizado
Crítico Sensor
Percepção
Feedback
Alterações
Ambiente
Elemento de
Ambiente
Elemento de
Apredizado Desempenho
Conhecimento
Objectivos de
Apredizado
Gerador de
Problemas
Acção
Actuador
Agente
Avaliar o Sucesso
Como
Quando
Médida de Desempenho
Maximizar a quantidade de sujeira aspirada em 8 horas ou
Minimizar a quantidade de sujeira no chão em 8 horas
Algoritmo
function Agente-Reativo-Aspirador ([local, status]) return
uma acção
if status=Sujo then return Aspira
else if local=A then return Direita
else if local=B then return Esquerda
Vantagens e Limitações
Regras Condição-Acção
Medidas de desempenho:
Chegar ao local correcto
Minimizar o gasto de combustível
Minimizar o custo da viajem
Minimizar violações de trânsito
Maximizar a segurança e conforto do passageiro
Maximizar os lucros
Limitações
• Novo estado é determinado através do anterior e pela acção do agente. Se o ambiente não é accesivel então
Determini náo é deterministico
stico vs • O contrário é Estócastico
Estócastico
• A experiencia é dividida em epiódios atómicos. Os episódios seguintes não devem depender dos anteriores.
Episódico E.x. Agente localizador de peças defeituosas numa linha de montagem
vs.
Sequência • A decisão actual pode afectar as futuras p.e. agente xadrez
l
• O ambiente pode mudar durante o raciocinio do agente( deliberação) p.e. jogos e alguns problemas de
Estático escalonamento
vs.
Dinámico
• Número limitado de percepções e acções . número finito de estados p.e. agente xadres. Já o agente taxi é
Discreto um problema e tempo contínuo em relação a localização e velocidade: A velocidade e a posição do taxi e os
vs. outros veículos passam por um intervalo contínuo
Contínuo
Redes e Sistemas
Distribuidos
Base de Dados
Engenharia de Software
Interface
Robótica
Jogos
Hardware (Projectos e
Análise)
etc.
Desenvolvimento de SW Inteligentes
Projecto
Implementação
Nível de Formalismo
Nível de implementação
Algumas Capacidades
• Comportamento guiado por objetivos e autonomia
• Reatividade e raciocínio
• Adaptabilidade e aprendizagem
• Comunicação e cooperação
• Personalidade
• Outros mobilidades
Resumo
Agente: arquitetura + programa do agente;
6
29
5 17 36
1 7
32 54
N elementos da árvore Log(n) complexidade da busca < O(n)
Busca de elemento 32
Pseudocódigo
• 1º 32>14 descarta o ramo a esquerda
• 2º 32>29 descarta o ramo a esquerda
• 36>32 descarta o ramo a direita
Pseudocódigo
• Busca_binária(V[], ínicio, fim, e)
• i recebe o índice do meio entre ínicio e fim
• Se (V[i]=e) então
• Devolva o índice e # elemento é encontrado
• Fim-se
• Se (inicio=fim) então
• Não encontrou o elemento procurado
• Senão se (V[i] vem antes de e) então
• faça a busca binária( V, i+1, fim, e)
• Senão
• faça a busca binária(V,ínicio, i-1, e)
• Fim-se
• Fim
Algoritmo Dijkstra
Problema de Caminhos mínimos
• Queremos Saber qual é a menor rota entre uma cidade e outra
Busca Competitiva
• Algoritmo Minimax
Métodos de Busca
Resolução de problemas através de força bruta
Algoritmo de busca
Especificação de Operações
• move_right(State1, State2):-
• space_position(State1, Pos, Part1, [X|Part2]),
• \+ member(Pos, [3, 6, 9]),
• append(Part1, [X, 0|Part2], State2).
• O programa recebe um estado e produz a representação do estado que resulta a aplicação da
operação
Solução
Três programas
D G I
E
B
H
A C F
D G I
1 2 3 1 2 3 1 2 3 1 2 3
Abaixo Direita Direita
5 6 4 5 6 4 5 6 4 5 6
4 7 8 7 8 7 8 7 8
Custo de Tempo
Custo de Memória
Otimalidade/qualidade (optimality):
Custo de Total
1 8 4 7 6 5
7 6 5 2 3
1 8 4
2 3 7 6 5
1 8 4 2 3
2 3 1 8 4
7 6 5
1 8 4 7 6 5
7 6 5 2 8 3 2 3 4
1 4 1 8
7 6 5
7 6 5
N-Puzzle
Solução
• estados = cada possível configuração do tabuleiro
• estado inicial = qualquer um dos estados possíveis
• teste de término = ordenado, com branco na posição [3,3]
• operadores = mover branco (esquerda, direita, para cima e
para baixo)
• custo da solução = número de passos da solução
2 8 3
2 8 3 1 4
1 4 7 6 5
7 6 5
2 8 3
1 4
7 6 5
Exemplo de Problema de Busca
Ir de Bauru a São Paulo
Exemplo Viagem
Ir para São Paulo
Cálculo de rotas
Direcção de Ramificação
1 2 3 6 1 2 3
1 2 3
4 5 6 Direita 4 5 6 Cima 4 6
2:2
7 8 5:3 7 8 7 5 8
2 3
1 2 3 1 2 3
1 5 6
5 6 7 4 5 6
Acima 4 7 8
4 7 8 3 7 8
1:1 1 2 3
5 6
4
4 7 8
1 2 3 1 2 3 Cont..
4 5 6 4 6
Busca Largura Primeiro 7 8 7 5 8
5:5 10
2 3
1 2 3 1 2 3
1 5 6
4 5 6 4 5 6
4 7 8
7 8 7 8
6
2:2 1 2 3 11
1 2 3 2 3 5 7 6
5 6 1 5 6 4 8
Acima 7
4 7 8 4 7 8
1 3
1:1 3:3
1 2 3 5 2 6
4 7 8 Escolha sempre o nó não
5 6 8 espandido menos profundo
4 7 8 1 2 3
5 6
4:4
4 7 8 9
Limitações
Cont..
• A maioria dos problemas reais têm espaços de estados
muitíssimo grandes e, em alguns casos, infinitos.
• Os recursos consumidos por um algoritmo de procura
para em alguns casos, infinitos.
• Os recursos consumidos por um algoritmo de procura
para encontrar uma solução (tempo e memória)
dependem do tamanho do espaço do problema.
Solução
• É importante que algoritmo não procure todo o espaço
e deve ncaminhe por uma trajetória que conduza mais
rapidamente ao objetivo
• para que o algoritmo saiba qual dos caminhos é mais
promissor, necessita usar
• conhecimento específico sobre o problema que está a
resolver e escolher depois da avaliação àquele mais
promissor
Busca em Largura (BFS)
Estratégias para determinar a ordem de ramificação
dos nós:
Algoritmo
Obs.
• 1. Nó raiz
• 2. Todos os nós de profundidade 1
• 3. Todos os nós de profundidade 2, etc.
Algoritmo
A A
A
B C B C
B C
G D E F G
D E F D E F G
Método BFS
A estratégia é Completa
Óptima
Custo de tempo
• se o fator de ramificação do problema = b, e a primeira
solução para o problema está no nível d,
• então o número máximo de nós gerados até se encontrar a
solução = 1 + b + b2 + b3 + W + bd
• custo exponencial = O (bd).
Custo de Memória
• problema mais crucial: a fronteira do espaço de estados deve
permanecer na memória
• logo, busca em largura só dá bons resultados quando a
profundidade da árvore de busca é pequena.
Algoritmo BFS
BFS(G, s) A
1. For cada Vértice u V (G)-{s}
2. u.cor= Branco
3. u.d= ∞ K
4. u.ᴨ = nulo B C D
5. s.cor=cinza
6. s.d=0
7. u.ᴨ = nulo
8. Q=Ø
9. Enfileirar( Q,s) E F K+1
10. While Q ≠ Ø {
11. u= desenfileirar(Q) S- source
12. For cada v Adj(u){ ᴨ - Pai e.x o precessor de B é A
13. if u.cor== branco{ Cinza – para o n´p visitado
14. v.cor=cinza Q é a fila
15. v.d=u.d+1
16. v.ᴨ =u
17. enfileirar( Q,v)
18. u.cor=Preto;
mD = {
0: 'F',
1: 'MO',
2: 'JU',
Python BFS
3: 'P',
5: 'CG',
4: 'N', F
7: 'A',
6: 'JP',
9: 'JP',
8: 'CA',
10: 'R',
M
11: 'MA'} O
grafo = [[2, 1], # vizinho do nó o
[5, 4, 0], # vizinho do nó 1
[3, 0], # vizinho do nó 2 N
[7, 5, 2], # vizinho do nó 3
[6, 1], # vizinho do nó 4
[8, 6, 3, 1], # vizinho do nó 5 J
[10, 5, 4], # vizinho do nó 6
U P CG
[11, 3], # vizinho do nó 7 J
[11, 10, 5], # vizinho do nó 8
[10, 5, 4], # vizinho do nó 9
P
[11, 8, 6], # vizinho do nó 10
[10, 8, 7]] # vizinho do nó 11
def buscaEmLargura(nohDeDepartida, nohDeChegada): C
fila = []
fila.append(nohDeDepartida)
A R
while len(fila) > 0:
noh = fila.pop(0)
nohsVisitados[noh] = 1 A M
print(mD[noh])
if noh == nohDeChegada:
A
print('Chegou ao Destino')
break
for n in grafo[noh]:
if nohsVisitados[n] == 0:
nohsVisitados[n] = 1
fila.append(n) Ir de F até MA
nohDePartida = 0
nohDeChegada = 11
Métodos DFS
Passos
B C D
E F
Métodos DFS
Ordem de Ramificação dos Nóns
• Sempre expande o nó no nível mais profundo da
árvore:
• 1. nó raiz
• 2. primeiro nó de profundidade 1
• 3. primeiro nó de profundidade 2, etc.
• Quando um nó final não é solução, o algoritmo volta
para expandir os nós que ainda estão na fronteira do
espaço de estados (backtracking)
Algoritmo
• função Busca-em-Profundidade (problema)
• retorna uma solução ou falha
• Busca-Genérica (problema, Insere-no-Começo)
Métodos DFS
Expansão dos Nóns
Custo de Memória
• necessita armazenar apenas b.m nós para um espaço de
• estados com fator de ramificação b e profundidade m, onde m
• pode ser maior que d (profundidade da 1a. solução).
Custo de Tempos
• O(bm ), no pior caso.
• Para problemas com várias soluções, esta estratégia pode ser
• bem mais rápida do que busca em largura.
Métodos DFS
DFS(G) S A B
1. For cada Vértice u V (G) C
2. u.cor= Branco;
3. u.cor= Nulo; D T
4. Tempo=0; # variavel global
5. For cada vétice u V(G) F E
6. if u.cor== branco
7. DFS_Visita(G, u); # Função recursiva, chamada
sempre que o vertice for descoberta
8. Tempo=tempo+1;
9. u.d=tempo;
10. u.cor=cinza;
11. For cada V Adj(u)
12. if V.cor==Branco
13. V.𝜋=u;
14. DFS_Visita(G,V)
15. u.cor=Preto;
16. Tempo=tempo+1;
17. u.f=tempo;
Execução DFS
u u.cor u.D(temp_ V’={vN(u)/ ᴨ(u) u.F (Tempo de
empilhamento) v.cor=branco} Desempilhament
o)
S Cinza 1 {A,F} - 16
A Cinza 2 {B,D,E} S 15
B Cinza 2 {C,T} A 14
C Cinza 4 {D,T} B 13
D Cinza 5 {F,E} C 12
E Cinza 6 {F,T} D 11
F Cinza 7 {0} E 8
T Cinza 9 {0} E 10
Métodos DFS
Implementação
Espaço de estado
• Podem ser representados como uma árvore onde os estados são nós e as
operações são arcos
BFS e DFS
• Não são considerada buscas inteligentes, por
percorrerem e visitarem todos os vertices dos
grafos
• Não tem objectivos predeterminados a
alcançar.
• Utiliza conceitos de pilhas e filas onde os
valores para percorrer todos os nóns
Métodos A*
Procura no melhor primeiro (Best-First Search)
• Baseia no princípio de avaliar os nós já conhecidos do espaço de procura e expandir o
melhor deles.
• utilização de uma função de avaliação dos estados, a qual permite ao algoritmo escolher
para expandir, em cada passo, o nó mais promissor
• f(n) = g(n) + h(n), em que g(n) é o custo do caminho desde o estado inicial ao estado
representado no nó n; e h(n) é a estimativa do custo do melhor caminho que liga o nó n ao
estado final.
• Termina sempre, mesmo que não haja solução para um problema e não fica preso em ciclos
infinito
• Se a estimativa h(n) for sempre menor do que o custo real mínimo do caminho entre o nó n
e um nó objectivo, então o A* encontra a melhor solução para o problema, se ela existir.
• Se h(n)=0 para qualquer nó n, o algoritmo A* dá os mesmos resultados que o algoritmo de
caminho ótimo de Dijkstra.
Aplicações
• Sistemas de GPS
• Jogos (ex. jogos de tiro, faz traçado de menor rota para atingir o alvo)
• Unit de jogos implementa muitos algoritmos A*
Exemplo
Busca Profundidade Primeiro
G(n)=2 1 2 3
H(n)=1 G(n)=3
G(n)=1 4 6 H(n)=2
F(n)=3
H(n)=2 7 5 8 F(n)=5
1 2 3 1 2 3
F(n)=3 6
4 5 6 Direita 4 5 6
2:2 1 2 3
7 8 7 8
4 5 6 G(n)=3
5:3 H(n)=0
2 3 7 8 F(n)=3
1 2 3 1 2 3
1:1 Acima 1 5 6 G(n)=1 7
5 6 H(n)=4 5 6
1 2 3 G(n)=3
4 7 8 F(n)=5
4 7 8 4 7 8 H(n)=2
3 4 5 6
7 8 F(n)=5
G(n)=0 1 2 3
G(n)=1 G(n)=2 9
H(n)=3 5 6
H(n)=4 H(n)=3
F(n)=3 4 7 8 H= número de peças fora da
4 7 8 F(n)=5 F(n)=5
posição,
4 G= posição após a expansão
Exemplo1
Busca Profundidade Primeiro
G(n)=2 1 2 3
H(n)=1 G(n)=3
G(n)=1 4 6 H(n)=2
F(n)=3
H(n)=2 7 5 8 F(n)=5
1 2 3 1 2 3
F(n)=3 6
4 5 6 Direita 4 5 6
2:2 1 2 3
7 8 7 8
4 5 6 G(n)=3
5:3 H(n)=0
2 3 7 8 F(n)=3
1 2 3 1 2 3
1:1 Acima 1 5 6 G(n)=1 7
5 6 H(n)=4 5 6
1 2 3 G(n)=3
4 7 8 F(n)=5
4 7 8 4 7 8 H(n)=2
3 4 5 6
7 8 F(n)=5
G(n)=0 1 2 3
G(n)=1 G(n)=2 8
H(n)=3 5 6
H(n)=4 H(n)=3
F(n)=3 4 7 8 H= número de peças fora da
4 7 8 F(n)=5 F(n)=5
posição, G= posição após a
4 expansão
Cont..
Avaliações
151 99
80 178
380 193
Aradea Rinnicu Fagaras
531 273 277
7 147
98 160
Adicionar Heuristicas
Piteste Craiova
- Via com pontos turisticos
145 306
- O trecho é perigoso tem
0 101 assaltos frenquentes
Bucareste - Quantas portagens em
101 cada trecho
Métodos Greedy Search
Estratégia de Busca Gulosa
Heurísticas
• A distância em linha recta funciona se tem um mapa
cartesiano(localização das cidades na terra)
• Não se aplica a travesia de um avião de um continente a outro, pois a
distância será muito maior por considerar a curvatura da terra.
Cont..
Aplicações
Definição do Apetitoso
• Moedas=(100,50,25,5,1)
• Troco: 75
• Quantidade mímina de moedas: 2 (1 de 50 + 1 de 25)
• 50 -> 75 < 50 – 1 de 50
• 75-50=25
• 50 -> 25 < 50
• 50-25= 25
• 25-> 25 <= 25 – 1 de 25
• 25-25=0
Métodos Gulosa/Busca Heurística
Funcionamento Distância em linha recta
• Permite traçar uma rota, o algoritmo deve
encontrar o melhor caminho para se chegar
a um destino
• Heurística é uma determinada informação
que possui sobre o problema
• GPS já armazena uma tabela de Heurísticas
Guloso
Arad 118
374 75 329
140
253
Timisoara
Zerind
Sibiu
178
380 193
Fagaras
Aradea Rinnicu
0
Bucareste
Factores a Considerar Gulosa
Devem ser adicionadas as Heurísticas o custo associado
a:
Histórico
• Xadrez: desde anos 50, hoje atingiu nível de mestre Damas e Othelo (reversi): hoje, melhor
que qualquer humano
• Gamão: hoje, nível de campeão
• Go, nível amador
• Há pouca previsibilidade
• Ações dos outros agentes
• É preciso tratar as contingências (eventualidades)
• Em ambiente competitivos, há conflito de objetivos
• Ex. negociação em comércio eletrônico . Nestes casos, temos “Busca contra adversário, ou
simplesmente “jogo”
Busca Competitiva
Jogos
Porém desafiador:
• Complexidade
• Xadrez: 35 movimentos possíveis por turno, 25 jogadas por
jogador por partida => 3550 ≅ 10154 (1040 nós distintos)
• Incerteza devido ao outro jogador;
• Problema “contingencial”. Agente deve agir antes de
completar a busca
Busca Competitiva
Jogos
Porém desafiador:
• Complexidade
• Xadrez: 35 movimentos possíveis por turno, 25 jogadas por
jogador por partida => 3550 ≅ 10154 (1040 nós distintos)
• Incerteza devido ao outro jogador;
• Problema “contingencial”. Agente deve agir antes de
completar a busca
Busca Competitiva
Formulado e Resolvendo Problema
• Estado inicial: posições do tabuleiro + de quem é a vez
• Estado final: posições em que o jogo acaba
• Operadores: jogadas legais para um dado estado da partida
• Função de utilidade (objetivo ou payoff): valor numérico para os
estados finais (pontuação)
• Xadrez = +1, 0, -1;
Procedimento Minimax
• Jogos para 2 jogadores são mais complicados que quebra cabeças
simples
• Existência de um oponente hostil
• Movimentos imprevisíveis
• Consideraremos inicialmente jogos:
• Cujo espaço de estados seja suficientemente pequeno para se realizar
uma busca exaustiva
• Buscamos: espaço de movimentos possíveis e movimentos contrários
do componente
Busca Competitiva
Espaço
• Em espaços que podem ser exaustivamente buscados a dificuldade
está em levar em conta as ações do adversário
• Um modo simples de lidar com isso é Assumir que o adversário usa o
mesmo conhecimento sobre o espaço de estados que você
• Aplicar esse conhecimento num esforço consistente para vencer o
jogo
• Minimax usa esta suposição
Procedimento Minimax
• Adversários no jogo são chamados de MIN e MAX
• MAX – jogador que tenta vencer, ou MAXimizar sua vantagem
• MIN – adversário que tenta MINimizar o escore de MAX (ao maximizar
as chances de que ele
• próprio ganhe)
• Assume-se que:
• MIN usa a mesma informação
• Sempre tenta mover para um estado que é pior para MAX
Busca Competitiva
Implementação
• Cada nível no espaço de busca é rotulado, de acordo com quem está
realizando o movimento naquele ponto do jogo
• No exemplo seguinte MIN realiza o primeiro movimento
• Nós folhas tem valor 0 ou 1 dependo se representa uma vitória para
MAX ou para MIN
• Valores são propagados ascendentemente de acordo com a regra:
• Se estado pai é um nó MAX atribua-lhe valor máximo entre os seus
filhos
• Se o pai é um nó MIN, atribua-lhe o valor mínimo entre seus filhos
• Valores atribuídos desta forma a cada estado indica o valor do melhor
estado que este jogador pode alcançar (assumindo que o adversário
jogue como o previsto pelo algoritmo)
Passos
x x x x
x
x 0 Min
x 0 x 0 x
0 x 0 0 x 0
0 0 x 0
-1 -1
Max
x x 0 x x x 0 x x x x 0 x 0
x 0 x 0 0 x 0 x 0 0 x 0 x x 0 x
0 x 0 0 x 0 0 x 0 0 x 0 0 x 0 0 x 0
-1 +1 0 +1 0
+1
x x x x 0 x x x x x 0 x
x 0 0 x 0 x x 0 0 x 0 x Min
0 x 0 0 x 0 0 x 0 0 x 0
+1 0 +1 0
0 (Max)
Exemplo Jogo da Velha
-7
-10
1 (Min) -7
10
2 (Max) -10 5 -7
3 (Min) 10 5 -10 5 -ꝏ -7
4 (Max)
10 +ꝏ 5 -10 7 5 -ꝏ -7 -5
Representação de Conhecimento
RC
• O papel em IA é o de reduzir problemas de acção
inteligente a problemas de busca
Definições
• Conjunto de frase em uma linguagem formal para a
qual foram definidas uma semântica e um conjunto de
regras de inferência capazes de gerar novas frase a
partir das sentenças disponíveis;
• Conjunto de convenções sobre como descrever uma
classe de objectos “ Uma descrição faz uso das
convenções de uma representação para descrever um
objeto em particular.” Todas as representações
possibilitar representar: objectos, atributos e seus
relacionamentos
Questões
Resumo
Representações
Desejáveis
Base de Dados
Frames
Scripts
Redes Semánticas
Algoritmos Genéticos
Restrições
Regras de Produção
Árvores de Decisão
Ontologias
Redes Casuais
Redes Neurais
Texto Clínico
Devantagens
• Ambígua, redundante, sintaxes e semántica não são claras o
suficiente
pessoa
• pessoa
• registo = { nome : máximo 20 caracteres
• idade : 3 digitos no intervalo entre 000-120
• sexo : masculino ou femenino
• estado civil : casado, solteiro, solteiro, divorciado, viúvo, noivo
• primeiros nomes dos filhos : até 10 nomes cada com máximo até
15 caracters
• }
•.
Representação de uma Instância
Instância
João Jorge 025 João Jorge
Masculino
025 Idade Nome
Masculino Sexo
Casado P Primeiros nomes do filho
Nando
Ana
Nando Casado
Teresa Nando
Ana
- Apenas Aspectos simples podem ser representados (dados)
- Entidades e Relações
- Reacção=Lookup
Representação Tabela
Características
• Indexam as declarações pelas entidades que
descrevem;
• Facilitam a descrição de propriedades de relações;
• Originaram os conceitos da programação orientada a
objectos;
• Facilitam a visualização directa dos conceitos e dos
relacionamentos entre eles.
Aplicações
Aplicações
• Modelagem de conhecimento;
• Mapas Conceituais;
• Processamento da linguagem natural,
• Raciocínio por abstração;
• Programação orientada a objetos.
Pessoa
Exemplo
Instância -de
Tem_idade
Roda
28 Maria Motor
Parte_de Parte_de
Estacionado
tem-_dono
Av.5
Automóvel Carroceria
Carro1 Parte_de
tem-_KM Instância -de
Branco Veículo
Representação Redes Semánticas
Exemplo RS simples
Relações
Ako (a-kind-of): relações entre classes
é-um (is-a): relações entre classes e instâncias – uma entidade pertence a uma classe
mais alta ou uma categoria de objetos.
tem-um (has-a): identifica características ou atributos das entidades
parte-de (part-of): identifica características ou atributos das entidades
variados: identifica características gerais
Representação Redes Semánticas
Exemplo 2
Mobilia
Ako
Pessoa Couro
Cadeira É-um
É-um Estofamento
É-um
Dono
Cadeira
Ana Assento
_X
Tem-um
Cor
Preta
Representação Redes Semánticas
Exemplo Planta
Tem É-uma
Raizes
Folhas Fábrica
Representação Redes Semánticas
Exemplo Planta
Or
Planta É-um Ser Planta É-um
1 Vivo 2 Edifício
Tem
É-uma
Tem
Raizes
Fabricam
Fábrica
Folhas Bens
Lugar
Representação Redes Semánticas
Exemplo RS simples
faz
Animal Comer
Passáro
Mamífero
tem
Ako
Cão Pêlos
Representação Redes Semánticas
Transitividade
Ferramenta Exploratória
Maria Azul
Ako
Passáro
Mamífero
Ako tem
Cão Pêlos
Detectar Instâncias
Instance-of
Maria
Instace-of cor
Carro C2 Azul
azul
Instace-of
C1 Preto
cor
possuidor
Eu C1 e C2 são instâncias particulares,
Carro é um conceito
Cont..
Instance-of
João
Instace-of É-um
Carro
Carro1 Veículo
cor
Preto Roda Meios_Trasp
Exemplo
Móvel
É-um É-parte
Pessoa Cadeira Assento
É-um Dono É-um
Cor
Ana Cadeira-X Preta
Estofado Meios_Trasp
Preto Couro
Conceito= Cadeira
Herança= É- parte e É-um
Transitividade Cadeira-X- Móvel
Língua Natural
Exemplo
Dar
Agente É-um
João Deu Livro-X
Objecto
É-um
Pode Ser
É –Regulado pela
Potencial
Potencial de
de Acção
Membrana
Pode Ser É -Um
É -Um
Potencial Potencial
de Acção de Acção Processo
Sinal de Electro
Informação Químico
Apresenta
Processo Processo
Electro Electro
Químico Químico
Lógica
É_UM(Potencial_de_Membrana,Processo_EletroQuímico)
É_UM(Potencial_de_Ação,Sinal_de_Informação)
É_REGULADO_PELA(Potencial_de_Membrana,Bomba_Metabó
lica)
Representação Redes Semánticas
Vantagens
• Representação Natural
• Oferece uma visão global do problema representado
Desvantagem
• isa(tanque, componente)
• parede(tanque, blocos_de_concreto)
• parede(tanque, blocos_de_concreto)<- isa(X, tanque)
• Conteúdo (X, água) <- isa(X, tanque)
• isa(X, tanque) ← isa(X, tanque-domo)
RC- Frames
Definição
tem Pêlos
RC- Frames
Características
Está Comer
Mamífero
Passáro É-um
É-um
Tem Pêlos
Cão
É-um
Expansão- Frames
Frame Cão
Cão
É um Mamífero
Slotes
Nome Valores
Cão
É um Mamífero
Nome Rex
Classe Banheiro
SubClasse SubClasse
Script
História
• Scripts (Schank e Abelson 1977) são uma especialização
de frames projectados para manipular situações além
de objectos
• Numa rede semântica ou em frames, nós são objectos,
e os links entre objetos representam uma gama de
relacionamentos
• Em scripts, os nós são eventos, e os links entre eles são
simplesmente causais isto é, um evento provoca o
próximo
• Um script é como um script cinematográfico precisamos
considerar vários elementos quando o projectamos
Aplicações
Usados
• Contar histórias sobre uma seqüência de eventos
• Responder questões tais como “O que acontece se o
bife do freguês estiver queimado?”
• Seqüência dos eventos levem a alguma decisão
• Inferências em determinadas situações
Script Básico
Gorjeta
Quebra de um Script
Quebra
Esperar por
Estacionar o Entrar no uma mesa
carro Ler o menu :::
Restaurante
Ir até a
Mesa
Exemplo de Script
Restaurante
Script Ir ao Cinema
Paradigma
•Introdução
Lógico
• Caracteristicas
• Aplicação
Prolog • Base de
Conhecimento
Paradigmas de Programação
Introdução
Prolog
Apredizado de Máquina
• campo de estudo que dá aos
Samuel computadores a habilidade de
(1959) aprender sem terem sido
programados para tal
Dados Saída
Programação
Modelo Tradicional
Dados Modelo
Apredizado de
Saídas Máquina
Programação Tradicional
Dados Saída
Programação
Modelo Tradicional
Cálculo de Imposto de Renda:
Modelo
- Classe em função do salário
Dados de entrada
- NIF
- Salário
Saída
- Imposto
Apredizado de Máquina
A máquina aprende por sí
Dados Modelo
Apredizado de
Saídas Máquina
Lógica Invertida – O algoritmo aprende a partir dos dados e
de saídas esperadas
- Sistema anti fraude
- Não é perciso programar todas as regras de anti-
fraude
- Basta pegar os dados de saída e gerará um modelo
que classifica o que é fraude e o que não é
Obs: Aprende as regras e a saída será o modelo
Apredizado Supervisionado
Analisa os dados de treino e produz uma função inferida que
será utilizada para analisar novos exemplos
Span
Classificador
Span
Span
Span
Classificação
Processo
• De categorizar um determinado conjunto de dados em
classes.
• No exemplo da classificação de e-mails como spam,
teríamos um exemplo de classificação binária, no qual o
modelo através dos dados fornecidos, precisaria gerar
como resposta se o e-mail é spam ou não.
Algoritmos
• KNN
• Naive Bayes
• Logistic Regression
• Support Vector Machines
• Decision Trees
Regressão
Modelos
Modelo de Regressão
Uma variável dependente Modelo de
Regressão Duas ou mais variáveis
• dependentes
Simples
Múltiplos
Algoritmos
• Linear Regression
• Polynomial Regression
• Logistic Regression
• Principal Components Regression (PCR)
Classificador de Maça
Reconhecimento de Maça
Fala
Reconhecimento de Maça
Imagem
PLN Maça
Algoritmos
AM não
Supervisionado
Redução de Dimensionalidade
• Quando envolve grande número de recursos. Ajudam a
eliminar overfitting de forma a preservar a integridade dos
dados
Apredizado por Reforço
Bom comportamento recebe reforço, mal comportamento
castigo
Aplicações
Diagnóstico Médico
• Reconhecimento de doenças (modelos 3D para prever a
posição exacta de lesões cérebro tumor)
• Reconhecimento de padrões para identificar cancro de
pulmão , pele, etc.
Detecção de Fraude Online
• Detectar anomalias nas transacções.
• Baseado no histórico mensal das suas transacções em caso
de um valor maior . O sistema envia uma notificação para o
banco e a operação coloca a transacção em espera
Sistema de Recomendações
• Histórico com base nas compras anteriores
Reconhecimento de Fala
• Assistentes de voz
Métodos de Apredizado por Reforço
underfitted overfitted
Mineração de Dados
Fundamentos
Ferramentas Weeka
Mineração de Dados
Fundamentos
8
7
6
5
4
3
2
1
1 2 3 4 5 6 7 8 9 10
Comprimento do Abdômem
Problema de Classificação
Cada um desses objectos
10
de dados é chamado de
9 exemplar …
Comprimento das antenas
8 - Exemplo (de
treinamento)
7
- Instância
6 - Tupla
4
3
2
1
1 2 3 4 5 6 7 8 9 10
Comprimento do Abdômem
Problema de Pombo
8 1.5
De que classe é o objecto ?
4.5 7
Espaços Dimensionais
maiores
Classificador Linear Simples
3D
Acurâcia
imperfeita
Classificador
Quadrático
Classificador Linear Simples
Classificador Vizinhos mais Próximos
K- Nearest Neighbor
https://meet.google.com/wak-mnse-mtn- Meet
Frequência
Data 3/11
Conteúdo a Avaliar
Agentes Inteligentes
Algoritmos de Busca ( BFS,DFS, A* e Busca Gulosa)
Redes Semânticas
https://meet.google.com/wak-mnse-mtn- Meet