Você está na página 1de 85

Notícias sobre IA

https://www.terra.com.br/byte/lixeira-com-inteligencia-artificial-separa-materiais-reciclaveis-sozinha,d3fa973678f0871c1160996f00593158eszjq14y.html
Notícias sobre IA

https://www.terra.com.br/byte/lixeira-com-inteligencia-artificial-separa-materiais-reciclaveis-sozinha,d3fa973678f0871c1160996f00593158eszjq14y.html
Notícias sobre IA

https://www.terra.com.br/byte/lixeira-com-inteligencia-artificial-separa-materiais-reciclaveis-sozinha,d3fa973678f0871c1160996f00593158eszjq14y.html
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.uol.com.br/tilt/noticias/redacao/2022/09/02/imagem-criada-com-ia-ganha-concurso-e-reacende-discussao-sobre-o-que-e-arte.htm
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Notícias sobre IA

https://www.tribunadointerior.com.br/campo-mourao/com-uso-da-inteligencia-artificial-empresa-de-monitoramento-evita-assalto-a-mao-armada-em-campo-mourao/
Universidade Federal do ABC
Centro de Matemática, Computação e Cognição

MCTA014-15 - Inteligência Artificial


Aula 3 – Resolução de Problemas por Busca

Profa: Karla Vittori

Santo André - SP
Setembro - 2022
1 – Etapas da Resolução de um Problema

 Exemplo: Viajar de Arad a Bucareste (Romênia)


 Adotando a menor rota possível
1 – Etapas da Resolução de um Problema

 Exemplo: Viajar de Arad a Bucareste (Romênia)


 Adotando a menor rota possível

578 km – aproximadamente 6 horas e 54 minutos


Google maps
 Para o problema da Romênia:
1.1 – Definir o(s) Objetivo(s)

 Primeiro passo: definir o(s) objetivo(s)

 O que deve ser alcançado?


 Ir de Arad a Bucareste

 Baseado na situação atual


 Estamos em Arad

 Qual é a medida de desempenho?


 Quero seguir a menor rota rodoviária possível

 Objetivo pode ser visto como um estado a ser alcançado, entre


possíveis estados do problema

 Ex. estado: estar em alguma cidade


1.2 - Formular o Problema

 Segundo passo: formular o problema

 Processo de decidir quais ações e estados devem ser


considerados, dado um objetivo.

 No ex.:
 Ações = conexões a serem utilizadas (estradas)

 Estados = cidades percorridas

 Objetivo = chegar a Bucareste a partir de Arad usando a menor


rota rodoviária
1.2 - Formular um Problema

 Podem haver estados intermediários na construção da solução


 Ex.: há três estradas saindo de Arad

Arad

Sibiu Timisoara Zerind

 Descobrir qual sequência de ações levará ao estado objetivo


 Quais cidades percorrer para Bucareste?
 Para o problema da Romênia:
1.3 – Buscar a Solução
 Terceiro passo: buscar a solução

 Escolha da sequência de ações a ser seguida, entre diversas


possibilidades

 Algoritmo de busca
 Entrada = problema
 Saída = sequência de ações que representa a solução
Solução

 Uma solução para um problema é um caminho desde o estado


inicial até o estado final (objetivo).

 Solução ótima tem menor custo de caminho entre todas as


soluções possíveis.
Solução
1.4 – Executar a Solução

 Encontrada a solução, ações recomendadas podem ser executadas

 Fase de execução

 No exemplo, consiste em seguir a rota de cidades recomendada


2 – Componentes de um Problema

 Quatro componentes:
 1) Estado inicial
 Ex.: Em(Arad)

 2) Ações/operadores possíveis para gerar novo estado


 Ex.: sucessor(Arad) = {Sibiu, Timisoara, Zerind}

 Estado inicial e operadores definem o espaço de estados


 Conjunto de todos os estados acessíveis a partir do estado
inicial
 Formam um grafo
Arad

Sibiu Timisoara Zerind


2 – Componentes de um Problema

 Quatro componentes:
 3) Teste de objetivo

 Determinar se um dado estado é o estado objetivo


 No ex., o objetivo é o conjunto unitário {Em(Bucareste)}

 4) Uma função de custo de caminho

 Atribui custo numérico a cada caminho no grafo


 Caminho é uma sequência de estados conectados

 Geralmente reflete a medida de desempenho


 No ex., menor caminho em km
3 - Como formular um problema?

Como escolher estados e ações?

 Abstrair detalhes irrelevantes


 na formulação do problema (ações e estados)
 nas funções de custo do caminho e da busca

 Exemplo: dirigir de São Paulo a Ribeirão Preto


 Não interessa:
 número de passageiros
 o que toca no rádio (estado)
 cidades sem acesso rodoviário (estado)
 o que se come e bebe dentro do carro (ações)
 número de postos policiais no caminho (custo de caminho)

 É tarefa do projetista fazer as boas escolhas


