Escolar Documentos
Profissional Documentos
Cultura Documentos
Nota importante: agentes reflexos podem ser agentes racionais porque podem
estar definidos para dar a resposta mais eficiente possível de forma
automatizada (segundo indicação da professora) – têm programadas todas as
opções possíveis e conseguem escolher a melhor ação relativamente ao que
pretendem.
Função de agente – é a função que determinado agente tem. Ex.: um agente que recebe
uma localização A e uma localização B e retorna o caminho a tomar entre A e B.
Programa de agente – é a implementação da função de agente. Podem existir vários
programas de agente para uma função de agente. Pegando no exemplo de cima: o
programa de agente 1 pode implementar a função de agente procurando o caminho que
apanhe mais paragens. Já o programa de agente 2 pode também implementar a função
de agente e procurar o caminho que é mais rápido (menos tempo).
Ambiente
É o meio em que os agentes estão inseridos e com o qual vão interagir e efetuar ações.
Podem ser:
• Parcialmente observáveis: o agente não tem informação total do ambiente e
necessita de estimar internamente o estado do restante ambiente. É o contrário de
um ambiente totalmente observável. Nos ambientes parcialmente observáveis, o
agente necessita de ter memória.
• Estocástico – uma ação pode ter múltiplos resultados diferentes e com
probabilidades também elas diferentes. É o contrário de um ambiente
determinístico, em que uma ação tem apenas um resultado garantido de acontecer.
Nos ambientes estocásticos, o agente necessita de estar preparado para
contingências.
• Multiagente – o ambiente é impactado por múltiplos agentes. Por esse motivo, o
agente precisa de randomizar as suas ações para não ser previsível.
• Estático – se o ambiente nunca se alterar. É o contrário de ambiente dinâmico,
em que o ambiente se modifica à medida que o agente vai atuando. Nos ambientes
estáticos, o agente tem mais tempo para computar uma decisão racional.
• Físicas conhecidas – quando o agente conhece a física do ambiente e pode usá-
la de imediato para atuar. Caso não tenha físicas conhecidas, é necessário haver
exploração do agente para ele saber como pode atuar no ambiente (atuar
deliberadamente para saber quais são os resultados).
• Discretos – um ambiente é considerado discreto quando o seu conjunto de
resultados possível está bem definido.
Exemplos:
Ambientes de agente único:
• Pacman (se os fantasmas seguirem sempre caminhos fixos. Caso contrário é
multiagente)
• Palavras cruzadas (o jogador não precisa de randomizar os seus atos)
• Robot que tira bolachas deformadas de uma linha
Ambiente estático:
• Palavras cruzadas
Ambiente discreto:
• Pedra-papel-tesoura
• Palavras cruzadas
O custo do BFS é o inverso do DFS, porque um é LIFO (DFS) e o outro é FIFO (BFS).
Assim, Cij (DFS) = -Cij (BFS) ou vice-versa
Em termos gerais, as três estratégias de procura são similares, variando apenas a forma
de expansão dos nós filhos.
• É uma estratégia de pesquisa que procura expandir os nós cujo valor heurístico irá
ter o menor custo para o caminho total até ao objetivo.
• No fundo funciona de forma semelhante ao UCS, em que tem em conta o valor
mais baixo até ao objetivo, mas avalia o caminho através da soma dos valores
heurísticos do caminho.
Admissibilidade e consistência
O custo total estimado para um dado estado corresponde ao custo até ao estado
anterior + o custo estimado para o estado pretendido.
Admissibilidade
O critério de admissibilidade define que o custo estimado para alcançar o objetivo através
de heurísticas não deve ser negativo e deve ser sempre inferior ao custo efetivo total para
chegar ao objetivo.
Em termos matemáticos, sendo h(n) o valor estimado e h*(n) o custo efetivo, teremos
a seguinte regra para garantir o critério de admissibilidade:
Quando a heurística do A* é constante (pode ser visto como h(n)=1, h(n)=2, … em que
todos os caminhos são estimados como tendo o mesmo valor) e não é cumprido o critério
de admissibilidade (não se garante que o custo estimado é positivo e menor ou igual que
o custo total), o A* transforma-se numa lógica BFS porque tem de ser feita a expansão
dos nós camada a camada.
Consistência
• Jogos de vídeo
• Movimento de robots
• Reconhecimento de voz
• Traduções automáticas
Dominância
Feedforward:
Feedforward é um tipo de rede neural artificial que não possui ciclos ou conexões
recorrentes. Ela processa as informações da camada de entrada para a camada de saída
sem retroalimentação.
Algoritmo de Back-Propagation:
O Perceptron é um modelo básico de rede neural composto por uma única camada de
neurônios, chamada camada de saída.
Cada neurônio recebe entradas ponderadas e aplica uma função de ativação para produzir
uma saída.
Ele pode aprender a ajustar os pesos das entradas e o limiar de ativação para melhorar a
precisão da classificação.
Uma rede neural multicamadas, é composta por várias camadas de neurônios, incluindo
uma camada de entrada, uma ou mais camadas ocultas e uma camada de saída.
Cada neurônio de uma camada está conectado a todos os neurônios da camada anterior
e da camada seguinte por meio de pesos ajustáveis.
1)
Explicação:
3)
1. Pode haver mais de um programa de agente que implemente uma dada função de
agente? Dê um exemplo ou mostre que não é possível.
2. Existem funções de agente que não podem ser implementadas por qualquer
programa de agente?
Resposta: Utilizaria o algoritmo BFS, uma vez que faria uma análise em camada de todos
os pontos para garantir que todo o pó era apanhado. Faria sentido verificar os estados
repetidos para garantir que não voltava a aspirar sítios em que já havia passado.
b) Aplique o algoritmo escolhido para computar uma sequência ótima de ações para
um mundo 3x3 cujo estado inicial tem pó nos três quadrados de cima e o agente
começa no centro.
5) Um espaço de estados finito conduz a uma árvore de busca finita? E no caso de um
espaço de estados finito que é uma árvore? Poderia ser mais preciso em definir que tipos
de espaços de estados levam a árvores de busca finitas?
1. Colorir um mapa plano usando apenas quatro cores, de tal modo que não haja duas
regiões adjacentes com a mesma cor.
Resposta:
Teste de objetivo: Todas as regiões pintadas sem nenhuma cor adjacente igual?
Função-sucessor: Gerar uma nova cor para pintar a próxima região. Se cor for igual a
alguma adjacente, gerar nova cor diferente. Caso contrário pintar com cor gerada.
Função de custo: Dado que não existe custo atribuído explicitamente para nenhuma
ação, assume-se o custo de 1. Logo a função de custo total será 1 * o n.º total de ações
efetuadas.
2. Um macaco com um metro de altura está numa sala em que algumas bananas
estão presas no teto, a 2.5 metros de altura. Ele gostaria de alcançar as bananas.
A sala contém duas máquinas empilháveis, móveis e escaláveis, com um metro de
altura cada.
Resposta:
Função sucessor: o macaco consegue apanhar uma banana? Se sim, apanhar a banana
e voltar para o chão. Se não, empilhar máquinas até que a altura das máquinas mais a
dele seja o suficiente para apanhar a banana pretendida.
Função de custo: Dado que não existem custos explícitos no enunciado, assume-se o
custo de cada ação como sendo 1. Logo será 1 * o n.º de ações efetuadas
7) De que modo é que a aplicação de inteligência artificial nas empresas, nomeadamente
nas PME, pode contribuir para a proteção de dados e infraestruturas digitais?
Como é que a utilização de uma função heurística pode melhorar a eficiência de busca em
largura (BFS) ou da busca em profundidade (DFS), e qual é o papel da heurística na
tomada de decisões de expansão de nós?
Resposta:
Resposta:
Por sua vez, o algoritmo BFS, embora também seja um algoritmo de busca não informada,
acaba por ter uma lógica de funcionamento diferente, sendo do tipo FIFO (first in, first
out), efetua uma análise camada a camada, avaliando os nós que se encontram ao mesmo
nível antes de analisar o nível seguinte. Por sua vez, o BFS procura encontrar o caminho
mais curto para um dado objetivo.
No que respeita às situações em que o DFS é mais adequado, pode ser utilizado em
situações cujo objetivo esteja mais profundo na árvore de procura e em que se pretenda
obter um maior número de estados/nós até o alcançar. Ainda assim é necessário ter
cuidado, uma vez que uma quantidade demasiado elevada de níveis podem tornar o DFS
pouco eficiente em termos de tempo devido à profundidade a que terá de ir. Ainda assim,
contrasta com o BFS, em que a sua aplicação é mais adequada para casos em que a
solução se encontra nos níveis mais próximos à origem e o que se pretende é o caminho
mais curto para o objetivo.
Resposta:
Sendo o BFS e o DFS algoritmos de busca não informada, eles não têm conhecimento
relativo à estrutura em que irão atuar. Assim, tanto a presença de ciclos como a
profundidade da árvore de busca e a distribuição dos nós pode influenciar a execução dos
algoritmos.
4) Analise como a arquitetura de uma rede neural pode ser projetada para realizar
tarefas de classificação ou regressão? Quais são os componentes essenciais da rede
neural nesse contexto [3V]
Resposta:
Resposta:
As heurísticas são funções que permitem estimar o custo de determinada ação ou caminho
pode envolver em termos de processamento. Assim, uma boa heurística pode fazer com
que o algoritmo consiga de forma rápida e eficiente optar por ramos de busca que possam
ser mais promissores na obtenção do objetivo que outros. Contudo, é importante que a
heurística seja de qualidade e esteja adequada. Para isso, contribuem os critérios de
admissibilidade e consistência.
Garantindo uma boa heurística, os algoritmos de procura acabam por tirar diversos
proveitos na fase de processamento e de procura. O facto de serem otimizadas as escolhas
relativamente à procura em ramos que parecem ser mais promissores que outros, acaba
por trazer benefícios no tempo de procura, pois não se faz uma procura cega, mas sim
guiada em estimativas de custo. Também ao nível dos recursos acaba por ser mais
eficiente, pois pode poupar-se memória no armazenamento de quantidades de estados
que podem nem sequer ser relevantes para a resolução do problema pretendido.
Resposta:
É necessário então desenvolver uma função heurística adequada. Deverá ser feito um
equilíbrio entre a exploração de novas informações e a utilização de informações já
conhecidas para melhorar a sua resposta. O não equilíbrio pode levar a tempos elevados
de procura ou a soluções não ótimas devido à não exploração de informação adicional para
além da conhecida.
Após a implementação das primeiras versões das funções heurísticas, é necessário treiná-
las para que possam familiarizar-se e otimizar-se em termos de processamento da
informação. A utilização de um conjunto de dados alargado e variado permitirá às funções
heurísticas serem capazes de otimizar a sua capacidade de resposta. Isto servirá também
para avaliar e validar a capacidade de resposta das funções.
Em situações em que a precisão da resposta pode ser algo crucial para o desenvolvimento
de uma tarefa, deve-se admitir um tempo de processamento computacional mais elevado,
que permita às funções aprimorar e avaliar de forma mais detalhada e cuidada o resultado
a devolver. No caso de situações em que a precisão não necessita de ser efetivamente
pormenorizada, pode ser diminuído o tempo de processamento em detrimento da
precisão. Para este trade-off, pode também ser relevante o hardware disponível e os
recursos financeiros envolvidos, uma vez que tanto a precisão como o tempo de
processamento podem ser melhorados caso equipamento como memórias, processador,
discos rígidos, entre outros, sejam mais potentes. Ainda assim, os recursos são finitos e é
necessário avaliar o que é efetivamente relevante no contexto do problema, não
esquecendo de que toda a escrita das funções deve ser o mais otimizada possível,
prevendo a avaliação de grandes volumes de dados e mantendo a capacidade de ser
escalável.
Exame 14:00
Resposta:
<Explicação DFS> + tem a limitação de poder entrar em loops ou de ser muito demorado
quando existem muitos níveis de profundidade para avaliação conjunto de dados é infinito,
aumentando os recursos consumidos e o tempo de execução. Assim, a busca em
profundidade limitada trata-se de uma implementação do DFS em que é imposta uma
limitação no número de níveis de profundidade a que o algoritmo de busca pode chegar.
Tem as vantagens de diminuir o tempo de processamento, de necessitar de menos
recursos computacionais e de não entrar em loop em caso de árvores de busca infinitas.
Contudo, apresenta como desvantagens a possibilidade de não encontrar nenhum
resultado mesmo que este exista, de não apresentar o resultado com o maior número de
nós possível e de não ser completo, uma vez que com a limitação imposta pode não
processar todas as hipóteses possíveis.
Resposta:
Este algoritmo é considerado ótimo e eficiente, uma vez que combina a análise do custo
com o tempo de execução, tudo isto devido à utilização de heurísticas e do modo de
funcionamento do BFS. O A* atua sobre a camada em que se encontra, aplicando uma
função heurística a cada nó desse nível por forma a decidir qual o nó seguinte que irá
expandir. O nó a expandir será aquele cujo custo estimado somado ao custo efetivo do
caminho já percorrido até ao estado atual seja o menor possível. Esta análise ocorre
camada a camada conforme o comportamento do BFS, utilizando a heurística para otimizar
o caminho a percorrer, deixando de lado nós que aparentem ser menos relevantes e menos
propícios a levar ao objetivo.
Para que este comportamento funcione, é necessário que a heurística seja boa, ou seja,
tem de ser admissível (o custo total estimado tem de ser maior que zero e não pode ser
superior ao custo efetivo do caminho até ao objetivo), tem de ser consistente (o custo de
mudança de estado somado ao custo total do caminho tem de ser consistente com o valor
total efetivo) e tem de haver uma dominância (uma solução tem de prevalecer sobre as
restantes).
3) Explique o conceito de rede neural e como pode ser implementada por uma função
de avaliação (Heuristica) para melhorar o desempenho de algoritmo de busca como
o "Uniform Cost Search"?
Resposta:
Rede neural consiste num modelo computacional que tem como intuito simular o cérebro
humano. Trata-se de um conjunto de camadas a que se dá o nome de neurónios que
funcionam como mecanismos de processamento de informação. Normalmente, existe uma
camada de entrada, camadas de processamento (ou camadas ocultas) e uma camada de
saída. As camadas de processamento são denominadas de neurónios e estão interligadas
entre si. Processam os dados de entrada e geram outputs que são enviados para os
neurónios interligados. Cada neurónio tem um peso na rede neural que significa a sua
relevância para o resultado final. Tal como no cérebro humano, estas redes neurais
necessitam de treino, que permite otimizar a capacidade de processamento e os resultados
obtidos, existindo para isso funções de custo (que avaliam o resultado obtido face ao
resultado efetivo) e mecanismos de back propagation, que permitem ajustar os pesos de
cada neurónio e o seu impacto na rede.
Resposta:
Um agente artificial consiste numa entidade que irá impactar o ambiente em que está
inserido de alguma forma. O seu impacto é definido através da função do agente, no qual
está definido o impacto que agente irá ter e a forma como o irá ter. Contudo, para agir, o
agente e a função de agente devem estar incluídas num programa de agente. Este
programa de agente é responsável por interpretar os inputs recebidos do ambiente,
processá-los e identificar qual a ação a efetuar. Com base nesse processamento, dá
indicação ao agente, fazendo com que este atue de acordo com a sua função.
Resposta:
Tanto o BFS como o DFS são algoritmos de busca não informada, ou seja, não têm
conhecimento do ambiente em que estão inseridos nem a localização do objetivo. Ambos
efetuam a sua procura através da avaliação de nós de forma cega, ou seja, sem avaliação
de custos ou pesos. No caso do DFS, trata-se de uma verificação em profundidade,
utilizando uma lógica LIFO (last in, first out) em que o são explorados os ramos da árvore
de busca na procura do caminho até ao objetivo que consiga expandir o maior número de
nós possível. Por sua vez, o BFS tem um funcionamento diferente, organizando os nós em
FIFO (first in, first out), ele faz uma avaliação dos nós camada a camada, sendo certo que
encontra uma solução no caso desta existir e que esta é a mais curta. Em termos de
eficiência e otimização, nenhum dos dois é eficiente nem ótimo, uma vez que não olham
a custos e os seus tempos de execução podem ser bastante demorados consoante o
número de ramos e a densidade de nós existente. Excecionalmente, o BFS pode ser ótimo
nos casos em que os custos de expansão são constantes, iguais e não negativos.
Resposta:
A utilização de heurística é mais vantajosa na busca em largura (BFS), devido à sua forma
de funcionamento, uma vez que a procura ocorre camada a camada, a utilização de uma
função heurística que consiga ordenar os nós em cada camada para que seja expandido
aquele que aparente ser ótimo em lugar de avaliar todos os nós da camada sem qualquer
organização particular. No DFS, a utilização de heurísticas acaba por não ser tão benéfico,
uma vez que a aplicação de heurísticas iria definir a ordem com que os ramos seriam
expandidos em profundidade, mas o número de níveis poderia ser tão elevado que
acabaria por demorar demasiado tempo e o ganho da função heurística não seria
relevante.
Resposta:
Resposta:
Para este caso, utilizaria o algoritmo A*, uma vez que utilizaria heurística para juntar à
distância já percorrida ao valor estimado de proximidade ao destino do próximo nó a
expandir.