Você está na página 1de 290

Universidade Católica de Angola

Curso de Engenharia Informática

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

• Docente: Henriques Fernando


• Email: fhenrivx@gmail.com
• Sala Virtual: SI
• Código:zdycfpg

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

 Avaliação: Nota Final = 0.4 x Frequência + 0.6 x


Exame Pré-Requisito: Algoritmos e Complexidade;
Métodos Estatísticos
Metodologias
Métodos

•Aulas expositivas através de a


exemplos práticos que
atendem o contexto do estado
da arte actual e discussões.
Sumário
Apresentação e Revisão Conceptual
Introdução à IA

Agentes Inteligentes

Métodos de Busca

Representação de Conhecimento

Paradigma de programação em Lógica

Apredizado de Máquina

Fundamentos de Mineração de Dados


Introdução
Pressuposto de IA

• Existem processos comuns baseando perceção e pensamento. Estes


processos podem ser compreendidos e estudados cientificamente.
• É completamente irrelevante para a teória da IA quem (ou o quê)
"percebe" ou "pensa" - homem ou computador. Isso é um detalhe de
implementação..

Disciplina

• Estuda dos processos que possibilitam aos computadores realizar tarefas


para as quais, no momento, as pessoas são mais aptas.“E. Rich
• objeticvo fundamental é realizar sistemas computacionais capazes de
exteriorizar comportamentos operacionais semelhantes aos humanos em
situações estereótipadas.
• As técnicas de programação de pesquisa não deterministicas utilizadas,
baseiam-se, pelo menos parcialmente, em Linguagens declarativas, sendo
essencialmentalmente relacionais, baseadas na lógica ou funcionais.
Existem ferramentas (“Tools”) incluindo algoritmos de inspiração
estatística (frequencista ou não) para extração de conhecimento baseados
em dados
Cont..
Pressuposto de IA

• Conhecimento(Mais do que dados);


• Lógica e outros paradigmas (Mais do que algoritmos);
• Engenharia (Além da Ciência);

Objectivos

• Aprender novos métodos de resolução de problemas;


• Utilizar técnicas na realização de sistemas computacionais;
• Realizar diferentes programas para pesquisar soluções

Síntese

• Aprender novas formas de resolução de problemas (por


vezes complexos), que requerem conhecimento
Cont...
Intersecção

• Interseção com Ciências da Computação e C. cognitivas ,


Neurociências, sociologia, economia e eletrônica

Aspectos Técnicos e Científicos

• Domínios de Programação, Algoritmos, Teoria de


Probabilidade, Estatística, Análise Sistêmica, percepção e
Interpretação de dados e outros ramos de engenharia

Síntese

• Aprender novas formas de resolução de problemas (por


vezes complexos), que requerem conhecimento
Definições
Patrick Winston: ex-director do Lab. de IA do M.I.T

• Estudo de ideias que, implementadas no


computador, lhes permitam realizar os mesmos
objectivos que fazem as pessoas parecer
inteligentes".
• “Tenta que os computadores sejam mais úteis
e ao mesmo tempo estuda os princípios que
tornam a inteligência possível"

Comentário

• Ambígua ( contém o definido);


• Verdade de "Lapalice" (computadores mais
úteis).
Cont..
N. Nilsson ex-director do Stanford Research Institut; Stanford
Robotics Lab.
• O campo IA tem como pressuposto que existem
processos comuns baseando percepção e pensamento e
que estes processos podem ser compreendidos e
estudados
• Cientificamente. Além disso é completamente
irrelevante para a teoria da IA quem (ou o quê)
"percebe" ou "pensa" – homem ou computador. Isso é
um detalhe de implementação..."

Comentário

• polémico. A IA desviou-se, durante algum tempo deste


paradigma para se tornar mais realista, mais
independente do funcionamento da mente humana.
• Actualidade: Retorno aos fundamentos
Cont..
N. Nilsson ex-director do Stanford Research Institut; Stanford
Robotics Lab.
• O campo IA tem como pressuposto que existem
processos comuns baseando percepção e pensamento e
que estes processos podem ser compreendidos e
estudados
• Cientificamente. Além disso é completamente
irrelevante para a teoria da IA quem (ou o quê)
"percebe" ou "pensa" – homem ou computador. Isso é
um detalhe de implementação..."

Comentário

• polémico. A IA desviou-se, durante algum tempo deste


paradigma para se tornar mais realista, mais
independente do funcionamento da mente humana.
• Actualidade: Retorno aos fundamentos
Cont..
Rich

• "A IA é o estudo dos processos que


possibilitam aos computadores realizar
tarefas para as quais, no momento, as
pessoas são mais aptas.“

Comentário

• Vaga. Incompleta. Mas aproximativa da


verdade na sua simplicidade
História de IA
Quebra do Código Enigma
• 1950- Piper “Jogo de Imitação” As máquinas podem pensar?”
• Propós o modelo mental (teste de turing) - Pessoas conversando via chat,
depois de um tempo de diálogo entre perguntas e respostas, se a pessoa não
dasse conta que está a conversar com uma máquina. Então significa que a
máquina foi capaz de imitar o comportamento humano.

1956 - Coferência (The Dorthmont Summer Recharch on Inteligence


artificial)
• Organizada (John Macccarner, Minsk, Rossester e Sheellor)- Para designar
a Cibernética.
• Concluíram que no futuro o computador seria apenas uma interface e tudo
seria comandado por voz.
• Década de 70, 80 e 90 a época de euforia passou;
• Não existe IA geral
• Máquina da IBM, ganhou o campão mundial de xadres – Processo de
computação por força bruta (vários cálculos, probabilidade das jogadas),
mais não aprendia novas jogadas, hoje é possível
História de IA
Períodos - Primeiros Passos (1943-1956)

• Modelo matemático de um neurónio por Warren McCulloch e Walter Pitts


1943)

1943 – 1956 - Clássicos


• Regra de Donald Hebb para aprendizado de neurônios (1949)
• Implementação de modelos neurais por Marvin Minsky (1950)
• “Computing Machinery and Intelligence”, Allan Turing (1950) – Artigo
famoso

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)

• Não é minha intenção surpreender ou chocar vocês, mas o que eu


posso dizer é que actualmente existem no mundo máquinas que
pensam, que aprendem e que criam.
• Além disso, a habilidade dessas máquinas de realizar tarefas está
crescendo tão rápido que, em um futuro visível, a quantidade de
problemas que elas resolveram será comparável com a quantidade
com que a mente humana tem se ocupado.”
Romântico
Visão
• Restrito ao ambiente académico na década de 1970
• Entusiasmo da fase anterior foi revisto
• Primeiros programas tratavam apenas de instâncias simples de
problemas genéricos E.g., provar teoremas simples
• Resolver problemas complexos não era uma questão somente de mais
hardware e memória
• Limitações básicas existentes nos modelos mais bem sucedidos E.g.,
Perceptrons (Minski e Papert, 1969)
• 1980 - programa parte menos importante, valorização da análise formal da
metodologia, semântica bem fundamentada.
• Passagem da IA para a “vida adulta”: primeiros sistemas especialistas, com
desempenho intelectual equivalente ao de um ser humano adulto
• Sistemas para resolução de problemas mais específicos usando
conhecimento do domínio
• Fase dos Sistemas Especialistas
• Dendral (1969) – Classificação de estrutura molecular a partir de dados
de espectrômetro
• Mycin (1976) – Diagnóstico de infecções sanguíneas
• Novas perspectivas de aplicações comerciais e industriais
Consolidação
1980 …. Consolidação

• Aplicação intensiva de sistemas especialistas na


indústria
• Retorno das Redes Neurais
• Redes Multilayer Perceptron e o algoritmo de Back
Propagation (Rumelhart, Hinton 1986)
• Inteligência Artificial consolidada como área de
conhecimento cientifico
1980 …. Consolidação
Consolidação
• IA passa a ser vista como um produto comercializável
• Comercialização de ferramentas para a construção
de sistemas especialistas
• Actualmente as principais áreas de pesquisa em IA
são: sistemas especialistas, aprendizagem,
tratamento de informação imperfeita, visão
computacional, robótica, controle inteligente, IA
distribuída, modelagem cognitiva, arquitecturas para
sistemas inteligentes, processamento de língua
natural.
• Além das linhas conexionista e simbólica, observa-se
hoje o crescimento de uma nova linha de pesquisa,
baseada na observação de mecanismos evolutivos
encontrados na natureza tão como auto-organização
e comportamento evolutivo. Nesta linha um dos
modelos mais conhecidos são algoritmos genéticos.
Cont..
GO

• Algoritmo que ganhou o maior jogador de Gool, jogo mais


complexo- para cada jogada criava uma serie de probabilidades
e aprendia novas jogadas.

Obs.

• Obs: Não existe IA geral àquela que tem o mesmo


comportamento que humano e consegue se replicar para
melhorar cada vez mais. Pensa-se que a salvação é a
computação quantica, porém ainda não se sabe como se
encaixará na IA
• Exemplo não existe em tarefas cognitivas. Não há programas
que te ajudam a encontrar vacinas contra uma doença. Ex.
coronavirus. Os modelos espqcificos devem ser treinados para
resolver problemas especificos
Outros Conceitos
Estudo e construção de sistemas computacionais
inteligentes
• Sistemas Inteligentes

Sistemas que pensam e agem racionalmente

• Em IA são modelados como agentes inteligentes

Estudo das Coputações que tornam possivel, perceber, raciocinar e agir


(Wiscon)

O ramo da Ciência da Computação que estuda e se ocupa da automação do


omportamento inteligente”

Mas o que é inteligência? O que é comportamento inteligente? (somos


capazes de reconhecê-lo, mas não de defini-lo com precisão)
Cont..

Estudo e construção de sistemas computacionais inteligentes

A definição completa do que seja Inteligência Artificial depende da


definição do que seja inteligência.

• 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

• Modelos computacionais para o estudo da mente racional

Agir- Máquinas que realização funções requerendo inteligência

• Estudar processos computacionais que simulam acção inteligente

Humanos

• Sistemas que pesam como humanos


• Sistemas que agem como 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)

Novas experiencias e novas formas de interação