3.1 - Exemplo problema 1

 Aspirador de pó
 Percorre quadrados e verifica se existe sujeira para limpar

 Ações possíveis:
 Mover para a direita
 Mover para a esquerda
 Aspirar sujeira
 Não fazer nada
3.1 - Aspirador de pó

 Formulação do problema:
 Estados:
 2 quadrados, contendo o aspirador e/ou sujeira ou não
 8 estados possíveis = 2 x 22
3.1 - Aspirador de pó
 Formulação do problema:
 Estado inicial:
 Qualquer um dos estados possíveis
 Ex.: estado 5
3.1 - Aspirador de pó
 Formulação do problema:
 Função para gerar novos estados (operadores):

 Gera os estados válidos que resultam na tentativa de executar


as três ações:

 Esquerda (L),

 Direita (R) ou

 Aspirar (S).
3.1 - Aspirador de pó
 Formulação do problema:
 Função para gerar novos estados (operadores):
 Espaço de estados completo:
3.1 - Aspirador de pó

 Formulação do problema:
 Teste de objetivo (término):
 Verifica se todos os quadrados estão limpos

 Custo de caminho:
 Cada passo possui custo 1
 Custo do caminho é o número de passos do caminho
3.2 - Exemplo problema 2

 Quebra-cabeça de 8 peças
 Tabuleiro 3 x 3 com 8 peças numeradas e um espaço vazio

 Uma peça pode deslizar para o espaço vazio

 Exemplo de estado inicial e o estado final:


3.2 - Quebra-cabeça

 Formulação do problema:
 Estados:
 Um estado especifica as posições de cada uma das 8 peças e
do espaço vazio em um dos 9 quadrados

 Estado inicial:
 Qualquer estado
3.2 - Quebra-cabeça

 Formulação do problema:
 Operadores (função sucessor):
 Gera os estados válidos que resultam da tentativa de executar
as quatro ações – o espaço vazio se desloca para:

 a esquerda,

 a direita,

 acima ou

 abaixo.
3.2 - Quebra-cabeça

 Formulação do problema:
 Teste de término:
 O estado é o final?
 Custo de caminho:
 Cada passo possui custo 1
 Custo do caminho = número de passos no caminho
3.2 - Quebra-cabeça

 Problema dos quebra-cabeças deslizantes


 NP-completo (Non-Deterministic Polynomial time) – tempo
polinomial não-determinístico

 Ainda não existem algoritmos determinísticos polinomiais para


sua solução

 8 peças: 181.440 estados possíveis

 15 peças: 1,3 trilhão de estados

 24 peças: 1025 estados


3.3 - Exemplo problema 3

 Problema das 8 rainhas


 Posicionar 8 rainhas em um tabuleiro de xadrez, de forma
que nenhuma rainha ataque outra
3.3 - 8 rainhas

 Formulação incremental
 Adiciona rainhas ao tabuleiro

 Estados:
 Qualquer disposição de 0 a 8 rainhas no tabuleiro

 Há 3x1014 possíveis estados

 Estado inicial:
 Nenhuma rainha no tabuleiro
3.3 - 8 rainhas

 Formulação incremental
 Operadores:
 Colocar uma rainha qualquer em um espaço vazio

 Teste de término:
 8 rainhas no tabuleiro e nenhuma é atacada

 Custo:
 Não interessa o custo do caminho,
apenas o estado final é importante
3.3 - 8 rainhas

 Com essa formulação, temos

 64 x 63 x … x 57  3 x 1014 sequências possíveis para


investigar
3.3 - 8 rainhas

 Outra possível formulação


 Proibir colocação de uma rainha em quadrados sob ataque

 Estados:
 Disposições de n rainhas (n  8) no tabuleiro, uma por coluna
nas n colunas mais à esquerda, sem que uma rainha ataque a
outra
 Há 2.057 possíveis estados

 Operadores:
 Colocar uma rainha em um espaço em uma coluna vazia mais à
esquerda, de modo que ela não seja atacada
3.4 - 100 rainhas

 Contudo, para 100 rainhas


 Primeira formulação: 10400 estados
 Segunda formulação: 1052 estados
 Espaço é menor, mas ainda grande

Importância de
formulação
apropriada!
4 - Problemas reais

 Problema de roteamento
 Exemplos:
 Roteamento de pacotes em rede de computadores
 Planejamento de operações militares
 Sistema de planejamento de viagens aéreas
Ex.: Viagens aéreas

 Formulação do problema:
 Estados:
 Cada estado é uma posição (aeroporto) e hora atual
 Estado inicial:
 Especificado pelo problema
 Função para gerar novos estados:
 Retorna estado após realizar algum voo programado
 Teste de objetivo:
 Estar no destino após um tempo especificado
 Custo de caminho:
 Pode ser tempo da viagem, por exemplo
