1 Busca em Amplitude

Documentos relacionados
4 Modelo para Extração de Regras Fuzzy a partir de Máquinas de Vetores Suporte FREx_SVM 4.1 Introdução

CAPÍTULO 04 CINEMÁTICA INVERSA DE POSIÇÃO

O perímetro da circunferência

Lab. 4 Laboratório de Resposta em Frequência 1

Algumas observações com relação ao conjunto de apostilas do curso de Fundamentos de Física Clássica ministrado pelo professor Ricardo (DF/CCT/UFCG).

Exercícios e outras práticas sobre as aplicações da Termodinâmica Química 1 a parte

Material Teórico - Sistemas Lineares e Geometria Anaĺıtica. Sistemas com Três Variáveis - Parte 2. Terceiro Ano do Ensino Médio

Grandezas vetoriais: Além do módulo, necessitam da direção e do sentido para serem compreendidas.

TUKEY Para obtenção da d.m.s. pelo Teste de TUKEY, basta calcular:

XXXIV OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (14 de agosto de 2010) Nível α (6 o e 7 o anos do Ensino Fundamental)

4.4 Mais da geometria analítica de retas e planos

MATEMÁTICA 3 A SÉRIE - E. MÉDIO

ESTUDO DO MOVIMENTO UNIFORMEMENTE ACELERADO DETERMINAÇÃO DA ACELERAÇÃO DA GRAVIDADE

Cap03 - Estudo da força de interação entre corpos eletrizados

CÁLCULO DIFERENCIAL E INTEGRAL II 014.2

Teo. 5 - Trabalho da força eletrostática - potencial elétrico

O Jogo do resta-um num tabuleiro infinito

GEOMETRIA DINÂMICA E O ESTUDO DE TANGENTES AO CÍRCULO

XXXV OLIMPÍADA PAULISTA DE MATEMÁTICA Prova da Primeira Fase (13 de agosto de 2011) Nível α (6 o e 7 o anos do Ensino Fundamental) Gabaritos

CAPÍTULO 7: CAPILARIDADE

ARITMÉTICA DE PONTO FLUTUANTE/ERROS EM OPERAÇÕES NUMÉRICAS

Cap014 - Campo magnético gerado por corrente elétrica

Balanço de fases para melhorar os níveis de tensão utilizando a Metaheurística Busca em Vizinhança Variável

MÉTODO DE PESQUISA EM VIZINHANÇA VARIÁVEL APLICADO À RESOLUÇÃO DO PROBLEMA DE ROTEAMENTO DE VEÍCULOS

5. Análise de Curtos-Circuitos ou Faltas. 5.2 Componentes Simétricos (ou Simétricas)

Áreas parte 2. Rodrigo Lucio Isabelle Araújo

3.3 Potencial e campo elétrico para dadas configurações de carga.

Experiência 2 - Filtro de Wien - 7 aulas

Matemática do Ensino Médio vol.2

O Paradoxo de Bertrand para um Experimento Probabilístico Geométrico

CÁLCULO VETORIAL E GEOMETRIA ANALÍTICA Luiz Francisco da Cruz Departamento de Matemática Unesp/Bauru CAPÍTULO 2 VETORES NO PLANO E NO ESPAÇO

REGRESSÃO LINEAR MÚLTIPLA Correlação múltipla

VETORES GRANDEZAS VETORIAIS

O FORMATO IDEAL DE UMA LATINHA DE ALUMÍNIO: UMA ABORDAGEM SOBRE MÁXIMOS E MÍNIMOS DE UMA FUNÇÃO REAL COM A AJUDA DO SOFTWARE EXCEL

CAMPO ELÉCTRICO NO EXTERIOR DE CONDUTORES LINEARES

E = F/q onde E é o campo elétrico, F a força

UFABC - Física Quântica - Curso Prof. Germán Lugones. Aula 14. A equação de Schrödinger em 3D: átomo de hidrogénio (parte 2)

Exame Final Nacional de Matemática A Prova 635 Época Especial Ensino Secundário º Ano de Escolaridade. Critérios de Classificação.

Universidade Federal de Pelotas Disciplina de Microeconomia 1 Professor Rodrigo Nobre Fernandez Lista 4 - Soluções

1. EXPERIMENTOS FATORIAIS.

( ) 10 2 = = 505. = n3 + n P1 - MA Questão 1. Considere a sequência (a n ) n 1 definida como indicado abaixo:

+, a velocidade de reação resultante será expressa

a velocidade de propagação da onda ao quadrado. Combinando-se qualquer uma das expressões e i(kx-wt) ou e -i(kx-wt) 2 2 2

APÊNDICE. Revisão de Trigonometria

DIFICULDADES DOS ALUNOS DO 5º ANO DO ENSINO FUNDAMENTAL EM RESOLVER PROBLEMAS DE MULTIPLICAÇÃO E DIVISÃO 1

O ÁBACO DE FRAÇÃO COMO FACILITADOR DA APRENDIZAGEM ATRAVÉS DE UMA INTERVENÇÃO DIDÁTICA Autor (1) Tiago Felipe Oliveira e Silva;