• Interface por voz (alexa- amazon, Siri- Apple, Home- Google)-
comando por voz e recebe a informação por texto
• Netflix- entende o comportamento e recomenda filmes e capas
especificas
Utilização de IA Envolve
Saber representar o conhecimento e utilizar
métodos que o manipulam

Conhecer os métodos que façam as


máquinas aprenderem de maneira autonóma

Conhecer as aplicações mais importantes de IA


Adordagens - IA
Baseada em Conhecimentos

• Baseada em regras (SE)


• Esforço em mapear os conhecimento dos
especialistas (ex. médicos)
• IA que foi óptima mas está ultrapassada
• Vários If, condições e a máquina não era capaz de
aprender

Aprendizado Estátistico

• Utilização de Métodos estatísticos (Machinig


Learning)
Programação
Dados e Programação
Modelos Tradicional Saídas

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

• Proposições e emprego de ideias


• Representação de conhecimento
• Utilização e construção de sistemas que explicam
vários tipos de IA

Engenharia

• Resolução de problemas do Mundo real para


representação de conhecimento
• Emprego de conhecimentos e criação de sistemas
computacionais
Exemplos de Capacidades - IA
1- Sistemas
• Sistemas inteligentes podem ajudar especialistas a
resolver problemas difíceis de análise
• Sistemas inteligentes podem aprender através de
exemplos
• Sistemas inteligentes podem resolver questões de
linguagem natural usando dados estruturados e
texto livre.

2 Dispositivos
• Sistemas inteligentes podem ajudar especialistas a
projectar novos dispositivos
Paradigmas de Programação - IA
Prolog

LISP

• Há aplicações de LISP nos domínios do


• processamento simbólico e de conhecimento (IA),
• processamento numérico (MACLISP)

POP-11

• Linguagem interpretada, com raízes de Lisp e Algol

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

• Algoritmos sequênciais (passo a passo)


• Dados e controlo embebido em código procedimental
• Linguagens de programação imperativas

IA

• Mecanismo de Inferência + conhecimento/aprendizado


• Separação entre conhecimento declarativo e código
• Linguagens de programação de alto nível
• Utiliza metáfora de sistemas naturais (neurônio,
evolução, memória, sociedade, língua…)
Classificação de Sistemas Inteligentes
Sistemas Simbólicos

• Conhecimento é representados por


sistemas simbólicos e separado da
máquina de inferência

Sistemas sub-simbólicos

• Representa o conhecimento na própria


estrutura, integrado ao mecanismo de
raciocínio
Cont..
Sistemas 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

Programador Algoritmo Mecanismo Base de Aquisição de


passo-a-passo de Raciocínio Conheciment Conheciment
especializado Genérico o Heurístico o

Utilizador Interface
Explicação do
Raciocínio
Dados
Especialista

Dados Explicações

Fonte Adaptada: Silva(2018)


Utilizador
Arquitectura de Sistemas
Aprendizagem Utilização

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

Fonte Adaptada: Silva(2018)


Agentes Inteligentes
Agente
• Um agente é qualquer objecto que pode
perceber seu ambiente através de sensores e
agir sobre este ambiente através de actuadores.

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)

• Executa uma determinada tarefa empregando


informação extraída de seu ambiente para agir
de forma adequada no sentido de completar
sua tarefa de modo bem sucedido.
• O agente deve ser capaz de adaptar-se
dinamicamente às modificações ocorridas no
ambiente”.
Percepções
Percepções e Acções
• Entradas perceptivas do agente em qualquer
momento
Sequência de Percepções
• história completa de tudo o que o agente já
percebeu
Escolha de uma acção
• pode depender da sequência inteira de percepção
até o momento
Função Agente
• mapeamento de qualquer sequência possível de
percepções para uma ação
• Tabela muito grande. Na verdade infinita. A menos
que se tenha um limite para o comprimento da
seqüência de percepções
Estrutura Geral

O programa de agente é uma implementação concreta da


arquitectura do agente para produzir f (função de agente)
agente = arquitetura + programa
Exemplo Aspirador de Pó
Percepção

• local e conteúdo, por exemplo, [A, sujo]


• Ações: Direita, Esquerda, Sugar, NoOp

Tabela parcial de uma função de agente simples


• Sequência de Percepções Ação
• [A, limpo] Direita
• [A, sujo] Aspirar
• [B, limpo] Esquerda
• [B, sujo] Aspirar
• [A, limpo] [A, limpo] Direita
• [A, limpo] [A, sujo] Aspirar
• ...
• [A, limpo] [A, limpo] [A, limpo] Direita
• [A, limpo] [A, limpo] [A, sujo] Aspirar
Como devem Agir
Agente Racional

• Um agente racional é aquele que faz tudo certo


• Mas como saber se a sua ação é a correta?
• Ação correta é aquela que leva o agente ao
maior sucesso
• Mas precisamos de uma forma para “medir” o
sucesso
• Medidas de desempenho (MD) ->critérios para
se medir o sucesso do comportamento do
agente
Como devem Agir
Exemplo de Medidas de Desempenho-
Agente Limpa Sala

• MD1: quantidade de lixo retiradas X horas de


trabalho
• MD2: quantidade de lixo retiradas X horas de
trabalho descontadas a energia gasta e o nível
de ruído produzido

Como e quando medir o desempenho? (passo a


passo,resultado ??)
Racionalidade
Factores

• A medida de desempenho que define o grau de


sucesso.
• O conhecimento anterior que o agente tem
sobre o ambiente.
• Que ações o agente pode realizar.
• O histórico da percepção do agente, i.e., tudo
que já foi percebido pelo agente.
• Estes 4 factores nos levam a definição de
racionalidade ideal:
Agente Racional

Ideal

• Para cada sequência de percepção possível, um


agente racional ideal deve saber se sua ação
maximizará sua medida de desempenho,
baseado na evidência de sua sequência de
percepção e no conhecimento que ele traz
consigo.
Aspirador de Pó

• MD: 1 pt para cada quadrado limpo em cada


unidade de tempo, ao longo de 1.000 períodos
• Conhece a “geografia” do ambiente, mas não
sabe onde tem sujeira e nem a posição inicial.
• Quadrados limpos permanecem limpos e aspirar
limpa o quadrado actual
• As acções Esquerda e Direita movem o agente
nesta direções; exceto quando isto leva o agente
para fora do ambiente (fica parado)
• Acções disponíveis: Esquerda, Direita, Aspirar,
NoOP (não faz nada)
• O agente percebe: a sua posição e se nessa
posição existe sujeira
Como os Agentes devem Agir

• Racionalidade x Onisciência são diferentes


• Onisciência : poder saber os resultados de suas
acções antecipadamente e com precisão
• Impossível de se atingir na realidade
• Racionalidade: maximiza o desempenho
esperado
• Perfeição: maximiza o desempenho real
• Exemplo: Ao atravessar uma rua...
• Não podemos condenar um agente que falha
por não levar em conta algo que ele não pode
perceber ou por uma ação que ele não é capaz
de tomar
Como os Agentes devem Agir

• Ex. agente que atravessa a rua sem olhar não é


racional
• A acção correcta seria olhar porque maximiza o
desempenho
• Colecta de informações:
• A realização de acções com a finalidade de
modificar percepções futuras é uma parte
importante da racionalidade
• Também pode ser a realização de acções para a
exploração de um ambiente desconhecido
Apredizagem

• O agente pode ter algum conhecimento anterior


• Ele também pode ganhar experiência e codificar
e ampliar este conhecimento
• Se o ambiente é previamente conhecido:
• O agente não precisa aprender ou perceber
• Somente agir de forma correta
• Mas este tipo de agente se torna muito frágil
• Ex: do besouro e da vespa
Agente bem sucedido

• Dividem a tarefa de calcular a função do agente


em três períodos:
• Na fase de projeto – cálculos feitos pelo
projetista
• Na fase de deliberação sobre a próxima ação a
ser executada –cálculos feitos pelo agente
• Na fase de aprendizagem a partir de
experiências – cálculos feitos pelo agente para
decidir como modificar o seu comportamento
Arquitectura vs. Programa
Arquitectura

• Como é que agente irá agir fisicamente


• Exemplo um taxi autônomo
• Percebe que há uma curva a ser feita a 60 KM/h e está
a 240 KM/h em cima da curva, a acção a tomar é
diminuir a velocidade . Quanto em velocidade
precisará diminuir para fazer a curva. O programa
numa hora dirá frea.

Programa

• Programa ( estruturais condicionais (if, else), tabelas,


percepções etc.). O sensor deve saber o mínimo
permitido para fazer a curva e arquitetura tem que
frear, se não tiver freio
Exemplos de Agentes
Carro
• Ex. Carro da frente quando frea, o carro de traz
também frea, poderá verificar a distância através, de
lazer, camara

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

A sequência de acções causa uma sequência de


mudança de estados do ambiente

Agente Racional depente


• Medidas de desempenho
• Sequência de Percepções
• Do que ele sabe sobre o ambiente (Histórico)
• Das acções que pode realizar
Conhecimento
Programa=Agente Racional
Entidade de Software que age no ambiente de
acordo com os princípios de racionalidade

Precisa ter Conhecimento sobre

• Quais são as suas propriedades relevantes ao mundo


• Como o mundo evolui
• Como identificar os estados desejáveis do mundo
• Quais são as conseqüências das suas acções no
mundo
• Como medir o sucesso das suas acções
• Como avaliar os seus próprios conhecimentos
Representação e Uso de Conhecimento
Raciocínio

• Processo de construção de novas frases a partir de


outras frases
• Deve-se assegurar que o raciocínio é plausível

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

Mapeamento ideial Percepção-


Acção
• Tabela de acções que o agente toma em resposta as
sequências de percepções
• Cada mapeamento descreve um tipo diferente de
agente
• Mapeamentos ideias descrevem agentes ideiais
• É possivel especificar um mapeamentosem enumeração
exaustiva
Algoritmo Básico

função agenteSimples (percepção) retorna ação


estático:memória(a memória do agente sobre o mundo)

memória ← atualizaMemória (memória, percepção)


acção ← escolhe_a_MelhorAção(memória)
memória ← actualizaMemória (memória, acção)
retorna acção
Arquitectura Básica de um 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

