Download - Últimas aulas
![Page 1: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/1.jpg)
Últimas aulas
• Definição de IA?• Teste de Turing?• Agentes Inteligentes:
– Qualquer coisa que pode ser vista como percebendo seu Ambiente através de sensores e agindo sobre aquele ambiente através de seus atuadores para maximizar o progresso de encontro aos seus objetivos.
– PAGE (Percepts, Actions, Goals, Environment)– Descrito como o mapeamento de (seqüência de) Percepções em Ações:
• f : P* A
– Usando tabelas de ações, formas fechadas (funções), closed loop, etc.
• Tipos de Agentes: Reflex, state-based, goal-based, utility-based• Ação racional: A ação que maximiza o valor esperado da medida
de performance dada a seqüência atualizada de percepção
![Page 2: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/2.jpg)
Outline: Resolução de Problemas e Busca
• Introdução a resolução de problemas (Problem Solving)
• Complexidade
• Busca sem informação (Uninformed search)– Formulação de problemas– Estratégias de busca: depth-first (profundidade), breadth-first (largura)
• Busca com informação (Informed search)– Estratégias de busca: best-first, A*– Funções heurísticas
![Page 3: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/3.jpg)
Exemplo: Problema de medida!
• Problema: Usando as 3 vasilhas, medir 7 litros de água.
3 l 5 l9 l
![Page 4: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/4.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 5: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/5.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 6: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/6.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 7: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/7.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 8: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/8.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 9: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/9.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 10: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/10.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 6뇿먺ကµ೫㲱 º̐?⻳삋淖 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 11: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/11.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 12: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/12.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 13: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/13.jpg)
• (uma posível) solução:
a b c0 0 0 start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 14: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/14.jpg)
• Outra solução:
a b c0 0 0 start0 5 0
0 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 15: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/15.jpg)
• Outra solução:
a b c0 0 0 start0 5 03 2 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 16: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/16.jpg)
• Outra solução:
a b c0 0 0 start0 5 03 2 03 0 23 0 30 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 17: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/17.jpg)
• Outra solução:
a b c0 0 0 start0 5 03 2 03 0 23 5 20 0 63 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 18: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/18.jpg)
• Outra solução:
a b c0 0 0 start0 5 03 2 03 0 23 5 23 0 7 goal3 0 60 3 63 3 61 5 60 5 7 goal
3 l 5 l9 l
a b c
Exemplo: Problema de medida!
![Page 19: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/19.jpg)
Qual solução preferimos?• Solução 1:
a b c0 0 0
start3 0 00 0 33 0 30 0 63 0 60 3 63 3 61 5 60 5 7
goal
• Solução 2:
a b c0 0 0
start0 5 03 2 03 0 23 5 23 0 7
goal
![Page 20: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/20.jpg)
Agente para resolução de problemas
Nota: Isto é resolução de problemas offline. Resolução de problemas Online envolve agir com completo conhecimento do problema e ambiente.
tion
![Page 21: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/21.jpg)
Exemplo das vasilhas (medir 7 litros)
• Medir 7 litros de água usando vasilhas de 3 l, 5 l, e 9 l.
• Objetivo formulado: Ter 7 l de água na vbasilha de 9-l
• Formulando o problema:– Estados: quantidade de água nas vasilhas– Operadores: Encher vasilhas na fonte, esvaziar vasilhas
• Encontrando solução: sequência operadores que levam do estado corrente ao estado objetivo
![Page 22: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/22.jpg)
Tipos de ambientesEnvironment
Accessible
Deterministic
Episodic
Static Discrete
Operating System
Yes Yes No No Yes
Virtual Reality
Yes Yes Yes/No
No Yes/No
Office Environment
No No No No No
Mars No Semi No Semi NoOs tipos de ambiente determinam amplamente o projeto do agente.
![Page 23: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/23.jpg)
Tipos de problema• Problema com simples-estado: deterministico, acessívelAgente sabe tudo sobre o mundo, então pode calcular a ação ótima para atingir o estado objetivo.
• Problema com múltiplos-estados: deterministico, inacessívelAgente deve raciocinar sobre as sequencias de ações e estados assumidos enquanto trabalha para atingir o estado objetivo.
• Problema com contingências: não-deterministico, inacessível– Deve usar sensores durante execução/evolução– Solução é uma árvore ou política– Geralmente busca entre nós irmãos e executa
• Problema com exploração: espaço de estados desconhecidoDescobre e aprende sobre o ambiente enquanto toma ações.
![Page 24: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/24.jpg)
Exemplo: mundo do aspirador de pó (Vacuum world)Ambiente simplificado: 2 locais, cada um pode ou não conter
sujeira, cada um pode ou não conter o agente asp. de pó.Objetivo do agente: limpar a sujeira.
![Page 25: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/25.jpg)
Exemplo: Romênia
• Em Romênia, em férias. Correntemente em Arad.• Voo sai amanhã de Bucharest.
• Formula objetivo: Estar em Bucharest
• Formula problema: estados: várias cidades operadores: dirige entre cidades
• Encontra solução: Sequência de cidades, tais que a distância total dirigida é minima.
![Page 26: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/26.jpg)
Exemplo: viajando de Arad para Bucharest
![Page 27: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/27.jpg)
Formulação do problema
![Page 28: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/28.jpg)
Selecionando um espaço de estados
• Mundo real é absurdamente complexo; alguma abstração é necessária para permitir raciocinarmos sobre ele …
• Seleção de uma abstração corrente e de um espaço de estados resultante é um problema difícil!
• Estados abstratos estados no mundo-real
• Operadores abstratos sequência de ações no mundo-real(ex: ir de cidade i p/ cidade j custa Lij dirige de cidade I para cidade j)
• Solução abstrata conjunto de ações reais a tomar nomundo real que resolvam o problema
![Page 29: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/29.jpg)
Exemplo: 8-puzzle
• State: • Operators:• Goal test:• Path cost:
start state goal state
![Page 30: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/30.jpg)
Example: 8-puzzle
• State: integer location of tiles• Operators: moving blank left, right, up, down• Goal test: does state match goal state?• Path cost: 1 per move
start state goal state
![Page 31: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/31.jpg)
Example: 8-puzzle
start state goal state
• Why search algorithms?– 8-puzzle has 362,800 states– 15-puzzle has 10^12 states– 24-puzzle has 10^25 states
Então, precisamos de algum princípio para ver uma solução para estes espaços enormes de busca…
![Page 32: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/32.jpg)
De volta ao mundo do aspirador
![Page 33: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/33.jpg)
De volta ao mundo do aspirador
![Page 34: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/34.jpg)
Example: Robotic Assembly
![Page 35: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/35.jpg)
Vida real: Layout de um VLSI • Dado um diagrama esquemático contendo componentes (chips,
resistores, capacitores, etc) e interconexões (fios), encontrar uma maneira ótima para colocar os componentes numa placa impressa, sobs restrição que apenas um pequeno número de camadas estão disponíveis e fios não podem cruzar numa mesma camada
• “Maneira ótima”??
Minimizar área minimizar número de camadas minimizar número de vias (conexões de uma camada a outra) minimizar compromento de algumas ligações (ex: clock) distribuir calor uniformemente etc.
![Page 36: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/36.jpg)
En
tre e
squem
a;
Não s
e p
reocu
pe c
om
posi
cão &
cru
zam
en
tos
![Page 37: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/37.jpg)
![Page 38: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/38.jpg)
Use
ferr
am
en
tas
auto
mati
zad
as
para
posi
cion
ar
com
ponen
tes
e r
ote
ar.
![Page 39: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/39.jpg)
![Page 40: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/40.jpg)
Problem-Solving– Resolução do problema:
• Formulação de objetivo • Formulação do problema (estados, operadores) • Buscar por uma solução
– Formulação do problema:• Estado inicial• Operadores• Testar o objetivo• Custo do caminho
– Tipos de problemas: • Simples-estado: ambiente acessível e determinístico• Multiplo-estado: ambiente inacessível e determinístico• Contingencia: ambiente inacessível e não determinístico• Exploração: espaço de estados desconhecido
![Page 41: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/41.jpg)
Algoritmos de busca (achar uma solução)
Function General-Search(problem, strategy) returns a solution, or failureinitialize the search tree using the initial state problemloop doif there are no candidates for expansion then return failurechoose a leaf node for expansion according to strategyif the node contains a goal state then return the corresponding solutionelse expand the node and add resulting nodes to the search treeend
Solução : é ???
Idéia básica: Exploração offline e sistematica de um espaço de estados simulados pela geração de sucessores de estados já explorados (expandindo)
![Page 42: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/42.jpg)
Function General-Search(problem, strategy) returns a solution, or failureinitialize the search tree using the initial state problemloop doif there are no candidates for expansion then return failurechoose a leaf node for expansion according to strategyif the node contains a goal state then return the corresponding solutionelse expand the node and add resulting nodes to the search treeend
Solução: é sequencia de operadores levam do estado corrente ao objetivo.
Idéia básica: Exploração offline e sistematica de um espaço de estados simulados pela geração de sucessores de estados já explorados (expandindo)
Estratégia: a estratégia de busca é determinada pela ???
Algoritmos de busca (achar uma solução)
![Page 43: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/43.jpg)
Function General-Search(problem, strategy) returns a solution, or failureinitialize the search tree using the initial state problemloop doif there are no candidates for expansion then return failurechoose a leaf node for expansion according to strategyif the node contains a goal state then return the corresponding solutionelse expand the node and add resulting nodes to the search treeend
Solução: é sequencia de opreradores levam do estado corrente ao objetivo.
Idéia básica: Exploração offline e sistematica de um espaço de estados simulados pela geração de sucessores de estados já explorados (expandindo)
Estratégia: a estratégia de busca é determinada pela ordem que os nós são expandidos
Algoritmos de busca (achar uma solução)
![Page 44: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/44.jpg)
Algoritmos de busca (achar uma solução)Solução: é uma sequência de operadores
que leva do estado corrente ao estado objetivo
Estratégia: A estratégia de busca é determinada pela ordem a qual os nós são expandidos.
![Page 45: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/45.jpg)
Do espaço do problema para árvore de busca
AA
DD
BB
EE
CC
FFGG
SS33
44
44
44
55 55
44
3322
SSAA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
33
33 33
33
33
22
22
2244
44
4444
44
4444
44
44
44
44
44
5555
55 55
5555
Árvore de busca associada(sem ciclos)
Espaço do problema
![Page 46: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/46.jpg)
Caminhos em árvores de buscaSS
AA DD
BB DD EEAA
CC EE EE BB BB FF
DD FF BB FF CC EE AA CC GG
GG CC GG FF
GG
Denota:Denota:SASA Denota:Denota:SDASDA
Denota:Denota: SDEBASDEBA
![Page 47: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/47.jpg)
Exemplo: Viajando de Arad para Bucarest
![Page 48: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/48.jpg)
General search example
![Page 49: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/49.jpg)
General search example
![Page 50: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/50.jpg)
General search example
![Page 51: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/51.jpg)
General search example
![Page 52: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/52.jpg)
Implementação de algoritmos de buscaFunction General-Search(problem, Queuing-Fn) returns a solution, or failure
nodes make-queue(make-node(initial-state[problem]))loop do
if nodes is empty then return failurenode Remove-Front(nodes)if Goal-Test[problem] applied to State(node) succeeds then return nodenodes Queuing-Fn(nodes, Expand(node, Operators[problem]))
end
Queuing-Fn(queue, elements) é uma função que insere um conjunto de elementos numa fila e determina a ordem de expansão dos nós.
Variações na função de fila produz variação no algoritmo de busca.
![Page 53: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/53.jpg)
Encapsulando informação sobre o estado nos nós
![Page 54: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/54.jpg)
Avaliação de estratégias de busca• Uma estratégia de busca é definida por pegar a ordem de
expansão do nó.
• Algoritmos de busca são geralmente avaliados de acordo com:– Completude: sempre acha uma solução caso ela exista?– Complexidade de tempo: quanto tempo em função do nr de nós?– Complexidade em espaço: quanto de memória requer?– Otimalidade: garante solução de custo mínimo?
• Complexidade de tempo e espaço são medidas em termos de:– b – máximo número de galhos da árvore de busca– d – profundidade da solução de custo mínimo– m – profundidade máxima da árvore de busca (pode ser infinito)
![Page 55: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/55.jpg)
Complexidade
• Por que se preocupar com complexidade?
Porque em teoria (em princípio) um problema pode ser resolvido, mas pode ser muito custoso resolve-lo na prática
• Como podemos avaliar a complexidade dos algoritmos?
Através da análise assintótica, i.é., estimar tempo (ou número de operações) necessário para resolver uma instância de tamanho n de um problema quando n tende ao infinito
Tiveram complexidade de algoritmos?
![Page 56: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/56.jpg)
Exemplo de complexidade Caixeiro Viajante• n cidades com estradas de comprimento Lij ligando cidade i a cidade j.
• O caixeiro viajante deseja visitar todas as cidades que:seja ótima em duas maneiras: visitada apenas uma
vez e o total das distâncias percorridas seja o mínimo
possível.
• Este é um problema difícil: o único algoritmo que o resolve conhecido tem complexidade exponencial, isto é, o número de operações requeridas é do tipo exp(n) para n cidades.
![Page 57: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/57.jpg)
Por que complexidade exponencial é “difícil”?
Isto significa que o número de operações necessária para calcular a solução exata do problema cresce exponencialmente com o tamanho do problema (aqui, o número de cidades).
• exp(1) = 2.72
• exp(10) = 2.20 104 (viagem diária do caixeiro)
• exp(100) = 2.69 1043 (planejamento mensal)
• exp(500) = 1.40 10217 (tour mundial de uma banda)
• exp(250,000) = 10108,573 (fedex, serviço postal)
• Computador mais rápido = 1012 operações/segundo
![Page 58: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/58.jpg)
Então…
Em geral, problemas com complexidade exponencial só podem ser resolvidos nas instâncias menores!
![Page 59: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/59.jpg)
Complexidade
• Problemas com tempo-polinomial (P): podemos encontrar algoritmos que o resolvem num tempo (=número de operações) que cresce polinomialmente com o tamanho da entrada.
Exemplo: ordenar n números em ordem crescente: algoritmos ruins tem complexidade n^2, os melhores tem complexidade n log(n).
• Uma vez que não discutimos qual a ordem do polinômio, ela poderia ser muito grande! Existem algoritmos que requerem mais do que tempo polinomial ?
![Page 60: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/60.jpg)
Complexidade
• Sim (até que se prove o contrário); para alguns algoritmos, não conhecemos nenhum algoritmo em tempo polinomial que o resolva. Estes são referidos como algoritmos não-deterministicos de tempo-polinomial (nondeterministic polinomial-time) ou algoritmos NP.
Por exemplo: problema do caixeiro viajante.
• Em particular, acredita-se que algoritmos de tempo exponencial são NP.
![Page 61: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/61.jpg)
Nota sobre problemas NP-hard (ou NP-complexos)
• A definição formal de problemas NP é:
Um problema é nondeterministic polynomial se existir algum algoritmo que consiga chutar uma solução e então verificar se a solução está ou não correta em tempo polinomial.
Na prática, até que se prove o contrário, isto significa que algoritmos conhecidos que rodam em arquiteturas conhecidas levam mais que tempo polinomial para resolver o problema.
![Page 62: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/62.jpg)
Complexidade: O() e o() (símbolos de Landau)• Como se pode representar a complexidade de um algoritmo?
• Dado: Tamanho da entrada do problema (ou instancia): nNúmero de operações para resolver o problema: f(n)
• Se para uma dada função g(n), tivermos:
então f é dominada por g
• Se, para uma dada função g(n), tivermos:
então f é negligenciável comparada com g
)(
)()(,,,, 00
gOf
nkgnfnnnnk
)(
)()(,,,, 00
gof
nkgnfnnnnk
![Page 63: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/63.jpg)
Símbolos de Landau
0)(
)()()(,)(
nn ng
nfnkgnfkgof
g
fnkgnfkgOf
n
)()(,)( é limitada
![Page 64: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/64.jpg)
Exemplos, propriedades
• f(n)=n, g(n)=n^2:n é o(n^2), porque n/n^2 = 1/n -> 0 quando n ->infinitosimilarmente, log(n) é o(n)
n^C é o(exp(n)) para qualquer C
• se f é O(g), então para qualquer K, K.f é tb O(g); idem para o()• se f é O(h) e g é O(h), então para qualquer K, L: K.f + L.g é O(h)
idem para o()
• se f é O(g) e g é O(h), então f é O(h)• se f é O(g) e g é o(h), então f é o(h)• se f é o(g) e g é O(h), então f é o(h)
![Page 65: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/65.jpg)
Polynomial-time hierarchy
• From Handbook of Brain
Theory & Neural Networks
(Arbib, ed.;
MIT Press 1995).
AC0 NC1 NC P complete NP complete
PNP
PH
AC0: can be solved using gates of constant depthNC1: can be solved in logarithmic depth using 2-input gatesNC: can be solved by small, fast parallel computerP: can be solved in polynomial timeP-complete: hardest problems in P; if one of them can be proven to be
NC, then P = NCNP: nondeterministic-polynomial algorithmsNP-complete: hardest NP problems; if one of them can be proven to be
P, then NP = PPH: polynomial-time hierarchy
![Page 66: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/66.jpg)
Complexidade e o cérebro humano
• Computadores estão próximos da potencia do cérebro humano?
• Chip de computador corrente (CPU):• 10^3 pinos de entrada• 10^7 elementos de processamento• 2 entradas por elemento de processamento (fan-in = 2)• elementos de proc. computam lógica booleana (OR, AND, NOT, etc)
• Tipico cérebro humano:• 10^7 entradas (sensores)• 10^10 elementos de processamento (neuronios)• fan-in = 10^3• elementos de processamento computam funções complicadas
Ainda precisa um monte de melhorias para computadores; masUm cluster de computadores chega perto!
![Page 67: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/67.jpg)
Remember: Implementation of search algorithmsFunction General-Search(problem, Queuing-Fn) returns a solution, or failure
nodes make-queue(make-node(initial-state[problem]))loop do
if nodes is empty then return failurenode Remove-Front(nodes)if Goal-Test[problem] applied to State(node) succeeds then return nodenodes Queuing-Fn(nodes, Expand(node, Operators[problem]))
end
Queuing-Fn(queue, elements) is a queuing function that inserts a set of elements into the queue and determines the order of node expansion. Varieties of the queuing function produce varieties of the search algorithm.
![Page 68: Últimas aulas](https://reader033.vdocuments.net/reader033/viewer/2022061612/56813e06550346895da7e5f0/html5/thumbnails/68.jpg)
Encapsulating state information in nodes