IV. Encourager les logiques coopératives et mieux inscrire les politiques industrielles dans les territoires
1. Des stratégies nationales en faveur de l’industrie parfois très dirigistes dirigistes
Seja uma formiga localizada em um v´ertice i. Deseja-se encontrar o v´ertice seguinte j pertencente ao conjunto de poss´ıveis v´ertices adjacentes Jk(i). A sele¸c˜ao pode ser feita de duas
formas diferentes. Na primeira, escolhe-se como pr´oximo v´ertice k aquele que, entre os v´ertices poss´ıveis, retorna o maior valor do produto (τik· η
β
ik). Na segunda forma de sele¸c˜ao, o v´ertice ´e
escolhido de forma aleat´oria seguindo uma distribui¸c˜ao de probabilidade. A probabilidade de cada um dos v´ertices poss´ıveis ser escolhido ´e calculada usando a Equa¸c˜ao 8, considerando o parˆametro α = 1.
A escolha por qual das duas op¸c˜oes de sele¸c˜ao depende da vari´avel q e do parˆametro q0.
O valor de q ´e escolhido aleatoriamente no intervalo [0,1], seguindo uma distribui¸c˜ao uniforme de probabilidades. O parˆametro q0 define a importˆancia relativa de cada tipo de sele¸c˜ao.
Outra caracter´ıstica do ACS ´e o uso de duas atualiza¸c˜oes do feromˆonio. A atualiza¸c˜ao global ´e semelhante `a usada pelo MMAS, exceto pela n˜ao limita¸c˜ao do feromˆonio. Ao fim da constru¸c˜ao de solu¸c˜oes por todas as formigas, o feromˆonio evapora com taxa (1 − ρglobal)
e recebe o refor¸co apenas da formiga com melhor solu¸c˜ao desde o in´ıcio do algoritmo. Este processo de atualiza¸c˜ao global pode ser visto na Equa¸c˜ao 19.
τij(t + 1) = (1 − ρglobal) · τij(t) + ρglobal· ∆τijbest (19)
A atualiza¸c˜ao local ´e realizada de forma independente por cada uma das formigas. Em cada passo realizado (deslocamento de uma formiga do v´ertice i para o v´ertice j) a atualiza¸c˜ao descrita pela Equa¸c˜ao 20 ´e aplicada ao ´ultimo arco (i, j) visitado. O parˆametro ρlocal ´e o
coeficiente de evapora¸c˜ao local, e valor τ0´e o feromˆonio inicial de cada arco.
τij(t + 1) = (1 − ρlocal) · τij(t) + ρlocal· τ0 (20)
A principal ideia ao usar a atualiza¸c˜ao local ´e diversificar a busca realizada pelas for- migas seguintes. Ao reduzir a concentra¸c˜ao do feromˆonio, a formiga da itera¸c˜ao atual for¸ca as subsequentes a escolherem outros caminhos, uma vez que os demais arcos n˜ao sofrem atuali- za¸c˜ao.
3.4
A meta-heur´ıstica ACO
A Otimiza¸c˜ao por Colˆonia de Formigas foi formalizada como uma heta-heur´ıstica por Dorigo et al. (DORIGO; DI CARO, 1999). Meta-heur´ısticas s˜ao m´etodos computacionais que otimizam um determinado problema de forma iterativa, tentando melhorar uma solu¸c˜ao candidata atrav´es da avalia¸c˜ao de sua qualidade. Geralmente s˜ao aplicadas a problemas em que n˜ao se conhece
3.4 A meta-heur´ıstica ACO 52
nenhum algoritmo eficiente para sua solu¸c˜ao. Utilizam escolhas aleat´orias e o conhecimento hist´orico adquirido de resultados anteriores na constru¸c˜ao de solu¸c˜oes dentro de um espa¸co de busca. Outros exemplos de meta-heur´ısticas incluem simulated annealing (KIRKPATRICK; GELATT; VECCHI, 1983) , busca tabu (GLOVER, 1986), algoritmos gen´eticos (HOLLAND, 1975) e a otimiza¸c˜ao por enxame de part´ıculas (KENNEDY; EBERHART, 1995).
Em geral, algoritmos ACO s˜ao usados na solu¸c˜ao de problemas de otimiza¸c˜ao combi- nat´oria. Tais problemas s˜ao caracterizados por:
um espa¸co de busca discreto;
um conjunto finito de componentes;
um conjunto finito de transi¸c˜oes entre componentes;
um conjunto finito de restri¸c˜oes;
um conjunto finito de sequˆencias de componentes, definindo assim o espa¸co de busca; uma sequˆencia ´e poss´ıvel se n˜ao for contra o conjunto de restri¸c˜oes;
uma solu¸c˜ao, representada por uma sequˆencia ordenada de componentes;
uma fun¸c˜ao custo, que associa um custo a cada solu¸c˜ao;
Dadas estas caracter´ısticas do problema, o prop´osito dos algoritmos de otimiza¸c˜ao ´e en- contrar uma solu¸c˜ao poss´ıvel com custo m´ınimo (para o caso de um problema de minimiza¸c˜ao). Como pˆode ser visto na Se¸c˜ao 3.3, os diversos algoritmos de formigas compartilham todos caracter´ısticas semelhantes. Este conjunto de conceitos algor´ıtmicos ´e definido como a meta-heur´ıstica ACO, podendo ser usado na constru¸c˜ao de novos m´etodos heur´ısticos aplic´aveis a outros problemas. Em outras palavras, ´e um arcabou¸co algor´ıtmico de uso geral, que pode ser usado em diferentes problemas de otimiza¸c˜ao necessitando apenas de uma pequena quantidade de modifica¸c˜oes (DORIGO; BIRATTARI; ST ¨UTZLE, 2006).
A meta-heur´ıstica ACO ´e apresentada no Algoritmo 5. Trˆes a¸c˜oes s˜ao realizadas en- quanto o crit´erio de parada n˜ao ´e alcan¸cado. A constru¸c˜ao de solu¸c˜oes inicializa as formigas e escolhe a sequˆencia de arcos que formar´a uma solu¸c˜ao seguindo uma regra de transi¸c˜ao de estados. A busca local realiza uma compara¸c˜ao entre solu¸c˜oes a fim de encontrar as melhores, como ´e o caso do algoritmo ASrank. Por ser um processo ´util, mas que n˜ao ´e usado em todos
3.5 Considera¸c˜oes Finais do Cap´ıtulo 53
Algoritmo 5 A meta-heur´ıstica ACO
1: Inicializa os parˆametros e o feromˆonio;
2: EnquantoCondi¸c˜ao de parada n˜ao alcan¸cada Fa¸ca
3: Constr´oi as solu¸c˜oes de todas as formigas do ciclo;
4: Aplica a busca local (opcional);
5: Atualiza o feromˆonio; 6: Fim Enquanto;
Por fim, a atualiza¸c˜ao define como o feromˆonio ir´a variar no decorrer da execu¸c˜ao do algo- ritmo. ´E interessante ressaltar que a meta-heur´ıstica n˜ao define como estas trˆes etapas devem ser realizadas. Assim, o projetista tem liberdade para alterar instˆancias - tais como as regras de transi¸c˜ao, a atualiza¸c˜ao de feromˆonio ou ainda o crit´erio de parada - a fim de obter um algoritmo que solucione de forma mais eficiente o problema de interesse.
3.5
Considera¸c˜oes Finais do Cap´ıtulo
Neste cap´ıtulo foi apresentada a otimiza¸c˜ao por colˆonia de formigas (ACO) como um m´etodo computacional de inteligˆencia coletiva. Foi brevemente abordado o comportamento natural de formigas que serviu de inspira¸c˜ao para o Ant System e, posteriormente, algoritmos como o ACS e o MMAS. Cada um destes algoritmos foi abordado. Por fim, o ACO foi formalizado como uma meta-heur´ıstica de otimiza¸c˜ao. O cap´ıtulo seguinte apresenta dois algoritmos inspirados em ACO sendo usados para o roteamento em redes embutidas.
Cap´ıtulo 4
ROTEAMENTO EM NOCS
BASEADO EM ACO
A
COMUNICA ¸C ˜AO entre blocos de um SoC ´e um fator de grande importˆancia no projeto do sistemas. Um modelo de comunica¸c˜ao mal planejado pode acarretar em uma perda de eficiˆencia do sistema como um todo, devido a atrasos na execu¸c˜ao da aplica¸c˜ao. Como pˆode ser visto no Cap´ıtulo 1, NoCs passaram a ser usadas com o objetivo de desviar destes problemas de comunica¸c˜ao, reduzindo assim o tempo de execu¸c˜ao de aplica¸c˜oes embutidas. Ainda assim, NoCs tamb´em podem apresentar atrasos, em situa¸c˜oes de congestionamento da rede. Uma forma de evitar, ou pelo menos reduzir o congestionamento, ´e utilizando um roteamento de rede adaptativo. Desta forma, o caminho a ser percorrido por uma mensagem ´e definido levando-se em considera¸c˜ao a carga de mensagens em toda rede.Algoritmos baseados na meta-heur´ıstica ACO tˆem se mostrado eficientes na otimiza¸c˜ao de problemas envolvendo grafos, conforme visto no Cap´ıtulo 3. Esta ideia pode ser utilizada tamb´em em problemas de busca de rotas entre v´ertices de grafos.
Este cap´ıtulo apresenta o modelo proposto para um roteamento centralizado em NoCs inspirados em ACO. A Se¸c˜ao 4.1 mostra as especifica¸c˜oes e modelagem da rede para utiliza¸c˜ao do m´etodo proposto. A Se¸c˜ao 4.2 ilustra o problema de roteamento, em que se deseja minimizar o tempo de transmiss˜ao de pacotes em uma rede. Os dois algoritmos implementados, baseados no EAS e no ACS, s˜ao detalhados na Se¸c˜ao 4.3.