O programa de agente implementa a função de agente, sendo executado em


algum tipo de dispositivo de computação com sensores e atuadores físicos –
esse conjunto é denominado arquitetura

Agente= Arquitectura+ programa

Em geral a arquitetura torna as percepções dos sensores disponíveis para o


programa, executa o programa e alimenta as opções de ação do programa
para os atuadores à medidas que eles são gerados
Arquitectura Tabela
Memoriza as percepções e na sequencia realiza acções

Agente Sensor

Ambiente
Percepção

Ambiente
Tabela
Percepções Acções

Actuador
Acção

Tabela de Xadres= 35100 entradas

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:

• Tabelas de raízes quadradas utilizadas por engenheiros (dec. 70)

• Substituídas por um programa de 5 linhas que corresponde ao

• 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

Agente Reactivo Simples


•Reage através de instruções que recebe. Escolhe as suas acções com base na percepção actual. Não pensa no futuro não sabe
onde vai
•programa muito pequeno em relação a tabela que representa a função agente
•descartamos o histórico de percepções. Pouca autonomia. Porque se o quadro está sujo, não precisamos verificar a posição

Reactivo Baseado em Modelos


•Percepção parcial do mundo
•Podem acompanhar as mudanças do mundo através da representação interna do estado do mundo
•Percepções isoladas não fornecem acesso ao estado completo do mundo
•Existem estados do mundo diferente que fornecem a mesma percepção
•Mantem informação interna para distinguir estados do mundo aparentemente iguais

Agente Baseado em Objectivos


•Mapeamento entre percepções e acçõespode ser complexo ou pode haver mudanças no ambiente ou na medida de
desempenho então o reactivo não funciona
•Contém conhecimento explicito necessário para a escolha de acções pode requerer busca e planeamento podem ser feitas
projecções de acções para prever se a meta é satisfeita. Sabe onde vai pois, persegue um objectivo. Os objectivos ajudam a
organizar o comportamento

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

• Através da Instrução que ele recebe executa uma


determinada acção .
• A entrada pode ser processada para estabelecer uma
condição
• Exemplo: Processar a imagem do agente motorista de
táxi e verificar que “o carro da frente está freando”
• Ao invés de ter uma tabela com cada mudança que
ocorre na imagem, “interpretamos” a condição da
imagem

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

• Através da Instrução que ele recebe executa uma


determinada acção .

Carro

• Ex. Carro da frente quando frea, o carro de traz


também frea, poderá verificar a distancia atraves, de
lazer, camara

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

Descrição abstrata do estado do mundo a partir


da percepção
Regra Condição_Acção
Se carro_da_frente_está_freando então
começar_a_frear
• Conexões nos seres humanos:
• Aprendidas: dirigir
• Reflexos inatos: tirar a mão do fogo, ou piscar
quando algo se aproxima do olho
• Projecto do agente:
• Construir um interpretador de uso geral para
regras de condição-ação
• Criar um conjuntos de regras para cada
ambiente de tarefa
Estrutura do Agente
Simples
agente = arquitetura + programa

Agente
Sensor
Percepção
(Entradas)

Ambiente
Qual é a aparência
actual do Mundo ?

Regras condição Que acção devo


Acção? executar agora?

Acção(Saídas)
Actuador
Exemplo Aspirador de Pó
A B

C
D

Percepções: Local e conteúdo


Acções: Esquerda, directa, Aspirar, Noop (Não fazer nehuma
operação)
Vantagens e Limitações
Regras condição-ação: representação inteligível, modular
e eficiente ex. se velocidade > 60 então multar

Não pode armazenar uma sequência perceptiva, pouca


autónomia

Funcionará somente se a decisão correta puder ser


tomada com base apenas na percepção actual

Ambiente completamente observável

Até mesmo uma pequena impossibilidade de observação


pode causar sérias dificuldades
Exemplo de Problemas
Um agente presa que percebesse um
predador, iniciaria um comportamento
de fuga, virando as costas para o
predador, entretanto, já não o veria
mais e pararia de fugir. Seria
interessante que esse agente pudesse
saber ou estimar quando o predador
realmente ficou para trás e não mais
representa um perigo iminente
Agente Reactivo Baseado em Modelo
Utiliza o modelo do mundo, tem conhecimento de como o
mundo funciona
Como lidar com a possibilidade de observação parcial. O
gente deve controlar as partes do mundo que ele não pode
ver agora.

• Ex.: a presa ao dar as costas para o predador,


deve continuar fugindo...
O agente deve manter um estado interno que dependa do
histórico de percepções e reflicta os aspectos não observados
no estado actual.

• Dois tipos de conhecimento são necessários para


actualizar o estado interno do agente (modelo
do mundo):
Modelo do Mundo
Como o ambiente evoluí independente do agente .
• O facto de o predador não estar no campo de
visão da presa durante a fuga não garante a
ausência de perigo.

Como as ações do próprio agente afetam o mundo


• Se o agente presa continuar o processo de
fuga durante um certo tempo ele poderá
estimar quando o predador realmente
ficou para
Algoritmo
function agente_reflexo_estado(percepção):açcão
static: estado (uma descrição do estado atual do mundo)
regras (um conjunto regra condição-ação)
estado ← actualiza_estado (estado,percepção)
regra ← casamento_regra ( estado,regras)
açcão ← açcão_regra[regra]
return acção
Actualiza_Estado –> é responsável por criar uma nova
descrição do estado interna
Agente Reactivo Baseado
em Modelos
Agente

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

Modelo de como a poera evolui ao longo do tempo


Limitacões
Conhecer os estados do ambiente não é suficiente para tomar
uma boa decisão

Exemplo

• o agente Motorista de Táxi chega a um cruzamento com


três caminhos, qual direção tomar?
• Simplesmente reagir: mas existem três reações possíveis
• Examinar o modelo de mundo: não ajuda a decidir qual o
caminho
• A decisão depende de onde o táxi está tentando chegar
(objetivo)
Agente Baseado em Objectivos
O agente precisa de algum tipo de informação sobre o seu
objectivo

Objetivos descrevem situações desejáveis. Ex: estar no destino


Combinando informações sobre:

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

Objectivos Que acção devo


executar agora?
Acção

Actuador
Ex. minimizar a poera no ambiente
Limitações
É mais flexivel

• Agente reflexo -> açcões pré-compiladas (condição-açcão)


• Agente p/ objetivo -> pode alterar somente o objectivo sem
necessidade de se reescrever as regras de comportamento

Permite modificações

• O objectivo não garante o melhor comportamento para o


agente, apenas a distinção entre estados objectivos e não
objectivos
• Ex: Algumas alternativas de planeamento de açcões futuras
podem ser mais rápidas, seguras ou baratas que outras
Agente Baseado em utilidade
Sozinhos os objetivos não são suficientes para gerar um
comportamento de alta qualidade.

• Muitas seqüências de açcões levarão o táxi até seu destino, porém


algumas são mais rápidas, seguras e económicas
• Se um estado do mundo é mais desejável que outro, então ele terá
maior utilidade para o agente
• Utilidade é uma função que mapeia um estado para um número real
que representa o grau de satisfação com este estado. A função de
utilidade mede suas preferências entre estados do mundo
• Especificação completa da função de utilidade – decisões racionais em
dois tipos de casos:
• Quando existem objetivos conflitantes (velocidade x segurança) a
função de utilidade especifica o compromisso apropriado
• Quando existem vários objetivos que se deseja alcançar e nenhum
deles pode ser atingido com certeza – ponderar a importância dos
objectivos
Agente Utilidade
Agente
Sensor
Percepção

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

• Responsável pela seleção de ações externas


• Recebe percepções e decide sobre ações

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

• Porque pensar a inteligência/racionalidade como


propriedade de um único indivíduo?
• Não existe inteligência ... Em um time de futebol? ; Em
um formigueiro?; Em uma empresa (ex. correios)?
• Na sociedade?
• Solução: IA Distribuída
• Agentes simples que juntos resolvem problemas
complexos tendo ou não consciência do objetivo global
• Proposta por Marvin Minsky e em franca expansão...
• o próprio ambiente pode ser modelado como um
agente
IA Distribuida
Tipos de Sistemas

• Resolução distribuída de problemas


• Consciência do objetivo global e divisão clara de
tarefas
• Exemplos: Robótica clássica, Busca na Web, Gerência
de sistemas distribuídos, ...
• Sistemas Multi-Agente
• Não há consciência do objecto global e nem divisão
clara de tarefas ex. n-puzzle, futebol de robots,
balaneaceamento de carga, robótica
Questões
Centrais

• 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

Através de Definição de Médidas de Desempenho


objectiva e imposta por um observador externo

Quando

Durante a realização das tarefas pelo agente


Percepções e Acções
# Sequência de Acção
Percepções
1 [A, Limpo] Direita
2 [A, Sujo] Aspirar
3 B, Limpo] Esquerda
4 [B, Sujo] Aspirar
5 [A, Limpo] Direita
6 [A, Sujo] Aspirar
… ….

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-ação: representação


inteligível, modular e eficiente
• Mas ainda pode sofrer das mesmas limitações
da tabela
Macamismos de Coordenação
Coordenação Competitiva: a ação resultante num dado
instante é selecionada a partir de uma competição entre os
comportamentos ativos (um vence).
Coordenação Cooperativa: a função de coordenação
produz uma ação resultante para a qual contribuem todos
os comportamentos ativos

Arquitecturas Reactivas para Robots

• Combinam vários tipos diferentes de agentes reativos