DA TERRA À LUA. Uma interação entre dois corpos significa uma ação recíproca entre os mesmos.

CÁLCULO VETORIAL E GEOMETRIA ANALÍTICA CAPÍTULO 1 VETORES

MESTRADO EM MACROECONOMIA e FINANÇAS Disciplina de Computação. Aula 05. Prof. Dr. Marco Antonio Leonel Caetano

TEATRO NA ESCOLA: UMA EXPERIÊNCIA DO PIBID

SISTEMA DE COORDENADAS

GEOMETRIA ESPACIAL. a) Encher a leiteira até a metade, pois ela tem um volume 20 vezes maior que o volume do copo.

Energia no movimento de uma carga em campo elétrico

Mecânica Técnica. Aula 5 Vetor Posição, Aplicações do Produto Escalar. Prof. MSc. Luiz Eduardo Miranda J. Rodrigues

Sempre que surgir uma dúvida quanto à utilização de um instrumento ou componente, o aluno deverá consultar o professor para esclarecimentos.

Transcrição:

Algoitmos de Busca A modelagem mostada até aqui detemina a configuação do espaço de estados do poblema, mas não mosta como chega à solução, isto é, como enconta um estado final em um tempo azoável. Paa efetua esta busca, pode-se utiliza técnicas de busca em gafos, algumas das quais seão descitas a segui.

Busca Exaustiva Busca exaustiva ou busca cega consiste em gea todos os possíveis estados (nós de uma ávoe) do espaço de estados, e pati daí enconta o estado final (solução). Deste modo a solução encontada é gaantida se a solução ótima, mas tal abodagem, apesa de detemina a solução ótima, pode leva muito tempo paa se encontada, pois existem poblemas que possuem um númeo muito gande de estados (xadez 10120 possíveis posições no tabuleio), tonando assim a busca exaustiva inviável. A segui seão mostados dois métodos de busca exaustiva.

1 Busca em Amplitude A busca em amplitude ou em lagua (do inglês, beadth-fist seach) consiste em constui uma ávoe de estados a pati do estado inicial, aplicando, a cada momento, todas as egas possíveis aos estados do nível mais baixo da ávoe, geando todos os estados sucessoes de cada um destes estados. Assim, a busca po um estado final se dá po níveis, no gafo ou na ávoe do poblema.

1 Busca em Amplitude Na notação apesentada paa o algoitmo, são usadas epesentações póxima ao pascal mistuada com a notação de conjuntos. A função append tem dois paâmetos, uma lista e um elemento. Esta função etona uma nova lista composta pela lista e o elemento passados como paâmetos, sendo que o pimeio elemento da lista esultante seá o pimeio paâmeto passado a função, po exemplo, append(1,[2,3]) esulta em [1,2,3] e append([2,3],1) esulta em [2,3,1]. A busca em emplitude consiste em expandi o nó na odem em que são geados.

Algoitmo Busca em Amplitude algoitmo buscaemamplitude (R,E,e0,F) 1. open := [e0]; {open contém a lista de nós a seem visitados} 2. enquanto não Vazia(open) faça 2.1 e:=obtempimioelemento(open); 2.2 open:=retiapimeioelemento(open); 2.3 Paa toda i R tal que i(e) E faça {Detemina todos os sucessoes de e} 2.3.1 e :=i(e); {e os coloca em open } 2.3.2 Se e F então etone e ; {e é um nó final} 2.3.3 open:=append(open,e ); {insee e no final de open} fim_paa; fim_enquanto; se Vazio(open) então impima( Não há solução ); fim {busca em aplitude}

Algoitmo Busca em Amplitude Obseve que o algoitmo expande todos os nós de um nível paa depois expandi os estados do nível seguinte. Retonando ao exemplo das duas jaas, é apesentado a segui o desenvolvimento do algoitmo de busca em amplitude aplicado a este poblema: Inicialmente, atibui-se o estado inicial à lista de nós que seão visitados (open) pela instução 1:

Algoitmo Busca em Amplitude Open Em seguida, são geados os sucessoes do estado inicial atavés da instução 2.3: Open 1 (4,0) (0,3) Na segunda aplicação da instução 2.3, são geados os sucessoes de (4,0): 1 2 2 (4,3) 3 (4,0) (0,3) 5 (1,3)

Algoitmo Busca em Amplitude Neste momento, open = [(0,3), (4,3),, (1,3)], já que (0,3), que já estava na lista ainda não foi exploado e os sucessoes de (4,0) foam adicionados no final da lista pela instução append. Então, o póximo estado a te seus sucessoes geados po busca em extensão seá (0,3):

Algoitmo Busca em Amplitude 1 (4,0) (0,3) 3 5 1 4 7 Open (4,3) (1,3) (4,3) (3,0) Na seqüência do algoitmo, são geados os sucessoes de (4,3),, (1,3), (4,3), e odem, esultando na seguinte ávoe:

Algoitmo Busca em Amplitude 1 (4,0) (0,3) 3 5 1 4 7 (4,3) (1,3) (4,3) (3,0) 1 3 4 1 2 3 4 6 3 4 1 2 1 2 3 5 (0,3) (4,0) (4,0) (0,3) (4,3) (0,3) (1,0) (4,0) (0,3) (4,0) (4,0) (0,3) (4,0) (3,3) (0,3)

