Anda di halaman 1dari 82

UNIVERSIDADE FEDERAL DA PARABA

CENTRO DE CINCIAS EXATAS E DA NATUREZA


DEPARTAMENTO DE INFORMTICA
PROGRAMA DE PS-GRADUAO EM INFORMTICA

THIAGO CURVELO DOS ANJOS

METAHEURSTICAS APLICADAS AO PROBLEMA DE


DESIGNAO DE SERVIDORES E CLIENTES EM UM SERVIO
DE VIDEOCONFERNCIA

JOO PESSOA - PB
MARO, 2009

THIAGO CURVELO DOS ANJOS

METAHEURSTICAS APLICADAS AO PROBLEMA DE


DESIGNAO DE SERVIDORES E CLIENTES EM UM SERVIO
DE VIDEOCONFERNCIA

Dissertao de Mestrado apresentada ao Centro de


Cincias Exatas e da Natureza da Universidade Federal da
Paraba, como requisito parcial para obteno do Ttulo de
Mestre em Informtica (Sistemas de Computao)
Orientador: Prof. Dr. Lucdio dos Anjos Formiga Cabral

JOO PESSOA - PB
MARO, 2009

A597m Anjos, Thiago Curvelo dos.


Metaheursticas aplicadas ao problema de designao de servidores e clientes em
um servio de videoconferncia / Thiago Curvelo dos Anjos. - - Joo Pessoa: UFPB,
2009.
80 f. : il.
Orientador: Lucdio dos Anjos Formiga Cabral.
Dissertao (Mestrado) UFPB, CCEN, Programa de Ps-Graduao em
Informtica.
1. Informtica. 2. Metaheursticas. 3. Videoconferncias. 4. Cascateamento de
MCUs.
UFPB/BC

CDU: 004(043)

AGRADECIMENTOS
Gostaria de agradecer primeiramente a minha famlia, pela constante torcida e
pelo suporte prestado, no s nessa fase, mas durante toda a minha vida. Um
agradecimento especial a talo Curvelo, meu irmo, por ouvir (quase sempre)
pacientemente minhas divagaes sobre a vida acadmica.
A Amanda Mendes, pela sua compreenso, amor, carinho e dedicao
demonstrados desde o primeiro momento em que nossos caminhos se cruzaram.
A Lucdio Cabral. Orientador atencioso, professor de excelente didtica,
cmplice e um amigo para toda a vida.
Ao professor Marcone Souza, que muito nos ajudou direta e indiretamente:
atravs das notas de aula disponveis em seu site (as quais me iniciaram nessa fascinante
rea), pelas sugestes dadas e por ter nos concedido acesso ao seu CPLEX.
Ao professor Guido Lemos, pesquisador visionrio, que alm de ter proposto o
tema de nosso trabalho j nos prestou diversos apontamentos esclarecedores.
Ao professor Dnio Mariz, amigo j de alguns anos, sempre atencioso e com
comentrios construtivos, e o qual fiz questo que estivesse em minha banca avaliadora.
Ao meu amigo Thiago Gouveia, pela constante troca de idias sobre os avanos
e dificuldades compartilhadas no mestrado, afinal, no bastasse termos estudado nas
mesmas turmas do ensino mdio e das duas graduaes, tnhamos de compartilhar ainda
o mesmo orientador no mestrado!
Ao colega Anand Subramanian, pelo apoio em vrios momentos,
principalmente nos de maior estresse. A Hugo Kramer por ter nos ajudado com as
execues no CPLEX. Ao Tssio Vale, do GT-Medies da RNP, pela ajuda nas
medies no backbone da RNP.
Aos avaliadores annimos dos eventos aos quais submetemos nosso trabalho,
cujos valiosos comentrios nortearam vrios de nossos esforos neste estudo.
E por ltimo, e no menos importante, a Deus, cujo acaso em seu algoritmo
s tem me proporcionado movimentos de melhora, conduzindo-me sempre pelas
melhores solues do infinito espao de busca da vida.

RESUMO
Esse trabalho procura estudar abordagens heursticas para o problema de
configurar uma rede de videoconferncia, de modo a minimizar sua latncia total. A
latncia que consiste no tempo que a informao leva para percorrer o caminho entre
os ns fins na comunicao compreende uma das principais barreiras para a
popularizao da videoconferncia, devido caracterstica interativa que essa aplicao
possui.
O trabalho foca em videoconferncias multiponto centralizadas, ou seja,
aquelas onde h trs ou mais participantes e so utilizadas unidades de controle
multiponto (Multipoint Control Unit MCU) para controle e processamento dos fluxos
audiovisuais.
Para esse cenrio mostra-se interessante o projeto de um algoritmo
coordenador, capaz de configurar a rede overlay, procurando minimizar a latncia total
do servio. Esse algoritmo deve determinar a configurao topolgica do grafo de
MCU's, de modo a atender vrias salas de conversao, bem como atribuir os clientes
de cada sala a uma MCU.
A obteno da configurao de latncia mnima mostrou-se um problema de
complexidade intratvel, para tanto se buscou abordagens heursticas para abord-lo. O
problema foi modelado utilizando programao linear inteira, onde foi possvel obter-se
a soluo tima para instncias pequenas e solues de referncia para instncias
maiores. Os resultados obtidos foram utilizados para validao das heursticas. Foi
avaliado o uso das metaheursticas Simulated Annealing e Busca Tabu, e de uma
heurstica hbrida Simulated Annealing / Busca Tabu, como alternativas para obter
solues aproximadas de boa qualidade, em um tempo computacional razovel.
Palavras-chave: Metaheursticas, Videoconferncias, ALM, Cascateamento de MCUs

ii

ABSTRACT
This work aims to study heuristics approaches to solve the videoconferencing
network configuration problem, in order to minimize its total latency. Latency is the
time that information takes from source to destination node in communication. It is one
of the main barriers for videoconferencing popularization, due to interactive nature of
the application.
This work focuses on centralized multipoint videoconferencing context, which
means that a multipoint control unit (MCU) is used for processing audiovisual flows
and for controlling the service.
In this scenario there's a possibility to design a coordinator algorithm capable
of configuring the network, trying to minimize the network overlay total latency. This
algorithm must determine the MCUs graph topology, in order to meet multiple
simultaneous chat rooms, and choose for which MCUs clients will connect to the
service.
Obtaining minimum latency solution is an intractable complexity problem,
therefore heuristic approaches was searched to treat it. The problem was modeled using
integer linear programming, where was possible obtain the optimal solution for small
instances. Then the results were used to validate the heuristic approaches. We evaluated
the use of Simulated Annealing and Tabu Search metaheuristics, and a hybrid heuristic
Simulated Annealing/Tabu Search as alternatives to get good quality solutions in a
reasonable computational time.
Keywords: Metaheuristics, Videoconferencing, ALM, MCU Cascading

iii

LISTA DE FIGURAS
Modelos de conferncia MP centralizado (a) e com cascateamento de MCU's (b)..........3
Disposio dos clientes na tela, pelo OpenMCU.............................................................11
Arquitetura e gerao da imagem pelo DCS...................................................................12
Arquitetura do OMNI [Banerjee et al., 2003].................................................................13
Arquitetura do Kudos [Jain et al., 2002].........................................................................14
Representao visual da soluo da instncia MCU_5_16_2_cap8................................24
Representao da soluo de MCU_5_16_2_cap8 utilizando a estrutura de dados........24
Movimento de Mover Participante..................................................................................25
Movimento de Permutar Participantes............................................................................26
Movimento de Adicionar MCU.......................................................................................27
Movimento de Permutar MCU's de uma mesma sala......................................................27
Movimento de Permutar de MCU's de salas diferentes...................................................28
Procedimento de Soluo Inicial.....................................................................................30
Procedimento Simulated Annealing para um problema de minimizao [Souza, 2006] 32
Procedimento TemperaturaInicial() para um problema de minimizao [Souza, 2006]. 34
Procedimento Busca Tabu para um problema de minimizao [Souza, 2006]...............36
Diagrama da Heurstica Hbrida SABT...........................................................................37
Procedimento SABT........................................................................................................38
Visualizao da instncia MCU_5_16_2_cap8, gerada aleatoriamente..........................40
Valores de entrada da instncia MCU_5_16_2_cap8......................................................40
Efeitos da temperatura inicial e condio de parada extra..............................................44
Distribuio de Probabilidade Emprica para um Alvo fcil...........................................54
Distribuio de Probabilidade Emprica para um Alvo Difcil........................................55
Convergncia do SABT para diferentes alvos.................................................................55
Soluo de MCU_5_16_2_cap8_cl obtida por SolInicial()............................................68
Soluo de MCU_5_16_2_cap8_cl obtida pelo SABT...................................................68
Soluo de MCU_30_50_5_cap8 obtida por SolInicial()...............................................69
Soluo de MCU_30_50_5_cap8 obtida pelo SABT......................................................69
Soluo de MCU_40_150_15_cap8 obtida por SolInicial()...........................................70
Soluo de MCU_40_150_15_cap8 obtida pelo SABT..................................................70
Soluo de MCU_40_200_30_cap8_cl obtida por SolInicial()......................................71
Soluo de MCU_40_200_30_cap8_cl obtida pelo SABT.............................................71

iv

LISTA DE TABELAS
Tabela 1: Instncias geradas aleatoriamente....................................................................41
Tabela 2: Instncias baseadas na RNP.............................................................................43
Tabela 3: Parmetros utilizados no SA............................................................................45
Tabela 4: Parmetros utilizados no procedimento TemperaturaInicial().........................45
Tabela 5: Parmetros utilizados na BT............................................................................46
Tabela 6: Parmetros utilizados no SABT.......................................................................47
Tabela 7: Resultados da execuo das instncias aleatrias no CPLEX.........................47
Tabela 8: Resultados da execuo das instncias RNP no CPLEX.................................48
Tabela 9: Resultados das Heursticas...............................................................................50
Tabela 10: Gap mdio de cada heurstica para o conjunto das instncias.......................51
Tabela 11: Comparativo entre as melhores solues de cada heurstica........................52
Tabela 12: Resultados das heursticas com o movimento de permutar papis................56
Tabela 13: Distribuio de probabilidade dos movimentos para o experimento com
movimentao tendenciosa..............................................................................................58
Tabela 14: Comparativo entre heursticas com escolha aleatria e tendenciosa de
movimentos.....................................................................................................................58

LISTA DE ACRNIMOS
ALM

Application Level Multicast

ALMT

Application Level Multicast Tree

BT

Busca Tabu

DCS

Dynavideo Conference System

FIFO

First in, First Out

IP

Internet Protocol

IPTV

Internet Protocol Television

ITU-T

International

Telecommunication

Union

Telecommunication Standardization Sector


IP

Internet Protocol

MC

Multipoint Controller

MCU

Multipoint Control Unit Unidade de Controle


Multiponto

MP

Multipoint Processor

NP

Non-Deterministic Polynomial Polinomial NoDeterminstico

P2P

Peer-to-peer

PoP

Point-of-Presence

QoS

Quality of Service

RNP

Rede Nacional de Ensino e Pesquisa

RTT

Round Trip Time

SA

Simulated Annealing

SABT

Simulated Annealing / Busca Tabu

vi

SUMRIO
Agradecimentos..................................................................................................................i
Resumo..............................................................................................................................ii
Abstract............................................................................................................................iii
1 Introduo.................................................................................................................1
1.1 Objetivos do trabalho........................................................................................4
1.2 Metodologia seguida.........................................................................................5
1.3 Publicaes........................................................................................................6
2 Reviso Bibliogrfica................................................................................................8
2.1 Padro H.323.....................................................................................................8
2.1.1 Modelos de Videoconferncia...................................................................9
2.1.2 Cascateamento de MCU's........................................................................10
2.2 Dynavideo Conference System.......................................................................10
2.3 Multicast em nvel de aplicao (ALM).........................................................12
2.4 Configurao da rede de videoconferncia de custo mnimo.........................15
3 Formulao do Problema........................................................................................17
3.1 Modelo Matemtico........................................................................................18
4 Heursticas Propostas..............................................................................................22
4.1 Representao de uma soluo........................................................................23
4.2 Estrutura de Vizinhana..................................................................................24
4.2.1 Mover Participante..................................................................................25
4.2.2 Permutar participantes.............................................................................25
4.2.3 Adicionar MCU.......................................................................................26
4.2.4 Permutar MCU's de mesma sala..............................................................26
4.2.5 Permutar MCU's de salas diferentes........................................................27
4.2.6 Permutar Papis de MCU's......................................................................28
4.3 Soluo Inicial.................................................................................................28
4.4 Simulated Annealing ......................................................................................31
4.5 Busca Tabu......................................................................................................34
4.6 Heurstica Hbrida Simulated Annealing Busca Tabu (SABT)....................36
5 Resultados...............................................................................................................39
5.1 Instncias.........................................................................................................39
5.1.1 Instncias aleatrias.................................................................................39
5.1.2 Instncias RNP........................................................................................42
5.2 Parametrizao................................................................................................43
5.3 Experimentos...................................................................................................47
6 Consideraes Finais..............................................................................................61
Bibliografia......................................................................................................................65
Anexo I Exemplos Visuais de Solues.......................................................................68

vii

1 Introduo
Aplicaes de videoconferncia, devido ao tipo de mdia empregada udio e
vdeo demandam um alto custo de largura de banda. Alm disso, a qualidade de
servio de aplicaes interativas em tempo real apresenta sensibilidade ao desempenho
das redes comutadas por pacotes, em especial latncia. Essas caractersticas se
constituem as principais barreiras para a popularizao da videoconferncia, sobretudo
da conferncia multiponto [Civanlar et al., 2005].
Neste tipo de aplicao (videoconferncia multiponto), onde h comunicao
de grupo, o consumo de banda passante pode ser realmente impactante caso no haja
um planejamento da infraestrutura de comunicao para o uso racional deste recurso.
Sistemas de videoconferncia multiponto distinguem-se, quanto a sua
infraestrutura de comunicao, em descentralizados, centralizados e hbridos [Rao et al.,
2006].
No modelo descentralizado, a comunicao ocorre normalmente de duas
formas: (1) utilizando-se multicast IP ou (2) atravs de conexes unicast entre os
participantes. Apesar dos inegveis ganhos do uso do multicast IP (como robustez e
escalabilidade), sabe-se que a implantao do multicast em escala global no uma
realidade hoje em dia, o que impede esta opo de ser considerada uma soluo vivel
[Yeo et al., 2004]. Por outro lado, utilizando-se conexes unicast para interligar todos os
terminais, obtm-se um cenrio onde cada participante tem de enviar, receber e tratar (n1) fluxos, onde n representa o nmero de participantes. Isso gera uma limitao na
escalabilidade, tanto devido ao consumo de banda, quanto ao processamento.
Existem esforos no sentido de melhorar a eficincia no consumo de banda por
parte das videoconferncias descentralizadas. Por exemplo, em [Civanlar et al., 2005]
proposta uma arquitetura para implantao de videoconferncia P2P, onde os pacotes de
dados so transmitidos atravs de cadeias. Nestas cadeias, uma seqncia de ns prdefinida. O n na cabea da cadeia, gerador do fluxo atual, envia seus dados para o
seguinte, que retransmitir o dado adiante, at o final da cadeia. Diferentes cadeias so
1

definidas com cada um dos ns na cabea da estrutura. Deste modo, todo terminal est,
a cada instante, enviando um fluxo e recebendo outro. Esta abordagem trata bem o
problema de consumo de banda, mas por outro lado o atraso fim a fim crtico s
videoconferncias no to privilegiado. Neste esquema de cadeias, o ltimo terminal
de uma corrente receber os dados oriundos dos ns da cabea aps um perodo de
tempo igual ao somatrio dos atrasos de transmisso individual de cada n para o seu
seguinte da cadeia.
Em sistemas de videoconferncia que implementam o modelo centralizado, os
participantes se comunicam atravs de conexes unicast com uma unidade de controle
multiponto (MCU), responsvel por realizar procedimentos de controle da conferncia,
como tambm por mesclar a informao audiovisual dos clientes e enviar a cada um
deles um nico fluxo com os dados mixados. Com este modelo no h a necessidade de
suporte a multicast IP, mas ainda assim h um uso eficiente da rede, pois cada terminal
envia apenas um fluxo de dados. Alm disso, devido ao fato de terem de receber e tratar
um fluxo nico, possvel que hosts com menor poder computacional (ex. dispositivos
mveis) utilizem-se do servio, j que no ser necessrio que os terminais mesclem os
fluxos. As MCU's podem implementar adicionalmente outras funcionalidades, que
agregam vantagens ao modelo, como negociao de capacidades com os terminais (ns
com necessidades diferentes recebem fluxos de qualidade diferente) e compartilhamento
de documentos. Contudo, este modelo apresenta as desvantagens de possuir um ponto
nico de falha (a prpria MCU), e uma baixa escalabilidade, devido capacidade de a
MCU ser fator limitante do nmero de usurios.
H tambm o modelo hbrido que consiste em uma mescla do modelo
centralizado e do descentralizado. Normalmente utilizado quando se tem acesso a uma
infraestrutura de comunicao multicast, mas ainda faz uso de uma MCU, por exemplo,
para o controle da conferncia e compartilhamento de documentos.
Em [Vasconcelos & Souza Filho, 2004] proposto um sistema de
videoconferncia chamado Dynavideo Conference System (DCS), que apresenta uma
arquitetura variante do modelo clssico videoconferncia centralizada, e faz proveito do
cascateamento de MCU's (previsto no padro H.323 [ITU-T, 2003]), no intuito de
prover uma maior escalabilidade para o modelo e minimizar o problema de ponto nico
2