simples (também chamados de diferentes
comportamentos reativos )
• Podem realizar tarefas complexas através do
comportamento global dos agentes reativos
Agente Dados
Exemplo de Ambiente Tarefa
Acções Objectivos Ambiente
Perceptivos
Diagnóstico Sintomas, Perguntar, realizar Maximizar a saúde Paciente,
Médico resultados ou prescrever do paciente, consultório,
de exames, . exames, ... minimizar custos Laboratório, ...
Análise de Pixels imprimir uma classificar Imagens de
imagens de classificação corretamente satélite
satélite
Tutorial de Palavras Imprimir exercícios, Melhorar o Conjunto de
português digitadas sugestões, desempenho do estudantes
correções, ... estudante
Filtro de mensagens Aceitar ou rejeitar Aliviar a carga de Mensagens,
emails mensagens leitura do usuário usuários
Motorista Imagens, brecar, acelerar, Segurança, rapidez, Ruas, pedestres,
de taxi velocímetro, virar, falar com economia, carros, ...
sons passageiro, conforto,...
Músico de Sons, seus e Escolher e tocar Tocar bem, se Músicos,
jazz de outros notas no divertir, agradar público, grades
músicos, andamento de acordes
grades de
acordes
Exemplo Agente Motorista de Taxi
Motorista de taxi:

• Percepção visual: 50 MB/sec -> Tabela de


Consulta para uma hora de carro em movimento:
2^60x60x50M entradas
• Porções da tabela podem ser sumarizadas

Regras Condição-Acção

• Também chamada de regra situação-ação ou


regras de produção ou regras se-então Ex.: Se
carro-em-frente-freia Então inicia-freiar
Exemplo Agente Motorista de Taxi
Tipos Percepção Acção Objectivos Ambiente
Motorista de Cãmeras Virar as rodas, Viagem Estradas,
Taxi controláveis, acelerar, freiar, segura, rápida tráfego de
velocímetro, conversar com e confortável. outros
odômetro, sonar, o passageiro Maximizar veículos,
microfone, GPS lucros. pedestres,
fregueses.

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

Semelhante a agente tabela implica tabelas grande

• ex. xadrez 30^100

Nem sempre é possível, por ignorância ou questão de


tempo, construir a tabela

Não tem autonómia nem flexibilidade


Propriedades do Ambiente
• Sensores permitem acesso completo do estado do ambiente em cada instante (Todos os aspectos relevantes
Observação para a escolha da acção)
Completa • Parcial devido a ruidos ou sensores imprecisos ou parte do estado está ausente nos dados do sensor
ou parcial

• 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

• Agente palavras cruzadas


Único vs.
Multiagen • Agente jogo de Xadres
te
Comparação
Ambiente Observáve Deterministico Episódico Estático Discreto
l (Acesso)
Xadres S S N S S
Motorista de N N N N N
Taxi
Diagnóstico N N N N N
Médico
Análise de S S S S N
Imagens
Ambiente Condução de
Comparação
Palavras Cruzadas Análise de Imagens
Taxi
Observável Parcial Completo Completo
Deterministico Estócastico Deterministico Deterministico
Episódico Sequencial Sequencial Episódico
Estático Dinámico Estático Semi
Discreto Contínuo Discreto Contínuo
Agentes Multiplos Único Único

O tipo do do Agente determina o projecto do agente

O mundo real é parcialmente observável, estocástico, sequencial, dinámico,


contínuo e multiagente
Medidas de DesempenhoCritério que define o grau de sucesso de um agente
na realização de uma dada tarefa
Tipo de Medidas de Ambiente Actuadores Sensores
Agente Desempenho
Aspirador de  Quantidade de  Sala
Pó Sujeira Aspirada  Quarto
 Gasto de Tempo
 Quantidade de
Barrulho Gerado
 Gasto de Energia

Carro  Não teve nenhum • Estrada  Acelerador,  Distância,


Autónomo acidente, • Garagem  Freio,  Velocidade
 Não estragou no  Abre a porta,  Temperatur
caminho,  fecha a a interna
 Passageiro saiu porta,  Iluminação
de A e chegou em  liga ar  GPS, etc
B condicionad
o
Medidas de Desempenho
Tipo de Medidas de Ambiente Actuadores Sensores
Agente Desempenho
Carro Viajem estrada Direcção Camara
Autónomo Segura
Dentro da lei Cliente Acelador Sonar
Confortavel Piões Travões GPS
Sinal Hodometro
Busina Sensor do
Motor
Visor
Classes de tarefas da Aplicações
Classes Problemas Abordadas
Interpretação Inferindo descrições das situações por observações
Predição Inferindo prováveis conseqüência de dadas situações
Diagnóstico Inferência de mal funcionamento do sistema por observações
Projecto Configurando objetos sobre restrição
Planeamento Desenvolvimento de plano(s) para realização de objetivo(s),
meta(s)
Monitoramento monitorando objectos e detectando excepções
Exemplo de Aplicações
Aplicações
Agricultura Processamento de imagem
Negócios e Direito,
finanças
Química Indústria
Comunicações Matemática
Comércio Medicina, comércio electrónico
Computação Meteorologia
Educação Militar
Eletrônica Sistemas de potência
Engenharia Ciência
Meio ambiente Tecnologia espacial
Geologia Transportes, ...
Internet e redes Correio eletrônico, gestão de sistemas de redes
Recuperação de Acesso e gestão de informação
dados
Aplicações em Computação
Aplicações Exemplos Agentes
Internet Busca e Recuperação de informação; Extração de
Informação; Entrega Off-line; Notificadores;Correctores
Ensino a distância; Chat; Comércio Eletrônico
etc.

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

• Modelar tarefa em termos de ambiente,


• percepções, ações, objetivos e utilidade
• Identificar o tipo de ambiente
• Identificar a arquitetura de agente adequada ao
ambiente e tarefa

Implementação

• o gerador e o simulador de ambientes


componentes do agente (vários tipos de
conhecimento)
• Testar o desempenho com diferentes instâncias do
ambiente
Como Utilizar
Nível de Conhecimento

• modelagem do negócio: classe de problema,


domínio,...
• elicitação: percepções, ações, objetivos, ambiente,
• conhecimento,...

Nível de Formalismo

• análise e projeto: especificar arquitetura, escrever a


base de conhecimento,...

Nível de implementação

• Java, prolog, C...


• o importante são os serviços oferecidos pela
linguagem!
Porque e Quando Utilizar
Tarefas
• Grande complexidade (número, variedade e natureza
das tarefas)
• Não há “solução algorítmica”, mas existe
conhecimento
• Modelagem do comportamento de um ser
inteligente (autonomia, aprendizagem,
conhecimento, etc.)

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;

Agente ideal: escolhe a ação que maximiza sua medida


de desempenho, dada a sequência de percepção;

Agente autônomo: experiência própria ao invés de


depender do conhecimento pré-codificado sobre o
ambiente

Projecto (design) do agente depende do tipo de


informação disponível e usada no processo de decisão;

O projecto apropriado depende da descrição PEAS do


agente
Métodos de Busca
Problemas de Busca
• Modelar um problema de busca consistem em
• Identificar Estado do Mundo
• Actual
• Objectivo
• Definir as transições
• Escolher Algoritmo de Busca

Problema de busca consiste

• Encontrar uma sequência de acções que conduzem do


estado actual ao estado objectivo
Cont..
Questões
• Quantos sites indexados existem na internet?
• Quantas ruas mapeadas existem na Google Maps?
• Quais as possiveis combinações de jogadas num jogo
de xadrez

Os algoritmos de busca responde as perguntas anteriores


• Achar um objecto x numa estrutura Y
• 2008 – Google indexava – 1T de sites – Busca binária
um vector ordenado
• Melhor rota entre duas ruas por exemplo. Dijkastra
• Minimax
Busca Binária
Busca na estrutura de vector
• Lista Telefónica

• A complexidade é da ordem O(n)-Log(n)


Exemplo(vector em forma de Árvore)
14

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

Duas tabelas (Tabela de Nóns não visitados e Tabela de Custos)


• [A B C D E] – Tab_Nóns não visitados
• [A B C D E] Tab- Custos
• 0 ꝏ ꝏ ꝏ ꝏ
• 1 [A B C D E]
B 2 D
• 0 4 2 ꝏ ꝏ
• 2 [A B C D E] 4 3
3 1 4 1
• 0 3 2 6 7 A
• 3 [A B C D E] 2 C E
• 0 3 2 5 6 5
Um nó quando é visitado em seguida é retirada da
lista dos não visitados
Actualização da tabela de custos D não alcança
outro nó e E o seu caminho não torna o trajecto
viável
Métodos de Busca
Busca exaustiva Cega

• Não sabe qual o melhor nó da fronteira a ser expandido = menor custo de


caminho desse nó até um nó final (objectivo)
• Estratégias de Busca (ordem de expansão dos nós): Largura e profundidade
• Direcção de busca: estado inicial-objectivo/objectivo-estado inicial
• Algoritmos BFS e DFS

Busca Heurística- Informada

• Estima qual o melhor nó da fronteira a ser expandido com base em funções


heurísticas conhecimento
• Estratégia de Busca: best first search (Melhor escolha)
• Direção de Busca: idem à busca cega
• Algoritmos: greedy, Search A*

Busca Competitiva

• Algoritmo Minimax
Métodos de Busca
Resolução de problemas através de força bruta

• O programa tenta todas alternativas para resolver o problema

Algoritmo de busca

• Recebe descrição do problema e descrições de operações


elementares

Exemplo de Problema ( 8-Puzzle)

• Estado Incial Estado Final


1 2 3 1 2 3
5 6 4 5 6
4 7 8 7 8
[1,2,3,0,5,6,4,7,8] [1,2,3,4,5,6,7,8,0] Representação através da lista
Operações 8-Puzzle
Opererações

• Mover o espaço em branco para baixo;


• Mover o espaço em branco para cima;
• Mover o espaço em branco para a direita; e
• Mover o espaço em branco para a esquerda.

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

Exempo A procura em profundidade primeiro e a procura em largura primeiro são algoritmos de


força bruta
• Procuram, às cegas, todas as possíveis sequências de operações até encontrar uma solução para
o problema recebido
Resolução de Problemas Reais
Possibilidades ou Alternativas

• Envolve quantidades astronómicas de possibilidades, o que


conduz a tempos de resolução inaceitáveis em muitas
circunstâncias
• necessário guiar a procura de soluções na direção mais
promissora, o que exige conhecimento do domínio do problema.

Best First search (melhor primeiro)

• A busca não é cega. cada decisão que tem de tomar, encaminha-


se para aquela que parecer melhor.
Conceitos Importantes Métodos de Busca
Conceitos

• Estado ( estado inicial ou de partida) e estado final ou