Algoitmo Busca em Amplitude Um poblema com este algoitmo é que nodos já visitados na busca podem se visitados novamente se foem sucessoes de outos estados. Esta epetição é desnecessáia, poque, po exemplo, a sub-ávoe abaixo e no segundo e teceio níveis seá exatamente igual á sub-ávoe de no pimeio nível, isto é, elas teão exatamente os mesmos sucessoes. Po isso, o algoitmo pode se eescito paa elimina a busca em estados já visitados:

fim {busca em aplitude sem epetição de nós} Algoitmo Busca em Amplitude sem Repetição de Estados algoitmo buscaemamplitudesemrepetiçãodeestados (R,E,e0,F) 1. open := [e0]; 2. closed := ; {lista de nós visitados} 3. enquanto não Vazia(open) faça 3.1 e:=obtempimeioelemento(open); 3.2 open:=retiapimeioelemento(open); 3.3 closed := append(closed,e); 3.4 Paa toda i R tal que i(e) E faça 3.4.1 e :=i(e); 3.4.2 Se e F então etone e ; 3.4.3 Se (e closed) (e open) então open:=append(open,e ); fim_paa; fim_enquanto; se Vazio(open) então impima( Não há solução );

Algoitmo Busca em Amplitude sem Repetição de Estados Com a utilização deste algoitmo, a última ávoe do exemplo anteio ficaia assim: 1 (4,0) (0,3) 5 7 (4,3) (1,3) (3,0) 4 Open (1,0) (3,3)

Algoitmo Busca em Amplitude sem Repetição de Estados É mais fácil, então continua a expansão desta ávoe. Na inteação seguinte tem-se:

Algoitmo Busca em Amplitude sem Repetição de Estados 1 (4,0) (0,3) 5 7 (4,3) (1,3) (3,0) 4 (1,0) (3,3) 8 6 Open (0,1) (4,2)

Algoitmo Busca em Amplitude sem Repetição de Estados E assim po diante. Execício: Continue a constução a ávoe de busca em extensão paa este poblema até enconta um estado final.

Busca em Pofundidade Enquanto a busca em amplitude pocua expandi todos os nodos em um deteminado nível da ávoe antes de pati paa o nível seguinte, a busca em pofundidade (do inglês, depth-fist seach) faz exatamente o contáio. O algoitmo de busca em pofundidade pocua exploa completamente cada amo da ávoe antes de tenta o amo vizinho. Segue o algoitmo em sua vesão iteativa:

Algoitmo Busca em Pofundidade algoitmo buscaempofundidadedeestados (R,E,e0,F) {Sem epetição de nós} 1. open := [e0]; 2. closed := ; {lista de nós visitados} 3. enquanto não Vazia(open) faça 3.1 e:=obtempimeioelemento(open); 3.2 open:=retiapimeioelemento(open); 3.3 closed := append(closed,e); 3.4 Paa toda i R tal que i(e) E faça: 3.4.1 e :=i(e); 3.4.2 Se e F então etone e ; 3.4.3 Se (e closed) (e open) então open:=append(e, open); fim_paa; fim_enquanto; se Vazio(open) então impima( Não há solução ); fim {busca em pofundidade}

Algoitmo Busca em Pofundidade Paa exemplifica a utilização de busca em pofundidade, é apesentado a segui o desenvolvimento do algoitmo paa o mesmo sistema de podução que seviu de exemplo à busca em extensão. O algoitmo inicia com o estado. As egas aplicáveis são 1 e, geando o estado (4,0) e (0,3)

Algoitmo Busca em Pofundidade 1 Open (4,0) (0,3) O póximo estado escolhido é (4,0), podeia te escolhido também (0,3). Qualque nó no mesmo nível da ávoe pode se escolhido: 1 (4,0) (0,3) 5 (4,3) (1,3)

Algoitmo Busca em Pofundidade Neste momento, closed é igual a [(4,3),(1,3),(0,3)]. Difeentemente do algoitmo de busca em amplitude, o nó a se expandido seá o nó (4,3), mas como as egas aplicadas a ele levaá a estados já geados, então o póximo nó escolhido é o nó (1,3), este pocesso é chamado de backtacking, isto é, um etocesso ao nó anteio:

Algoitmo Busca em Pofundidade 1 (4,0) (0,3) 5 (4,3) (1,3) 4 (1,0) Veja que o póximo estado a se expandido é (1,0), pois é ele que está no topo da fila:

Algoitmo Busca em Pofundidade 1 (4,0) (0,3) 5 (4,3) (1,3) 4 (1,0) 8 (0,1)

Algoitmo Busca em Pofundidade Execícios Constua o esto da ávoe acima até enconta a solução. Veja que os dois algoitmos de busca exaustiva apesentados acima, difeem apenas na escolha do nó a se expandido. Se open compota-se como uma fila, então temos uma busca em amplitude. Se open compota-se como uma pilha, então temos uma busca em pofundidade.