Últimas aulas Definição de IA? Teste de Turing? Agentes Inteligentes:

Slides:



Advertisements
Apresentações semelhantes
ADT – Arvore Binária de Pesquisa
Advertisements

2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
Busca Online Alexandra Barros Geber Ramalho. Busca Offine x Busca Online Busca Offline (ou planejamento clássico) –Computa a solução (do estado inicial.
Prof. José Fernando Rodrigues Júnior Pacotes Material original: Profa. Elaine Parros Machado de Sousa SCC Bancos de Dados e Suas Aplicações.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Capítulo 3 - Russell e Norvig
Sistemas Operacionais
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Prof. Celso Gramática.
Introdução a Resolução Numérica de Equações Diferenciais Ordinárias
FORTRAN 90 Denise Yumi Takamura.
CCS – Centro de Componentes Semicondutores Luiz Carlos Moreira/Jacobus W. Swart ASIC´s – Application Specific Integrated Circuits.
►► outras formas dessa equação:
Prof. Dr. Helder Anibal Hermini
Prof. Dr. Helder Anibal Hermini
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Algoritmos com laços (ou seja, com conjuntos de instruções que devem ser executados repetidas vezes)
Teste Estrutural de Software
Criptografia Quântica : Um Estudo
Algoritmos Genéticos Capítulo 7
Publicidade e Propaganda – Conceitos e Categoria
Conceitos e Categorias Propaganda&Publicidade
Técnicas de Processamento Imagens
Profa. Graziela Santos de Araújo Algoritmos e Programação II, 2010
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Solver (Microsoft Excel) Ferramentas disponíveis para utilização
Solver (Microsoft Excel) Ferramentas disponíveis para utilização
Página de entrada A página de entrada, ou a index, representa um convite para o seu site.
Funções de um computador
Técnicas de Amostragem
Adriana da Silva Jacinto CT-282 Prof. Dr.Parente Técnicas de diagnóstico 1º semestre 2005.
Técnicas de Diagnóstico. Objetivo Caracterizar técnicas de diagnóstico para o modelo do estudante Caracterizar técnicas de diagnóstico para o modelo do.
Capítulo V Análise Sintática
Materiais Propriedades mecânicas Reologia.
TA 733 A – Operações Unitárias II
BlastPhen Aluno: Ricardo Nishikido Pereira
Mac-499 Trabalho de Formatura Supervisionado
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.
ALOCAÇÃO DINÂMICA DE MEMÓRIA
TÉCNICAS DE CODIFICAÇÃO DE SINAIS
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Introdução à Codificação de Canal Evelio M. G. Fernández
Interpolação Introdução Conceito de Interpolação
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Organização de Sistemas de Computadores
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
7. INTEGRAÇÃO NUMÉRICA Parte 1
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Prof: Graciano Notação Científica.
Otimização Aplicada ao Dimensionamento e Operação de Reservatórios
Introdução à Mecânica Bibliografia:
LINGUAGENS DE PROGRAMAÇÃO
Baseado no documento do Prof. Ronaldo Martins da Costa
CS 561, Session 7 1 Recall: breadth-first search, step by step.
Visão Computacional Shape from Shading e Fotométrico Eséreo
CS 561, Lectures Estrutura de dados para árvore de busca Estrutura do tipo nó (node) { Estado (no espaço de estados ao qual o nó corresponde); Pai.
CS 561, Session 6 1 Last time: Problem-Solving Problem solving: Goal formulation Problem formulation (states, operators) Search for solution Problem formulation:
Prof. André Laurindo Maitelli DCA-UFRN
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
8. Uma Função de duas Variáveis Aleatórias
Tópicos Especiais em Aprendizagem Reinaldo Bianchi Centro Universitário da FEI 2012.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
1 Semântica de Ações Ações Básicas, Ações Funcionais e Notação de Dados.
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
Transcrição da apresentação:

Ú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

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

Exemplo: Problema de medida! Problema: Usando as 3 vasilhas, medir 7 litros de água.

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6뇿먺ကµ೫㲱º̐⻳삋淖 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! (uma posível) solução: a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! Outra solução: a b c 0 0 0 start 0 5 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! Outra solução: a b c 0 0 0 start 0 5 0 3 2 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! Outra solução: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! Outra solução: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Exemplo: Problema de medida! Outra solução: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 goal 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal a b c

Qual solução preferimos? a b c 0 0 0 start 3 0 0 0 0 3 3 0 3 0 0 6 3 0 6 0 3 6 3 3 6 1 5 6 0 5 7 goal Solução 2: a b c 0 0 0 start 0 5 0 3 2 0 3 0 2 3 5 2 3 0 7 goal

Agente para resolução de problemas tion Nota: Isto é resolução de problemas offline. Resolução de problemas Online envolve agir com completo conhecimento do problema e ambiente.

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

Tipos de ambientes Environment Accessible Deterministic Episodic Static Discrete Operating System Yes No Virtual Reality Yes/No Office Environment Mars Semi Os tipos de ambiente determinam amplamente o projeto do agente.

Tipos de problema Problema com simples-estado: deterministico, acessível Agente 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ível Agente 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 desconhecido Descobre e aprende sobre o ambiente enquanto toma ações.

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.

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.

Exemplo: viajando de Arad para Bucharest

Formulação do problema

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 no mundo real que resolvam o problema

Exemplo: 8-puzzle State: Operators: Goal test: Path cost: start state goal state State: Operators: Goal test: Path cost:

Example: 8-puzzle State: integer location of tiles start state goal state State: integer location of tiles Operators: moving blank left, right, up, down Goal test: does state match goal state? Path cost: 1 per move

Example: 8-puzzle 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… start state goal state

De volta ao mundo do aspirador

De volta ao mundo do aspirador

Example: Robotic Assembly

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.

Não se preocupe com posicão & cruzamentos Entre esquema;

Use ferramentas automatizadas para posicionar componentes e rotear.

Problem-Solving Resolução do problema: Formulaçã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

Algoritmos de busca (achar uma 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) Function General-Search(problem, strategy) returns a solution, or failure initialize the search tree using the initial state problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add resulting nodes to the search tree end

Algoritmos de busca (achar uma solução) 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) Function General-Search(problem, strategy) returns a solution, or failure initialize the search tree using the initial state problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add resulting nodes to the search tree end Estratégia: a estratégia de busca é determinada pela ???

Algoritmos de busca (achar uma solução) 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) Function General-Search(problem, strategy) returns a solution, or failure initialize the search tree using the initial state problem loop do if there are no candidates for expansion then return failure choose a leaf node for expansion according to strategy if the node contains a goal state then return the corresponding solution else expand the node and add resulting nodes to the search tree end Estratégia: a estratégia de busca é determinada pela ordem que os nós são expandidos

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.