objectivo
• Espaço de estados ou de procura: conjunto de todos os
estados que representam configurações do mundo
relativamente aos aspectos relevantes para o
problema. Puzzle um estado é uma lista de números
[0,1,2,3,4,5,6,7,8]. 9!= 362.880 estados possíveis para o
espaço de procura. 15-Puzzle versão habitual 16!=
20.922.789.888.000 estados (mais do que 20 milhões
de milhões de estados)
Cont.
Operador

• As ações que se podem aplicar aos estados ex. Puzzle:


• Mover o espaço em branco para baixo;
• Mover o espaço em branco para cima;
• Mover o espaço em branco para a direita; e
• Mover o espaço em branco para a esquerda.

Solução

• O algoritmo de procura vai aplicando operações até


que eventualmente encontra um estado final.
Aplicação de sequência de operações até o estado final.
O mesmo problema pode ter várias soluções
Cont.
Duração da procura e comprimento da solução
• tempo e memória gastos na procura da solução, e o
tempo e memória gastos para aplicar a solução
descoberta pelo algoritmo

Geração e Expansão de estados

• Aplica as operações ao estado inicial e gera um


conjunto de estados sucessores, depois escolhe um e
volta aplicar todas operações possíveis a este. O
processo é repetido até encontrar o estado final. Este
processo é chamado de expansão e este gera os
estados
Cont..
Independência do domínio do problema
• Na expansão de um estado os algoritmos explicam as
operações de domínio e poder determinar se um
estado é final. Logo deve incluir dois programas
(expansão e determinador do estado final) ,melhor
primeiro inclui outro programa para avaliar cada estado
quão promissor é (fusão heurística).

Três programas

• Encapsulam todo o domínio do conhecimento do


problema
• Permite que o resto do algoritmo continua totalmente
idempendente do domínio da da aplicação
Exemplo
Expansão e Geração
E
B
H
A C F

D G I

A é o primeiro expandido e gerado a sua expansão gera os


sucessores B,C,D. A cada expansão gera sucessores
Exercício
Expansão e Geração

E
B
H
A C F

D G I

Explica a expansão caso fossem utilizados algoritmos de busca em


profundidade e em largura primeiro
Resolução Puzzle
Estado inicial Estado final

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

Resolução possível a sequência de accções: mover o buraco abaixo, a direita e


repetir a direita
Critérios de Avaliação de Estratégias de Busca
Completitude

• A estratégia sempre encontra uma solução quando existe alguma?

Custo de Tempo

• Quanto tempo gasta para encontrar uma solução?

Custo de Memória

• Quanta memória é necessária para realizar a busca?

Otimalidade/qualidade (optimality):

• A estratégia encontra a melhor solução quando


• existem diferentes soluções?
Medidas de Desempenho de Busca

Desempenho de Algoritmo de Busca

• 1. O algoritmo encontrou alguma solução?


• 2. É uma boa solução? – custo de caminho (qualidade da solução)
• •3. É uma solução computacionalmente barata?– custo da busca
(tempo e memória)

Custo de Total

• Custo do caminho + custo de busca

Espaço de Estado Grande

• compromisso (conflito) entre a melhor solução e a solução mais


barata
N-Puzzle Jogo dos N
Jogo de 8 números:
2 3
• n números dispostos em um
quadrado com uma célula em
branco
1 8 4
• a cada jogada pode-se trocar
número e célula em branco
adjacentes
7 6 5
• Objectivo:rearranjar números
em ordem crescente
1 2 3
4 5 6
7 8
N-Puzzle 2 3 8 4

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

Estados (espaço de estados) = cada possível cidade do mapa

• estado inicial = Bauru Em(Bauru)


• teste de término = estar em São Paulo Em(SaoPaulo)
• operadores = dirigir de uma cidade para outra

Operadores=dirigir de uma cidade para outra

• Dado um estado x, SUCESSOR(x) retorna um conjunto de pares ordenados