4 - Problemas reais

 Problema do caixeiro-viajante
 Visitar um conjunto de cidades uma única vez usando o
percurso mais curto

 Exemplo:

 Planejar viagens

 Planejar movimentos de máquinas


 Perfuração de poços de petróleo
4 - Problemas reais
 Layout de VLSI (Very Large Scale Integration) - processo de
integração ou incorporação de centenas de milhares de
transistores em um único microchip semicondutor de silício.

 Posicionamento de componentes e conexões em chip,


minimizando

 Área

 Retardos de circuitos

 Capacitâncias de fuga

 E maximizando

 Rendimento industrial
4 - Problemas reais

 Navegação de robôs
 Generalização do problema de roteamento

 Lidar também com erros em sensores e controles


4 - Problemas reais
 Problema de montagem
 Exemplos:
 Sequência automática de montagem de objetos por um robô
 Encontrar ordem na qual peças de um objeto devem ser
montadas
4 - Problemas reais
 Problemas de alocação (Scheduling)
 Salas de aula
 Máquinas industriais (job shop)
5 - Exercício

 Formule o problema a seguir, definindo: o estado inicial, o teste de


objetivo, os possíveis operadores (para transição de estados) e a
função de custo.

 Um macaco com altura de 3 pés está em uma sala onde algumas


bananas estão suspensas a 8 pés. Ele gostaria de comer as
bananas. A sala contém dois cestos amontoados que podem ser
movimentados e onde o macaco pode subir.
5 - Exercício

 Um macaco com altura de 3 pés está em uma sala onde algumas


bananas estão suspensas a 8 pés. Ele gostaria de comer as
bananas. A sala contém dois cestos amontoados que podem ser
movimentados e onde o macaco pode subir.

Estado inicial – Macaco está na sala onde há bananas.

Operadores – i) empurrar um cesto ou os dois cestos; ii) subir no cesto; iii)


descer do cesto; iv) andar pela sala e v) apanhar as bananas (se estiver em
cima do cesto).

Teste de término – Macaco consegue pegar as bananas.

Função custo – Número de ações.



6 - Busca por soluções

 Resolução dos problemas após formulação

 Por meio de busca no espaço de estados

 Inicialmente, técnicas que usam árvore de busca explícita

 Gerada pela aplicação dos operadores sobre os estados

 Iniciando pelo estado inicial

 Até atingir um estado objetivo


6.1 – Exemplo – Problema da Romênia

 Exemplo: Viajar de Arad a Bucareste (Romênia)


 Adotando a menor rota possível

578 km – aproximadamente 6 horas e 54 minutos


Google maps
6.1 – Exemplo – Problema da Romênia

 (a) Estado inicial

Arad

Raiz da árvore de busca

É objetivo?
6.1 – Exemplo – Problema da Romênia

 (a) Estado inicial

Arad

Raiz da árvore de busca

É objetivo?

Não
Expandir o estado atual
(gerar novos estados)
 Mapa para o problema da Romênia:
6.1 - Exemplo

 (b) Expandindo Arad

Arad

Sibiu Timisoara Zerind

Qual escolher para futuras considerações?

Essência da busca: seguir uma opção e deixar as outras


reservadas para mais tarde, no caso de a primeira não
levar a uma solução
6.1 - Exemplo

 (c) Supor escolha de Sibiu

Arad

Sibiu Timisoara Zerind

É objetivo?

Não
Expandir estado
 Mapa para o problema da Romênia:
6.1 - Exemplo

 (c) Expandindo Sibiu

Arad

Sibiu Timisoara Zerind

Arad Fagaras Oradea Rimnicu Vilcea

É possível escolher entre quaisquer estados ainda não visitados


Busca

 Continua-se a escolher, testar e expandir até

 Encontrar solução ou

 Não existirem mais estados a serem visitados

 Escolha do estado a visitar e expandir é determinada pela


estratégia de busca.
6.2 - Algoritmo

 Algoritmo geral de busca em árvore:

função BUSCA-EM-ÁRVORE(problema, estratégia) retorna solução ou falha

inicie a fronteira com o estado inicial

repita
se não existe nenhum candidato para expansão então retorne falha
escolha nó para expansão de acordo com estratégia
se o nó contém um estado objetivo então retorne a solução
senão
expanda o nó, adicionando os nós resultantes à árvore de busca
fim repita
6.2 - Fronteira

• Fronteira do espaço de estados:

• nós gerados que

• ainda não foram expandidos

estado inicial => Arad fronteira


6.2 - Fronteira

estado inicial => Arad


fronteira

Arad

Sibiu Timisoara Zerind


fronteira
6.2 - Fronteira