Do espaço do problema para árvore de busca F G S 3 4 5 2 Espaço do problema S A D B E C F G 3 2 4 5 Árvore de busca associada (sem ciclos)

Caminhos em árvores de busca Denota: SA S A D B E C F G Denota:SDA Denota: SDEBA

Exemplo: Viajando de Arad para Bucarest

General search example

General search example

General search example

General search example

Implementação de algoritmos de busca Function 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 failure node  Remove-Front(nodes) if Goal-Test[problem] applied to State(node) succeeds then return node nodes  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.

Encapsulando informação sobre o estado nos nós

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)

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?

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.

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

Então… Em geral, problemas com complexidade exponencial só podem ser resolvidos nas instâncias menores!

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 ?

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.

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.

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): n Nú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

Símbolos de Landau é limitada

Exemplos, propriedades f(n)=n, g(n)=n^2: n é o(n^2), porque n/n^2 = 1/n -> 0 quando n ->infinito similarmente, 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)

Polynomial-time hierarchy From Handbook of Brain Theory & Neural Networks (Arbib, ed.; MIT Press 1995). NP P AC0 NC1 NC P complete NP complete PH AC0: can be solved using gates of constant depth NC1: can be solved in logarithmic depth using 2-input gates NC: can be solved by small, fast parallel computer P: can be solved in polynomial time P-complete: hardest problems in P; if one of them can be proven to be NC, then P = NC NP: nondeterministic-polynomial algorithms NP-complete: hardest NP problems; if one of them can be proven to be P, then NP = P PH: polynomial-time hierarchy

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; mas Um cluster de computadores chega perto!

Remember: Implementation of search algorithms Function 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 failure node  Remove-Front(nodes) if Goal-Test[problem] applied to State(node) succeeds then return node nodes  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.

Encapsulating state information in nodes