(ação, sucessor), em que cada ação é uma das acções
• válidas no estado x, e cada sucessor é um estado que pode ser alcançado a
partir de x aplicando-se a acção.
• Ex.: {(Ir(Bauru, Em(Bauru))}
• Juntos o estado inicial e a função sucessor definem o espaço de estados
• custo do caminho = número de cidades visitadas, distância percorrida,
tempo de viagem, grau de divertimento,etc.
Exemplo Aspirador de Pó
Aspirador de Pó

Estados (espaço de estados) = cada possibilidade do


lado
• estados = as 8 possibilidades ao lado
• estado inicial = qualquer um dos estados

teste de término=verifica se todos os quadrados estão


limpos

Operadores=operadores = (esquerda, direita,


aspirar)

custo da solução = cada passo custa 1, e assim o custo é


o número de passos do caminho
Exemplos
Aplicações
• Jogos ed N-Rainhas
• Jogos de N-Números (Puzzle)
• Criptomoedas
• Torre de Hanoi
• Palavras cruzadas
• Canibais e Missionários

Cálculo de rotas

• rotas em redes de computadores


• Planeamento de ações militares
• sistemas de planeamento de viagens
• planeamento de rotas de aviões
• Caixeiro viajante
• Jogos de computadores (rotas dos personagens)
• Pesquisas na internet ( grafo de nós (páginas) conectadas por links
Alocação(Sheduling)
• Sala de Aulas
Projecto VSLI
• Cell layout (disposição de células na área do chip)
• Channel routing (rota para fios passando por espaços vazios entre as
Cont..
Navegação de Robots

• Generalização do problema da navegação


• Robôs movem-se em espaços contínuos, com um conjunto
(infinito) de possíveis ações e estados – controlar os
movimentos do robô no chão, e de seus braços e pernas
requer espaço multi-dimensional

Montagem de Objectos complexos pelos


robots

• Ordenar a montagem de várias partes dos objectos


Busca Cega
Estratégias para determinar a ordem de ramificação
dos nós:
• 1. Busca em largura (busca em extensão)
• 2. Busca de custo uniforme
• 3. Busca em profundidade
• 4. Busca com aprofundamento iterativo

Direcção de Ramificação

• 1. Do estado inicial para um estado final


• 2. De um estado final para o estado inicial
• 3. Busca bi-direcional
Busca primeiro em Largura e Profundidade

Busca Profundidade Primeiro

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:

• Ordem de ramificação dos nós:


• 1. Nó raiz
• 2. Todos os nós de profundidade 1
• 3. Todos os nós de profundidade 2, etc

Algoritmo

• 1função Busca-em-Largura (problema)


• retorna uma solução ou falha
• Busca-Genérica (problema, Insere-no-Fim)
Cont..
BFS

• Percorrer todos os visinhos do nó actual, antes de passar pelo próximo


no, em cada no checa se é a cidade destino
• Visitar vizinhos dos vizinhos, não visitadas ainda, visita sempre
começa pelo vizinho a esquerda e se não for o objectivo faz o
Backtracking, para visitar os póximos vizinhos do outro no.
• Algoritmo
• Um dicionário com Cidades no mapa ordenado de 1 a 11
• Lista de lista para indicar como está representado o grafo, indicando os
vizinhos de cada non
• A busca implementada é procedurar não recursiva, mais pode ser feita
de forma recursiva
• Crie uma lista que funcionará como uma fila e adiciona o no de partida,
usa o append que equivale a enfileirar
• Retira o no da fila utilizando o método pop(0), para indicar que será
retirado o 1º Elemento
• Temos uma estrutura que guarda a informação se o no já foi visitado ou
não, todos começam com zero para indicar que não foram visitados
ainda
Busca do Espaço_ Estado
Busca do Objectivo

• Uma vez o problema bem formulado... o estado final deve


ser “buscado”
• Em outras palavras, deve-se usar um método de busca para
saber a ordem correcta de aplicação dos operadores que
levará do estado inicial ao final
• Uma vez a busca terminada com sucesso, é só executar a
solução (= conjunto ordenado de operadores a aplicar)

Fronteira do espaço de estados (borda)

• Nós (estados) a serem expandidos no momento. Coleção de


nós que foram gerados mas ainda não expandidos
Algoritmos
Busca do Objectivo

• Selecionar o primeiro nó (estado) da fronteira do espaço de


estados;
• Se a fronteira está vazia, o algoritmo termina com falha
• 2. Testar se o nó é um estado final (solução)
• Se sim, então retornar nó – a busca termina com sucesso
• 3. Gerar um novo conjunto de estados pela aplicação dos
operadores ao estado selecionado; 4. Inserir os nós gerados na
fronteira, de acordo com a estratégia de busca usada, e voltar
para o passo (1).

Obs.

• O algoritmo começa com a fronteira contendo o estado inicial


do problema.
Cont..
A ideia principal é achar caminhos
minimos. Dado um vertice é preciso saber a
sua distância em relação aos outros

• E.x várias caixas de B C D K


água conectadas por
diversos tubos, poderia
querer saber que caixa
está mais próxima da
E F K+1

caixa, suponha que a


rede seja muito grande
Método BFS
Ordem de ramificação dos nós

• 1. Nó raiz
• 2. Todos os nós de profundidade 1
• 3. Todos os nós de profundidade 2, etc.

Algoritmo

• função Busca-em-Largura (problema)


• retorna uma solução ou falha
• Busca-Genérica (problema, Insere-no-Fim)

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

• Sempre encontra a solução mais “rasa” que nem sempre é a


solução de menor custo de caminho, caso os operadores
tenham valores diferentes
• ex. ir para uma cidade D passando por B e C pode ser mais
perto do que passando só por E

Óptima

• Em outras palavras, é óptima se custo de caminho cresce com


a profundidade do nó
• O que ocorre quando todos os operadores têm o mesmo custo
(=1)
Método BFS
Definine o factor de ramificação da árvore de busca
• Número de nós gerados a partir de cada nó (b), ou seja,
número máximo de sucessores de qualquer nó.

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

1 A • Os nós que foram


9 expandidos e não têm
descendentes na
C fronteira podem ser
2 B removidos da
memória, eles são
13 indicados em cor
6 10 G
D E F vermelha.
3 • Supomos que os nós
8 na profundidade 3 não
tem sucessores e que
H I J K L M N O M é o único nó
4 11 14 objectivo
5 7 12 15
Estratégias de Profundidade
Não é completa e tão pouco óptima
• Esta estratégia deve ser evitada quando as árvores geradas são
• muito profundas ou geram caminhos infinitos.

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’={vN(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

Os nós da árvore podem guardar mais informações do que apenas o estado:


• São uma estrutura de dados com 5 componentes:
• 1. O estado correspondente
• 2. O seu nó pai (nó que gerou esse nó)
• 3. O operador aplicado para gerar o nó (a partir do pai)
• 4. A profundidade do nó (número de passos ao longo do caminho, desde o
estado inicial
• 5. O custo do nó (desde a raiz) tradicionalmente denotado por g(n)
Implementação
Implementação
Espaço de estado
• Função-Insere: controla a ordem de inserção de nós na
• fronteira do espaço de estados
• Função Busca-Genérica (problema, Função-Insere)
• retorna uma solução ou falha
• fronteira ← Faz-Fila (Faz-Nó (Estado-Inicial[problema]))
• loop do
• se fronteira está vazia então retorna falha
• nó ← Remove-Primeiro (fronteira)
• se Teste-Término[problema] aplicado a Estado [nó]
• tiver sucesso
• então retorna nó
• fronteira ← Função-Insere (fronteira,
• Operadores[problema])
mD = {
0: 'F',
1: 'MO',
2: 'JU',
3: 'P',
Métodos DFS
5: 'CG',
4: 'N',
7: 'A',
6: 'JP', F
9: 'JP',
8: 'CA',
10: 'R',
11: 'MA'}
grafo = [[1, 2], # vizinho do nó 0
M
[0, 4, 5], # vizinho do nó 1 O
[0, 3], # vizinho do nó 2
[2, 7, 5], # vizinho do nó 3
[1, 6], # vizinho do nó 4
N
[1, 3, 6, 8], # vizinho do nó 5
[4, 5, 10], # vizinho do nó 6
[3, 11], # vizinho do nó 7 J
[5, 10, 11], # vizinho do nó 8
U P CG
[4,5, 10], # vizinho do nó 9 J
[6, 8, 11], # vizinho do nó 10
[7, 8, 10]] # vizinho do nó 11
P
nohsVisitados[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
nohDePartida = 0 C
nohDeChegada = 11 A R
def buscaEmProfundidade(nohDeDepartida, nohDeChegada):
pilha = []
pilha.append(nohDeDepartida) A M
while len( pilha) > 0:
noh = pilha.pop()
A
if nohsVisitados[nohdaVez] = =0:
nohsVisitados[nohdaVez]=1
print(mD[nohdaVez])
if nohdaVez == nohDeChegada:
print('Chegou ao Destino')
break
else:
for noh in grafo[nohdaVez]:
Métodos DFS
Procedimento

• Para cada vertice pertencente ao conjunto de vertices


do grafo G ve o nó adjante , e pega o 1º adjacente , se
não está ainda descoberta colorir com uma cor e passa
para o próximo adjacente dele e repite o procedimento,
da a raiz até a útima folha e depois volta pelos nós
predecessores (volta fazendo a árvore de
predecessores)- do nó que estou a partir de que nó se
chegou nele
• Arestas de árvore. Liga os ancestrais aos seus
dependentes que estão no caminho da busca em
profundidade
• Arestas de <-Retorno: Aresta filho voltando para o pai
• Arestas direita
• Arestas cruzadas
Limitações

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

Fusão de Avaliação (Função Custo)

• 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

• f(1) = g(1)+h(1) = 0+3 = 3, f(2) = g(2)+h(2) = 1+2 = 3, f(3)


= g(3)+h(3) = 1+4 = 5, e f(4) = g(4)+h(4) = 1+4 = 5. f(5)
= g(5)+h(5) = 1+4 = 5.
Exemplo2
Busca Profundidade Primeiro

H(D)=1 H(E)=1 H(F)=0


G(D)=3 G(E)= 9 G(F)=9
F(D)=4 F(E)=10 / 9 1 F(F)=9
6
D E
F
1
H(B)=6
3 H(C)=4 G(B)=5
1 C
G(C)=1 F(B) = 11
H(A)=3
A F(C)=5
G(A)=0 B
F(A) =3 5

A avaliação de um nó depende do caminho percorrido até lá chegar


solução [(A, C), (C, D), (D, E), (E, F)],
Exemplo2
Algoritmo
• 1- Inicializa-se a lista OPEN com o nó inicial, s e com a sua avaliação. Inicializa-se a
lista CLOSED com a lista vazia.
• 2- Se OPEN estiver vazio, terminar com insucesso. Caso contrário, selecionar o nó n
de OPEN cuja avaliação f(n) é a menor. Os empates resolvem-se arbitrariamente,
mas favorecendo sempre os nós objetivo. Remove-se n de OPEN e insere-se em
CLOSED.
• 3 – Se n for um nó objetivo, termina-se com sucesso. Devolve-se o caminho entre s
(o nó inicial) e n.
• 4 – Expande-se o nó n, obtendo os seus sucessores. Qualquer sucessor, s, de n,
juntamente com a sua avaliação, é acrescentado à lista OPEN apenas se ambas as
seguintes condições forem verdadeiras:
• (a) não existir um nó na lista OPEN, correspondente ao mesmo estado que s,
com uma avaliação, f, inferior à avaliação de s; e se
• (b) não existir um nó na lista CLOSED, correspondente ao mesmo estado que
s, com uma avaliação, f, inferior à avaliação de s.

• Sempre que um sucessor de n for acrescentado à lista OPEN, é necessário registar


que o seu nó pai é n (ou alterar o registo, se ele já existir)
• 5 – Voltar ao passo 2.
Métodos A*
A distância em linha recta é a heurística, uma forma
de resolver o problema para ajudar o algoritmo Distância em linha recta

Busca A estrela, algoritmo importante de IA, originou a implementação de GPS,


muito utilizado em jogos, traça a menor rota entre o inimigo e que atira, muito
implementado em Unit,
Utiliza a tabela de Heuristicas vistas na busca golusa
Métodos A*
Arad 118
374 75 329
140 Factores que aumentam o
253 Timisoara custo financeiro
Zerind
Sibiu 447 - Entrar na cidade
449
393 - Pasar por portagem

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

• Estratégia gulosa é aquela usada por um montanhista que decide


caminhar sempre "para cima", na direção de "maior subida"
• Na esperança de assim chegar ao pico mais alto da montanha.
• Escolhe, em cada iteração, o objecto mais "apetitoso" que vê pela
frente
• Utiliza heurísticas (distância em linha recta), metríca muito utilizado
por sistemas de GPS para verificar a menor distância entre dois trechos
• GPS armazena uma tabela com todas as heuristicas para suporte a
decisão
• Os valores são colocados numa estrutura ordenada (i.e Vector)

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

• Traçado de uma rota


• Encontrar o melhor caminho, p.e. ir de uma cidade para outra

Definição do Apetitoso

• É estabelecida a priori, antes da execução do algoritmo


• O objecto escolhido passa a fazer parte da solução que o
algoritmo constrói.
• Toma decisões com base nas informações disponíveis na
iteracção corrente, sem olhar as consequências que essas
decisões terão no futuro
• Jamais se arepende ou volta atrás, as escolhas que faz em cada
interação são definitivas
Cont..
Procedimento

• Sempre escolhe a alternativa mais promissora naquela instante


• Nunca reconsidera essa decisão
• Uma escolha que foi feita nunca é revista
• Nunca há backtracking
• A escolha é feita de acordo com um criterio gulosa- decisão local óptima
• Nem sempre dão soluções óptima

Problema do Troco (troco mínimo)

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

• Trechos com postagem


• Centros de cidade
• Perigo do trecho (Assaltos)
• Pontos turisticos

A adição dos factores as heurísticas podem aumentar o


custo
Busca Competitiva
Problemas de Busca competitiva geralmente conhecidos como jogos

• Compreendem um ambiente multiagente, no qual os objectivos dos


agentes estão em conflitos
• Cada agente deve considerar as acções possíveis dos seus oponentes
• Limite de tempo: o agente tem que tomar uma decisão mesmo que não
seja óptima.
• Em IA os jogos mais comum envolvem dois agentes que enfrentam
agindo alternadamente num ambiente determinístico completamente
observável
• Ao fim a utilidade dos agentes é igual e oposto
• Max e Min
• Max faz o primeiro movimento e depois eles se revesam até terminar
Busca Competitiva
Jogos

• A IA trabalha com um tipo particular de jogo


• Two-player (dois jogadores)
• Turn-taking (alternância de jogadorres)
• Zero-sum (se um ganha, o outro perde)
• Perfect information (observável)

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

Ambientes Multi Agente

• 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

• Aplicações atrativas para métodos IA desde o início.


• Sinônimo de inteligência
• Ações bem definidas e ambiente acessível
• Abstração (representação simplificada de problemas reais)

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

• Aplicações atrativas para métodos IA desde o início.


• Sinônimo de inteligência
• Ações bem definidas e ambiente acessível
• Abstração (representação simplificada de problemas reais)

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

• Gera a árvore inteira até os estados terminais.


• Aplica a função de utilidade nas folhas.
• Propaga os valores dessa função subindo a árvore através do minimax
• Determinar qual o valor que será escolhido por MAX estado que este
jogador pode alcançar (assumindo
Métodos Minimax
x
X: Ganha: +1 x 0
0: Ganha: -1 Max
Empate: 0 0 x 0
0

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

• De que forma o conhecimento pode ser expresso ?


• Como encontrar a linguagem adequada para a representação deste
conhecimento ?
• Como formar uma base de conhecimento suficientemente detalhada e que
represente a compreensão do domínio ?
• Como realizar inferências automáticas, dando acesso tanto ao
conhecimento implícito na base de conhecimento quanto àquele
armazenado explicitamente ( declarativo) ?
• Como o sistema deve proceder na presença de informações incompletas,
incorretas ou de senso comum

Representações

• relações e características de um problema através do uso de expressões da


lógica simbólica (Declarativa) ( Nagao, 90)
• Frames – ferramentas e métodos que descrevem o cérebro humano -
procedimental (Minsky, 90)
• Lógica Matemática (Israel 83)
Caracteriscas em RC

Desejáveis

• Definir explicitamente os objectos e relações;


• Expor restrições naturais (expressar a forma como um
objecto ou relação influencia um(a) outro(a));
• Mostrar objetos e relações juntos, permitindo que as
informações necessárias sejam vistas com uma olhada
rápida;
• Suprimir detalhes irrelevantes (detalhes raramente
utilizados podem ser postos de lado, mas podem ser
obtidos quando necessários)
Boa Representação
Ser

• Transparente, permitindo o entendimento do que está


sendo dito
• Rápida, possibilitando o armazenamento e a
recuperação de informações em tempo curto
• Computável, possibilitando a sua criação, utilizando
um procedimento computacional existente
Composição
Quadro partes

• Léxica: determina que símbolos são permitidos no


vocabulário de representação
• Estrutural: descreve as restrições sobre como os
símbolos podem ser combinados procedural:
especifica como os símbolos podem ser manipulados,
definindo procedimentos de acesso que possibilitam
criar descrições, modificar descrições e responder
questões utilizando descrições
• Semântica: estabelece uma forma de associar
significado às descrições
Formalismo (
Linguagem Natural
) Representação de Conhencimento
Líguagens de

Base de Dados

Frames

Scripts

Redes Semánticas

Algoritmos Genéticos

Restrições

Regras de Produção

Árvores de Decisão

Lógica (Linguagem de Representação Nativa de Prolog)

Ontologias

Redes Casuais

Redes Neurais

Orientação a Objectos e etc.


Representação em Linguagem Natural

Texto Clínico

• Enviada por densidade assimétrica no QSE da mama


esquerda. Esta alteração existe desde 2005 mas a avaliação
ecográfica do exterior sugere a necessidade de biópsia.
Exame mamário com alteração palpável com cerca de 30
mm no QSE da mama esquerda.

Devantagens
• Ambígua, redundante, sintaxes e semántica não são claras o
suficiente

Tecnicamente, representações computacionalmente tratáveis podem ser


equivalentes, só que algumas representações são mais convenientes.
Representação em Base de Dados

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

Representação em tabela Única


Paciente Localização Tamanho Data Classificação
P1 C 0.1 20050403 F,A
P2 C 0.2 20060412 F
P3 9 0.3 20060412 A
P4 19 0.4 20050415 M
…. …. ….
Representação Redes Semánticas
RS- Conjunto de Nóns conectados por arcos

• São grafos rotulados em que os nós representam


conceitos, os arcos as relações semânticas entre os
objectos
• Por exemplo, considere algumas coisas que sabemos
sobre animais
• Animais comem
• Mamíferos e pássaros são animais
• Mamíferos têm pêlos
• Cães são mamíferos
Cont…
Quilan 1966
• o significado poderia ser representado como
relacionamento entre dois objectos.
• Representações mais complicadas tais como frames
são realces desta idéia

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

tem-_Cor é-_um veículo


Zero

Branco Veículo
Representação Redes Semánticas

Exemplo RS simples

está Animal está comer


Animal Comer

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

Planta É-um Ser É-um


Planta Edifício
Vivo
Tem

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

Ako Ako Animal faz comer

Passáro
Mamífero
tem
Ako

Cão Pêlos
Representação Redes Semánticas
Transitividade

• Redes Semânticas são naturalmente transitivas


• Podemos concluir da rede desenvolvida que se “Cão é
um Mamífero” e “Mamífero é um Animal” então “Cão é
um Animal”
• Entretanto, não é possível concluir que: “Cão é um
Pássaro” “Pássaro tem pelos”
Busca em Redes Semânticas
Extração de Informações

• Busca pode ser feita de várias maneiras


• como uma ferramenta explicativa
• para explorar um tópico exaustivamente
• para encontrar o relacionamento entre dois objecto

Ferramenta Exploratória

• Podemos supor que cães comem, e usar busca sobre a rede


para explicar isto (se ele pode)
• Buscando à partir do nó “Cão” , podemos dizer que “Cão é um
Mamífero”, “Mamífero é um
• Animal” e “Animal está a Comer”. É uma explicação para
“cães comem”
Busca Exaustiva
Busca em Largura

• Ajuda a encontrar tudo sobre cães,


• Ex. que são mamíferos”, “tem pelos”, “são animais” e “
comem
Representação Redes Semánticas
Intersecção de Busca
• Se quisermos encontrar se “Cães” e “Pássaros” estão
relacionados, então podemos executar, à partir de
ambos os nós, uma busca em largura (busca
bidirecional)
• A intersecção nos dá uma pista sobre o
relacionamento entre os nós
• sto é chamado ativação distribuída ou intersecção
de busca
• Partindo de “Cão” e “Pássaro” podemos
encontrar que ambos são animais:
Representação Redes Semánticas
Intersecção de Busca

• Tem que diferenciar conceitos de instâncias, senão fica


impossível relacionar deferentes instâncias de um
mesmo conceito
• Exemplo Meu carro é preto
• possuidor cor
• Eu Carro Preto
Representação Redes Semánticas
Intersecção de Busca

• Exemplo Acrescentar o carro da Maria é Azul


• possuidor cor
• Eu Carro Preto

Maria Azul

Animal está Comer

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

O sentido de Instance Of, está invertido


mais é permitido
Transitividade

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

Preto Maria Livro

Instância particulares = deu e livro-x,


Conceito= livro, dar
Representação Redes Semánticas
Função Bomba
Metabólico

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

Exercícios- Constroi uma RS

• Planta é usada em qualquer processo industrial.


Também pode significar o acto de colocar uma
semente ou planta na terra para crescer. O mais
comum é que é uma estrutura viva que não é um
animal, frequentemente com folhas, retira seu
alimento do ar, da água e da terra.
Vantagens de RS

Vantagens

• Representação Natural
• Oferece uma visão global do problema representado

Desvantagem

• O número de nós pode crescer muito para representar ideias simples


• Dificíl representar objectos que não são factos, mais ideias, crenças, tempo
• Representação não estruturada
• Tem sintaxe (nos, arcos e regras de combinação), a semántica não é clara o
suficiente o problema é a falta de distinção entre o intencional(sentido ou
significado) e o extensional(referência ou denotação). P.e. vermelho : todas as
coisas vermelhas (extensional) a propriedade de ser vermelho (intensional)
Implementação Redes Semánticas

Exemplo tanque de água

• 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

• Estruturas de dados estáticas usado para representar


situações estereotipadas bem compreendidas (Minsky, 1975)
• Representa objectos do domínio.
• Uma estructura de dados para colocar o conhecimento
relevante da classe de objectos em vez de distribuir o
conhecimento em forma de regras de fórmulas lógicas.
Mamífero
Objectos do Domínio
É um Animal

tem Pêlos
RC- Frames

Características

• São mais poderosos que RS porque são representações


mais estruturadas
• Tanto Informações como relacionamentos podem ser
especificadas no mesmo frame
• Podem conter procedimentos
• Podem ser presentados no formato gráfico a
semelhança das Redes semánticas
Exemplo de RS como Frame
Exemplo 1
Animal

Está Comer

Mamífero
Passáro É-um
É-um
Tem Pêlos

Cão
É-um
Expansão- Frames

Frame Cão

• O frame “Cão” poderia ser expandido acrescentando-se novos slots e


valores para o frame

Cão
É um Mamífero
Slotes
Nome Valores

Raça Default: Mogrel


Pêlos
Default: Longo
Sexo
Fêmea ou Macho
Cont..
Aspectos Particulares

• Slots são atributos do frame que podem ter valores


particulares
• Valores podem ser um valor
absoluto, um intervalo ou um valor
default
• Um frame genérico, tal como o
frame “Cão”, é uma classe frame
• Uma instância de uma classe frame é
simplesmente um frame com valores
Cont..
Instâncias do Frame Cão - Rex

Cão
É um Mamífero

Nome Rex

Raça Pastor Alemão


Raça
Longo
Sexo
Macho
Frame e Damons
Demons
• Procedimentos que estão dentro de frames são
chamados demons
• Um exemplo de um demon é um procedimento para
calcular a área de um quadrado dado o tamanho de um
dos lados (via valores de slots)
• Assim o valor da área não precisa estar representado e
sim pode ser calculado a partir de outras informações
na instanciação do frame
Quadrado
Quadrado
Tamanho 5
Tamanho
Lado
Lado
Área Área 25
Frame e Herança
Demons

• No exemplo animal/mamífero/cão, o nível mais baixo


herda as propriedades dos níveis superiores. Por
exemplo: Cão tem pêlos, pois eles são mamíferos e
mamíferos têm pêlos;
• Herança é uma característica poderosa de frames,
porque informações podem ser especificadas num nível
mais genérico, evitando-se, assim, redundância
Frame e Objectos
Geralmente

• Objectos na Programação Orientada a Objectos são


muito similares aos frames. Por essa razão, Liguagens
OO são uma boa opção para a implementação de
sistemas de frame
Rede de Cómodos de uma sala
aKo aKo
Comodo Sala_de_estar Sala_de_estar
*Tipo Maria
aKo
Sala_de_estar aKo aKo
Quarto Quarto
Suite
Cozinha aKo Suite Maria
Banheiro
Cozinha aKo Instância
*…….
aKo
Hospede

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

• Scripts são muito similares a frames, são codificados da


mesma forma e são, às vezes, considerados como uma
sub-classe de frames
Construção de Scripts
Análise

• Quais são os papéis dos objectos/pessoas no script


• Quais objectos de cena se relacionam ao script
• Quais são as motivações ou entradas condicionais para
execução do script
• Quais cenas estão para ocorrer
• Em qual ordem elas devem ocorrer
Script

Script Básico

• Antes de projetarmos o script, necessitamos de uma


sequência básica inicial
• Por exemplo, na ida a um restaurante há uma sequência
de eventos que podemos esperar:
Pagar pela
Refeição
Entrar no Pedir Comer :::
Restaurante refeição refeição

Gorjeta
Quebra de um Script

Quebra

• É possível quebrar cada um dos eventos numa série de


sub-eventos. Por exemplo, com relação ao evento
entrar no restaurante, podese esperar:

Esperar por
Estacionar o Entrar no uma mesa
carro Ler o menu :::
Restaurante

Ir até a
Mesa
Exemplo de Script
Restaurante

• Colocando os eventos juntos aos demais elementos,


poderíamos imaginar o script “Restaurante”
assinalando apenas algumas coisas, tais como:
• Papéis: Freguês, garçom, cozinha...
• Objectos de cena: Mesas, cadeiras, garfos, facas, pratos,
copos, garrafas de vinho...
• Entradas condicionais: freguês está faminto; freguês
está vestido inapropriadamente; freguês tem dinheiro..
Exemplo de Script
Restaurante
• Cena1: Entrar
• Estacionar o carro
• Entrar no restaurante
• Esperar por uma mesa
• Ou
• Ir até a mesa
• Ler o menu
• Cena 2- Pedir refeição
• ..

• Resultado: fregues não tem fome, fregues tem menos


dinheiro
Exercícios

Script Ir ao Cinema

• Papéis. Objecto, Condições de entrada, cenas,


Resultados
RC
Paradigma
• Procedimentos – Programação Imperativa
• Lógica- Provador de Teoremas
• Regras- Shells de Sistemas Especialistas
• Classes_Objectos- Redes Semánticas
• Classes_Objectos_Procedimentos- Programação
OO/Frames
• Classes_Objectos_Loógica- Lógicas Descritivas
• Regras_Procedimentos- Sistema de Produção
• Regras_Classes/Objectos_Procedimentos- Sistema de
Produção OO
• Regras_Lógica- Programação em Lógica
• Regras_Classes/Objectos_Lógica- Programação em Lógica
OO
Questões
Como representar Redes Semántica,
Frames e Script em Prolog
Paradigmas de Programação

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

Modelos • Não informamos ao computador os


passos a seguir para que ele aprenda
AM o que precisa, isso porque o
conhecimento é adquirido

• Modelos Estatístico ou matemáticos


reconhecem padrões em dados, criam
Funcionamento a possibilidade de aprenderem com
seus erros e fazem previsões em cima
do que foi aprendido.
Tipos de Aprendizagem
• Subconjunto de IA
As Máquinas Aprendem • Reconhecem padrões nos dados para
sem serem programados aprenderem
para a tarefa • Une uma grande quantidade de dados e
algoritmos para reconhecer padrões
• Adquire informações de relacionamentos
Supervisionado entre entradas e saídas de um sistema, utiliza
conjunto de amostras de treinamento

• consiste em treinar uma máquina a


Não Supervisionado partir de dados que não estão
rotulados e/ou classificados.

• Poucos dados e trabalha-se pelo


Por Reforço método de tentativas e erros (robots e
jogos)
Apredizado de Máquina
• Subconjunto de IA
As Máquinas • Reconhecem padrões nos dados para aprenderem
Apredem • Une uma grande quantidade de dados e algoritmos
para reconhecer padrões

Algoritmos • São os modelos de AM

• Etapa em que os algoritmos aprendem com


os dados
Treinamento • Identifica-se nessa etapa os padrões nos
dos Modelos dados, depois pode-se fazer predições em
dados desconhecidos

• Construir um modelo capaz de fazer tomografia de


um pulmão e dizer se possui ou não um tumor.
Exemplo Para o efeito precisaremos de um número grande
de imagens com e sem tumor
Apredizado de Máquina
A máquina aprende por sí

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

Sistema • Marcar ( fraude, não fraude)


Antifraude

Imagens • Etiquetas (vermelho, verde,


de Frutas amarelo) – Uva. Maça, Laranja
Exemplo
Caixa de Mensagens Inbox

Span

Classificador

Span Directoria de Span

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

• Utilizados quando queremos prever valores,


• por exemplo, prever o preço de uma casa ou o número de
produtos que serão vendidos em determinado mês.

Modelo de Regressão
Uma variável dependente Modelo de
Regressão Duas ou mais variáveis
• dependentes
Simples
Múltiplos

Linear Não Linear


Linear Não Linear
Regressão

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

Obs: Não se pode utilizar modelos de reconhecimento de fala para


imagem ou PLN. Se o reconhecimento de fala for para Inglês não
servirá para português
Apredizado não Supervisionado
Buscam descobrir padrões ocultos que agrupam as
informações de acordo com semelhanças ou diferenças

O algoritmo será responsável por descobrir semelhanças, padrões


ou diferenças que permitam diferenciar cães e gatos
Algoritmos

Algoritmos

AM não
Supervisionado

Clustering Regras de Redução da


Associação Dimensionalidade
Agrupamento
Algoritmos
• Agrupa dados não rotulados com base em suas
semelhanças ou diferenças.
• podem ser subdivididos em agrupamentos exclusivos,
sobrepostos, hierárquicos e probabilístico
Regras de Associação
• Busca descobrir relações que descrevem grandes porções
dos dados.
• A associação é muito utilizada em análises de cestas de
compras, no qual a empresa pode tentar entender relações
de preferências de compras entre os produtos Exemplos (
Apriori, Eclat e FP-Growth).

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

• Marcar ( fraude, não fraude)

• Etiquetas (vermelho, verde,


amarelo) – Uva. Maça, Laranja
REGRESSION

▸ Predict sales revenue increase by type of advertisement


CLASSIFICATION
Separable Unseparable

▸ Given data set of i.i.d. observations of object-labels pairs, estimate


f(object) ↦ label
NEAREST NEIGHBOR REGRESSION
k=1 k=9
NEAREST NEIGHBOR CLASSIFIER
NEAREST NEIGHBOR CLASSIFIER
SETTING THE NUMBER OF NEIGHBORS

underfitted overfitted
Mineração de Dados

Fundamentos

Ferramentas Weeka
Mineração de Dados
Fundamentos

• Data Mining é uma tecnologia que emergiu da


intersecção de três áreas: estatística clássica,
inteligência artificial e aprendizado de máquina.
• É o processo de descobrir informações relevantes,
como padrões, associações, mudanças, anomalias e
estruturas, em grandes quantidades de dados
armazenados em baSE de dados, depósitos de dados
ou outros repositórios de informação.
• Análise inteligente visando manipulação automática
de quantidades imensas de dados
• Larga aplicação nos mais variados ramos da indústria,
comércio, medicina, governo, administração, etc.
• Integra várias técnicas e tecnologias
Mineração de Dados
Fundamentos
• A maioria dos exemplos conhecidos de aplicações de
aprendizado de máquina são sistemas que realizam a
tarefa de classificação.
• Classificação consiste em determinar a que classe um
objeCto pertence dados os valores de um conjunto
de atributos do objecto
Exemplos
• Por exemplo, filtragem de spam: dado o conteúdo de
uma mensagem de email (conjunto de palavras)
decidir se esta mensagem é ou não é spam. Outros
exemplos são detectar se uma operação com cartão
de crédito é fraudulenta ou não, e detectar se um
conjunto de pixels é um rosto ou não
• Treinar um classificador é faze-lo aprender a função
de classificação, a partir de um conjunto de dados
cuja classe de cada objeto é conhecida.
Mineração de Dados
Exemplos
• Banco central dos EUA
• Selecçionou entre seus clientes, aqueles com
menor risco de dar calotes
• Em três anos o banco lucrou 30 milhões de dólares
com a carteira de empréstimos
• Fraldas e cervejas
• Homens casados, entre 25 e 30 anos compravam
fraldas e/ou cervejas às sextas-feiras à tarde
• Wal-Mart
• Optimizou as gôndolas e o consumo cresceu 30%
Problema de Classificação
Definição Informal
• Dada uma colecção de Dados detalhados neste caso
5 exemplos de esperança e 5 de gafanhotos. Decida
a qual tipo de insecto o exemplo não rotulado
pertence
Problema de Classificação
Definição Informal
• Para qualquer domínio de interesse podemos medir
características
• Cor{verde, cinza, verde, etc..}
• Compimento{do abdomem, torax, antenas, pernas}
• Tamanho da mandíbula
• Diâmetro dos orifícios ed respiração

Podemos armazenar as caracteristicas numa BD


• O problema de classificação pode ser
expresso agora da seguinte forma
• Dada uma base de treinamento (Minha
Colecção) prediga o rótulo da classes dos
exemplos ainda não vistos
Problema de Classificação
ID-Insecto Comp_Abdomem Comp_antenas Classe de
Insecto
1 2.7 5.5 Gafanhoto
2 8.0 9.1 Esperança
3 0.9 4.7 Gafanhoto
4 1.1 3.1 Gafanhoto Exemplo
5 5.4 8.5 Esperança não visto

6 2.9 1.9 Gafanhoto


7 6.1 6.6 Esperança
8 0.5 1.0 Gafanhoto
9 8.3 6.6 Esperança
10 8.1 4.7 Esperança
11 5.1 7.0 ?????
Problema de Classificação
10 Azul= esperança
9 Verde= Gafanhoto
Comprimento das antenas

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

De que classe é o objecto ?


Problema de Pombo
Regra

• Se a barra esquerda é menor


do que a da direita, é da
classe A, Senão classe B
Classificador Linear Simples

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

Se o exemplo mais próximo de


um exemplo não visto antes é
uma esperança a classe é
esperança. Senão a classe é
gafanhoto
Referências Bibliográficas
1. 1-Russell, S., Norvig P.; -Artificial Intelligence: A Modern Approach, 3rd Edition,
Prentice Hall, 20102
2. -Palazzo L.; -Introdução à Programação Prolog, Pelotas-Brasil, UCPEL, 1997
3. Luger, G. Artificial Intelligence: Structures and Strategies for Complex ProblemSolving,
Addison-Wesley Pub Co, 20084-
4. Casanova M., Giorno F., Furtado A.;-Programação em lógica e a linguagem Prolog,
PUC-RIO, 2006.
5. Bishop, C. M.;-Pattern Recognition and Machine Learning,Springer, 2006.6-
6. Bittencourt, G.;-Inteligência artificial: ferramentas e teorias,3ª Edição,
Florianópolis,Editora daUFSC, 2006.

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

Você também pode gostar