• Fronteira do espaço de estados:

• nós gerados que

• ainda não foram expandidos

Arad

Sibiu Timisoara Zerind


fronteira
Arad Fagaras Oradea Rimicci
6.2 - Fronteira
 Fronteira do espaço de estados
 nós (estados) a serem expandidos no momento
 Algoritmo genérico de busca usando fronteira:
• Começa com a fronteira contendo o estado inicial do problema

1. Selecionar (e remover) 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 (objetivo):


- se “sim”, então retornar nó - a busca termina com sucesso.

3. Gerar um novo conjunto de estados pela aplicação dos operadores ao nó selecionado;

4. Inserir os nós gerados na fronteira, de acordo com a estratégia de busca usada, e voltar
para o passo (1).
6.2 - Algoritmo

 Considera-se que os nós da árvore de busca são implementados


como uma fila.

 As operações são as seguintes:

 Remover-Primeiro(fila) – retorna o primeiro elemento da fila e remove-o


da fila

 Inserir(elemento, fila) – insere um elemento na fila e retorna a fila


resultante.

 Inserir_Todos(elementos, fila) - insere um conjunto de elementos na fila


e retorna a fila resultante.
6.2 - Algoritmo

Algoritmo mais detalhado:


Função Inserir: controla a ordem de inserção de nós na fronteira do espaço de
estados (de acordo com a estratégia de busca)

função Busca-Genérica (problema, fronteira) retorna uma solução ou falha


fronteira  Inserir (Nó (Estado-Inicial [problema] ), fronteira)
repita
se fronteira está vazia então retorna falha
nó  Remover-Primeiro (fronteira)
se Teste-Término [problema] aplicado a Estado [nó] tiver sucesso
então retorna nó
fronteira  Inserir_Todos(fronteira, Expandir[nó, problema])
fim
Arad

Sibiu Timisoara Zerind fronteira


7 - Árvore de busca

 Os nós da árvore podem guardar mais informação do que apenas o


estado: estrutura de dados com pelo menos 5 componentes:

1. O estado correspondente
2. O seu nó pai
3. O operador aplicado para gerar o nó (a partir do pai)
4. A profundidade do nó
5. O custo do nó (desde a raiz)
6. Os nós filhos
7 - Árvore de Busca
 Exemplo:
 Nó Sibiu
 Pai =
 Operador =
 Profundidade =
 Custo =
 Filhos =

Arad

Sibiu Timisoara Zerind

Arad Fagaras Oradea Rimmici


 Mapa para o problema da Romênia:
7 - Árvore de Busca
 Exemplo:
 Nó Sibiu
 Pai = Arad
 Operador = ir de Arad a Sibiu
 Profundidade = 1
 Custo = 140 km
 Filhos = {Arad, Fagaras, Oradea, Rimmici}

Arad

Sibiu Timisoara Zerind

Arad Fagaras Oradea Rimmici


8 - Grafo de Busca
 Não considera nós repetidos:

Arad

Sibiu Timisoara Zerind

Fagaras Oradea Rimmici


8.1 - Algoritmo
 Algoritmo geral de busca em grafo:

função BUSCA-EM-GRAFO(problema, estratégia) retorna solução ou falha


inicie o conjunto de nós explorados como vazio
inicie a fronteira com o estado inicial

repita

se não existe nenhum candidato para expansão então retorne falha


escolha o nó para expansão de acordo com a estratégia
se o nó contém um estado objetivo então retorne a solução
adicione o nó ao conjunto de nós explorados
expanda o nó, adicionando os nós resultantes à árvore de busca
somente se ele não estiver na fronteira ou no conjunto de nós
explorados

fim repita
9 - Desempenho

 Obtenção da solução (completeness)


 O algoritmo garante encontrar a solução quando ela existe?

 Otimalidade da solução
 A solução encontrada é ótima?
9 - Desempenho

 Complexidade de tempo
 Quanto tempo o algoritmo leva para encontrar uma solução?

 Complexidade de espaço
 Quanta memória é necessária para executar a busca?
9 - Desempenho

 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 total
 custo do caminho + custo da busca
 Espaço de estados grande:
 compromisso entre a melhor solução e a solução mais barata
10 - Estratégias de busca

 Busca sem informação ou cega


 Informação sobre os estados é somente aquela fornecida na
definição do problema
 Somente geram sucessores e distinguem se um estado é
objetivo ou não

 Estratégias que sabem se um estado é mais promissor que outro


são estratégias de busca com informação ou busca heurística.

 Diferentes estratégias se distinguem pela ordem em que os nós


são expandidos
12 - Referências

 Livro Russel e Norvig, 2003. Cap. 3

 Slides de:
 UFABC – Profa Ana Carolina Lorena
 UFPE - Prof Marcilio Souto

Você também pode gostar