de falha.
O padro H.323 parte da famlia de recomendaes do ITU-T (International
Telecommunication Union Telecommunication Standardization Sector) da srie H que
trata de sistemas audiovisuais e multimdia, especificando comunicaes multimdia em
redes baseadas em pacotes sem garantia de qualidade de servio. Muito embora o
mercado esteja em contnuo movimento, o H.323 ainda o padro predominante para
aplicaes de videoconferncias sobre IP [Aposkitis et al., 2005]. Nele so definidos
alguns componentes, dentre eles os terminais e as MCU's. Os terminais so os ns
clientes da videoconferncia, com capacidade para comunicao audiovisual
bidirecional; enquanto a MCU um tipo especial de terminal como j citado
anteriormente, tem a funo de controle da conferncia, como tambm responsvel
por mixar a informao audiovisual dos participantes em um fluxo nico.
Adicionalmente, o H.323 prev uma caracterstica opcional para as MCU's: a
possibilidade de cascateamento. Com essa funo, as MCU's trocam mensagens entre si
de modo que, ao invs de uma MCU intermediando a comunicao entre os terminais,
tenha-se uma nuvem de MCU's, cascateados sob demanda, como ilustra a Figura 1.
Alm disso, o DCS implementa a funcionalidade de redirecionamento de chamadas, que
permite mover clientes entre MCU's, durante a conferncia.

Figura 1. Modelos de conferncia MP centralizado (a) e com cascateamento de MCU's (b)

Com esta abordagem possvel assumir que, tendo-se mltiplas MCU's


geograficamente espalhadas, estenda-se um cenrio de um servio de comunicao
cliente-servidor, para um segundo cenrio onde utilizada uma infraestrutura de
multicast em nvel de aplicao (Application-Level Multicast ALM [Yeo et al., 2004]).
A utilizao de infraestruturas de ALM constitui em uma das formas mais

adotadas atualmente para suprir necessidades de comunicao de grupo na Internet,


