ADEE – EST - UAlgarve Redes de Alto Débito Routing com meta-heuristicas Pedro Cardoso, Ph.D. [email protected] w3.ualg.pt/~pcardoso • 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 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 2 O que é uma heurística? ● Exemplo: Algoritmo para dar troco – Enquanto não tiver o troco ● 120408 Dá a moeda do valor mais elevado, menor ou igual do que o troco em dívida Redes de Alto Débito 3 O que é uma metaheurística? Metaelemento 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; www.infopedia.pt Na Informática: Uma meta-heurística é um método heurístico para resolver de forma genérica problemas de optimização. 120408 Redes de Alto Débito 4 O que é uma metaheurística? Algoritmo aplicável a qualquer problema onde seja possível definir uma “vizinhança” 120408 Redes de Alto Débito 5 O que é uma metaheurística? Exemplos: Algoritmos genéticos Simulated annealing Tabu search Swarm Intelligence Ant Colony Optimization Particle swarm optimization ... 120408 Redes de Alto Débito 6 SI Swarm Intelligence 120408 Redes de Alto Débito 7 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 8 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 9 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 10 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 11 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 12 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 13 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 14 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 15 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 16 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 17 As formigas na natureza 120408 Redes de Alto Débito 18 Dumb parts, properly connected into a swarm, yield smart results. The constant creeping of ants will wear away the stone Kevin Kelly The ants said: together we will be able to transport an elephant Proverbio do USA 6 Proverbio do TOGO 120408 Redes de Alto Débito 19 Formigas individuais Comportamentais Muito pouco “sofisticados” Memória muito limitada Comportamento individual com uma grande componente aleatório. 120408 Redes de Alto Débito 20 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 21 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 22 Experiência com formigas ants_on_bridge.avi 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 24 Simulação Simulação do comportamento das colónias de formigas usando o starlogo 120408 Redes de Alto Débito 25 simulacaoStarLogo.wmv 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 26 ACO Ant Colony Optimization 120408 Redes de Alto Débito 27 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 28 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 29 Exemplo... Trivial 120408 Redes de Alto Débito 30 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 31 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 k pi , j = 120408 { τ iα, j⋅d −β i,j ∑ α j∈J k τ i , j⋅d i , j 0 −β se j∈J k c.c . Redes de Alto Débito 32 Exemplo... A fórmula k pij = { τ αij⋅d−β ij ∑ α j∈J k τ ij⋅d ij 0 −β se j ∈J k c .c . J 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. ● 120408 Redes de Alto Débito 33 Exemplo... Actualização das feromonas Após cada formiga ter calculado uma solução, S_n J τij = 1−ρ ⋅τ ijΔτ ij onde { 1 Δτ ij = 120408 D S n 0 se i , j ∈S n c.c. Redes de Alto Débito 34 Exemplo... Melhor solução após ciclo... Ciclo 1 Ciclo 7 Ciclo 54 Ciclo 33 120408 Redes de Alto Débito 35 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 36 Aplicação ao routing 120408 Redes de Alto Débito 37 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 38 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 39 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 40 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 41 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 42 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 43 Formulação do Problema de routing 120408 Redes de Alto Débito 44 Qual é o problema? Rede de comunicações N ,L , d 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 M d : L ℜ 120408 Redes de Alto Débito 45 Qual é o problema? Uma rede... ● (distancia,custo,banda usada, ...) Nós Arestas 120408 Redes de Alto Débito 46 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 47 Qual é o problema? M d : L ℜ não depende do tempo M=1 “Fácil” de resolver Dijkstra algorithm - O n² 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 120408 Redes de Alto Débito 48 Qual é o problema? Exemplo de Optimização com múltiplos objectivos Congestionamento Custo 90 42 52 52 12 12 23 23 23 35 15 23 34 56 10 96 76 43 1 2 23 23 23 23 34 44 3 34 100 34 34 33 44 34 4 66 valores para ir do nó i para o nó j 120 Congestionamento 100 80 60 40 20 0 0 120408 20 40 60 Custo Redes de Alto Débito 80 100 120 49 Qual é o problema? M d : L ℜ 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... 120408 Redes de Alto Débito 50 Resumindo a “coisa” 120408 Redes de Alto Débito 51 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 Router A B B B B 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. B Redes, Routers e Routing E agora por onde? ? ? ? ? ? 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’ Protocolos de Routing “Diz-me um pouco acerca de ti …” ? ? ?? ? ? 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 Protocolo de Routing “É por aqui para ir para B” B B 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 ‘Joined-up Routing’ “E para C?” B C B C Vista geral… … podia ser melhor… ‘Joined-up Routing’ B C B C Vista geral… … podia ser melhor… … do que escolher diferentes rotas individualmente? ‘Joined-up Routing’ B C B C Vista geral… … podia ser melhor… … do que escolher diferentes rotas individualmente? Parece simples! 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 … A Solução? Formigas! Principios Swarm intelligence. .. 120408 Redes de Alto Débito 63 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 64 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? 120408 Redes de Alto Débito 65 Ant colony behaviour Deixar um rasto de feromona Lê feromonas 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”... Ant colony routing? (ACR) ‘Ant’ packets 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? AntNet 120408 Redes de Alto Débito 68 AntNet AntNet aplicado a uma rede packetswitched AntNet semelhante ao algoritmo Ant Colony Optimization (ACO) algorithm para a resolução de problemas do tipo Traveling Salesman 120408 Redes de Alto Débito 69 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 formigabackward, 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édia Variâ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 AntNet Livro: Ant Colony Optimization, Marco Dorigo, Thomas Stützle Por outras palavras... 120408 Redes de Alto Débito 75 Destino ? Início Destino ? Início p33.mpeg Destino Início ? Início Destino ? Destino Início p50.mpeg ? Início Destino Destino Início Destino ? Início Destino ? Início p3difa.mpeg Destino Início Destino ? Início Destino ? Início p3difb.mpeg Destino Início Rastos de feromonas... Destino Rastos de feromonas... Destino Rastos de feromonas... Destino Outros algoritmos Ant-Based Control (ABC) R. Schoonderwoerd, O. Holland, J. Bruten, Ant-based load balancing in telecommunications networks, 1996. AntNet G. 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 Algorithm M. Gunes, U. Sorges, I. Bouaziz, ARA – The Ant-Colony Based Routing Algorithm for MANETs, 2003. Termite M. Roth, S. Wicker, Termite: Emergent Ad-Hoc Networking, 2003. 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 ... ... 120408 Redes de Alto Débito 93 Projectos de Mestrado em Ant colony routing? Pacotes de formigas Your mission ______, should you choose to accept it, … (preencher os espaços) Projectos de Mestrado Estudo de algoritmos na área do routing ACR-video, ACR-QoS,...