Beneficencia Pública de Lima, 1920Descripción completa
Diferencias entre terminologías que finalmente decidirán el correcto nombre del Virreinato.Descripción completa
Descripción completa
explicacion arquitectonica de la colonia weissenhof de Mies Van Der RoheDescripción completa
Descrição completa
Descripción: Algoritmo de IA de Colonia de hormigas
Descripción completa
Descripción: Se trata de una reflexión socio cultural, respecto de la película Colonia Dignidad, la cual expone situaciones vividas en Chile durante el Golpe Militar.
Descripción completa
estructura socialDescripción completa
instauracionDescripción completa
Descripción completa
Descripción completa
Descripción completa
Descripción completa
Se trata de una reflexión socio cultural, respecto de la película Colonia Dignidad, la cual expone situaciones vividas en Chile durante el Golpe Militar.Full description
Descripción completa
excelente explicación acerca de donde somos
Implementação de Otimização Colônia de Formigas Estéfane G. M. de Lacerda Departamento de Engenharia da Computação e Automação UFRN
Introdução
Apresentaremos o Pseudo-Código do Ant System . O código pode ser diretamente implementado em linguagens como C, Java e Pascal. O código é uma adaptação do código contido no livro: M. Dorigo and T. Stützle. Ant Colony Optimization . MIT Press. 2004.
Estruturas de Dados
real dist[n][n] real feromonio[n][n] real info[n][n]
dist[i][j] contém d ij (a distância entre as cidades i e j );
info[i][j] contém (τij )α (ηij ) β .
Apesar de não ser necessário, neste código faremos estas matrizes serem simétricas para facilitar a programação.
Estrutura de Dados para as Formigas tipo_formiga
=
registro real dist_percurso real percurso[n+1] booleano visitado[n] fim registro
tipo_formiga formiga[m]
Cada formiga é representada por três campos:
dist_percurso: é a distância da viagem realizada pela formiga; percurso: é um vetor contendo as cidades do percurso. Por conveniência, a primeira cidade é armazenada duas vezes (no inicio e no fim do vetor); visitado: é vetor cujo elemento i é TRUE se a cidade i foi visitada, e FALSE caso contrário.
Esta estrutura pode ser implementado com struct da linguagem C
Algoritmo Principal
LeiaDadosProblema ComputeMatrizDistancia ComputeMatrizInfo InicializeFormigas InicializeParametros enquanto (não terminar) ConstruaSolucoes BuscaLocal // opcional AtualizeEstatisticas AtualizeFeromonio fim enquanto
Construindo as Soluções (1/2)
procedimento ConstruaSolucoes para k=1 até m para i=1 até n formiga(k).visitado(i) = FALSE fim para fim para passo = 1 para k=1 até m r = numero_randomico(1,n) formiga(k).percurso(passo) = r formiga(k).visitado(r) = TRUE fim para
(continua)
Construindo as Soluções (2/2)
(continuação) enquanto (passo < n) passo = passo + 1 para k=1 até m ComputeRegraDecisao(k,passo) fim para fim enquanto para k=1 até m formiga(k).percurso(n+1) = formiga(k).percurso(1) formiga(k).dist_percurso = ComputeDistPercurso(k) fim para fim procedimento ConstruaSolucoes
Computando a Regra de Decisão (1/2)
procedimento ComputeRegraDecisao(k,i) c = formiga(k).percurso(i-1) soma_probabilidades = 0.0 para j=1 até n se formiga(k).visitado(j) então selecao_probabilidade(j) = 0 senão selecao_probabilidade(j) = info(c,j) soma_probabilidades = soma_probabilidades + selecao_probabilidade(j) fim se fim para
(continua)
Computando a Regra de Decisão (2/2)
(continuação) r = numero_aleatorio(0,soma_probabilidades) j = 1 p = selecao_probabilidade(j) enquanto (p < r) j = j + 1 p = p + selecao_probabilidade(j) fim enquanto formiga(k).percurso(i) = j formiga(k).visitado(j) = TRUE
fim procedimento ComputeRegraDecisao
Computando Estatísticas procedimento AtualizeEstatisticas para k=1 até m se formiga(k).dist_percurso < melhor_distancia então copie(formiga(k).percurso, melhor_percurso) melhor_distancia = formiga(k).dist_percurso fim se fim para compute outras estatísticas fim procedimento AtualizeEstatisticas
Notas:
O principal objetivo deste procedimento é salvar a melhor solução encontrada até a iteração corrente; O procedimento copie(a,b) copia vetor a para vetor b.
Atualizando o Feromonio (1/4)
procedimento AtualizeFeromonio Evapore() para k=1 até m DepositeFeromonio(k) fim para ComputeMatrizInfo fim procedimento AtualizeFeromonio
Atualizando o Feromônio (2/4)
procedimento Evapore para i=1 até n para j=1 até n feromonio[i][j] = (1 − ρ) * feromonio[i][j] feromonio[j][i] = feromonio[i][j] // matriz simétrica fim para fim para fim procedimento Evapore
Atualizando o Feromônio (3/4)
procedimento DepositeFeromonio(k) ∆τ = Q/formiga(k).dist_percurso para i=1 até n j = formiga(k).percurso(i) l = formiga(k).percurso(i+1) feromonio(j,l) = feromonio(j,l) + ∆τ feromonio(l,j) = feromonio(j,l) fim para fim procedimento DepositeFeromonio
Atualizando o Feromônio (3/4) Exemplo de código em scilab. function global global global global
DepositeFeromonio(k) FORMIGA // todas as variaveis globais N // são declaradas na função FEROMONIO CONST_Q
DeltaTau = CONST_Q/FORMIGA(k).dist_percurso; for i=1:N j = FORMIGA(k).percurso(i); l = FORMIGA(k).percurso(i+1); FEROMONIO(j,l) = FEROMONIO(j,l) + DeltaTau; FEROMONIO(l,j) = FEROMONIO(j,l); end endfunction