Avaliação intermediária 01/2023
Orientações gerais
-
Quaisquer hipóteses relevantes devem ser explicitamente formuladas. Faz parte da avaliação a correta interpretação das questões. A clareza e a objetividade das respostas serão consideradas na avaliação.
-
Esta avaliação é individual. Em hipótese alguma você poderá fazer uso de material de colegas.
-
Durante esta avaliação você poderá fazer uso do seu material e de material existente na internet.
Questões
Web crawler
O aplicativo wget
é um web crawler disponível em sistemas operacionais do tipo linux. Com este aplicativo é possível informar uma url
que será a base do crawler. A partir da url
informada, o wget
copia o conteúdo da página, identifica os links que estão nesta página, acessa o conteúdo destes links e copia o contéudo destas páginas de forma recursiva até encontrar um critério de parada. O critério de parada no caso do wget
é a profundidade informada ao executar o comando.
Um código possível para o wget
é apresentado abaixo:
def wget(url, profundidade):
if profundidade > 0:
armazena_conteudo(url)
for nova_pagina in identifica_links(url):
wget(nova_pagina, profundidade-1)
onde:
armazena_conteudo(url)
é uma função que copia o contéudo da página para a máquina local, onde owget
está sendo executado.identifica_links(url)
é uma função que identifica todos os links na página - todas as tagshref
.
Digamos que você precisa fazer o crawler de diversos conteúdos a partir de algumas páginas. Mas antes de fazer isto, você terá que fazer uma estimativa do tamanho de espaço necessário para armazenar todo o conteúdo.
Os tópicos que você terá que armazenar são:
-
esportes: neste caso, você irá partir de uma única
url
e você sabe que todos os documentos que você irá baixar que estão relacionados com estaurl
tem 10 links no seu conteúdo. Você também sabe que a profundidade configurada nowget
para esportes será de 5. E que cada documento documento tem o tamanho de 500 KBytes. Depois de executado owget
para esportes, quantos documentos (arquivos diferentes) serão armazenados no seu computador? Qual é o espaço que eles irão ocupar em GB? -
cotidiano: neste caso, você irá partir de uma única
url
e você sabe que todos os documentos que você irá baixar que estão relacionados com estaurl
tem 3 links no seu conteúdo. Você também sabe que a profundidade configurada nowget
para o tema cotidiano será de 8. E que cada documento documento tem o tamanho de 800 KBytes. Depois de executado owget
para cotidiano, quantos documentos (arquivos diferentes) serão armazenados no seu computador? Qual é o espaço que eles irão ocupar em GB? -
Qual é a quantidade total de arquivos armazenados no seu computador? Qual é o espaço total que eles irão ocupar em MB? Justifique a sua resposta.
Grafo
Considere o grafo abaixo onde o número sobre as arestas é o custo de cada ação e o número em cada nodo é a heurística considerada até o estado objetivo. Note que cada arco é bidirecional. Considere o estado A como inicial e o estado G como o estado objetivo. Em todos os algoritmos utilizados existe um único tipo de poda da árvore de busca que é: não pode-se abrir nenhum sucessor igual ao pai do nodo.
-
Qual é o caminho para a solução do problema que o algoritmo A* encontra.
-
A heurística utilizada no problema é admissível? Explique.
-
Qual é o caminho para a solução do problema que o algoritmo Ganancioso encontra.
-
Qual é o caminho para a solução do problema que o algoritmo de busca em largura encontra.
-
A solução encontrada pelo algoritmo de busca em largura é ótima? Justifique a sua resposta.
Bicicleta na lama
Neste exercício você deverá implementar um agente que é capaz de ir de um lugar até outro em um mapa. Este agente está andando de bicicleta e sabe executar as seguintes ações:
- ir para baixo;
- ir para cima;
- ir para esquerda, e;
- ir para direita;
Um exemplo possível de mapa que este agente pode receber é apresentado abaixo:
Mapa 01:
Neste estado inicial:
- o ciclista está na posição [0,0],
- o fim do pedal mais o almoço estão esperando o ciclista na posição [0,5],
- o mapa tem 5 linhas e 7 colunas, e
- existem campos no mapa que estão pintados em cinza e que representam campos com muita lama.
Cada ação que o agente sabe executar tem custo 1. No entanto, quando uma ação é executada em um campo com lama então o custo dela passa a ser 4.
Implemente uma solução que ajuda o ciclista a tomar a decisão com relação ao melhor plano - aquele plano que faz ele chegar no objetivo com o menor custo.
A solução implementada precisa ser capaz de tratar diversas configurações com diversas dimensões. Por exemplo:
Mapa 02:
Mapa 03:
Mapa 04:
Não existem testes pré-configurados. No entanto, recomenda-se fortemenete que você teste a sua implementação nos cenários descritos acima.
Nesta implementação você deve utilizar a biblioteca aigyminsper
.