tanto para aplicaes de fonte nica (ex. IPTV) quanto de mltiplas fontes (ex.
videoconferncias). De modo geral, a abordagem para se construir uma arquitetura
baseada em ALM envolve sondar as caractersticas da rede (normalmente a latncia) e
construir topologias apropriadas, organizando os ns em redes overlay de modo a obter
uma distribuio eficiente dos dados.
A forma como essas sondagens so realizadas foge do escopo deste trabalho.
Apesar de o mtodo mais utilizado entre as aplicaes ALM ser atravs de medies de
round-trip time (RTT) [Yeo et al., 2004], existem propostas de outras formas mais
eficientes de se estimar o atraso entre dois ns na Internet [Ziviani & Duarte, 2005].
A topologia de distribuio utilizada nesse tipo de aplicao, normalmente uma
rvore, referenciada na literatura como Application-Level Multicast Tree (ALMT) [Liu
et al., 2005] e, apesar das muitas variantes (fonte nica, mltiplas fontes, limite de grau,
mnimo atraso mximo etc.), quase sempre implicam em problemas complexos de
natureza combinatria. A construo e manuteno destas rvores constituem uns dos
principais objetos de estudo em comunicao em grupo overlay.
Os estudos realizados neste trabalho buscam a elaborao de algoritmos
capazes de prover um servio de coordenador da rede de videoconferncia,
determinando que configurao topolgica deva ser utilizada, de modo que a latncia
total da rede seja mnima. Neste cenrio, tem-se um infraestrutura de servidores (as
MCU's) e uma demanda de clientes que esto agrupados em mltiplas salas. Para cada
sala haver uma rvore de distribuio composta por MCU's, onde as folhas compem
os pontos de acesso dos clientes ao servio de conferncia.
Os objetivos especficos do trabalho so mostrados na seo 1.1. A
metodologia seguida para obteno dos resultados tratada na seo 1.2. Na seo 1.3
so relatadas as publicaes obtidas com os resultados parciais deste trabalho.

1.1

Objetivos do trabalho
O objetivo geral desse trabalho estudar opes de algoritmos para atuarem

como coordenadores da topologia do servio de videoconferncia do DCS, ou seja, um


metaservio responsvel por propor uma configurao de rede que proporcione uma
4

melhor qualidade de servio. O mtodo proposto deve ser escalvel e produzir


resultados com um tempo de resposta baixo, para que sua aplicao seja factvel.
Os objetivos especficos do trabalho so:
1. O desenvolvimento de uma formulao matemtica usando programao
linear inteira, para validao das heursticas;
2. Definio da estrutura de vizinhana para a aplicao de heursticas de
refinamento ou busca local;
3. Implementao de mtodos heursticos para tratar o problema;
4. Comparao da qualidade dos resultados, bem como estudo de convergncia
de cada mtodo implementado.
Apesar da nfase em conferncias H.323, e das restries topolgicas do DCS,
as abordagens propostas neste trabalho podem ser adequadas a outras tecnologias de
comunicao, ou mesmo outras aplicaes que apresentem caractersticas semelhantes.
Em especial, aplicaes multimdia que sejam distribudas, multiusurio e de natureza
interativa podem se beneficiar do estudo aqui realizado.

1.2

Metodologia seguida
No intuito de validar as abordagens heursticas, se mostra interessante a

formulao de um modelo matemtico cuja resoluo nos permite encontrar solues


timas, considerando apenas as instncias pequenas do problema. Para tanto, neste
trabalho apresentada a formulao de um modelo matemtico, utilizando programao
linear inteira, passivo de execuo em softwares otimizadores como o LINGO [Lingo,
2001] e o CPLEX [ILOG, 2008].
Para a adoo de metaheursticas de refinamento, se faz necessrio identificar
movimentos que permitiro caminhar pelo espao de solues, definindo assim uma
estrutura de vizinhana para o problema.
As metaheursticas selecionadas para tentar resolver o problema foram o
Simulated Annealing [Kirkpatrick et al., 1983] e a Busca Tabu [Glover, 1986], por se
tratarem de metaheursticas de refinamento de uso bastante difundido e por
apresentarem resultados de sucesso na literatura.
A parametrizao de cada um dos mtodos um problema parte, que ser
5

tratada atravs de um estudo de convergncia para um conjunto de valores prescolhidos.


O mtodo de gerao das instncias baseou-se no posicionamento aleatrio de
MCU's e clientes em um plano, e o custo das arestas obtido pela distncia euclidiana
entres os pontos.
Outro conjunto de instncias foi gerado baseado no backbone da RNP. Para
tanto, foram realizadas medies de atraso utilizando a infraestrutura do servio de
monitoramento MonIP [MonIP, 2008].
Para anlise dos resultados dos mtodos propostos, cada heurstica executada
uma srie de vezes. Os dados das execues que so levados em considerao so: a
mdia das solues obtidas (funes objetivo); quo distante o valor obtido pela
heurstica est dos valores de referncia (obtidos pelo modelo matemtico); o desvio
padro do experimento; e o tempo mdio de execuo para cada instncia. Alm disso,
feita uma anlise de convergncia onde verificado, para uma dada instncia, o tempo
que cada heurstica leva para atingir uma soluo alvo (ex. 10% pior que a melhor
soluo conhecida).
As implementaes foram feitas na linguagem C++, utilizando a API Standard
Template Library (STL) [STL, 1994] para estruturas de dados, e a ferramenta gprof
[Fenlason & Stallman, 2008] para eliminao de gargalos no cdigo.

1.3

Publicaes
Durante o perodo em que este trabalho foi desenvolvido, procurou-se

submeter seus resultados parciais a eventos das reas relacionadas, com o intuito no s
de comunicao, mas tambm para obter avaliaes de pesquisadores de outras
instituies. Deste esforo, alm dos comentrios e crticas, que contriburam para a
melhoria deste trabalho, foram obtidas algumas publicaes.
O trabalho [Souza Filho et al., 2006] apresenta o problema pela primeira vez,
demonstra a primeira verso da estrutura de vizinhana e prope a implementao do
Simulated Annealing para resolver o problema.
Em [Anjos et al., 2008a] apresentado o modelo matemtico em programao
linear inteira para o problema, como tambm os primeiros resultados computacionais do
6

Simulated Annealing (com uma parametrizao fixa), bem como a comparao de seus
resultados com os valores de referncia obtidos pela execuo do modelo matemtico.
J o artigo [Anjos et al., 2008b] apresenta uma parametrizao alternativa para
o Simulated Annealing, uma implementao da Busca Tabu e a comparao de ambos
os mtodos.

2 Reviso Bibliogrfica
Neste captulo so apresentados os fundamentos bsicos para o entendimento
do trabalho realizado, extrados dos principais artigos da literatura consultada ao longo
de todo o perodo de desenvolvimento desta pesquisa.

2.1

Padro H.323
O padro H.323 [ITU-T, 2003] parte da famlia de recomendaes do ITU-T

(International Telecommunication Union Telecommunication Standardization Sector)


da srie H que trata de sistemas audiovisuais e multimdia, especificando comunicaes
multimdia em redes baseadas em pacotes sem garantia de Qualidade de Servio (QoS)
[Colcher et al., 2005].
A recomendao H.323 prev quatro componentes. So eles:
Terminal: prov comunicao bidirecional em tempo real com outro terminal,
MCU ou gateway. Deve suportar udio e opcionalmente vdeo.
Gateway: Elemento opcional que consiste em um terminal que prov
comunicao entre terminais H.323 e terminais de redes que utilizam padres
diferentes.
Gatekeeper: Embora opcional, tem papel relevante em uma rede H.323,
atuando como ponto central de todas as chamadas do conjunto de terminais conectados
a ele, conjunto esse que determina uma zona. Prov, entre outros, servios de traduo
de endereos, controle de acesso rede H.323 e autorizao de chamadas.
MCU: Terminal especial que possibilita conferncia entre trs ou mais
participantes, dividido em outros dois subcomponentes: (i) Multipoint Controller
(MC), cuja principal finalidade oferecer suporte a conferncia multiponto, procurando
estabelecer capacidades comuns de udio, vdeo e dados. (ii) Zero ou mais Multipoint
Processor (MP), cuja presena em uma MCU s necessria em uma conferncia
multiponto centralizada. O MP processa um ou mais fluxos de udio, vdeo e dados,

devolvendo o resultado deste processamento aos participantes da conferncia.


Tipicamente, o MP mescla o udio de todos os participantes, devolvendo a cada um
destes o udio devidamente misturado. Via de regra, o MP deve proceder de modo a
zelar para que nenhum participante receba seu prprio udio misturado ao de outros,
caso contrrio haveria um desagradvel efeito de eco. Vale salientar que no caso de
haver processamento de udio e vdeo pelo MP, cada cliente recebe apenas um fluxo de
udio e um de vdeo, oriundo da MCU, mesmo que esse seja o resultado da combinao
de udio e vdeo de vrios outros participantes. Com relao ao processamento de
vdeo, tipicamente o MP pode usar as tcnicas de vdeo comutado (somente um
participante exibido a cada vez) ou presena contnua, quando vrios participantes
aparecem ao mesmo tempo. Opcionalmente, MCU's podem ter funes de
cascateamento, ou seja, podem-se ligar duas ou mais MCU's para dividir o esforo de
processamento de uma videoconferncia.
2.1.1 Modelos de Videoconferncia
Segundo o ITU, os seguintes modelos de videoconferncia so possveis:
Conferncia ponto-a-ponto: Conferncia envolvendo apenas dois pontos da
rede. Em uma rede H.323, pode ocorrer entre dois terminais ou entre um terminal e um
gateway. Esta apenas outra maneira de classificar uma chamada simples.
Conferncia Broadcast: Conferncia onde h um nico transmissor de udio e
vdeo e muitos receptores, no havendo fluxo de controle ou mdia (udio ou vdeo)
bidirecional. Em tais conferncias, no h a necessidade da atuao de uma MCU.
Conferncia Multiponto: Videoconferncias multiponto so aquelas que
possuem trs ou mais clientes participantes. Neste tipo de conferncia, se faz necessria
a utilizao de um elemento controlador, conhecido por Multipoint Controller (MC). O
MC pode estar contido em uma MCU, caso esta seja utilizada. As conferncias
multiponto podem ser classificadas como centralizadas ou descentralizadas.
Conferncia Multiponto Descentralizada: conferncia multiponto onde cada
terminal participante transmite udio e vdeo a todos os outros terminais, recebendo
tambm o fluxo de udio e vdeo oriundo dos demais participantes. Possuem a
vantagem de no necessitar de uma MCU. Em compensao, exigem um maior

processamento por parte dos terminais, j que os mesmos devem tratar udio e vdeo
oriundo de todos os participantes da conferncia. Adicionalmente, h um aumento do
fluxo na rede devido necessidade de todos os terminais enviarem e receberem udio e
vdeo de e para todos os outros.
Conferncia Multiponto Centralizada: conferncia multiponto na qual todos
os terminais envolvidos comunicam-se de maneira ponto-a-ponto com uma MCU. Neste
caso, a MCU possui um elemento Multipoint Processor (MP) que processa fluxos de
udio, vdeo, e opcionalmente dados, devolvendo aos terminais o fluxo processado. Este
tipo de conferncia possui a vantagem de minimizar o processamento nos terminais, que
s precisam tratar um fluxo de udio e vdeo, oriundos da MCU, alm de reduzir os
recursos de banda para os terminais, pois cada uma passa a receber o fluxo oriundo
somente da MCU.
2.1.2 Cascateamento de MCU's
No H.323 tambm est prevista a capacidade das MCU's serem cascateadas.
Essa caracterstica permite que uma mesma conferncia se d atravs de mltiplas
MCU's. O processo consiste em um troca de mensagens entre as MCU's que, mantendo
uma relao mestre-escravo, dividam entre si o processamento da conferncia,
aumentando a assim a capacidade de suportar clientes.
Esta caracterstica desejvel no apenas para aumentar a escalabilidade do
servio, como tambm para economizar o uso de banda, em situaes onde clientes
esto geograficamente separados.

2.2

Dynavideo Conference System


A soluo empregada no Dynavideo Conference System [Vasconcelos & Souza

Filho, 2004] utiliza uma verso modificada do projeto OpenMCU [H.323Plus, 2007]
implementao em software e aberta de uma MCU H.323.
O OpenMCU usa o modo de presena contnua para exibir at quatro
participantes simultaneamente. O primeiro participante posto no quadrante superior
esquerdo da tela, a partir da os seguintes so dispostos conforme ilustra a Figura 2.
Caso na conferncia haja mais que quatro participantes, os restantes sero ocultos,
10

sendo cada um deles comutado para exibio apenas quando detectado que est falando.

Figura 2. Disposio dos clientes na tela, pelo OpenMCU

A arquitetura desenvolvida para o DCS usa o cascateamento de at cinco


MCU's simultaneamente. Uma delas, a MCU central, tem comunicao apenas com
outras MCU's, nunca com os terminais. Neste modelo, cada MCU de periferia repassa
aos terminais o vdeo gerado pela MCU central, que uma combinao do vdeo das
quatro MCU's perifricas. Assim, possvel a exibio da imagem de at dezesseis
participantes simultaneamente. A Figura 3 ilustra a arquitetura do DCS e como a
imagem gerada. Outra caracterstica do DCS a utilizao de transferncias de
chamadas entre MCU's para redistribuir os participantes. Desta forma, torna-se possvel
mover os clientes, de modo que este seja atribudo a um servidor mais prximo de si,
diminuindo a latncia do sistema. A transferncia de chamadas uma caracterstica
prevista pelo padro H.323 e, se for realizada entre as MCU's, absolutamente
transparente ao cliente.
Adicionalmente, possvel no apenas distribuir clientes entre as MCU's, como
tambm alocar MCU's sob demanda. Desta forma, medida que novos clientes entram
ou saem da sala de videoconferncia, MCU's diferentes podem ser alocadas ou
liberadas. Assim, com a existncia de uma entidade coordenadora, ciente do estado da
rede, possvel reconfigurar o posicionamento dos ns de modo a diminuir a latncia
total do sistema.

11

Figura 3. Arquitetura e gerao da imagem pelo DCS

2.3

Multicast em nvel de aplicao (ALM)


Diversos trabalhos tratam do problema de construo de rvores de multicast

em nvel de aplicao. Em [Yeo et al., 2004] apresentada uma anlise das principais
solues de ALM propostas, com suas respectivas tcnicas de manuteno da ALMT.
Na maioria dos trabalhos encontrados, os ns possuem um conhecimento local
da rede, o que lhes permite melhorar a topologia apenas de uma forma gulosa,
dificultando alcanar uma soluo global de boa qualidade. Uma exceo a essa regra
o ALMI [Pendarakis et al., 2001].
O ALMI (Application Level Multicast Infrastructure) uma soluo para ALM
desenvolvida para suportar grupos multicast de mltiplas fontes, de tamanho
relativamente reduzido. Nesta soluo empregado um controlador central, responsvel
pela criao de uma rvore geradora mnima entre os ns fim. A latncia usada como
custo das ligaes entre os membros, de modo que a rvore geradora seja de mnima
latncia. O n controlador recebe periodicamente, de seus clientes, informaes
atualizadas do estado da rede, utilizadas para recalcular a rvore geradora.
Outra caracterstica comum a grande parte dos trabalhos correlatos o fato de
existirem apenas ns clientes na rede. Entretanto, em [Banerjee et al., 2003]

12

apresentado o OMNI, que apresenta dois tipos diferentes de n.


O OMNI constri sua rvore de distribuio sobre um conjunto de ns de
servio, os quais ele chama de Multicast Service Nodes (MSN's). O foco do OMNI so
aplicaes de mdia contnua de fonte nica. H um MSN dito raiz, que est conectado
fonte de mdia, e encarregado de levar o fluxo rvore. A Figura 4 mostra a
arquitetura do OMNI.

Figura 4: Arquitetura do OMNI [Banerjee et al., 2003]

O OMNI busca minimizar a latncia mdia de toda rvore e, para tanto, cada
MSN guarda dados da rede referente a seus clientes, MSN's vizinhos, e ao caminho
desde a fonte at ele mesmo. H uma fase de construo da rvore, que ocorre antes de
a fonte comear a transmitir, onde o MSN raiz define a topologia da rvore. Entretanto,
no decorrer da transmisso, as mudanas da rede tm um escopo essencialmente local,
realizadas atravs de trocas entre MSN's vizinhos. Visto que nenhuma entidade mantm
informaes atualizadas do estado da rede, movimentos de escopo global so difceis de
serem realizados. Todavia o OMNI tenta aumentar o alcance de seus movimentos,
atravs do encaminhamento de pedidos de permuta entre MSN's, a serem aceitos por
ns aleatrios da rvore.
Em [Jain et al., 2002] apresentado o Kudos, que apesar de possuir apenas ns
clientes, estes podem assumir papis diferentes. No Kudos os clientes se agrupam em
clusters, onde um dos clientes assume o papel de cabea do grupo. Para cada cluster,

13

uma rvore de distribuio gerada, de modo a ligar todos os ns pertencentes quele


grupo. Analogamente, outra rvore construda, ligando todos os ns cabeas de
clusters. Na Figura 5 mostrada a arquitetura do Kudos. As nuvens representam os
clusters; os ns pintados em preto simbolizam os ns cabea; as linhas pontilhadas
formam as rvores que ligam os ns internos a um cluster e as linhas escuras pertencem
rvore de ns cabea.

Figura 5: Arquitetura do Kudos [Jain et al., 2002]

O n cabea de cada cluster responsvel por algumas funes de controle, e


por repassar aos seus filhos os fluxos de dados. No Kudos so realizadas mudanas na
rede buscando minimizar a latncia total do servio. Cada cliente realiza medies
peridicas para manter informaes do estado da rede. Dentre os movimentos, tem-se a
possibilidade de mover um n de um cluster para outro, trocar o n cabea e o
particionamento de um cluster.
Em [Liu et al., 2005] tratado o problema de construo de uma rvore
multicast, que possui a restrio de seus ns terem um grau limitado. Esse
comportamento semelhante ao que ocorre com as MCU's mostradas neste trabalho,
que possuem uma capacidade limitada de suportar clientes conectados a si. Entretanto,
em [Liu et al., 2005] a arquitetura apresentada diferente, possuindo o foco em
aplicaes de fonte nica. Nesse trabalho a rvore construda buscando minimizar o
atraso mximo, ao invs do atraso total.
14

Em [Civanlar et al., 2005] prope-se uma arquitetura para implantao de


conferncias P2P. Neste abordagem, os pacotes de dados so transmitidos atravs de
cadeias, que consistem em seqncias de ns pr-definidas. A comunicao d-se
atravs da retransmisso dos dados pelos prprios clientes, formando uma corrente. O
n na cabea da cadeia, gerador do fluxo atual, envia seus dados para o seguinte, que
retransmitir o dado adiante at o final da cadeia. Diferentes cadeias so definidas com
cada um dos ns na cabea da estrutura. Deste modo, todo terminal est, a cada instante,
enviando um fluxo e recebendo outro. Essa abordagem apresenta uma utilizao
eficiente da banda passante, entretanto penaliza a latncia. Nesse esquema de cadeias, o
ltimo cliente de uma corrente s receber os dados oriundos do n da cabea aps um
perodo de tempo igual ao somatrio dos atrasos de transmisso individual entre cada
par de ns da cadeia.
Em [Sousa Filho et al., 2005] tratado o problema de configurao de uma
rede sobreposta de distribuio de vdeo, visando minimizar a latncia. Na ocasio, foi
utilizada a metaheurstica GRASP para a seleo dos servidores de vdeo (similares s
MCU's da rede de videoconferncia), cujos resultados foram comparados, para
instncias pequenas, aos obtidos pela resoluo de um modelo matemtico atravs de
procedimento branch-and-bound. Apesar das semelhanas com o trabalho aqui
mostrado, os dois problemas apresentam topologias inerentemente diferentes, devido
prpria natureza das aplicaes. Alm disso, o algoritmo proposto para o problema de
distribuio de vdeo considera apenas um grupo de usurios acessando um nico vdeo
(uma nica sala de cinema, por exemplo), enquanto aqui se considera a existncia de
mltiplos grupos de usurios (salas) simultaneamente.
Apesar das similaridades em vrios pontos, no se identificou trabalhos com a
proposta de construir e manter mais de uma instncia de rvore de distribuio para
comunicao em grupo.

2.4

Configurao da rede de videoconferncia de custo mnimo


O problema de otimizar o layout dos componentes da videoconferncia,

buscando minimizar a latncia total, foi primeiramente abordado em [Souza Filho et al.,
2006], onde se prope a utilizao de heursticas de refinamento, e uma proposta de
15

estrutura de vizinhana mostrada. Em [Anjos et al., 2008a] apresentado um


formulao de programao linear inteira para o problema, no intuito de obterem-se
valores de referncia. Tambm so mostrados resultados computacionais de uma
implementao de Simulated Annealing com parametrizao esttica. J em [Anjos et
al., 2008b] apresentada uma parametrizao alternativa para o Simulated Annealing,
com utilizao de um procedimento que determina a temperatura inicial como prprocessamento, e uma implementao da Busca Tabu. Apresenta-se tambm um
comparativo entre solues mdias de ambas as metaheursticas, e a anlise de suas
convergncias pelo mtodo de distribuio de probabilidade acumulada.
O problema envolve selecionar ns servidores (MCU's) de um grafo completo,
determinar qual ser o n central, e realizar a atribuio de cada cliente para um
servidor de periferia. Este procedimento repetido para cada sala. As capacidades das
MCU's devem ser observadas e deve-se tentar minimizar o custo da configurao.
possvel decompor o problema em outros dois encontrados na literatura: (i) como sendo
mltiplas instncias do problema do subgrafo de custo mnimo (Minimum-Weighted
Subgraph Problem) [Choi et al., 1990]; seguido por um (ii) problema de atribuio
(Assignment Problem) [Bondy & Murty, 2008], com o agravante de que em ambos
temos ns com capacidade limitada. Foi provado que (i) trata-se de um problema NPdifcil em [Choi et al., 1990]. Portanto considera-se o problema de otimizar a
configurao topolgica da rede de videoconferncia pertencente mesma classe de
complexidade.

16

3 Formulao do Problema
O problema de otimizar a rede de videoconferncia consiste em determinar a
configurao topolgica mais adequada para a utilizao das MCU's do backbone, de
modo a atender a demanda de clientes, para as mltiplas salas simultneas de
conversao. O que se deseja obter ao final uma rvore de MCU's, enraizada por uma
MCU central, para cada sala, bem como a atribuio de cada cliente da sala a uma MCU
de periferia. Essa configurao deve ser obtida contudo, respeitando as imposies
topolgicas, bem como a capacidade mxima suportada por cada MCU. No obstante, o
custo da latncia total deve ser o mnimo possvel.
De modo formal, seja G = (V, E), o grafo completo e no-direcionado que
representa a rede de servidores do servio, com o conjunto de vrtices
V ={m1 , m2 , m3 , , m p }

representando as MCU's; e o conjunto de arestas

E={mi , m j i=1, 2, p ; j=1, 2, p ; i j} , representando as ligaes entre cada par


de vrtices.
Seja ainda o conjunto

S={s 1 , s 2 , s 3 , , s q } , representando as salas de

conversao. Cada sala em S est associada a um conjunto de clientes


S i={c i1 , c i2 , ci3 , , ciS } . A cardinalidade de Si para o DCS tal que 2 |Si| 16.
i

Deseja-se encontrar um conjunto de subgrafos G' = {G'1, G'2 , , G'q}, que


representa a rvore de distribuio de cada uma das q salas. Cada subgrafo G'i dado
por G'i = (V'i, E'i), tal que a cardinalidade de V'i seja 2 |V'i| 5 , onde V'i V e E'i E.
Alm disso, deseja-se obter tambm as associaes de clientes e MCU's, representada
pelo conjunto H = {H1, H2, , Hq}. Cada conjunto Hi dado por
H i={ x , y xS i , y V "i } , onde

H i=S i e V "i =V ' i {n central da sala i } ,

com a restrio adicional de que cada cliente c ij s pode estar associado a um nico
elemento de V "i .
Alm disso, cada k-sima MCU suporta uma capacidade mxima Capk de
clientes ou MCU's de periferia, caso k seja central em alguma sala associados a si,
17

onde Capk um valor inteiro. Para cada vrtice V'k V tem-se que:
s

S j

z kjV " j y ijk Capk


j=1

, k =m1 , m2 ,... , m p , onde

j=1 i=1

z kj= 1, se V k central em G ' j e y ijk = 1, se i , k H j


0, caso contrrio
0, caso contrrio
O objetivo obter o layout de servidores e clientes de modo que o custo global
seja mnimo. A funo objetivo Z que calcula o custo obtida pelo somatrio, para
cada sala, do custo individual de cada aresta utilizada, seja entre um par de MCU's, ou
entre MCU's e clientes. A funo objetivo Z representada por:
s

Z = f G ' i g H i
i=1

onde f a funo que calcula a soma das arestas que ligam as MCU's de G'i, e g a
funo que calcula o custo das arestas que conectam cada par de clientes e MCU's em
Hi.

3.1

Modelo Matemtico
Nesta seo apresentamos uma formulao de programao linear inteira para

o problema. Esta formulao foi apresentada em [Anjos et al., 2008a], sendo utilizada
para obter solues de referncia pela sua execuo no software LINGO [LINGO,
2001].
Variveis de deciso

{
t ={1, se o cliente l est conectado conferncia atravs da MCU i
0, caso contrrio
y ={1, se a MCU i foi selecionada na sala k
0, caso contrrio
z ={1, se a MCU i for n central na sala k
0, caso contrrio
x ijk = 1, se a aresta entre as MCU's i e j est presente na sala k
0, caso contrrio
li

ik

ik

18

Parmetros
m : o nmero total de MCU's;
s : o nmero total de salas;
c : o nmero total de clientes;
: o limite de clientes por MCU em cada sala. Para o DCS =4;
: o nmero mximo de MCU's por sala. Para o DCS =5;
Ci : a capacidade mxima suportada pela MCU i.
Wij : o custo da aresta que conecta as MCU's i e j;
Vli : o custo da aresta que conecta o cliente l MCU i;
S : associao entre clientes e salas, onde

S lk = 1, se o cliente l pertencer sala k


0, caso contrrio
Minimize
s

x ijkW ij t liV liS lk


k =1

i=1 j =1

l =1 i =1

(1)

Sujeito a:
x iik =0

i=1,2 , ... , m ; k =1,2 , ... , s

(2)

x ijk x jik 1

i=1,2 , ... , m ; j=1,2 , ... , m ; k =1,2 , ... , s

(3)

k =1,2 , ... , s

(4)

z ik =1

k =1,2 , ... , s

(5)

y ik z ik 0

i=1,2 , ... , m ; k =1,2 , ... , s

(6)

i=1,2 , ... , m ; k =1,2 , ... , s

(7)

i=1,2 , ... , m ; k =1,2 , ... , s

(8)

y ik
i=1
m

i=1

j=1

j =1

j=1

j =1

xijk x jik my ik
xijk x jik yik

19

x jik1z ik

i=1,2 , ... , m ; k =1,2 , ... , s

(9)

l=1,2 ,... , c

(10)

i=1,2 , ... , m

(11)

i=1,2 , ... , m ; k =1,2 , ... , s

(12)

tliS lk 1 z ik

i=1,2 , ... , m ; k =1,2 , ... , s

(13)

x ijk ={0,1}

i=1,2 , ... , m ; j=1,2 , ... , m ; k =1,2 , ... , s

(14)

t li ={0,1}

l=1,2 ,... , c ; i=1,2 ,... , m

(15)

0 y ik 1

i=1,2 , ... , m ; k =1,2 , ... , s

(16)

z ik ={0,1}

i=1,2 , ... , m ; k =1,2 , ... , s

(17)

j=1
m

t li=1
i=1
c

t li x jik C i
l =1

j =1 k=1

tliS lk y ik
l =1
c

l =1

Em (1) tem-se a funo objetivo que se deseja minimizar. Ela consiste em um


somatrio, para cada sala, dos custos das arestas entre cada par de MCU's da sala, mais
o somatrio dos custos das arestas entre cada cliente da sala com a MCU de periferia ao
qual esto associados.
As restries em (2) evitam que a diagonal principal da matriz de adjacncia
das MCU's seja utilizada, o que implicaria em uma MCU conectada a si mesma. Em (3)
garante-se que uma aresta seja escolhida no mximo uma vez. Caso uma dada aresta
(i,j) seja selecionada, (j,i) no dever compor a soluo. O conjunto de restries em (4)
limitam o nmero de MCU's selecionadas para cada sala em no mximo unidades. Em
(5) e (6) assegurado que toda sala ter uma e apenas uma MCU central e que esta
esteja dentre as MCU's selecionadas para a sala. As restries em (7) e (8) limitam o
grau mximo de cada MCU, ao mesmo tempo em que garantem que sejam utilizadas
apenas arestas entre MCU's selecionadas para a sala. Em (9) garante-se a topologia em
estrela de cada sala, restringindo que as arestas ligando MCU's incidam sempre sobre a
MCU central. Em (10) assegurado que todo cliente esteja conectado a uma e apenas
uma MCU. Em (11) tem-se a limitao do nmero de conexes que uma MCU capaz
de gerenciar. Este nmero resultante do somatrio de todas as arestas que incidem
20

sobre a MCU, partindo de clientes e de outras MCU's, quando esta for o n central de
alguma sala. Os conjuntos de restries (12) e (13) limitam o nmero de clientes
permitidos por sala. Adicionalmente (12) garante que a MCU selecionada para conectar
cada cliente da sala seja uma das selecionadas para aquela sala, enquanto (13) evita que
a MCU central seja atribuda a alguma cliente. Em (14), (15), (16) e (17) temos as
restries de integralidade das variveis de deciso, que definem os valores permitidos
para t, x, y e z.

21

4 Heursticas Propostas
Em virtude da dificuldade de obter-se a soluo tima do problema de
configurar a videoconferncia, em tempos compatveis com a tomada de deciso,
resolveu-se lanar mo de abordagens heursticas, no intuito de obter solues de boa
qualidade em um tempo razovel.
Para tanto, buscou-se desenvolver algoritmos baseados em metaheursticas
bem conhecidas. Metaheursticas so estratgias que guiam o processo de busca,
objetivam uma explorao eficiente do espao de solues, e normalmente incorporam
mecanismos para evitar que o algoritmo fique preso em alguma regio especfica do
espao de busca [Blum & Roli, 2003].
As funcionalidades de adio e remoo de MCU's a uma sala, bem como o
redirecionamento de clientes presentes na aplicao de videoconferncia fornecem
subsdios para a modelagem do problema abordado utilizando-se heursticas de
refinamento.
As heursticas de refinamento tambm conhecidas como tcnicas de busca
local consistem em algoritmos que percorrem o espao de solues, baseando-se na
noo de vizinhana [Souza, 2006]. O espao de solues S consiste no conjunto de
solues possveis de um problema de otimizao. A vizinhana de uma soluo sS
consiste no conjunto N s S , onde a partir de modificaes sobre s, uma soluo
pertencente a N(s) alcanada. Ao conjunto de modificaes (ou operaes) possveis
sobre as solues, d-se o nome de movimentos. Uma estrutura de vizinhana
modelada de forma que, partindo-se de qualquer soluo sS seja possvel chegar a
qualquer outra soluo s ' S realizando uma quantidade finita de movimentos. Os
movimentos que definem a estrutura de vizinhana do problema de configurao de
videoconferncia sero mostrados na seo 4.2.
As heursticas implementadas para abordar o problema deste trabalho foram a
Simulated Annealing, que mostrada na seo 4.4 utilizada em [Anjos et al., 2008a];
a Busca Tabu, mostrada na seo 4.5 utilizada em [Anjos et al., 2008b]; e a heurstica
22

hbrida Simulated Annealing / Busca Tabu, tratada na seo 4.6.


Para utilizao das metaheursticas, alm da definio da estrutura de
vizinhana, fez-se necessrio a definio de uma estrutura de dados que representasse
uma soluo do problema (seo 4.1) e de um procedimento de gerao de uma Soluo
Inicial (seo 4.3).

4.1

Representao de uma soluo


Neste problema, optou-se por representar uma soluo vlida como uma lista

de salas, onde cada sala composta pelos seguintes conjuntos: M, contendo as MCU's
que compe a sala; M contendo as MCU's que no participam da sala; e C contendo os
clientes da sala.
O conjunto M implementado como uma lista, composta por pares (i,J), onde i
o nmero que representa a MCU, e J a lista de clientes conectados quela MCU. A
MCU central da sala o primeiro elemento de M, e possui sua lista J vazia.
O conjunto M implementado como uma lista composta apenas pelas MCU's
que no foram atribudas a nenhum cliente da sala e nem foram designadas como a
MCU central.
O conjunto C implementado como uma lista composta por pares (j,i) onde j
nmero que representa o cliente, e i a MCU a qual j est associado.
Para ilustrar a representao de uma soluo, mostrada na Figura 6 a
representao visual da soluo da instncia MCU_5_16_2_cap8 (a lista completa de
instncia mostrada na seo 5.1 e outros exemplos de solues podem ser vistos no
Anexo I).
possvel notar que, ao contrrio dos clientes, que pertencem a uma nica sala,
as MCU's podem estar integrando mltiplas salas. Na Figura 7 mostrada como esta
soluo representada utilizando a estrutura de dados definida neste trabalho.

23

Figura 6: Representao visual da soluo da instncia MCU_5_16_2_cap8

Sala[0]:
M:
M:
C:
Sala[1]:
M:
M:
C:

{(0,[]),(2,[4,9,12,15]),(4,[6,7])}
{1,3}
{(4,2)(6,4)(7,4)(9,2)(12,2)(15,2)}
{(4,[]),(0,[2,8,10,13])(1,[1,11])(2,[0,3,5,14])}
{3}
{(0,2),(1,1),(2,0),(3,2),(5,2),(8,0),(10,0),(11,1),(13,0),(14,2)}

Figura 7: Representao da soluo de MCU_5_16_2_cap8 utilizando a estrutura de dados

4.2

Estrutura de Vizinhana
Nesta seo so mostrados os movimentos que definem a vizinhana utilizada

pelas heursticas. A maior parte dos movimentos aqui definidos foram propostos
inicialmente em [Anjos et al., 2008a], entretanto houve algumas modificaes sobre os
mesmos. O movimento de Adicionar MCU foi alterado de modo que designasse um
cliente nova MCU; o movimento de Remover MCU foi embutido em Mover
24

Participante, que agora elimina MCU's que tenham ficado sem clientes atribudos a si.
Alm disso, foi proposto um novo movimento: Permutar Papis de MCU's, definido em
4.2.6. Todos os movimentos aqui apresentados so passveis de serem reproduzidos pelo
DCS atravs de suas funcionalidades j discutidas anteriormente.
4.2.1 Mover Participante
Este movimento consiste em mover um participante que esteja alocado a uma
MCU para outra, dentro de uma mesma sala. Para tanto, a MCU destino precisa possuir
disponibilidade para acomodar o participante. Caso a MCU de origem tenha ficado sem
clientes atribudos a si, a mesma ser removida da sala. A Figura 8 ilustra o movimento
de mover participante. Nela o cliente inicialmente conectado sala atravs da MCU D
passa a utilizar a MCU A.

Figura 8: Movimento de Mover Participante

4.2.2 Permutar participantes


Este movimento consiste em permutar dois participantes que estejam alocados
em MCU's diferentes, dentro de uma mesma sala. similar a dois movimentos de
mover participante (4.2.1), com a diferena que no necessrio que as MCU's
possuam disponibilidade sobrando. A Figura 9 ilustra o movimento de permutar
participantes. Nela os participantes a e b, conectados respectivamente s MCU's E e D
trocam de lugar, passando a participar da conferncia atravs da outra MCU.

25

Figura 9: Movimento de Permutar Participantes

4.2.3 Adicionar MCU


Este movimento consiste em adicionar sala uma MCU que ainda no esteja
participando da mesma, e atribuir um dos clientes da sala MCU. Para que esta
operao seja realizada, a MCU central deve possuir disponibilidade para acomodar a
nova MCU de periferia (no caso da arquitetura do DCS, no deve haver mais que trs
MCU's alm do n central) e a nova MCU no pode estar com toda sua capacidade
comprometida. A Figura 10 ilustra o movimento de adicionar MCU. Nela a MCU B
que no participava desta sala passa a integr-la, e um dos clientes da MCU A
movido para B.
4.2.4 Permutar MCU's de mesma sala
Existem duas situaes possveis para permuta de MCU's. O primeiro caso a
permuta de MCU's de mesma sala. Este movimento consiste em permutar duas MCU's
da mesma sala, movendo todos os clientes de uma para a outra. Similar a vrias aes
de permutar participantes e/ou mover participantes, mas de uma nica vez.
No caso de uma das envolvidas ser a MCU central, haver ento uma troca de
papis, onde a MCU de periferia passar a ser o n central, e vice-versa. Neste caso, as
demais MCU's passaro a referenciar o novo n central, e os clientes anteriormente
atribudos MCU perifrica passaro a se ligar antiga MCU central. A Figura 11
ilustra esse movimento. Nela a MCU A, anteriormente de periferia, troca de lugar com a
MCU C, anteriormente o n central. Os clientes que estavam atribudos a A passam a
26

ligar-se a C, e as demais MCU's de periferia passam a referenciar A como a nova MCU


central.

Figura 10: Movimento de Adicionar MCU

Figura 11: Movimento de Permutar MCU's de uma mesma sala

4.2.5 Permutar MCU's de salas diferentes


A segunda situao de permutar de MCU's consiste em permutar uma MCU
que esteja alocada sala com outra que ainda no esteja. Para que isso ocorra, a MCU
de fora deve ter capacidade livre suficiente para comportar os clientes atualmente
atribudos a MCU que se deseja permutar. A Figura 12 ilustra este movimento. Nela a
MCU B, que anteriormente no fazia parte da sala, troca de lugar com A, que deixa de
integrar a sala, e tem seus clientes atribudos a B.

27

4.2.6 Permutar Papis de MCU's


Este movimento no aparece em [Anjos et al., 2008a], e o nico dos
movimentos que possui escopo global, modificando todas as salas de conferncia do
servio. Neste movimento so trocadas todas as atribuies de duas MCU's, em todas as
salas. A importncia deste movimento pode ser percebida quando se tem uma situao
onde as MCU's esto com sua capacidade mxima utilizada, e a maioria dos demais
movimentos est impossibilitada de ser feita devido a essa saturao.
O movimento consiste em, para toda sala, realizar uma permuta entre as MCU's
previamente escolhidas. Se em uma dada sala, ambas as MCU's esto integradas a ela,
ento um movimento de permuta de MCU's de mesma sala (4.2.4) realizado. Caso
apenas uma das MCU's participe da sala, ento um movimento de permuta de MCU's de
salas diferentes (4.2.5) realizado. Caso haja uma sala em que nenhuma das MCU's
selecionadas previamente participe, nenhuma modificao feita nesta sala.
Permutar papis de MCU's o movimento que gera mudanas mais drsticas
em uma soluo, podendo inclusive vir a ser utilizado como mecanismo de perturbao
em heursticas que se utilizam deste conceito, como por exemplo o Iterated Local
Search [Loureno et al. (2002)].

4.3

Soluo Inicial
Para que as heursticas de busca local realizem seu processo de refinamento, se

faz necessrio partir de uma soluo existente. Em uma aplicao real, como por
28

exemplo o coordenador da videoconferncia, a soluo a ser refinada poderia ser um


estado anterior da topologia da rede, que por ter tido seu cenrio modificado (ex:
mudana nas latncias), pode apresentar uma configurao melhor em um segundo
momento.
Para o projeto de algoritmos heursticos, comum utilizar-se de uma heurstica
construtiva, normalmente baseada em um algoritmo guloso, como um procedimento de
gerao de uma soluo inicial, que funcione como uma entrada para a heurstica de
refinamento
Como soluo inicial, utilizou-se nesse trabalho de uma abordagem
parcialmente gulosa, inspirada na fase de construo do algoritmo GRASP [Feo &
Resende, 1995], de modo que fossem selecionadas MCU's suficientes para atender a
demanda de clientes de cada sala, sem uma grande preocupao com a funo objetivo,
focando em obter uma soluo vlida.
O procedimento de Soluo Inicial adotado apresentado na Figura 13 (o
Anexo I mostra algumas solues geradas por esse procedimento).
As entradas do procedimento so o conjunto de MCU's e salas da rede, uma
matriz contendo, para cada sala i, a lista de clientes pertencentes a i
(CLIENTES_SALAS); um valor onde 0 < 1, que determina a frao do conjunto de
MCU's que comporo o conjunto de candidatos a central da sala; a funo Cap() que
calcula a capacidade disponvel de cada MCU; e as matrizes W e V que determinam,
respectivamente, os custos das arestas entre MCU's e entre MCU's e clientes.
Primeiramente, inicializamos a soluo a ser gerada com uma lista de salas
vazias (linha 1). Em seguida so inicializados os vetores auxiliares acc mcus , acc clientes e
menor (linha 2) que sero responsveis por salvar, respectivamente, o valor acumulado
dos custos das arestas entre MCU's clientes, indexados pelas MCU's; o valor acumulado
dos custos das arestas entre MCU's e clientes, indexados pelos clientes; e a associao
entre o j-simo cliente e a MCU k que apresenta a aresta (j, k) de menor custo.
As salas so ordenadas de modo aleatrio, para que no haja favorecimento das
primeiras salas por melhores atribuies (linha 3). O lao principal varre todo o vetor de
salas, repetindo o procedimento que se segue.

29

procedimento SolInicial(MCUS, SALAS, CLIENTES_SALAS, , Cap(), W, V )


1. s criaListaDeSalas(|SALAS|);
{inicializa soluo}
2. acc mcus , acc clientes , menor ;
3. Ordene SALAS em ordem aleatria;
4. para i 0 at |SALAS| faa
5.
para j 0 at |MCUS| faa
6.
para k 0 at | CLIENTES_SALAS[i]| faa
acc mcus [ j] acc mcus [ j] +V(k,j);
7.
{acumula custos clientes-mcu}
8.
Cand=
{x MCUSacc mcus xmin acc mcus max acc mcusminacc mcus }
{conjunto dos candidatos a MCU central, correspondendo aos melhores em acc mcus }
9.
Escolha aleatoriamente um central Cand
10.
s.salas[i].M { central }
{inicializa conjunto M de MCU's da sala i}
11.
Ordene MCUS em ordem decrescente de capacidade ( Cap( ) );
12.
demanda |CLIENTES_SALAS[i]|;
13.
para j0 at |MCUS| faa
14.
se ( demanda0 ) sai do lao;
15.
se ( MCUS [ j]central e C MCUS [ j]0 )
16.
s.salas[i].M s.salas [i]. M { MCUS [ j] } ;
17.
demanda demanda - Cap(j);
18.
fim-para;
19.
se (demanda > 0) retorne Incapaz de gerar soluo vivel.;
s.salas [i]. M MCUS s.salas [i]. M ; {MCU's que no pertencem sala}
20.
21.
para k0 at |CLIENTES_SALAS[i]| faa
22.
custo ;
23.
para j0 at s.salas [i]. M faa
acc clientes [k ] acc clientes [k ] +V[k][j];
24.
{acumula custo cliente-mcu}
25.
se (V[k][j] < custo)
26.
custo V[k][j];
27.
menor[k] j;
28.
fim-para;
29.
fim-para;
30.
ordene CLIENTES_SALAS[i] em ordem decrescente de acc clientes ;
31.
para k0 at |CLIENTES_SALAS[i]| faa
32.
s.sala[i].C[k] menor[k];
{atribui clientes a mcus}
33.
fim-para;
34. fim-para;
35. retorne s;
Fim SolInicial;
Figura 13: Procedimento de Soluo Inicial

A heurstica calcula, para cada MCU, o somatrio dos custos das arestas para
ligar-se com cada um dos clientes da sala (das linhas 5 a 7). A lista de MCU's ento
ordenada de modo que aquelas que apresentem o menor somatrio de arestas venham
primeiro. Desde modo temos que MCU's mais centrais aparecem antes que MCU's
30

mais afastadas.
A MCU central da sala ento sorteada entre as MCU's mais centrais da rede
(linha 8). Em seguida as MCU's so colocadas em ordem decrescente de capacidade
disponvel, para que sejam selecionadas as MCU's de periferia (linha 11). Estas so
escolhidas, desde que possuam capacidade disponvel e que j no tenham sido
escolhidas como n central da sala. Ao final, caso a demanda no tenha sido atendida, o
procedimento interrompido e o erro informado (linha 19). Quando isso ocorre,
recorremos reexecuo do procedimento.
Nesse ponto, j foram obtidas as listas M e M das MCU's que fazem e no
fazem parte da sala, respectivamente. Resta atribuir os clientes aos ns de periferia.
Da linha 21 a 29 so calculados os somatrio dos custos das arestas entre cada
MCU e cada cliente, e ordenados em ordem decrescente. Deste modo temos que os
clientes mais distantes aparecem antes de os clientes mais prximos. Alm disso, das
linhas 25 a 27, so salvas as melhores arestas (cliente, MCU) de todos os clientes. As
atribuies entre clientes e MCU's so feitas selecionando a melhor aresta (vetor menor)
dos piores clientes primeiro. Ao final, o procedimento retorna soluo inicial gerada.

4.4

Simulated Annealing
A metaheurstica Simulated Annealing (SA) uma tcnica compacta e robusta,

largamente utilizada, e que apresenta resultados excelentes na literatura [Suman et al.,


2006]. O mtodo, proposto originalmente por [Kirkpatrick et al., 1983], consiste em
uma tcnica de busca local probabilstica que se fundamenta em uma analogia com a
termodinmica, ao simular o resfriamento de um conjunto de tomos aquecidos,
operao conhecida como recozimento.
Este mtodo comea sua busca a partir de uma soluo inicial qualquer. O
procedimento principal consiste em um lao que gera aleatoriamente, em cada iterao,
um nico vizinho s da soluo corrente s.
Considerando um problema de minimizao, seja a variao de valor da
funo objetivo ao mover-se para uma soluo vizinha candidata, isto ,
= f s ' f s . O mtodo aceita o movimento e a soluo vizinha passa a ser a nova
soluo corrente se 0 . Caso 0 a soluo vizinha candidata tambm poder ser
31

aceita, mas neste caso, com uma probabilidade e/T , conhecida como probabilidade
de Boltzmann onde T um parmetro do mtodo, chamado de temperatura e que
regula a probabilidade de se aceitar solues de pior custo.
A temperatura T assume, inicialmente, um valor elevado T0. Aps um nmero
fixo de iteraes, a temperatura gradativamente diminuda por uma razo de
resfriamento , tal que T k T k1 , sendo 01 . Com esse procedimento, d-se,
no incio uma chance maior para escapar de mnimos locais e, medida que T
aproxima-se de zero, o algoritmo comporta-se como o mtodo de descida, uma vez que
diminui a probabilidade de se aceitar movimentos de piora.
O procedimento pra quando a temperatura chega a um valor prximo de zero
e nenhuma soluo de piora da soluo corrente mais aceita, isto , quando o sistema
est estvel. A soluo obtida quando o sistema encontra-se nesta situao evidencia o
encontro de um mnimo local.
A Figura 14 mostra o pseudocdigo do procedimento Simulated Annealing.
procedimento SA( f(:), N(:), , SAmax, T0, s)
1. s* s;
{melhor soluo obtida at ento}
2. IterT 0;
{nmero de iteraes na temperatura T}
3. T T0;
{temperatura corrente}
4. enquanto (T > 0) faa
5.
enquanto (IterT < SAmax) faa
6.
IterT IterT + 1;
7.
Gere um vizinho qualquer s ' N s ;
8.
= f(s) f(s);
9.
se ( < 0)
10.
ento
11.
s s;
12.
se ( f(s) < f(s*) ) ento s* s;
13.
seno
14.
Tome x [0,1] ;
15.
se (x < e/T ) ento s s;
16.
fim-se;
17.
fim-enquanto;
18.
T T;
19.
IterT 0;
20. fim-enquanto;
21. s s*;
22. retorne s;
Fim SA;
Figura 14: Procedimento Simulated Annealing para um problema de minimizao [Souza, 2006]

32

Os parmetros do SA so: a funo objetivo (f(.)); a funo que determina a


vizinhana de uma soluo (N(.)), que corresponde a unio de todos dos movimentos
possveis para a partir da soluo corrente, para a vizinhana escolhida; a razo de
resfriamento (); o nmero mximo de iteraes para cada temperatura (SAmax); a
temperatura inicial (T0); e a soluo inicial a ser refinada (s).
Apesar da simplicidade de adaptao do SA para aplicaes diversas, se faz
necessrio algum esforo no processo de parametrizao do mtodo. Os principais
parmetros a serem definidos para o SA so a temperatura inicial (T0), a razo de
resfriamento (), o nmero de iteraes para cada nvel de temperatura (SAmax) e a
condio de parada.
Em [Anjos et al., 2008a] so utilizados valores fixos para T0 e SAmax, para
todas as instncias. Entretanto, para obter valores mais adequados, devem ser levadas
em considerao as caractersticas de cada instncia [Anjos et al., 2008b]. Um valor
excessivamente alto de T0 para uma dada instncia pode acarretar em um desperdcio de
tempo de processamento. Como no princpio do procedimento, o SA se comporta como
uma busca aleatria, aceitando a grande maioria das solues propostas, um valor muito
alto de temperatura vai apenas prolongar esse perodo, sem necessariamente contribuir
para encontrar solues de qualidade. Em contrapartida, um valor muito baixo de T0
pode impedir que o mtodo escape de mnimos locais. Analogamente, se o valor
atribudo

SAmax

for

demasiadamente

alto,

muito

esforo

ser

gasto

desnecessariamente, enquanto valores muito baixos podem limitar a busca, evitando que
o procedimento encontre solues promissoras.
Neste trabalho, para determinao do valor de T0 optou-se por utilizar um
procedimento para clculo da temperatura [Souza, 2006], como um pr-processamento
que antecede a execuo do SA. O procedimento utilizado, para um problema de
minimizao, mostrado na Figura 15.
O T0 indica a temperatura inicial do procedimento, que ser aumentada at a
condio de parada ser satisfeita; o a razo de aquecimento da temperatura, e
indica a condio de parada. Desta forma, a qualidade da soluo inicial da instncia
quem determinar o valor de T0. Vale salientar que quanto mais prxima do timo for a
soluo inicial, maior ser o valor de T0, visto que ser necessrio aceitar mais
33

movimentos de piora para escapar do mnimo local.


A parametrizao adotada mostrada na parte de Resultados (captulo 5).
procedimento TemperaturaInicial( f(:), N(:), , , SAmax, T0, s)
1. T T0;
{temperatura corrente}
2. Continua TRUE;
3. enquanto (Continua) faa
4.
Aceitos 0;
{Nmero de vizinhos aceitos em T}
5.
para IterT = 1 at SAmax faa
6.
Gere um vizinho qualquer s ' N s ;
7.
= f(s) f(s);
8.
se ( < 0)
9.
ento
10.
Aceitos Aceitos + 1;
11.
seno
12.
Tome x [0,1] ;
13.
se (x < e/T ) ento Aceitos Aceitos + 1;
14.
fim-se;
15.
fim-para;
16.
se (Aceitos SAmax)
17.
ento Continua FALSE;
18.
seno T T;
19.
fim-se;
20. fim-enquanto;
21. retorne T;
fim TemperaturaInicial;
Figura 15: Procedimento TemperaturaInicial() para um problema de minimizao [Souza, 2006]

4.5

Busca Tabu
A Busca Tabu (BT), proposta por [Glover, 1986], um procedimento

adaptativo, dotado de uma estrutura de memria, que aceita movimentos de piora para
escapar de timos locais.
Partindo de uma soluo inicial, um algoritmo BT explora, a cada iterao, um
subconjunto da vizinhana da soluo corrente. O vizinho de melhor valor de funo
objetivo torna-se a nova soluo corrente mesmo que seja pior que a atual. Para evitar
retornar a uma soluo j visitada em iteraes recentes, mantm-se uma lista de
movimentos proibidos a chamada lista tabu. A atualizao da lista segue uma lgica
FIFO circular, os elementos mais antigos so removidos medida que a lista enche.
34

Para evitar que solues ainda no visitadas sejam bloqueadas devido a


movimentos estarem na lista tabu, existe a funo de aspirao. A funo de aspirao
indica uma condio que, se satisfeita pela soluo explorada na busca, retira-se
temporariamente o status de tabu do movimento que levou a esta soluo. Uma funo
de aspirao comum testar se a soluo encontrada possui um valor de funo objetivo
melhor que a melhor soluo j encontrada at o momento.
O algoritmo pra depois um de determinado nmero de iteraes sem obter
solues melhores. Opcionalmente o algoritmo pode parar quando atingida uma soluo
de funo objetivo mnima conhecida, por exemplo, quando se conhece o valor da
soluo tima, ou quando se deseja alcanar uma soluo alvo. Numa execuo normal,
onde o mnimo desconhecido, costuma-se utilizar esse valor como sendo igual a
menos infinito. A Figura 16 mostra o pseudocdigo do procedimento de Busca Tabu,
para um problema de minimizao.
Os principais parmetros a serem definidos para a busca tabu so o BTmax, que
consiste no nmero mximo de iteraes sem melhora e determina a condio de
parada; o tamanho da lista tabu (|T|); o tamanho do subconjunto de N(s) a ser explorado
na fase de busca (|V|); e a funo de aspirao A(). Opcionalmente, o tamanho da lista
tabu pode ser reativo, variando ao longo da busca [Blum & Roli, 2003]. Ainda
opcionalmente, pode-se utilizar como parmetro o valor mnimo de f() que se deseja
alcanar ( fmin ), funcionando como uma condio de parada.
Assim como no Simulated Annealing, observou-se que os valores mais
adequados para os parmetros devem ser em funo dos dados das instncias. Um valor
muito alto de BTmax pode ocasionar desperdcio do tempo de execuo, enquanto
valores muito baixos podem interromper o algoritmo prematuramente. Do mesmo
modo, uma lista tabu muito pequena pode no servir ao seu propsito de escapar de
mnimos locais, em contrapartida uma lista demasiadamente grande pode proporcionar
situaes em que movimentos que levam a solues promissoras so rejeitados, ou
ainda mesmo causar a estagnao do algoritmo em uma situao onde todos os
movimentos possveis para a soluo corrente estarem na lista. Em tempo, o tamanho da
busca na vizinhana da soluo corrente (|V|) deve ser definido de modo que seja a
busca representativa, sem que seja exaustiva. Os valores para os parmetros adotados na
35

implementao da BT neste trabalho so mostrados no captulo de Resultados (5).


procedimento BT(f(:);N(:);A(:); |V|; fmin; |T|;BTmax; s)
1. s* s;
{Melhor soluo obtida at ento}
2. Iter 0;
{Contador do nmero de iteraes}
3. MelhorIter 0;
{Iterao mais recente que forneceu s*}
4. T
{Lista Tabu}
5. Inicialize a funo de aspirao A;
6. enquanto (f(s) > fmin e Iter - MelhorIter < BTmax) faa
7.
Iter Iter + 1;
8.
Seja s ' sm o melhor elemento de V N s tal que
o movimento m no seja tabu ( mT ) ou
s' atenda a condio de aspirao (f(s') < A(f(s)));
9.
Atualize a lista tabu T;
10.
s s';
11.
se (f(s) < f(s*)) ento
12.
s' s;
13.
MelhorIter Iter;
14.
fim-se;
15.
Atualize a funo de aspirao A;
16. fim-enquanto;
17. s s*;
18. Retorne s;
Fim BT;
Figura 16: Procedimento Busca Tabu para um problema de minimizao [Souza, 2006]

Para a utilizao da BT faz-se necessrio, ainda, definir como ser representado


o movimento tabu. Para o problema tratado nesse trabalho, representou-se o movimento
tabu como sendo uma tupla que identifica o movimento reverso a um movimento
previamente realizado. Por exemplo, considere que foi realizado um movimento de
permuta de MCU's de salas diferentes (representado doravante por Mi), entre as MCU's
mj e mk na sala st. Esse movimento tem como representao a tupla (Mi, st, mj, mk). O
elemento que dever ser adicionado a lista tabu neste caso, equivalente ao movimento
reverso, seria a tupla (Mi, st, mk, mj).

4.6

Heurstica Hbrida Simulated Annealing Busca Tabu (SABT)


Como j fora citado, o Simulated Annealing, em suas primeiras iteraes,

comporta-se como um mtodo quase que totalmente aleatrio. medida que a


temperatura vai diminuindo, este passa a se portar como um mtodo de decida. Desta
36

forma, medida que as iteraes vo avanando e a temperatura vai diminuindo, tornase menor a probabilidade de o SA escapar de mnimos locais.
Por outro lado, a Busca Tabu um mtodo continuamente de descida, mas que
tambm consegue escapar de mnimos locais devido aceitao do movimento de
melhor vizinho, ainda que este seja um movimento de piora. Todavia, a capacidade da
BT de escapar de mnimos locais a mesma ao longo de toda a sua execuo e est
limitada pelo tamanho de sua lista tabu. Assim sendo, se a soluo inicial entregue como
entrada estiver em uma regio pouco promissora do espao de solues, a BT ter uma
maior dificuldade de sair, podendo at mesmo ficar presa caso sua lista no seja
satisfatoriamente grande.
No intuito de aproveitar as vantagens dos dois mtodos anteriores, e
potencializar os resultados, props-se a utilizao de uma heurstica hbrida Simulated
Annealing - Busca Tabu (SABT, por simplicidade). A idia do SABT consiste em
utilizar o SA com uma parametrizao de menor esforo computacional que a
utilizada pelo SA apenas para obter solues de boa qualidade que sero
posteriormente refinadas pelo procedimento de BT. A Figura 17 mostra o aninhamento
dos mtodos que compem a heurstica hbrida.

Figura 17: Diagrama da Heurstica Hbrida SABT

Uma soluo s0 gerada pelo procedimento de soluo inicial, que utilizada


como uma das entradas do Simulated Annealing, juntamente com o conjunto de
parmetros PSA'. Como sada, o SA gera a soluo s1, que juntamente com o conjunto de
parmetros PBT, so os argumentos de entrada da Busca Tabu. A soluo gerada s2, o
produto final da heurstica. A Figura 18 ilustra o procedimento SABT em pseudocdigo.

37

procedimento SABT(f(:), N(:), , , , Samax,|T|, A(:), |V|,|T| BTmax, s)


1. T0 1;
2. T0 TemperaturaInicial( f(:), N(:), , , SAmax, T0, s);
3. s SA(f(:), N(:), , SAmax, T0, s);
4. s BT(f(:), N(:), A(:), |V|, |T|, BTmax, s);
5. Retorne s;
Fim SABT;
Figura 18: Procedimento SABT

Os parmetros f(:), N(:) e s so comuns a ambas as heursticas, e correspondem


respectivamente a funo objetivo, a estrutura de vizinhana do problema e a soluo
inicial. Os parmetros , , , SAmax so os mesmos utilizados pelo SA e
TemperaturaInicial (anteriormente mostrados em 4.4); j A(:), |V|, |T| e BTmax so
utilizados pela Busca Tabu (explicados em 4.5).
A parametrizao adotada na implementao da SABT ser mostrada no
prximo captulo.

38

5 Resultados
Nesse captulo sero apresentadas as instncias geradas para os experimentos,
as parametrizaes dos algoritmos implementados e os resultados obtidos pelas
execues do modelo matemtico e das heursticas

5.1

Instncias
Uma instncia para o problema abordado neste trabalho consiste em um

conjunto de informaes contendo: a quantidade de MCU's, clientes e salas; a


capacidade mxima suportada por cada MCU; a matriz de adjacncia entre as MCU's,
informando o custo de cada aresta; a matriz de adjacncia clientes x MCU's, tambm
informando o custo de cada aresta; e a matriz que associa cada cliente a uma sala.
Para realizao dos experimentos, foram geradas 50 instncias de forma
aleatria e 2 instncias baseadas em dados obtidos por medies no backbone da RNP.
5.1.1 Instncias aleatrias
Para as instncias aleatrias, os parmetros foram variados de modo a obteremse cenrios distintos e de tamanho crescente. O mtodo de gerao baseia-se no
posicionamento aleatrio de MCU's e clientes em um plano (de 800x600 pixels, nesse
caso), dados os valores do nmero de MCU's, clientes e salas. O algoritmo que gera as
instncias tambm de associa cada cliente a uma sala. Aps o posicionamento dos ns
no plano, o custo das arestas obtido pela distncia euclidiana entres os pontos. Na
Figura 19 observar-se um exemplo de instncia gerada dessa forma.
A Figura 20 mostra o arquivo gerado que servir de entrada para as heursticas
e o modelo matemtico. Das linhas 1 a 3 esto, respectivamente, o nmero de MCU's,
clientes e salas da instncia. A linha 5 informa as capacidades suportadas pelas MCU.
Da linha 7 a 11 tem-se a matriz dos custos de ligaes entre as MCU's. De 13 a 28 temse a matriz com os custos de ligao entre cada cliente para cada MCU. Finalmente, da
linha 30 a 45, tem-se a matriz que indica a qual sala pertence cada cliente.
39

Figura 19: Visualizao


aleatoriamente

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.

da

5
16
2
8

0
135
473
81
34

135
0
407
158
116

473
407
0
541
483

81
158
541
0
59

34
116
483
59
0

444
287
120
551
378
461
221
182
348
606
334

410
250
256
521
286
401
317
138
364
610
466

110
192
557
167
141
22
451
543
259
323
668

520
360
142
629
435
531
291
133
429
687
364

461
301
144
570
380
472
255
148
374
631
363

instncia

24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.

MCU_5_16_2_cap8,

312
466
346
455
275

192
479
475
371
260

0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1

1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0

267
275
660
73
221

gerada

351
547
381
516
352

303
492
376
460
294

Figura 20: Valores de entrada da instncia MCU_5_16_2_cap8

40

Adotou-se para as instncias a nomenclatura MCU_m_c_s_capk, onde m


indica o nmero de MCU's, c o nmero de cliente, s o nmero de salas e k a capacidade
de cada MCU.
As instncias esto agrupadas em grupos de cinco, onde os parmetros seguem
a seguinte lgica: uma tupla base de valores definida e, fixados os valores de m e c,
varia-se o valor de s.
Alm disso, cada uma dessas duas tuplas possui duas verses: (i) na primeira
os clientes esto dispostos de forma totalmente aleatria no plano; (ii) na segunda os
clientes esto agrupados (em clusters) em torno de alguma MCU. A situao (ii) tenta
reproduzir cenrios onde os usurios apresentam uma baixa latncia a uma dada MCU,
em geral por ter fcil acesso a este recurso (ex: funcionrios em uma empresa ou
estudantes em uma universidade). Nesses casos o nome da instncia possui o sufixo _cl.
A quinta instncia de cada grupo obtida fixando-se os valores de c e s da
tupla base, e aumentando o valor de m. Espera-se que essa configurao seja mais difcil
para o algoritmo, por aumentar o nmero de possibilidades para a criao das rvores
em cada sala.
Para cada instncia, foram geradas ainda duas verses, variando-se apenas a
capacidade suportada de cada MCU (k), para k= 8 e k=12. As duas verses so, a rigor,
idnticas em todas as suas caractersticas, inclusive nas matrizes de custo MCU's
MCU's e Clientes MCU's, diferindo apenas em relao ao k. Espera-se com essa
variao observar se em cenrios onde a capacidade das MCU's mais abundante, as
heursticas conduzam a solues de melhor qualidade em menos tempo.
Na Tabela 1 esto listadas as instncias geradas utilizando esse mtodo.
Tabela 1: Instncias geradas aleatoriamente
Instncia
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl
MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8

N de
MCU's
5
5
5
5
10
10
10
10
10
15

N de
Clientes
16
16
16
16
16
36
36
36
36
36

N de Capacidade de Clientes
Salas
cada MCU
agrupados?
1
8
1
8
sim
2
8
2
8
sim
1
8
3
8
3
8
sim
4
8
4
8
sim
3
8
-

41

MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl
MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8
MCU_5_16_1_cap12
MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12
MCU_10_36_3_cap12
MCU_10_36_3_cap12_cl
MCU_10_36_4_cap12
MCU_10_36_4_cap12_cl
MCU_15_36_3_cap12
MCU_15_50_5_cap12
MCU_15_50_5_cap12_cl
MCU_15_50_10_cap12
MCU_15_50_10_cap12_cl
MCU_30_50_5_cap12
MCU_30_150_15_cap12
MCU_30_150_15_cap12_cl
MCU_30_150_25_cap12
MCU_30_150_25_cap12_cl
MCU_40_150_15_cap12
MCU_40_200_20_cap12
MCU_40_200_20_cap12_cl
MCU_40_200_30_cap12
MCU_40_200_30_cap12_cl
MCU_60_200_20_cap12

15
15
15
15
30
30
30
30
30
40
40
40
40
40
60
5
5
5
5
10
10
10
10
10
15
15
15
15
15
30
30
30
30
30
40
40
40
40
40
60

50
50
50
50
50
150
150
150
150
150
200
200
200
200
200
16
16
16
16
16
36
36
36
36
36
50
50
50
50
50
150
150
150
150
150
200
200
200
200
200

5
5
10
10
5
15
15
25
25
15
20
20
30
30
20
1
1
2
2
1
3
3
4
4
3
5
5
10
10
5
15
15
25
25
15
20
20
30
30
20

8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12

sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
sim
-

5.1.2 Instncias RNP


Como estudo de caso, gerou-se duas instncias baseadas no backbone da RNP.
Para tanto, foram realizadas medies de atraso na rede, atravs da infraestrutura do
Servio de Monitoramento da rede Ip (MonIP) [MonIP, 2008]. O MonIP um
servio experimental que objetiva disponibilizar dados de medies ativas aos usurios
da rede Ip. A infraestrutura possui sondas em 17 pontos de presena (PoP's) da RNP,
que oferecem diversos servios como medies de atraso, largura da banda, etc.
Para a gerao das instncias, foram feitas medies de atraso entre cada par de
42

PoP's, onde se considerou que estaria instalada tambm uma MCU do servio de
videoconferncia. Com o resultado das medies gerou-se a matriz do grafo de MCU's.
Para o posicionamento dos clientes, considerou-se uma situao onde estes estariam
agrupados em torno de alguma MCU (como estudantes e professores em uma
universidade presente na RNP), como explicado na seo 5.1.1. Desta forma, atribuiu-se
cada cliente a uma das MCU's da rede, aleatoriamente, e utilizou-se dos dados das
medies para determinar a matriz das latncias entre clientes e MCU's.
A nomenclatura dessas instncias segue o mesmo padro mostrado na seo
5.1.1, trocando-se o prefixo MCU_ por RNP_. As instncias esto listadas e suas
dimenses descritas na Tabela 2.
Tabela 2: Instncias baseadas na RNP
Instncia
RNP_15_80_10_cap12_cl
RNP_15_120_15_cap16_cl

5.2

N de
MCU's
15
15

N de
Clientes
80
120

N de Capacidade de Clientes
Salas
cada MCU
agrupados?
10
12
sim
15
16
sim

Parametrizao
Como j dito no captulo 4, cada metaheurstica possui um conjunto de

parmetros aos quais se faz necessrio atriburem valores, para que sejam executados os
experimentos. Os valores mais adequados para cada parmetro variam de um problema
para outro, muitas vezes de uma instncia para outra e, via de regra, so obtidos por
experimentao, onde o levantamento dos valores candidatos se d de forma emprica.
Foram realizados vrios experimentos para obteno dos parmetros a serem
usados pelas heursticas aqui implementadas. Um refinamento maior desses valores
sugerido para trabalhos futuros. Nesta seo sero mostrados os valores adotados para
obteno dos resultados deste trabalho, como tambm alguns efeitos observados quanto
variao dos parmetros.
Para o SA, se faz necessrio definir a temperatura inicial (T0), a razo de
resfriamento (), o nmero de iteraes para cada nvel de temperatura (SAmax) e a
condio de parada.
A Figura 21 mostra duas execues do SA (SA1 e SA2) com parametrizaes
distintas. O grfico indica como a funo objetivo varia ao longo das iteraes, onde
43

possvel perceber o efeito da variao de dois parmetros: a T0 e a condio de parada.

Figura 21: Efeitos da temperatura inicial e condio de parada extra

As regies (a) e (b) correspondem ao incio da execuo do SA, onde a


temperatura mais alta e a busca feita de modo quase totalmente aleatrio. possvel
perceber que para a regio (b) (SA1) essa fase foi mais longa do que em (a) (SA2). Isso
se deve ao fato de que a temperatura inicial da execuo SA1 foi maior que a
correspondente

em

SA2.

Percebe-se

ento

que

uma

temperatura

inicial

desnecessariamente elevada implica em um maior custo computacional, e no


necessariamente gera melhores solues. O restante das execues se d de forma quase
idntica, diferindo apenas ao final, onde o algoritmo converge para um timo local e
pra. A condio de parada original do SA se d quando a temperatura atinge um valor
baixo, normalmente algo prximo de zero. Entretanto, uma condio extra de parada
(ex: n iteraes sem melhora) pode encurtar a execuo do algoritmo, sem comprometer
a qualidade das solues encontradas. Em (c) est ilustrado o uso de uma condio de
parada dessa natureza, enquanto (d) mostra o uso de uma parada baseada na
temperatura.
44

Os parmetros e SAmax esto ligados diretamente ao esforo computacional


empregado. Aumentando-se o valor de ambos, tem-se um algoritmo mais longo, e que
provavelmente obter melhores solues. Observou-se que o valor empregado em
SAmax tem um aproveitamento melhor se levadas em considerao as dimenses da
instncia. Para tanto se adotou um valor que varia em funo do nmero de clientes (c)
e salas (s).
Na Tabela 3 so mostrados os valores dos parmetros definidos para o SA.
Tabela 3: Parmetros utilizados no SA
Parmetro
Iteraes por nvel de T (SAmax)

Valor
c s 0,15 + 500

Parada por iteraes sem melhora

15SAmax

Razo do Resfriamento ()
Temperatura Inicial (T0)

0,95
Obtido por TemperaturaInicial()

O procedimento TemperaturaInicial() tambm requer a definio de alguns


parmetros, que so mostrados na Tabela 4.
Tabela 4: Parmetros utilizados no procedimento TemperaturaInicial()
Parmetro

Valor

Razo de Aquecimento ()
Iteraes por nvel de T (SAmax)
Condio de parada ()

0,05
c s 0,15 + 500
95% dos movimentos so aceitos

Temperatura Inicial ( T0 ' )

J para a BT os principais parmetros a serem definidos so a condio de


parada BTmax, que consiste no nmero mximo de iteraes sem melhora; o tamanho
da lista tabu (|T|); o tamanho da busca pelo melhor vizinho (|V|).
O valor escolhido para |T| influencia na capacidade que o algoritmo possui de
escapar de mnimos locais. Uma lista muito pequena pode deixar o algoritmo preso em
uma regio especfica, enquanto uma lista muito grande pode evitar que movimentos
promissores sejam aceitos.
Assim como a condio de parada extra do SA, o aumento do valor do BTmax
45

vai aumentar o nmero de iteraes do algoritmo, aumentando assim o custo


computacional. Todavia, ao contrrio do SA que em suas ltimas iteraes fica
incapacitado de escapar de mnimos locais o BT pode gerar solues melhores
flexibilizando sua condio de parada. Deste modo, pode-se melhorar a qualidade das
solues obtidas pela BT, em detrimento do tempo, simplesmente aumentando o valor
de BTmax. Escolheu-se um valor de BTmax que fosse um mltiplo de |T|, deste modo
garante-se que a lista seja esvaziada algumas vezes antes de o algoritmo acabar,
possibilitando que movimentos anteriormente tabus sejam testados antes que o
algoritmo pare.
Aumentando-se o tamanho da busca (|V|) teremos tambm uma execuo mais
longa do BT, visto que, para cada iterao, mais tentativas de movimentos sero feitas
procura do melhor vizinho. Entretanto, um valor excessivamente alto de |V| no
implicar necessariamente em uma melhoria na qualidade das solues, em instncias
onde uma busca menor j se mostre suficientemente representativa.
Os valores dos parmetros definidos para a BT so mostrados na Tabela 5. As
constantes c e s representam o nmero de clientes e salas da instncia, respectivamente.
Tabela 5: Parmetros utilizados na BT
Parmetro

Valor

Tamanho da lista tabu (|T|)

1,5 c

Condio de parada (BTmax)

3 |T|

Tamanho da busca (|V|)

c s 0,1 + 500

Para a heurstica SABT, buscou-se utilizar uma parametrizao do SA de


menor esforo computacional, aninhado com a BT. Para diminuir o esforo da SA,
optou-se por diminuir o valor de SAmax e adotar os demais parmetros utilizados no SA
sem modificaes. A componente BT do SABT no sofreu quaisquer modificaes.
Os valores dos parmetros definidos para a BT so mostrados na Tabela 6.

46

Tabela 6: Parmetros utilizados no SABT


Parmetro

Valor

Parada por iteraes sem melhora

15SAmax

Iteraes por nvel de T (SAmax)

0,6 c s 0,15 + 500

Razo do Resfriamento ()

0,95

Temperatura Inicial (T0)

Obtido por TemperaturaInicial()

Tamanho da lista tabu (|T|)

1,5 c

Condio de parada (BTmax)

3 |T|

Tamanho da busca (|V|)

5.3

c s 0,1 + 500

Experimentos
Para obter os valores de referncia para a avaliao das heursticas, as

instncias apresentadas na seo 5.1 foram executadas utilizando o modelo matemtico


apresentado em 3.1 (pgina 18) no software otimizador CPLEX [ILOG, 2008]. O
ambiente de execuo utilizado foi: CPU Intel Core 2 Quad Q6600 2.40GHz, 8GB de
RAM, Sistema Operacional MS Windows Vista 64bits, CPLEX v11.0.1. As execues
foram limitadas a um tempo mximo de 21600s (6 horas) cada. As tabelas 7 e 8
mostram os resultados obtidos pela execuo do modelo matemtico.
Tabela 7: Resultados da execuo das instncias aleatrias no CPLEX
Instncia (cap8)
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl
MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8
MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl

Soluo
3671
3274
4465
2718
3487
7282
5563
7628
5156
6627
11209
7816
10316
7225
9888
34963
30906
36286
32595

Tempo
(s)
0,06
0,06
0,05
0,03
0,05
1,06
1,03
0,69
0,59
3,13
52,73
64,91
446,22
3567,27
21600,00
21600,00
21600,00
21600,00
21600,00

Instncia (cap12)
MCU_5_16_1_cap12
MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12
MCU_10_36_3_cap12
MCU_10_36_3_cap12_cl
MCU_10_36_4_cap12
MCU_10_36_4_cap12_cl
MCU_15_36_3_cap12
MCU_15_50_5_cap12
MCU_15_50_5_cap12_cl
MCU_15_50_10_cap12
MCU_15_50_10_cap12_cl
MCU_30_50_5_cap12
MCU_30_150_15_cap12
MCU_30_150_15_cap12_cl
MCU_30_150_25_cap12
MCU_30_150_25_cap12_cl

Soluo
3671
3274
4465
2718
3487
7033
5522
7619
5062
6627
10891
7538
10290
6981
9882
30227
27641
32701
26624

Tempo
(s)
0,05
0,03
0,09
0,06
0,06
0,17
0,64
0,33
0,27
3,11
5,05
3,52
72,53
43,08
14212,95
21600,00
21600,00
21600,00
21600,00

47

MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8

33305
45660
38855
51246
44566
40112

21600,00
21600,00
21600,00
21600,00
21600,00
21600,00

MCU_40_150_15_cap12
MCU_40_200_20_cap12
MCU_40_200_20_cap12_cl
MCU_40_200_30_cap12
MCU_40_200_30_cap12_cl
MCU_60_200_20_cap12

28794
38412
32659
43786
34673
39326

21600,00
21600,00
21600,00
21600,00
21600,00
21600,00

Tabela 8: Resultados da execuo das instncias RNP no CPLEX


Instncia

Soluo

Tempo (s)

RNP_15_80_10_cap12_cl

36822

21600

RNP_15_120_15_cap16_cl

136414

21600

Pela execuo do modelo matemtico foi possvel encontrar a soluo tima


para as instncias menores do problema. Estes valores esto sublinhados na Tabela 7.
Para as demais instncias da Tabela 7 e as da Tabela 8, a soluo indicada corresponde
funo objetivo da melhor soluo encontrada dentro do tempo prefixado.
A primeira observao que pode ser feita, a influncia da capacidade das
MCU's (Tabela 7). No cenrio onde este recurso mais abundante (cap12) as solues
encontradas so menores e o tempo de execuo tambm inferior. Isso no se observa
para as cinco primeiras instncias, onde as solues encontradas so iguais, visto que a
demanda de clientes no suficiente para saturar as MCU's.
Para os experimentos envolvendo as heursticas SA, BT e SABT, o ambiente
utilizado possui a seguinte configurao: CPU Intel Pentium D 2.8GHz, 512MB de
RAM, sistema operacional Linux kernel 2.6.17. As implementaes foram feitas
utilizando a linguagem C++, a biblioteca STL [STL, 1994] e o compilador gcc v4.
Tambm se fez uso da ferramenta gprof [Fenlason & Stallman, 2008] para eliminar
gargalos no cdigo. Para cada instncia foram realizadas vinte execues.
As Tabelas 9 e 10 (pginas 50 e 51) mostram o comparativo das trs heursticas
implementadas utilizando os movimentos mostrados das sees 4.2.1 4.2.5.
Na tabela 9 tem-se para cada heurstica, a coluna Soluo, que indica a
mdia da funo objetivo de cada instncia. A coluna Tempo informa o tempo mdio
das execues (em ms). A coluna Coef. Var. indica o coeficiente de variao das
solues obtidas em relao mdia. O coeficiente de variao ajuda a medir a robustez
das heursticas, e definido como:

48

1
f f 2
n1 i=1 i
cv =
,
f
onde f representa a soluo mdia.
A coluna Gap indica quo longe a mdia est da soluo de referncia, e
obtida por:
f f r
,
fr
a soluo de referncia obtida pelo CPLEX.
gap=

onde f r

Os campos em negrito na tabela indicam os melhores valores para cada


instncia. Os Gaps negativos so possveis em algumas instncias porque boa parte das
solues de referncia no corresponde ao timo global.
A Tabela 10 foi montada a partir dos dados mostrados na Tabela 9. A coluna
Gap Mdio indica a mdia dos Gaps para cada instncia, enquanto a coluna Desvio
Padro indica o calculado pela variao dos Gaps.
Os resultados obtidos mostram que, de modo geral, as trs heursticas
implementadas desempenham o papel proposto: obter solues de qualidade em um
tempo computacional vivel. Alm disso, elas se mostraram robustas, o que pode ser
observado pelo baixo coeficiente de variao, inferior a 3% mesmo no pior dos casos.
Entretanto, observa-se na Tabela 10 que o SABT conduz a solues melhores
do que a SA e a BT atuando isoladas, considerando o comportamento mdio do
conjunto instncias geradas. Pela Tabela 10, em termos de qualidade das solues, temse que o SABT apresenta os melhores resultados, seguido pela BT, e por ltimo o SA.
Outro fato que se pode observar que, para instncias maiores, o tempo de
execuo do SABT foi inferior ao da BT, mostrando que se uma soluo de qualidade
for submetida ao BT poder resultar no apenas em resultados melhores, como tambm
a um custo computacional reduzido.

49

Tabela 9: Resultados das Heursticas


Instncia
Soluo
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl
MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8
MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl
MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8
MCU_5_16_1_cap12
MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12

3671,00
3274,00
4465,00
2718,00
3487,00
7333,75
5594,30
7652,90
5294,45
6635,55
11418,05
8217,35
10500,80
7598,45
10158,25
34138,45
31828,40
36231,00
31413,50
31837,90
43366,15
36951,65
48392,70
41139,10
38540,30
3671,00
3274,00
4465,00
2718,00
3487,00

SA
Tempo Coef. Var.
(ms)
(%)
1301,65
0,00
1361,60
0,00
837,35
0,00
785,65
0,00
1220,20
0,00
944,00
0,50
925,05
0,76
858,60
0,70
877,50
1,98
973,10
0,21
916,55
0,81
979,05
2,79
992,65
0,98
910,25
2,01
977,30
1,06
1620,95
1,67
1699,60
1,44
2046,40
1,23
2102,70
1,66
1590,45
1,88
2200,35
1,77
2191,70
1,79
2794,10
1,26
2722,15
1,87
2124,65
0,93
1430,25
0,00
1464,40
0,00
778,35
0,00
817,15
0,00
1151,50
0,00

Gap
(%)
0,00
0,00
0,00
0,00
0,00
0,71
0,56
0,33
2,69
0,13
1,87
5,13
1,79
5,17
2,73
-2,36
2,98
-0,15
-3,62
-4,41
-5,02
-4,90
-5,57
-7,69
-3,92
0,00
0,00
0,00
0,00
0,00

Soluo
3671,00
3274,00
4465,00
2718,00
3487,00
7410,05
5574,90
7670,45
5235,80
6640,20
11549,20
8019,50
10438,80
7499,60
10020,80
33564,20
31079,00
36135,90
30964,90
30743,45
42386,00
35249,70
47950,35
39730,10
37222,50
3671,00
3285,05
4465,00
2718,00
3487,00

BT
Tempo Coef. Var.
(ms)
(%)
250,80
0,00
287,95
0,00
140,50
0,00
154,65
0,00
204,05
0,00
520,80
2,31
514,30
0,18
458,45
1,14
563,80
1,72
469,35
0,28
904,45
2,10
943,00
1,85
909,70
0,80
999,70
2,74
803,80
0,66
5432,00
1,78
5579,25
2,53
7581,15
2,43
6854,45
2,29
5256,00
1,87
9013,50
2,44
10351,40
2,05
13301,65
1,94
13246,35
2,91
9703,00
0,66
276,90
0,00
293,50
1,50
140,50
0,00
154,80
0,00
198,00
0,00

Gap
(%)
0,00
0,00
0,00
0,00
0,00
1,76
0,21
0,56
1,55
0,20
3,04
2,60
1,19
3,80
1,34
-4,00
0,56
-0,41
-5,00
-7,69
-7,17
-9,28
-6,43
-10,85
-7,20
0,00
0,34
0,00
0,00
0,00

Soluo
3671,00
3274,00
4465,00
2718,00
3487,00
7322,40
5569,05
7628,00
5184,40
6636,85
11355,20
8022,40
10418,55
7404,50
9985,75
33193,65
30552,30
35362,55
29948,00
30401,40
41580,25
34626,75
46616,25
39108,65
37123,80
3671,00
3274,00
4465,00
2718,00
3487,00

SABT
Tempo Coef. Var.
(ms)
(%)
986,55
0,00
1023,65
0,00
577,90
0,00
582,55
0,00
866,65
0,00
950,35
0,22
906,35
0,15
840,40
0,00
931,70
0,88
932,60
0,19
1190,00
0,84
1364,65
1,74
1240,50
0,84
1237,05
1,19
1298,60
0,82
5615,80
1,40
5077,40
2,26
6809,05
1,66
6143,55
1,42
6302,15
1,08
7832,10
1,49
9089,05
1,31
13103,40
1,52
10438,85
1,71
9486,20
0,89
990,65
0,00
1021,85
0,00
597,50
0,00
586,60
0,00
852,40
0,00

Gap
(%)
0,00
0,00
0,00
0,00
0,00
0,55
0,11
0,00
0,55
0,15
1,30
2,64
0,99
2,48
0,99
-5,06
-1,14
-2,54
-8,12
-8,72
-8,94
-10,88
-9,03
-12,25
-7,45
0,00
0,00
0,00
0,00
0,00

50

MCU_10_36_3_cap12
7071,35
MCU_10_36_3_cap12_cl
5540,15
MCU_10_36_4_cap12
7623,00
MCU_10_36_4_cap12_cl
5092,70
MCU_15_36_3_cap12
6633,65
MCU_15_50_5_cap12
10949,95
MCU_15_50_5_cap12_cl
7842,30
MCU_15_50_10_cap12
10440,30
MCU_15_50_10_cap12_cl
7222,35
MCU_30_50_5_cap12
10116,05
MCU_30_150_15_cap12
30861,25
MCU_30_150_15_cap12_cl 28558,65
MCU_30_150_25_cap12
32926,50
MCU_30_150_25_cap12_cl 27730,85
MCU_40_150_15_cap12
28725,20
MCU_40_200_20_cap12
38364,40
MCU_40_200_20_cap12_cl 32238,05
MCU_40_200_30_cap12
42215,85
MCU_40_200_30_cap12_cl 34078,55
MCU_60_200_20_cap12
36712,70
RNP_15_80_10_cap12_cl
37636,90
RNP_15_120_15_cap16_cl 143398,05

981,20
872,10
860,60
832,85
965,40
908,05
964,70
954,05
908,75
954,65
1562,00
1602,00
1974,05
1901,80
1599,50
2177,20
2261,90
2673,40
2638,90
2165,55
2053,40
3410,00

0,48
0,25
0,13
1,10
0,18
0,46
1,74
0,67
1,61
0,84
0,84
1,35
1,08
1,69
1,30
1,04
1,20
1,02
1,62
0,84
0,70
2,84

0,55
0,33
0,05
0,61
0,10
0,54
4,04
1,46
3,46
2,37
2,10
3,32
0,69
4,16
-0,24
-0,12
-1,29
-3,59
-1,71
-6,65
2,21
5,12

7064,95
5533,70
7626,95
5100,60
6638,15
10962,90
7737,70
10462,75
7061,90
9969,05
30196,35
27923,80
32476,65
26884,00
28033,40
36974,75
31636,85
41139,35
32707,90
35860,20
37453,00
140259,3
0

431,60
497,35
394,95
533,70
432,55
744,35
756,10
767,00
804,95
734,55
5623,05
5644,05
6803,75
6911,15
4080,30
8505,05
7227,95
12109,10
9722,05
8302,70
4057,55
8614,40

0,51
0,35
0,18
1,63
0,21
0,70
1,99
1,54
0,78
0,49
0,99
1,56
0,97
0,96
0,37
0,80
0,64
0,63
0,90
0,55
1,11
2,81

0,45
0,21
0,10
0,76
0,17
0,66
2,65
1,68
1,16
0,88
-0,10
1,02
-0,69
0,98
-2,64
-3,74
-3,13
-6,04
-5,67
-8,81
1,71
2,82

7055,10
5528,70
7619,90
5065,05
6630,50
10918,40
7634,40
10360,75
7034,95
9978,65
30067,30
27839,20
32220,25
26755,35
28144,15
36943,50
31501,50
41076,95
32654,45
35789,40
37293,95
139448,9
5

900,15
880,20
862,00
839,40
913,75
1071,00
1235,80
1154,05
1299,35
1261,20
5075,95
4786,80
6017,25
6515,20
4188,20
8103,40
7274,20
9097,15
8961,30
8550,80
4192,10
7661,80

0,49
0,18
0,04
0,13
0,14
0,17
0,94
0,50
0,81
0,69
0,71
0,88
0,87
1,04
0,55
1,01
0,62
0,50
0,83
0,58
0,46
1,27

0,31
0,12
0,01
0,06
0,05
0,25
1,28
0,69
0,77
0,98
-0,53
0,72
-1,47
0,49
-2,26
-3,82
-3,54
-6,19
-5,82
-8,99
1,28
2,22

Tabela 10: Gap mdio de cada heurstica para o conjunto das instncias
Heurstica

Gap Mdio (%)

Desvio Padro

SA

0,08

2,94

BT

-1,09

3,52

SABT

-1,69

3,78

51

Ainda a ttulo de comparao entre as heursticas tem-se, na Tabela 11, uma


avaliao baseada nos melhores valores encontrados por cada uma delas. Para cada uma
delas, a coluna Melhor indica a menor funo objetivo encontrada. Para BT e SABT
temos o Gap de suas solues em relao melhor soluo obtida pelo SA.
Tabela 11: Comparativo entre as melhores solues de cada heurstica
Instncia
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl
MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8
MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl
MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8
MCU_5_16_1_cap12
MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12
MCU_10_36_3_cap12
MCU_10_36_3_cap12_cl
MCU_10_36_4_cap12
MCU_10_36_4_cap12_cl
MCU_15_36_3_cap12
MCU_15_50_5_cap12
MCU_15_50_5_cap12_cl
MCU_15_50_10_cap12
MCU_15_50_10_cap12_cl
MCU_30_50_5_cap12

SA
Melhor
3671
3274
4465
2718
3487
7282
5563
7628
5156
6627
11282
7875
10344
7282
10014
33352
31001
35385
30562
30543
42094
35436
46860
40213
37928
3671
3274
4465
2718
3487
7033
5522
7619
5062
6627
10891
7648
10314
6987
9952

BT
Melhor
Gap / SA
3671
0,00
3274
0,00
4465
0,00
2718
0,00
3487
0,00
7282
0,00
5563
0,00
7628
0,00
5156
0,00
6627
0,00
11286
0,04
7821
-0,69
10324
-0,19
7236
-0,63
9912
-1,02
32505
-2,54
29471
-4,94
34839
-1,54
29852
-2,32
29977
-1,85
40736
-3,23
33961
-4,16
46774
-0,18
38175
-5,07
36746
-3,12
3671
0,00
3274
0,00
4465
0,00
2718
0,00
3487
0,00
7033
0,00
5522
0,00
7619
0,00
5062
0,00
6627
0,00
10900
0,08
7538
-1,44
10290
-0,23
6981
-0,09
9905
-0,47

SABT
Melhor
Gap / SA
3671
0,00
3274
0,00
4465
0,00
2718
0,00
3487
0,00
7306
0,33
5563
0,00
7628
0,00
5156
0,00
6627
0,00
11239
-0,38
7830
-0,57
10331
-0,13
7261
-0,29
9886
-1,28
32221
-3,39
29359
-5,30
34224
-3,28
28909
-5,41
29822
-2,36
40627
-3,49
33999
-4,06
45124
-3,70
37963
-5,60
36415
-3,99
3671
0,00
3274
0,00
4465
0,00
2718
0,00
3487
0,00
7033
0,00
5522
0,00
7619
0,00
5062
0,00
6627
0,00
10891
0,00
7538
-1,44
10296
-0,17
6981
-0,09
9886
-0,66

52

MCU_30_150_15_cap12
MCU_30_150_15_cap12_cl
MCU_30_150_25_cap12
MCU_30_150_25_cap12_cl
MCU_40_150_15_cap12
MCU_40_200_20_cap12
MCU_40_200_20_cap12_cl
MCU_40_200_30_cap12
MCU_40_200_30_cap12_cl
MCU_60_200_20_cap12
RNP_15_80_10_cap12_cl
RNP_15_120_15_cap16_cl

30211
27935
32235
27129
28084
37642
31663
41467
33342
36164
37154
138225

29691
27328
32049
26544
27797
36410
31374
40794
32221
35590
36969
137249

-1,72
-2,17
-0,58
-2,16
-1,02
-3,27
-0,91
-1,62
-3,36
-1,59
-0,50
-0,71

29693
27345
31788
26216
27833
36251
31293
40764
32081
35492
36995
137263

-1,71
-2,11
-1,39
-3,37
-0,89
-3,70
-1,17
-1,70
-3,78
-1,86
-0,43
-0,70

Mais uma vez, o SABT mostrou conduzir a melhores resultados, atingindo a


melhor soluo conhecida em 41 das instncias. A BT mostrou levar vantagem sobre o
SA, obtendo o melhor resultado em 32 instncias, enquanto o SA conseguiu o mesmo
feito em apenas 21. Dos 21 casos em que o SA atingiu a melhor soluo, em 19 deles as
outras duas metaheursticas tambm conseguiram chegar ao mesmo valor, e nos outros 2
casos tambm ocorreram empates (um com a BT e outro com a SABT). Alm dos 19
casos em que todas chegaram ao mesmo valor mnimo, BT e SABT empataram em
outros 2 casos (total de 21 empates entre as duas).
Para a anlise de convergncia das heursticas, obteve-se, para cada uma, a
distribuio de probabilidade emprica em funo do tempo de se alcanar uma dada
soluo-alvo. Tal anlise se mostra importante para verificar-se quo rpido os
algoritmos atingem solues alvo, e qual destes obtm melhores solues mais
rapidamente. Importncia essa ressaltada quando o elemento tempo fator limitante.
A forma como as curvas de distribuio de probabilidade foram geradas
seguem o mtodo descrito em [Aiex et al., 2002], que consiste em executar cada
algoritmo n vezes, abortando-se a execuo quando atingido um alvo. Em seguida os
valores dos tempos so ordenados. Cada i-simo tempo associado a uma probabilidade
p i=i1/ 2/ n . As figuras 22 e 23 mostram a distribuio de probabilidade de quatro
instncias, para dois alvos diferentes. Os pontos plotados correspondem a z i =t i , pi .
O nmero de execues foi n=200.
possvel observar que, apesar de SA e SABT apresentarem uma convergncia
mais acentuada, a BT atinge os alvos mais cedo. Todavia a BT geralmente no apresenta
o menor valor de tempo para a probabilidade de 100%. O atraso da convergncia do SA
53

e do SABT se deve em grande parte ao procedimento TemperaturaInicial(), que


executado antes do SA propriamente dito.

Figura 22: Distribuio de Probabilidade Emprica para um Alvo fcil

Para alvos mais difceis, como mostrado na figura 23, a SABT apresenta uma
convergncia mais rpida que a BT. A SA, alm de apresentar a convergncia mais
lenta, em grande parte das execues sequer capaz de atingir a soluo alvo.
A SABT mostrou no apenas conduzir a solues melhores como tambm
apresentou uma convergncia mais rpida para instncias maiores. O prximo
experimento busca mostrar uma peculiaridade da SABT.
A figura 24 mostra a distribuio de probabilidade emprica do SABT para
diferentes alvos. Nela possvel perceber pontos de inflexo em cada curva, sinalizando
que resultados anteriores ao ponto foram obtidos na fase SA do SABT, enquanto pontos
posteriores foram obtidos na fase BT. Deste modo, tem-se que, quanto mais fcil o alvo,
mais a curva de convergncia do SABT se assemelha curva do SA (mais acentuada).
Analogamente, quanto mais difcil o alvo, maior a similaridade com a curva da BT.

54

Figura 23: Distribuio de Probabilidade Emprica para um Alvo Difcil

Figura 24: Convergncia do SABT para diferentes alvos

55

O experimento seguinte busca avaliar os efeitos do movimento de Permuta de


Papis, proposto na seo 4.2.6. Este movimento no aparece em [Anjos et al., 2008a],
e o nico dos movimentos propostos que possui um escopo mais amplo, modificando
vrias salas de conversao simultaneamente. Por realizar vrias mudanas simultneas
na soluo corrente, o movimento de permutar papis de MCU's tende a se mostrar mais
adequado como movimento de diversificao do que de intensificao.
Na Tabela 12 so mostrados os resultados comparativos entre a heurstica
SABT nas verses com e sem a Permuta de Papis. So apresentadas a soluo mdia e
o tempo para cada verso da heurstica, e o Gap entre elas. Valores negativos do Gap
indicam que a verso com Permuta de Papis obteve melhores resultados para aquela
instncia. As indicaes em negrito sinalizam as melhores solues e valores de tempo
para a instncia.
Tabela 12: Resultados das heursticas com o movimento de permutar papis
Instncia
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl
MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8
MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl
MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8
MCU_5_16_1_cap12

SABT
SABT + Permuta de Papis
Soluo
Tempo (ms)
Soluo
Tempo (ms)
3671,00
986,55
3671,00
1105,55
3274,00
1023,65
3274,00
1126,80
4465,00
577,90
4465,00
779,25
2718,00
582,55
2718,00
840,55
3487,00
866,65
3487,00
860,30
7322,40
950,35
7351,00
1288,90
5569,05
906,35
5565,50
1235,35
7628,00
840,40
7641,60
1147,20
5184,40
931,70
5222,10
1423,45
6636,85
932,60
6629,25
1150,10
11355,20
1190,00
11363,95
1572,60
8022,40
1364,65
8033,00
1984,05
10418,55
1240,50
10432,35
2010,15
7404,50
1237,05
7417,85
2074,90
9985,75
1298,60
10149,05
1207,00
33193,65
5615,80
32946,45
8819,30
30552,30
5077,40
30184,60 11035,80
35362,55
6809,05
35039,05 16435,60
29948,00
6143,55
29781,35 15427,50
30401,40
6302,15
30423,50 12160,85
41580,25
7832,10
41195,65 18838,05
34626,75
9089,05
34481,75 20291,55
46616,25
13103,40
46218,25 31276,00
39108,65
10438,85
38711,65 27864,10
37123,80
9486,20
37158,80 27782,85
3671,00
990,65
3671,00
1142,30

Gap
0,00
0,00
0,00
0,00
0,00
0,39
-0,06
0,18
0,73
-0,11
0,08
0,13
0,13
0,18
1,64
-0,74
-1,20
-0,91
-0,56
0,07
-0,92
-0,42
-0,85
-1,02
0,09
0,00

56

MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12
MCU_10_36_3_cap12
MCU_10_36_3_cap12_cl
MCU_10_36_4_cap12
MCU_10_36_4_cap12_cl
MCU_15_36_3_cap12
MCU_15_50_5_cap12
MCU_15_50_5_cap12_cl
MCU_15_50_10_cap12
MCU_15_50_10_cap12_cl
MCU_30_50_5_cap12
MCU_30_150_15_cap12
MCU_30_150_15_cap12_cl
MCU_30_150_25_cap12
MCU_30_150_25_cap12_cl
MCU_40_150_15_cap12
MCU_40_200_20_cap12
MCU_40_200_20_cap12_cl
MCU_40_200_30_cap12
MCU_40_200_30_cap12_cl
MCU_60_200_20_cap12
RNP_15_80_10_cap12_cl
RNP_15_120_15_cap16_cl

3274,00
4465,00
2718,00
3487,00
7055,10
5528,70
7619,90
5065,05
6630,50
10918,40
7634,40
10360,75
7034,95
9978,65
30067,30
27839,20
32220,25
26755,35
28144,15
36943,50
31501,50
41076,95
32654,45
35789,40
37293,95
139448,95

1021,85
597,50
586,60
852,40
900,15
880,20
862,00
839,40
913,75
1071,00
1235,80
1154,05
1299,35
1261,20
5075,95
4786,80
6017,25
6515,20
4188,20
8103,40
7274,20
9097,15
8961,30
8550,80
4192,10
7661,80

3274,00
4465,00
2718,00
3487,00
7066,75
5532,20
7622,60
5101,20
6632,65
10952,65
7749,20
10387,50
7088,40
10130,90
30272,90
28050,60
32381,90
26873,75
28093,90
37257,80
31524,00
41142,10
32711,85
36134,60
37246,40
138367,65

1226,00
788,60
838,35
821,20
1193,70
1222,00
1140,35
1179,15
1151,10
1722,30
1771,95
1947,20
2009,15
1236,20
10912,80
11357,85
16219,30
17983,15
12046,10
22919,75
19894,75
33128,95
29329,20
17676,05
4146,20
9233,20

0,00
0,00
0,00
0,00
0,17
0,06
0,04
0,71
0,03
0,31
1,50
0,26
0,76
1,53
0,68
0,76
0,50
0,44
-0,18
0,85
0,07
0,16
0,18
0,96
-0,13
-0,78

Observou-se que a verso com a Permuta de Papis gera, em mdia, solues


piores que a verso anterior, alm de proporcionar um aumento considervel no tempo
de execuo. Entretanto para as instncias maiores dos cenrios, onde as MCU's tm sua
capacidade mais limitada (cap8), percebe-se que houve um ganho quando h a troca de
papis. um resultado esperado, visto que nesses cenrios h a ocorrncia de situaes
onde boa parte dos movimentos fica impossibilitada de ser feita devido saturao.
Nesses casos, o movimento de permuta de papis possibilita aumentar a probabilidade
de o algoritmo escapar dessas regies do espao de busca.
Com esse resultado, verificou-se que a permuta de papis se mostra promissora
como movimento de diversificao, podendo ser utilizado como mecanismo de
perturbao em heursticas que se utilizam deste conceito, como o Iterated Local
Search [Loureno et al., 2002], ou ainda como vizinhana alternativa em mtodos que
utilizam vizinhana varivel, como o Variable Neighborhood Search [Mladenovic &
Hansen, 1997].

57

O experimento seguinte busca analisar o comportamento das heursticas


quando a escolha dos movimentos deixa de ser apenas aleatria, e passa a ser
parcialmente tendenciosa.
Para obter o valor da probabilidade de cada movimento, foram realizadas
vrias execues do SA, e registrando o percentual mdio de vezes que cada movimento
leva a situaes de melhora da soluo corrente. Estabeleceu-se de forma emprica um
percentual base para os movimentos (8%), e o percentual restante (100-8*5=60%) foi
distribudo entre os movimentos de acordo com o percentual de melhora de cada um.
Por exemplo, verificou-se que o movimento de Permutar MCU's de mesma Sala
responsvel por 21% dos movimentos de melhoria. Calculado 21% sobre os 60%
restantes, resulta em 12,6%. Este valor somado aos 8% base, obtendo 20,6%, que ser
ento a probabilidade deste movimento ser realizado no experimento. A Tabela 13
mostra os valores de probabilidades dos movimentos obtidos.
Tabela 13: Distribuio de probabilidade dos movimentos para o experimento com
movimentao tendenciosa
Movimento

Percentual
Base

% das
Melhorias

Adicionar MCU

8%

5%

11%

11%

Mover Clientes

8%

25%

23%

34%

Permutar Clientes

8%

28%

24,8%

58,8%

de

8%

21%

20,6%

79,4%

Permutar MCU's de salas


Diferentes

8%

21%

20,6%

100%

Permutar
MCU's
mesma Sala

Prob. do
Valor
Movimento Acumulado

A Tabela 14 mostra um comparativo entre a verso da heurstica SABT de


movimentos equiprovveis com a verso onde os movimentos tm sua probabilidade
distribuda de forma tendenciosa.
Tabela 14: Comparativo entre heursticas com escolha aleatria e tendenciosa de
movimentos
SABT
Instncia
MCU_5_16_1_cap8
MCU_5_16_1_cap8_cl

Soluo
3671,00
3274,00

Tempo
(ms)
986,55
1023,65

SABT Tendencioso
Tempo
Soluo
(ms)
3671,00
979,75
3274,00 1008,40

Gaps
Gap
Gap
Sol. Tempo
0,00
-0,69
0,00
-1,49

58

MCU_5_16_2_cap8
MCU_5_16_2_cap8_cl
MCU_10_16_1_cap8
MCU_10_36_3_cap8
MCU_10_36_3_cap8_cl
MCU_10_36_4_cap8
MCU_10_36_4_cap8_cl
MCU_15_36_3_cap8
MCU_15_50_5_cap8
MCU_15_50_5_cap8_cl
MCU_15_50_10_cap8
MCU_15_50_10_cap8_cl
MCU_30_50_5_cap8
MCU_30_150_15_cap8
MCU_30_150_15_cap8_cl
MCU_30_150_25_cap8
MCU_30_150_25_cap8_cl
MCU_40_150_15_cap8
MCU_40_200_20_cap8
MCU_40_200_20_cap8_cl
MCU_40_200_30_cap8
MCU_40_200_30_cap8_cl
MCU_60_200_20_cap8
MCU_5_16_1_cap12
MCU_5_16_1_cap12_cl
MCU_5_16_2_cap12
MCU_5_16_2_cap12_cl
MCU_10_16_1_cap12
MCU_10_36_3_cap12
MCU_10_36_3_cap12_cl
MCU_10_36_4_cap12
MCU_10_36_4_cap12_cl
MCU_15_36_3_cap12
MCU_15_50_5_cap12
MCU_15_50_5_cap12_cl
MCU_15_50_10_cap12
MCU_15_50_10_cap12_cl
MCU_30_50_5_cap12
MCU_30_150_15_cap12
MCU_30_150_15_cap12_cl
MCU_30_150_25_cap12
MCU_30_150_25_cap12_cl
MCU_40_150_15_cap12
MCU_40_200_20_cap12
MCU_40_200_20_cap12_cl
MCU_40_200_30_cap12
MCU_40_200_30_cap12_cl
MCU_60_200_20_cap12
RNP_15_80_10_cap12_cl
RNP_15_120_15_cap16_cl

4465,00
577,90
2718,00
582,55
3487,00
866,65
7322,40
950,35
5569,05
906,35
7628,00
840,40
5184,40
931,70
6636,85
932,60
11355,20 1190,00
8022,40 1364,65
10418,55 1240,50
7404,50 1237,05
9985,75 1298,60
33193,65 5615,80
30552,30 5077,40
35362,55 6809,05
29948,00 6143,55
30401,40 6302,15
41580,25 7832,10
34626,75 9089,05
46616,25 13103,40
39108,65 10438,85
37123,80 9486,20
3671,00
990,65
3274,00 1021,85
4465,00
597,50
2718,00
586,60
3487,00
852,40
7055,10
900,15
5528,70
880,20
7619,90
862,00
5065,05
839,40
6630,50
913,75
10918,40 1071,00
7634,40 1235,80
10360,75 1154,05
7034,95 1299,35
9978,65 1261,20
30067,30 5075,95
27839,20 4786,80
32220,25 6017,25
26755,35 6515,20
28144,15 4188,20
36943,50 8103,40
31501,50 7274,20
41076,95 9097,15
32654,45 8961,30
35789,40 8550,80
37293,95 4192,10
139448,95 7661,80

4465,00
2718,00
3487,00
7345,30
5571,30
7650,65
5249,65
6633,95
11364,55
7994,65
10430,20
7440,50
9980,95
33023,70
30348,75
35198,75
30007,10
30383,10
41550,45
34805,15
46721,75
38903,60
37212,95
3671,00
3274,00
4465,00
2718,00
3487,00
7071,20
5523,80
7619,45
5084,75
6629,40
10915,20
7679,40
10368,60
7046,15
9962,85
30040,20
27776,25
32283,10
26703,70
28085,30
36894,60
31564,75
41154,60
32653,15
35935,05
37211,10
139628,45

591,20
586,85
859,35
876,00
858,40
851,80
872,20
925,40
1140,30
1269,55
1259,40
1250,30
1267,80
5133,35
5405,30
6455,15
5867,90
5667,85
9264,70
8261,70
11675,60
11739,90
9107,20
969,20
1005,30
577,40
575,55
849,45
879,75
839,10
802,10
932,20
965,75
1063,35
1157,20
1136,80
1240,75
1292,40
5426,95
4959,55
5557,75
6728,40
4363,75
7820,65
7354,70
9012,00
9260,35
7311,90
1954,45
3607,70

0,00
0,00
0,00
0,31
0,04
0,30
1,26
-0,04
0,08
-0,35
0,11
0,49
-0,05
-0,51
-0,67
-0,46
0,20
-0,06
-0,07
0,52
0,23
-0,52
0,24
0,00
0,00
0,00
0,00
0,00
0,23
-0,09
-0,01
0,39
-0,02
-0,03
0,59
0,08
0,16
-0,16
-0,09
-0,23
0,20
-0,19
-0,21
-0,13
0,20
0,19
0,00
0,41
-0,22
0,13

2,30
0,74
-0,84
-7,82
-5,29
1,36
-6,39
-0,77
-4,18
-6,97
1,52
1,07
-2,37
-8,59
6,46
-5,20
-4,49
-10,06
18,29
-9,10
-10,90
12,46
-4,00
-2,17
-1,62
-3,36
-1,88
-0,35
-2,27
-4,67
-6,95
11,06
5,69
-0,71
-6,36
-1,49
-4,51
2,47
6,91
3,61
-7,64
3,27
4,19
-3,49
1,11
-0,94
3,34
-14,49
-53,38
-52,91

59

Os resultados obtidos nesse experimento mostram que a escolha tendenciosa


proposta nesse trabalho praticamente no afeta a qualidade das solues obtidas,
vencendo em algumas instncias e perdendo em outras. O Gap mdio obtido foi de
0,04%, chegando a 1,26% de perda no pior caso observado. Entretanto pde-se perceber
que, em um panorama geral, uma escolha menos aleatria dos movimentos conduz a
execuo mais curtas, havendo um ganho no custo computacional. Um destaque deve
ser dado s instncias RNP_15_80_10_cap12_cl e RNP_15_120_15_cap16_cl que
obtiveram um ganho no tempo de mais de 50%. Todavia para alguns casos isolados, a
escolha tendenciosa dos movimentos levou a uma piora no tempo.

60

6 Consideraes Finais
Neste trabalho abordou-se o problema de configurar uma rede de
videoconferncia, atravs da designao de servidores (MCU's) s salas de conversao
e a atribuio de clientes aos servidores. Os estudos foram direcionados utilizao de
metaheursticas no intuito de obter-se, em um tempo computacional razovel, a
configurao de rede que apresentasse latncia total mnima, caracterstica esta
considerada obstculo na popularizao das videoconferncias.
Os algoritmos foram projetados sobre a arquitetura do Dynavideo Conference
System [Vasconcelos & Souza Filho, 2004], aproveitando-se do cascateamento de
MCU's e redirecionamento de clientes implementados pelo sistema. As heursticas
obtidas podem vir a serem utilizadas como ncleo de um metaservio do servio de
videoconferncia do DCS, atuando como coordenador da topologia da rede.
Foi feita uma anlise na literatura em busca de trabalhos com objetivos
semelhantes, mas apesar do aprendizado proporcionado, no foi encontrado nenhum
trabalho com as mesmas caractersticas do problema supra referido.
Verificou-se que o problema de designao de servidores e clientes NPdifcil, e para resolv-lo buscou-se a otimizao utilizando metaheursticas de
refinamento. Para tanto foram definidos os movimentos que determinam a estrutura de
vizinhana e uma estrutura de dados que representasse uma soluo. De posse disso,
partiu-se para a implementao de metaheursticas baseadas em Simulated Annealing e
Busca Tabu, e de uma metaheurstica hbrida Simulated Annealing/Busca Tabu.
Foram feitos experimentos empricos para definio dos valores mais
adequados para os parmetros de cada metaheurstica, onde se observou que para
aqueles parmetros que determinam a extenso da busca pelo espao de solues tem-se
um aproveitamento maior se eles levarem em considerao as dimenses da instncia.
No intuito de validao das metaheursticas, foi desenvolvida uma formulao
de programao linear inteira para o problema [Anjos et al., 2008a][Anjos et al.,
2008b], onde foi possvel encontrar a soluo tima para instncias menores, e solues
61

de referncia para instncias maiores.


Para realizao dos experimentos, foi gerado um conjunto de cinquenta
instncias de forma aleatria, de diferentes dimenses, variando-se a quantidade e
proporo dos elementos que as compe (MCU's, clientes, salas e capacidade de
MCU's), como tambm a natureza de sua disposio na rede (agrupados ou esparsados).
Foram geradas ainda duas instncias baseadas no backbone da RNP, onde os custos do
grafo de servidores foram obtidos por medies de latncia atravs do servio de
monitoramento MonIP [MonIP, 2008].
Os resultados obtidos mostram que as heursticas apresentam um tempo de
resposta relativamente baixo, mostrando que a abordagem uma opo vivel, apesar
da perda da qualidade caracterstica dos algoritmos aproximativos. Alm disso, elas se
mostraram robustas, o que pode ser observado pelo baixo coeficiente de variao,
inferior a 3% mesmo no pior dos casos.
Para as parametrizaes propostas, a heurstica hbrida SABT mostrou
conduzir a melhores resultados que suas componentes atuando em separado. Alm
disso, para instncias maiores, o tempo de execuo da SABT foi inferior ao tempo da
BT, o que mostra que ao se fornecer BT uma soluo inicial de boa qualidade (gerada
pelo SA) no apenas obtm-se solues melhores, como tambm o tempo de execuo
pode ser mais breve. O Gap mdio, para o conjunto de todas as instncias, de SA, BT e
SABT foi de respectivamente 0,08%, -1,09% e -1,69%, onde todas apresentaram um
desvio padro inferior a 5%.
Em uma anlise em cima dos melhores valores encontrados por cada
metaheurstica, o SABT mostrou conduzir a melhores resultados, atingindo a melhor
soluo conhecida em 41 das 52 instncias, enquanto a BT conseguiu em 32 e o SA em
apenas 21. Dessas 21 ocorreram empates com as demais metaheursticas em todos os
casos. BT e SABT empataram 21 vezes entre si.
Observou-se ainda, atravs da distribuio de probabilidade emprica em
funo do tempo de se atingir uma soluo alvo [Aiex et al., 2002], que a BT
apresentou uma convergncia mais rpida para alvos mais fceis. Entretanto, para alvos
mais difceis, a SABT convergiu mais rpido que a BT, enquanto a SA por muitas vezes
sequer atingiu o alvo.
62

Como formas de melhorar a qualidade das metaheursticas aqui apresentadas,


sugere-se para trabalhos futuros um estudo mais aprofundado na questo da
parametrizao, possivelmente utilizando-se de tcnicas onde os parmetros so reativos
(ex: reaquecimento no SA, lista tabu varivel no BT, etc.).
Outro resultado obtido foi que o movimento de Permutar Papis de MCU's
proporcionou ganho apenas em instncias onde ocorrem situaes de saturao, o que
bloqueia grande parte das tentativas de movimentao. Essa observao valida a idia
de que o movimento de Permutar Papis mostra-se mais adequado a ser utilizado como
instrumento de diversificao. Sugere-se para trabalhos futuros utiliz-lo como
mecanismo de perturbao em metaheursticas que trabalham com vrias vizinhanas.
Em outro experimento realizado, buscou-se avaliar os efeitos de se modificar a
forma como feito o sorteio dos movimentos. Observou-se que utilizando um sorteio
mais tendencioso, onde so favorecidos movimentos que conduzem estatisticamente
mais a situaes de melhora, obtm-se uma reduo no tempo de execuo, sem
comprometer a qualidade das solues, na mdia. Sugere-se para trabalhos futuros um
ajuste mais fino na obteno da probabilidade de cada movimento.
Embora as heursticas tenham se mostrado escalveis, esta caracterstica pode
ser melhorada atravs do desenvolvimento de heursticas paralelizadas. Em um cenrio
real, heursticas paralelizadas poderiam ser distribudas em um grid de coordenadores,
aumentando a escalabilidade do servio de otimizao. Tais coordenadores poderiam
ainda atuar em uma arquitetura mestre-escravo, onde o mestre seria o encarregado de
aplicar a soluo obtida pelo grid videoconferncia. Adicionalmente, o problema de
ponto nico de falha do coordenador poderia ser mitigado utilizando estratgias de
heartbeat onde, ao detectar-se a falha no coordenador mestre, uma eleio de lder entre
os demais seria inicializada. Sugerem-se estudos neste sentido para trabalhos futuros.
Alm das videoconferncias, outras aplicaes compartilham a mesma
sensibilidade ao estado da rede. Em geral aplicaes multimdia, e principalmente
ferramentas colaborativas em tempo real, como quadros branco, editores de documentos
multimdia, ambientes virtuais multiusurios etc. Portanto, os esforos no sentido de
minimizar a latncia em redes de videoconferncia podem beneficiar tambm essas
outras aplicaes. Neste sentido, sugere-se para trabalhos futuros estender a topologia
63

apresentada aqui para uma rvore generalizada, de modo que a rvore-estrela utilizada
pelo DCS seja um caso particular dessa generalizao, podendo assim englobar outras
aplicaes.

64

BIBLIOGRAFIA
Aiex, R. M., Resende, M. G. C. e Ribeiro, C. C. (2002), Probability
distribution of solution time in GRASP: an experimental investigation, Journal of
Heuristics, Boston, 8, 343-373.
Aposkitis, C. et al. (2005), Videoconferencing Cookbook. Verso 4.1.
http://www.vide.net/cookbook/cookbook.en/, novembro de 2007.
Anjos, T., Cabral, L. A. F. e Souza Filho, G. L. (2008a), Otimizando o
cascateamento de MCU's em Videoconferncias H.323, Anais do XXVI SBRC, p259272, Rio de Janeiro/RJ.
Anjos, T., Cabral, L. A. F. e Souza Filho, G. L. (2008b), Metaheursticas
Simulated Annealing e Busca Tabu aplicadas ao Problema de Otimizao em Redes de
Videoconferncia, Anais do XL SBPO, p1378-1389, Joo Pessoa/PB.
Banerjee, S., Kommareddy, C., Kar, K., Bhattacharjee, B., Khuller, S.
(2003), Construction of an Efficient Overlay Multicast Infrastructure for Real-time
Applications. In: Proceedings of INFOCOM, abril de 2003.
Blum, C., Roli, A. (2003), Metaheuristics in Combinatorial Optimization:
Overview and Conceptual Comparison, ACM Computing Surveys, 35, 3, 268308.
Bondy, A., Murty, U. S. R. (2008), Graph Theory, Series: Graduate Texts in
Mathematics , Vol. 244, XII, 654 p. ISBN: 978-1-84628-969-9, Springer, 2008.
Choi, H.-A.; Narahari, B.; Rotenstreich, S.; Youssef, A. (1990), Scheduling
on parallel processing systems using parallel primitives, International Conference on
Databases, Parallel Architectures and Their Applications. PARBASE-90, pp.56-65, 7-9,
maro de 1990.
Civanlar, M. R., zkasap, ., elebi, T. (2005), Peer-to-peer multipoint
videoconferencing on the Internet. In: Signal Processing: Image Communication 20,
743754, Elsevier.
Colcher, S., Gomes, A.T. A., Souza Filho, G. L., Soares, L. F. G. (2005),
VoIP: Voz sobre IP. Rio de Janeiro, Ed. Campus-Elsevier, 2005. v. 1. 300 p.
Dro, J., Ptrowski, A., Siarry, P., Taillard, E. (2003), Metaheuristics for
Hard Optimization, Springer.
65

Fenlason, J., Stallman, R. (2008), GNU gprof: The GNU Profiler,


http://sourceware.org/binutils/docs-2.18/gprof/index.html .
Feo, T. A., Resende, M. G. C. (1995), Greedy randomized adaptive search
procedures. Journal of Global Optimization, vol 6, pg.109-133, 1995
Glover, F. (1986), Future paths for Integer Programming and links to Artificial
Intelligence. Computers and Operations Research, vol 13, pg. 553-549.
H.323plus (2007), Open Source H.323, (www.h323plus.org), 2007.
ILOG (2008). CPLEX v11, (http://www.ilog.com/products/cplex/).
ITU-T (2003), ITU-T Recommendation H.323 V5.
Jain, S., Mahajan, R., Wetherall, D., Borriello, G., Gribble, S.D. (2002), A
comparison of large-scale overlay management techniques, Technical Report UV-CSE
02-02-02, University of Washington, fevereiro de 2002.
Kirkpatrick, S., Gellat, D.C., Vecchi, M.P. (1983), Optimization by
Simulated Annealing. In: Science 220, p. 671-680.
Leopoldino, G. M., Moreira, E. S. (2001), Modelos de Comunicao para
Videoconferncia,

In: RNP-NewsGeneration,

vol 5, www.rnp.br/newsgen/0105

/video.html, Maio, 2001.


Lingo, Extended rel7 (2001), LINDO Systems Inc., http://www.lindo.com.
Liu, F., Lu, X., Peng, Y. (2005), An Efficient Heuristic Algorithm for
Constructing Delay- and Degree-Bounded Application-Level Multicast Tree. In:
Lecture Notes in Computer Science. ISBN: 978-3-540-30510-1. p. 1131-1142.
SpringerLink.
Loureno, H. R., Martin, O., Sttzle, T. (2002), Iterated Local Search. In: F.
Glover and G. Kochenberger, Handbook of Metaheuristics, p. 321-353. Kluwer
Academic Publishers, Norwell, MA.
Marinho, E. H (2005), Heursticas Busca Tabu para o Problema de
Programao de Tripulaes de nibus Urbano, Dissertao de Mestrado, Programa de
Ps-Graduao em Computao, Universidade Federal Fluminense.
MonIP

(2008)

Servio

de

Monitoramento

da

Rede

Ip.

(http://wiki.nuperc.unifacs.br/portalmonipe/), fevereiro de 2008.


Mladenovic, N., Hansen, P. (1997), Variable Neighborhood Search.
66

Computers and Operations Research, vol24, pg. 1097-1100, 1997.


Pendarakis, D., Shi, S., Verma, D., Waldvogel, M. (2001), ALMI: an
Application Level Multicast Infrastructure. In: Proceedings of the Third Usenix
Symposium on Internet Technologies and Systems (USITS), maro de 2001.
Rao, K. R., Bojkovic, Z. S., Milovanovic, D. A. (2006), Introduction to
Multimedia Communications: Applications, Middleware, Networking. John Wiley &
Sons.
Sousa Filho, G. F., Cabral, L. A. F., Macambira, E. M. e Souza Filho, G. L.
(2005), Uma metaheurstica GRASP para configurao de um servio de distribuio de
vdeo baseado em replicao mvel, Anais do XXXVIII SBPO.
Souza, M. J. F. (2008), Inteligncia Computacional para Otimizao, Notas de
Aula, Universidade Federal de Ouro Preto, (www.decom.ufop.br/prof/marcone/),
setembro de 2008.
Souza Filho, G. L., Vasconcelos, M. M., Anjos, T. C. e Cabral, L. A. F.
(2006), Aplicao da Metaheurstica Simulated Annealing para Otimizao do
Posicionamento de MCU's em uma Rede de Videoconferncia Multiponto Centralizada,
Anais do VI ERMAC R3,
STL, Standard Template Library Programmer's Guide (1994), HewlettPackard Company, http://www.sgi.com/tech/stl/stl .
Suman, B. e Kumar, P. (2006), A survey of simulated annealing as a tool for
single and multiobjective optimization, Journal of the Operational Research Society, 57,
1143-1160.
Vasconcelos, M. A. V. M.; Souza Filho, G. L. (2004), Dynavideo Conference
System, Um Sistema de Videoconferncia H.323. In: Webmedia & LA-Web 2004 Joint
Conference, Ribeiro Preto, SP. Anais. ISBN 8576690101. p. 319- 320.
Yeo, C.K., Lee, B.S., Er, M. H. (2004), A survey of application level multicast
techniques. In: Computer Communications 27, p. 15471568. Ed. Elsevier.
Ziviani, A, Duarte, O. C. M. B. (2005), Metrologia na Internet. In:
Minicursos do XXIII Simpsio Brasileiro de Redes de Computadores, SBRC 2005, p.
285-329. Sociedade Brasileira de Computao (SBC).

67

ANEXO I EXEMPLOS VISUAIS DE SOLUES

Figura 25: Soluo de MCU_5_16_2_cap8_cl obtida por SolInicial()

Figura 26: Soluo de MCU_5_16_2_cap8_cl obtida pelo SABT

68

Figura 27: Soluo de MCU_30_50_5_cap8 obtida por SolInicial()

Figura 28: Soluo de MCU_30_50_5_cap8 obtida pelo SABT

69

Figura 29: Soluo de MCU_40_150_15_cap8 obtida por SolInicial()

Figura 30: Soluo de MCU_40_150_15_cap8 obtida pelo SABT

70

Figura 31: Soluo de MCU_40_200_30_cap8_cl obtida por SolInicial()

Figura 32: Soluo de MCU_40_200_30_cap8_cl obtida pelo SABT

71

Anda mungkin juga menyukai