Sie sind auf Seite 1von 14

Hill climbing

Aleffer Rocha, Mayara Omai, Marielly Freitas


O QUE HILL CLIMBING?

Tambm conhecido como Subida na Encosta


Algoritmo de Busca Local
Busca Local: Algoritmo que realiza uma busca em um grafo, analisando
somente os valores vizinhos do vrtice que est sendo analisado. O algoritmo
busca pelo menor(ou maior) custo localmente, ou seja, ele avalia o custo
para ir de si mesmo at seus vizinhos.
Utilizado em problemas de otimizao e satisfao de restries
Exemplo: Problema da Mochila e N-Rainhas(Configurao final), entre outros.
Busca Informada
Quais as vantagens de usar Hill
Climbing?

Encontra uma soluo localmente tima, ou prxima da tima, pois


avalia qual a melhor soluo a cada passo do algoritmo (iterao).

utilizado como base para algoritmos mais complexos.


Quais os problemas ao usar Hill
Climbing?

Mximos ou Mnimos locais.


Picos ou Vales
Plats
Lugares altos e planos, logo o algoritmo no ir conseguir se mover.
Como Hill Climbing funciona?

O algoritmo realiza buscas usando um conjunto de estados iniciais gerados


aleatoriamente.
A escolha feita a partir do melhor resultado encontrado pela busca.
Aps a escolha do melhor vizinho, compare-o com o estado atual.
Se o melhor vizinho for melhor que o estado atual, o estado atual passa a ser o
vizinho.
Se no existir mais nenhum vizinho melhor que o estado atual, o algoritmo
para retornando o estado atual.
Solucionando alguns problemas do
Hill Climbing:

Algumas vezes a vizinhana do n sendo analisado muito grande,


ento algumas medidas precisam ser tomadas para que a checagem
dos vizinhos no seja muito demorada.
Alternativas para evitar a avaliao de toda a vizinha:
Mtodo Primeiro de Melhora.
Mtodo Aleatrio.
Mtodo Aleatrio no Ascendente.
Reincio aleatrio
Pseudocdigo

1. S soluo inicial
2. repita
3. R NovaSoluo(S)
4. se (Qualidade(R) > Qualidade(S)) ento
5. S R
6. at que S seja a soluo ideal ou as iteraes tenham se esgotado
7. devolva S
O PROBLEMA DA MOCHILA

Dados um conjunto de n objetos e uma mochila com:


= benefcio do objeto ;
= peso do objeto ;
= capacidade da mochila.

Objetivo : Determinar os objetos que devem ser colocados na mochila


maximizando o benefcio sem ultrapassar a capacidade da mochila.
O problema da mochila (0/1)


Maximizar sujeito a {0,1}
=1 =1

Uma soluo um vetor preenchido com 1 e 0.


Se o objeto est na mochila = 1, seno = 0.
O problema da mochila (0/1)

Um movimento consiste em mudar o valor de

[0, 0, 0, 1, 0]
[0, 1, 1, 1, 0]

= [0, 1, 0, 1, 0] [0, 1, 0, 1, 1]
[0, 1, 0, 0, 0]
[1, 1, 0, 1, 0]
Instncia do problema

Capacidade da mochila ()= 16

Objeto () 1 2 3 4 5
Benefcio ( ) 3 3 2 4 2
Peso ( ) 5 4 7 8 4

Funo de avaliao


0, , =
=1
=1 =1
Iterao 1

Iterao 1
= [0, 1, 0, 1, 0] = f(s)= 7

Vizinho Peso Benefcio f(s)


00010 4 8 8
01110 19 9 -18
01011 16 9 9
01000 4 3 3
11010 17 10 0
Iterao 2

Iterao 2
= [0, 1, 0, 1, 1] = f(s)= 9

Vizinhos Peso Benefcio f(s)


Mochila
11011 21 12 -48 Objetos 2, 4 e 5
01111 23 11 -66 Benefcio = 9
Peso = 16
00011 12 6 6
10011 17 9 0
01001 8 5 5
01010 12 7 7
REFERNCIAS

Coppin, Ben. Inteligncia artificial. Rio de Janeiro : LTC(2010).


Souza, Marcone Jamilson Freitas. "Inteligncia computacional para
otimizao." Notas de aula, Departamento de Computao,
Universidade Federal de Ouro Preto, disponvel em http://www. decom.
ufop.br/prof/marcone/InteligenciaComputacional/InteligenciaComputac
ional. pdf(2008).
de Miranda, Marcio Nunes. "Algoritmos Genticos: Fundamentos e
Aplicaes." (2007).

Das könnte Ihnen auch gefallen