redes de alto débito - w3.ualg.ptw3.ualg.pt/~jmmontei/rad/rad-routingwithmetaheuristics.pdf ·...
TRANSCRIPT
Redes de Alto DébitoRedes de Alto DébitoRouting com meta-heuristicasRouting com meta-heuristicas
ADEE – EST - UAlgarveADEE – EST - UAlgarve
• Sabia que em média uma árvore produz apenas 20 resmas de papel. Antes de imprimir este documento pense bem se tem mesmo que o fazer. Poupe papel. Lembre-se que há cada vez menos árvores.• A compra de papel 100% reciclado pós-consumo diminui sua emissão de carbono em 2,2 kg por resma.• Cada tonelada de papel reciclado economiza electricidade suficiente para iluminar uma casa de 3 quartos durante um ano.
Fontes: http://www.openland.pt, http://www.diadaarvore.org.br
Pedro Cardoso, Ph.D. [email protected]
w3.ualg.pt/~pcardoso
120408 Redes de Alto Débito 2
O que é uma heurística?
Heurística:
Arte de inventar ou descobrir;
Método de ensino que procura que o aluno atinja os conhecimentos ou a solução para os problemas por esforço próprio;
HISTÓRIA procura de documentos;
INFORMÁTICA: regra (ou conjunto de regras) que pretende obter uma aproximação à solução de um problema;
www.infopedia.pt
120408 Redes de Alto Débito 3
O que é uma heurística?
● Exemplo: Algoritmo para dar troco
– Enquanto não tiver o troco
● Dá a moeda do valor mais elevado, menor ou igual do que o troco em dívida
120408 Redes de Alto Débito 4
O que é uma meta-heurística?
Meta-
elemento de formação de palavras, de origem grega, que exprime a ideia de mudança, união, transformação no vocabulário científico, e a ideia de nível superior, maior generalidade no vocabulário filosófico;
Na Informática: Uma meta-heurística é um método heurístico para resolver de forma genérica problemas de optimização.
www.infopedia.pt
120408 Redes de Alto Débito 5
O que é uma meta-heurística?
Algoritmo aplicável a qualquer problema
onde seja possível definir uma “vizinhança”
120408 Redes de Alto Débito 6
O que é uma meta-heurística?
Exemplos:
Algoritmos genéticos
Simulated annealing
Tabu search
Swarm Intelligence
Ant Colony Optimization
Particle swarm optimization
...
120408 Redes de Alto Débito 8
Princípios da SI
Swarm Intelligence (SI)
Baseada na interacção de muito agentes simples que tentam atingir um mesmo objectivo
Emergente
Comportamento global que surge da interacção de muitos agentes
Stigmergia
Comunicação indirecta (geralmente através do ambiente)
120408 Redes de Alto Débito 9
Princípios da SI
Propriedades dos algoritmos de Swarm Intelligence:
Os agentes são considerados como simples
Stigmergia: Comunicação indirecta entre agentes
O comportamento global pode ser emergente
Os comportamentos são robustos
Necessário em ambientes não previsíveis e/ou dinâmicos
Os indivíduos não são importantes !?
120408 Redes de Alto Débito 10
Princípios da SI
O que faz um sistema Swarm Intelligence funcionar?
Feedback Positivo
Feedback Negativo
Aleatoriedade
Múltiplas interacções
120408 Redes de Alto Débito 11
Princípios da SI
O que faz um sistema Swarm Intelligence funcionar?
Feedback Positivo
Reforça boas soluções
Formigas são capazes de atrair mais ajuda quando fonte de alimento é encontrado
Mais formigas sobre um trilho aumenta o rasto de feromonas e atrai ainda mais formigas
Feedback Negativo
Aleatoriedade
Múltiplas interacções
120408 Redes de Alto Débito 12
Princípios da SI
O que faz um sistema Swarm Intelligence funcionar?
Feedback Positivo
Feedback Negativo
Elimina as soluções más ou velhas da memória colectiva
Diminuição dos rastos de feromonas
Soluções mais afastadas são exploradas por último
O rasto de feromonas tem menos tempo para se evaporar nas soluções mais próximas
Aleatoriedade
Múltiplas interacções
120408 Redes de Alto Débito 13
Princípios da SI
O que faz um sistema Swarm Intelligence funcionar?
Feedback Positivo
Feedback Negativo
Aleatoriedade
Permite que surjam novas soluções e dirige a construção das actuais
As decisões dos agentes são aleatórias
Probabilidade de exploração (evita convergências prematuras)
Múltiplas interacções
120408 Redes de Alto Débito 14
Princípios da SI
O que faz um sistema Swarm Intelligence funcionar?
Feedback Positivo
Feedback Negativo
Aleatoriedade
Múltiplas interacções
Nenhum indivíduo pode resolver um determinado problema. Só através da interacção de muitos pode ser encontrada uma solução
Um agente não pode sozinho resolver o problema. O rasto de feromonas rapidamente se evaporava
São necessários muitos agentes para sustentar o rasto de feromonas
Mais soluções podem ser encontrados mais rapidamente
120408 Redes de Alto Débito 15
Princípios da SI
SI é adequada para
Encontrar soluções que não exigem controle preciso sobre a forma como a meta é alcançada
Necessita de um grande número de agentes
Os agentes podem ser simples
Comportamentos robustos
120408 Redes de Alto Débito 16
De um modo geral
Vantagens
Optimização global
Versatilidade
Robustez
Optimização de situações dinâmicas
SI + heurística especifica = algoritmo eficiente
Desvantagens
Refinamento local difícil
Pode ser superado por algoritmos mais específicos
Necessário alguma capacidade computacional (memória, processador)
120408 Redes de Alto Débito 17
Exemplos de métodos
Ant Colony Optimization
Colónias de formigas
Particle Swarm Optimization
Cardumes de peixes
Bandos de pássaros
Bee Colony Alg.
Colmeias de abelhas
...
movies/Catfish_School.flv
120408 Redes de Alto Débito 19
Dumb parts, properly connected into a swarm, yield smart results.
Kevin Kelly
The ants said: together we will be able to transport an elephant
Proverbio do TOGO
6
The constant creeping of ants will wear away the stone
Proverbio do USA
120408 Redes de Alto Débito 20
Formigas individuais
Comportamentais
Muito pouco “sofisticados”
Memória muito limitada
Comportamento individual com uma grande componente aleatório.
120408 Redes de Alto Débito 21
As formigas como um colectivo
Executam tarefas complexas com grande fiabilidade e consistência.
Regulação da temperatura do ninho (~1 ºC);
Formação de pontes;
Raids massivos sobre áreas de alimentos;
Construção e protecção do formigueiro;
120408 Redes de Alto Débito 22
As formigas como um colectivo
Executam tarefas complexas com grande fiabilidade e consistência.
Cooperação na carga de “grandes objectos”;
emigração maciças de colónias
Cuidam dos ovos
Encontram as rotas mais curtas do ninho até uma fonte de alimento
Exploram preferencialmente as melhores fontes alimentares
120408 Redes de Alto Débito 24
Colónia de formigas naturais
Comportamento baseado em
Populações com elevado número de formigas
Interacção através de rastos de feromonas (e outros)
Processo de busca de comida
Passo 1) Busca aleatória de comida
Passo 2) Transporte de comida
Passo 3) Deixar rasto de feromona
Passo 4) Procura orientada pelas feromonas → Passos 2 → Passo 3
120408 Redes de Alto Débito 25
Simulação
Simulação do comportamento das colónias de formigas usando o starlogo
simulacaoStarLogo.wmv
120408 Redes de Alto Débito 26
Os enxames são...
Flexíveis
Podem responde a perturbações internas e a desafios externo
Robustos
As tarefas são completadas mesmo que alguns membros falhem
Descentralizados
Não existe um controlo central na colónia
Auto-organizados
As soluções para os desafios são emergentes e não predefinidas
120408 Redes de Alto Débito 28
Aplicações...
Os métodos ACO foram usados com sucesso em vários problemas bastante complexos:
Travelling Salesman Problem
Job-shop scheduling
...
120408 Redes de Alto Débito 29
Exemplo...
Um caixeiro viajante deve partir de sua cidade, visitar “n” cidades diferentes, e voltar a sua origem.
Mas, qual a sequência de de cidades que devo percorrer de modo que eu percorra a menor distância (gaste o menor tempo) possível?
120408 Redes de Alto Débito 31
Exemplo...
Não tão trivial
8 cidades = 7! = 5040 ciclos distintos
151 cidades de Portugal → 5,7 * 10^262 ciclos
PC a 10THz → 10^12 combinações por ciclo → 5,7*10^250 segundos → 1.8 *10^243 anos!!!(universo ~ 13,7x10^9anos.
?
120408 Redes de Alto Débito 32
Exemplo...
Ant Colony Optimization
1. Espalha um conjunto de formigas pelos nós
2. Cada formiga escolhe o próximo nó, de entre os que ainda não está no seu ciclo de acordo com uma fórmula probabilística
pi , j
k={
τ i , j
α ⋅d i , j
−β
∑ j∈J k τ i , j
α⋅d i , j
−β
0
se j∈J k
c .c .
120408 Redes de Alto Débito 33
Exemplo...
A fórmula
pij
k={
τ ij
α⋅d ij
−β
∑ j∈J k τ ij
α⋅d ij
−β
0
se j∈J k
c .c .
● J^K - é a lista de vértices não visitados;●τ_{i,j} - é a quantidade de feromonas na aresta (i,j); ●d_{i,j } - é a distância entre os nós i e j●α e β são parâmetros que definem o grau de importância de τ e d respectivamente.
J
120408 Redes de Alto Débito 34
Exemplo...
Actualização das feromonas
Após cada formiga ter calculado uma solução, S_n
J
τij=1−ρ ⋅τ ijΔτij
Δτij={1
D Sn
0
se i , j ∈Sn
c . c .
onde
120408 Redes de Alto Débito 35
Exemplo...
Ciclo 1
Ciclo 54
Ciclo 7
Ciclo 33
Melhor solução após ciclo...
120408 Redes de Alto Débito 36
Algoritmo Ant Colony Optimization
• Inicia o rasto de feromonas
• Enquanto ¬ (critério de paragem) faz
• Para todos formigas faz• Construir uma solução nova utilizando o
rasto de feromonas actual e heurísticas• Estimar a solução construída
• Fim para• Actualiza o rasto de feromonas usando as
soluções obtidas considerando uma dada evaporação
• Fim enquanto
• Devolve Solução(ões)
120408 Redes de Alto Débito 38
AVISO!
Qualquer semelhança entre o apresentado daqui para a frente (terminologia de redes e precisão) e uma apresentação de um técnico de redes (competente) são mera coincidência!!!
120408 Redes de Alto Débito 39
Network Routing
Importante
Influencia a performance global da rede
Difícil
Variações estocásticas
Carga de tráfego
Topologia da rede
Tipos gerais
Circuit-switched (telefones)
Packet-switched (local network, Internet)
120408 Redes de Alto Débito 40
Network Routing
Routing
Actividade de construção e uso de tabelas de routing
Tabelas de routing
Informação para fazer o forwarding dos pacotes
Uma por nó da rede
120408 Redes de Alto Débito 41
Network Routing
Algoritmos classificados em
Centralizados
Controlador central → actualiza todas as tabelas de routing
Redes pequenas
Mau: atrasos na recolha da informação + envio para nós
Controlador em baixo → rede em baixo
Distribuidos
Calculo dos caminhos partilhado pelos nós
Troca de informação entre nós
Usado na maioria das redes
120408 Redes de Alto Débito 42
Network Routing
Routing estático
Calculo do caminho baseado nos nós origem/destino
Não tem em conta o tráfego
Caminho = caminho mais “barato”
Routing dinâmico (adaptativo)
Adapta as políticas de routing a variações temporais/espaciais do tráfego
120408 Redes de Alto Débito 43
Network Routing
Optimização
Routing óptimo
Vê a rede como um todo
Optimizar o funcionamento global da rede → função de custo global
Caminho mais curto
Não há função de custo global
Caminho mais curto de acordo com o custo das ligações
Classificados
Vector distância
Tab. Routing: (destino, distância estimada, next hop)Estado do link
Mapa dinâmico de toda a rede
120408 Redes de Alto Débito 45
Qual é o problema?
Rede de comunicações
N - Nós da rede
L - Conjunto de ligações/arestas entre os nós
d - Função que a cada aresta faz corresponder um (vector de) custos
d : L ℜ
M
N ,L , d
120408 Redes de Alto Débito 46
Qual é o problema?
●Uma rede...
Nós
Arestas
(distancia,custo,banda usada, ...)
120408 Redes de Alto Débito 47
Qual é o problema?
Objectivo
Encontrar os custos mínimos entre cada par de nós
(equilíbrio da rede)
120408 Redes de Alto Débito 48
Qual é o problema?
não depende do tempo
M = 1
“Fácil” de resolver
Dijkstra algorithm -
M > 1
Optimização com múltiplos objectivos
Ex: geralmente são problemas intratáveis, i.e., não existem algoritmos polinomiais para os resolver
Possível resolução recorrendo a heurísticas
d : L ℜ
M
On²
120408 Redes de Alto Débito 49
Qual é o problema?
Exemplo de Optimização com múltiplos objectivos
0 20 40 60 80 100 120
0
20
40
60
80
100
120
valores para ir do nó i para o nó j
Custo
Con
gest
iona
men
toCongestionamento 90 42 52 52 12 12 23 23 23 35 15 23 34 56 10 96 76 43Custo 1 2 23 23 23 23 34 44 3 34 100 34 34 33 44 34 4 66
120408 Redes de Alto Débito 50
Qual é o problema?
depende do tempo
Porquê?
A rede é dinâmica e os custos variam ao longo do tempo
Congestionamentos,
Arestas/nós indisponíveis ou condicionadas
Situação muito mais complexa...
d : L ℜ
M
Redes, Routers e Routing
As redes actuais (por exemplo, a Internet) transportam os dados em pequenos pacotes
O grande problema é como é que esses pacotes encontram o caminho até ao seu destino
Redes, Routers e Routing
Para os dados (por exemplo, um email) “encontrarem o seu caminho” desde quem envia até ao destinatário, o pacote tem de ter um endereço...
… e os routers da rede têm de saber o que fazer com ele.
A
B
BB
B
B
Router
Redes, Routers e Routing
Cada router tem de decidir para onde enviar cada um dos pacotes…
… logo cada router tem de saber um pouco acerca do resto rede…
… e fazer a decisão baseada nos seus conhecimentos: ‘routing protocol’
E agora por onde?E agora por onde? ? ?
?
? ?
Protocolos de Routing
Cada router troca informação com os seus vizinhos…
… para construir uma imagem completa da rede…
… então define o “melhor” caminho para cada destino
?
??
?
?
?
“Diz-me um pouco acerca de ti …”
Protocolo de Routing
O problema é que cada um destes caminhos é calculado independentemente
Routers só pensam acerca dos seus caminhos em cada instante…
… e não têm ideia do que os outros routers iram fazer
B
B
“É por aqui para ir para B”
‘Joined-up Routing’
Vista geral…
… podia ser melhor…
… do que escolher diferentes rotas individualmente?
B
B
C
C
‘Joined-up Routing’
Vista geral…
… podia ser melhor…
… do que escolher diferentes rotas individualmente?
Parece simples!
B
B
C
C
Problemas!
Duas dificuldades:
Considerar todas as rotas em conjunto requer muito mais tempo e capacidade do que separadamente
Como podem os routers cooperar deste modo…
… quando cada um define as suas rotas independentemente?
!
Requerido...
Do que é que precisamos?
Sistema distribuido
Altamente adaptável às variações de tráfego
Adaptável à heterogeneidade das redes
Métodos eficientes para calcular rotas e …
Um método de partilhar as rotas pretendidas
… A solução podem ser as …
?
120408 Redes de Alto Débito 64
Princípios da SI
Uma rede ad hoc é composto por muitos agentes simples (cooperantes?) com um conjunto de problemas que precisam ser resolvidos de forma robusta e com tão pouca comunicação directa quanto possível
120408 Redes de Alto Débito 65
Princípios da SI
Routing é uma extensão da busca por fontes de comida das formigas!
Formigas à procura de comida…
Pacotes à procura de destinos…
Routing pode ser resolvido com SI?
Routing pode ser um comportamento emergente da interacção de pacotes?
Ant colony behaviour
As formigas movem-se
… cada uma deixa um rasto de feromona
uma mensagem para a próxima formiga
Quanto mais formigas mais feromonas
As formigas seguintes detectam as feromonas
Colectivamente a colónia encontra a melhor “estratégia”...
Deixar um rasto de feromona
Lê feromonas
Ant colony routing? (ACR)
Será que ACO pode melhorar o routing?
Enviar formigas-pacote para a rede…
… deixando feromonas-electrónicas
… de modo a partilhar a informação de routing
… melhora a estratégia de routing para a rede?
‘Ant’ packets
120408 Redes de Alto Débito 69
AntNet
AntNet aplicado a uma rede packet- switched
AntNet semelhante ao algoritmo Ant Colony Optimization (ACO) algorithm para a resolução de problemas do tipo Traveling Salesman
AntNet
Formigas-forward, F, são lançadas regularmente para destinos aleatórios na rede
F mantém uma lista dos nós que visitou e o tempo decorrido para chegar lá
A formiga-pacote cresce ao atravessar a rede
Loops são removidos do caminho
F é transmitida em função da probabilidade do próximo hop
Mantida em cada nó de roteamento na tabela
AntNet
Quando F chega no seu destino, uma formiga-backward, B, é devolvida à origem
B segue o caminho inverso de F até à origem
Em cada nó, B actualiza a tabela de roteamento
Probabilidade do próximo hop para o destino
Estatísticas de tempo de envio para o destino
MédiaVariância
AntNet
Os pacotes de dados são roteados usando as probabilidades do próximo hop
As formigas-forward têm a mesma prioridade que os pacotes de dados
As formigas-forward sofrem os mesmos congestionamento e atrasos que os pacotes de dados.
As formiga-backward são encaminhadas com prioridade mais elevada do que os outros pacotes
AntNet
AntNet é um algoritmo de roteamento para redes datagrama
2 datagramas consecutivos enviados para o mesmo endereço podem chegar na ordem inversa
Testes explicitos de feedback são estabelecidos com formigas-forward e formiga-backward
As tabelas de probabilidades são actualizadas de acordo com as estatísticas
Outros algoritmos
Ant-Based Control (ABC)R. Schoonderwoerd, O. Holland, J. Bruten, Ant-based load balancing in telecommunications networks, 1996.
AntNetG. Di Caro, M. Dorigo, Mobile Agents for Adaptive Routing, Technical Report, Univ. Libre de Bruxelles, Beligium, 1997.
Mobile Ants Based Routing
Ant Colony Based Routing AlgorithmM. Gunes, U. Sorges, I. Bouaziz, ARA – The Ant-Colony Based Routing Algorithm for MANETs, 2003.
TermiteM. Roth, S. Wicker, Termite: Emergent Ad-Hoc Networking, 2003.
120408 Redes de Alto Débito 93
Bibliografia
Ant Colony Optimization. M. Dorigo, T. Stützle. MIT Press.
Ants for load balancing in telecommunications networks. R. Schoonderwoerd, O. Holland, J. Bruten, Leon Rothkrantz
Adaptive Routing in Wireless Communication Networks using Swarm Intelligence. P. Arabshahi, A. Gray, I. Kassabalidis, A. Das
Adaptive-SDR: Adaptive Swarm-based Distributed Routing. I. Kassabalidis, M. El-Sharkawi, R. Marks II, P. Arabshahi, A. Gray
Swarm Intelligence for Routing in Communication Networks. I. Kassabalidis, M. El-Sharkawi, R.Marks II, P. Arabshahi, A. Gray
The Genetic Adaptive Routing Algorithm. Munetomo et. Al, 1997
...
...