ISSN 2317-3297
Seleção de Serviços utilizando Algoritmos Genéticos
Marcelo Silva Santos,
E-mail: [email protected]
Thiago Evangelista,
E-mail: thi [email protected]
Álvaro Coêlho
E-mail: [email protected]
UESC - Departamento de Ciências Exatas e Tecnológicas
Campus Soanes Nazaré de Andrade
45662-900, ilhéus, BA
3 de setembro de 2012
Palavras-chave: Sistemas P2P, Algoritmos Genéticos, Otimização
Resumo: Em sistemas P2P multisserviço baseados em reciprocidade os nós precisam implementar
métodos heurı́sticos para fazer a seleção dos serviços que são oferecidos, buscando com isso maximizar
seu lucro. Este trabalho apresenta e avalia um método baseado em Algoritmos Genéticos e mostra que
seu desempenho supera em 32% os melhores resultados obtidos nas mesmas condições.
1
Introdução
Com a popularização das redes de computadores, que ganham cada vez mais velocidade e recursos, as
empresas e organizações podem conseguir externamente os recursos computacionais de que necessitam.
Nesse sentido, uma alternativa é a federação em redes P2P, onde os participantes desempenham ao
mesmo tempo o papel de cliente e servidor. Neste contexto, pode-se mediar a oferta e o consumo destes
recursos através de esquemas baseados em reciprocidade[1], de forma que os nós são incentivados a doar
recursos ociosos a outros nós, com a expectativa de receber destes os recursos de que necessitará no futuro.
Considerando um ambiente em que os recursos são trocados na forma de vários tipos diferentes de serviços,
os nós buscarão maximizar seu ganho empregando estratégias que selecionem o melhor conjunto possı́vel
de serviços para oferecer. Este problema, porém, é difı́cil computacionalmente devido à complexidade
do ambiente, o que torna impraticável desenvolver um seletor ótimo de serviços para problemas reais,
impondo aos nós a necessidade de implementar heurı́sticas [5].
Neste trabalho apresentamos uma heurı́stica de seleção de serviços baseada em algoritmos genéticos [7],
e avaliamos seu desempenho utilizando um modelo computacional para um ambiente P2P com múltiplos
serviços. Mostramos que esta heurı́stica superou a que havia obtido o melhor desempenho até então,
obtendo uma lucratividade média aproximadamente 32% maior.
2
Descrição do Problema
Redes peer-to-peer (P2P) são comunidades onde os compontenes, chamados nós, compartilham múltiplos
serviços, que podem ser tomados num nı́vel elementar, como a alocação de ciclos de CPU ou de capacidade
de armazenamento, bem como num nı́vel mais sofisticado, como a execução de um software em um ambiente particularmente configurado [6]. Para que a troca destes recursos aconteça satisfatoriamente, muitas
alternativas baseadas em modelos econômicos de mercado tem sido propostas [2] mas, alternativamente,
sistemas baseados em reciprocidade vem sendo apresentados como uma alternativa para o escalonamento
destes recursos [1]. Nestes ambientes, os serviços que cada nó consegue obter dos demais é resultado da
reciprocidade por serviços doados no passado, de forma que cada nó buscará oferecer serviços que sejam
consumidos por nós recı́procos em uma parceria mutuamente lucrativa. Ocorre, porém, que os custos
associados no provimento de cada serviço são especı́ficos, variando de nó para nó, e não se espera que
nenhum nó possa oferecer todos eles devido a limitações de orçamento. Desta forma posa-se o problema
de escolher um portifólio de serviços que, ao ser ofertado, maximize a relação entre o custo para ser
oferecido e a receita resultante da reciprocidade.
255
ISSN 2317-3297
Neste ambiente, as seleções realizadas por um nó p influenciam, pela reciprocidade, o comportamento
dos demais nós e, assim, determinam um cenário especı́fico, composto pela demanda dos outros nós,
mais seus respectivos portifólios. O número de possı́veis portifólios acessı́veis a cada um dos N nós
x X
x
do sistema é dada por
, sendo x o número máximo de serviços que podem ser selecionados.
k
k=0
Assim, a combinação total de possı́veis estados após cada seleção feita por cada um dos nós é dada por
" x #N
X x
, o que torna impraticável a seleção do melhor conjunto possı́vel de serviços, legando aos nós
k
k=0
a imperativa necessidade de abrir mão da solução ótima e implementar métodos heurı́sticos de seleção de
serviços.
Apesar de ser impraticável desenvolver um algoritmo ótimo, do ponto de vista metodológico é interessante tê-lo para que se proceda à avaliação das heurı́sticas de seleção. Por este motivo usamos, neste
trabalho, um modelo do problema real baseado numa variação do problema da mochila 0/1, possibilitando a avaliação de heurı́sticas de seleção comparadas a um algoritmo ótimo [3]. A estratégia é imergir
o agente que seleciona serviços num ambiente em que, sendo (cp,s,t ) o custo total em que o nó p incorre
ao oferecer o serviço s no instante t, e sendo (λp,s,t ) a receita futura obtida pelo nó p em função da oferta
do serviço s no instante t, se define o lucro do nó p ao oferecer um serviço s no instante t (πp,s,t ) como
πp,s,t = λp,s,t − cp,s,t . Assim, para cada item i da mochila, o seu valor (vi ) é dado pelo lucro πp,i,t do
i−ésimo serviço; o seu peso (wi ) é dado pelo custo cp,i,t do i−ésimo serviço; e o valor xi , que é 1 se
o item está na mochila ou 0 caso contrário, além do orçamento do nó p (Bp ) representar a capacidade
da mochila. O problema, então, é encontrar uma seleção de itens de forma que o valor da mochila seja
maximizado, da seguinte forma:
Maximize
tf
n
X
X
πp,j,t · xtj
t=to j=1
Pn
Sujeito a j=1 wj · xtj ≤ Bp considerando xtj . ∈ {0, 1}. Assim, o problema da seleção de serviços, em
que um nó faz sucessivas seleções de serviços ao longo do tempo, pode ser visto como a resolução sucessiva
de problemas da mochila, sendo que o agente conhece a capacidade da mochila e o peso dos itens, que
correspondem ao orçamento do nó e ao custo dos serviços, mas lhe é sonegado o valor do item, já que o
lucro do serviço é desconhecido. Finalmente, para que estes múltiplos problemas da mochila reflitam as
condições em um ambiente real, é necessário se estabelecer um mecanismo que permita se parametrizar
as mochilas em função das caracterı́sticas do ambiente. Isto é feito da seguinte maneira: num universo de
n serviços, considerando que um nó consome, em média F serviços, então a probabilidade de um serviço
qualquer não ser consumido por um nó especı́fico é dada por 1− Fn ). Assim, a probabilidade de um serviço
N
Y
F
não ser consumido por nenhum nó é dada por Ω =
(1 − ). Deste modo, a receita que o serviço s
n
i=1
retorna para o nó p como resultado de p ter oferecido s no instante t, é 0 com probabilidade Ω ou igual
a X ∼ N (α, σ) com probabilidade 1 − Ω, sendo α a média e σ é o desvio padrão da receita futura. Esta
distribuição normal é justificada pelo Teorema do Limite Central, já que a receita é dada pelo somatório
de serviços doados por diferentes nós. De posse destas variáveis, supondo que cp,s seja o custo do serviço
s para o nó p, sendo cp o custo médio, para o nó p, de todos os serviços, e sendo Bt o orçamento médio
por nó disponı́vel no turno t, a quantidade média de serviços diferentes oferecidos por um nó p qualquer
Bt
é dada por ( ). Dessa forma, considerando que p esteja oferecendo serviços no turno t, a quantidade
cp
esperada de nós que estão disputando pela doação de um serviço s qualquer contando com o próprio p, é
Bt
dada por χ = (pdon · (N − 1)) · nc̄ + 1, onde pdon é a probabilidade de um nó qualquer estar doando no
mesmo instante que p. Finalmente, considerando um ambiente de competição, a receita gerada por cada
serviço precisa ser dividida entre os nós que estão disputando com p, oferecendo o mesmo serviço. Assim,
λ
o lucro médio gerado pelo serviço s ao ser oferecido pelo nó p no turno t é dado por πp,s,t = p,s,t
χ − cp,s .,
o que permite mapear efetivamente a seleção de portifólio no problema da mochila 0/1.
3
Heurı́sticas de Seleção
Em ambientes baseados em reciprocidade, é possı́vel se ordenar os serviços pela ordem de receita
esperada ao se considerar o histórico dos nós que os consumiram: os serviços que foram consumidos
256
ISSN 2317-3297
pelos nós mais recı́procos são aqueles que geram mais receita. Com isso pode-se desenvolver heurı́sticas
que utilizam uma ordem esperada de receita dos serviços, já que sua receita não pode ser determinada.
Utilizando este conceito, Coêlho e Brasileiro desenvolveram a heurı́stica Smart-Restricted [4], que seleciona
os serviços conforme a ordem de receita esperada, buscando oferecer os serviços que se espera serem
mais lucrativos. A fim de encontrar um melhor compromisso entre o custo e a receita, esta heurı́stica
implementa um método de subida de colina, de forma que, a cada intervalo de tempo (k turnos) avalia-se
δπp,s,t
a lucratividade - derivada do lucro em função do tempo ( δt
) - e uma decisão é tomada: incrementar
ou decrementar a parte do orçamento disponı́vel que é efetivamente usada. Para isso adiciona-se ou
subtrai-se um passo. Caso a lucratividade seja positiva a decisão anterior é mantida e, caso contrário,
ela é invertida. Para evitar as situações de máximos locais, esta heurı́stica também implementa uma
estratégia de reinı́cio aleatório, de forma que a cada momento de avaliação, com probabilidade , a
decisão será escolher um valor aleatório de orçamento para ser utilizado e avaliado.
3.1
Heurı́stica Genetic-Based
Algoritmos genéticos constituem uma técnica de busca e otimização inspirada no princı́pio de seleção
natural [7]. A estratégia é privilegiar indivı́duos mais aptos dando-lhes maior probabilidade de reprodução.
Nesse trabalho, desenvolvemos a heurı́stica Genetic-Based que funciona da seguinte maneira: uma população inicial é constiuida pela geração aleatória de vários portifólios diversos, cada um deles descrito pelo
vetor I = hi1 , i2 , ...in i onde is é 1 se o serviço s está selecionado, ou 0 caso contrário. Esses portifólios são
submetidos a um processo de cruzamento, onde são selecionados pares aleatórios de portifólios segundo
uma probabilidade de cruzamento. O cruzamento entre os portifólios P 1 e P 2 gera dois novos portifólios:
um pela concatenação do prefixo de P 1 (os x primeiros itens do vetor I de P 1) com o sufixo de P 2 (os
n − x últimos itens do vetor I de P 2) e o outro pela concatenação do prefixo de P 2 com o sufixo de P 1. O
valor de X é definido aleatoriamente. Após esse processo é realizada a mutação. Este processo seleciona
aleatoriamente itens do vetor I, segundo uma probabilidade de mutação, e inverte seu valor.
Tanto a operação de cruzamento quanto a operação de mutação podem gerar portifólios inválidos,
que ultrapassem a capacidade da mochila (que representa o orçamento do nó). Estes portifólios são
descartados. Finalmente é realizada a operação de seleção utilizando o elitismo, de forma que, a cada
iteração apenas as F melhores mochilas sejam mantidas no processo. Este processo é repetido até que a
condição de parada seja satisfeita.
4
Resultados
Exploramos de que forma estas heurı́sticas se comportam quando selecionam serviços sob diferentes
condições de orçamento, que podem ser mais restritivos ou mais generosos. A heurı́stica Referential,
usada como algoritmo de referência, implementa um método de programação dinâmica para encontrar
a melhor solução possı́vel. No experimento as heurı́sticas foram implementadas em cenários diversos,
com orçamentos médios que variam em 3, 4, 5, 10, 15, 20, 25, 30, 35, 40, 45 e 50. Para cada valor de
orçamento gerou-se 1000 mochilas, que foram avaliadas pelas diferentes heurı́sticas. Note que, quanto
maior o orçamento, mais serviços cada nó poderá prover, o que aumenta a concorrência entre eles, já
que a chance de nós diferentes oferecerem o mesmo serviço é mais alta. Com isso, a receita desse serviço
acabará sendo rateada entre eles. Os resultados abaixo foram obtidos com 95% de confiança e erro
máximo de 0.15%. A heurı́stica Smart-Restricted, que foi comparada à heurı́stica Genetic-Based, foi
parametrizada como alcançou seu melhor desempenho em experimentos semelhantes [5]: a probabilidade
de geração de orçamento aleatório ( = 10%), passo de mudança do orçamento utilizado (step = 5), o
tempo de execução de uma seleção para verificação de sua lucratividade (k = 10). A heurı́stica Geneticbased foi parametrizada conforme sugerido na literatura: probabilidade de cruzamento (pcrossing = 70%),
probabilidade de mutação (pmutating = 0, 1%). Além disso, definimos uma população inicial de 10
indivı́duos e um total de 10 gerações.
A Figura 1 apresenta os resultados obtidos por cada heurı́stica, comparadas à melhor solução possı́vel
(Referential ). Os resultados da heurı́stica Smart-Restricted são sempre positivos, mas consistentemente
superados pela heurı́stica Genetic-based nos cenários onde o orçamento médio é mais alto, pois a quantidade de possı́veis combinações é muito grande, permitindo que o Genetic-Based encontre mais combinações de seleções. É importante observar que a lucratividade começa a cair quando o orçamento médio
aumenta, mesmo no caso do algoritmo de referência. Isto acontece porque, quanto maior é o orçamento
médio, maior a quantidade de serviços que são oferecidos pelos nós e maior a concorrência de nós oferecendo o mesmo serviço. Este fenômeno limita a lucratividade, e é referido por Adam Smith como a “mão
257
ISSN 2317-3297
invisı́vel”. Caso o orçamento médio se torne muito alto, então não haverá distinção de desempenho entre
o algoritmo de referência e as demais heurı́sticas. No limite, para orçamentos muito grandes (−→ ∞) a
concorrência seria tal que o lucro seria sempre negativo. Note que, dada a necessidade de gerar e implementar as populações de indivı́duos de cada geração, a heurı́stica Genetic-Based não consegue resultados
relevantes no inı́cio de seu processamento. Por este motivo ela sempre é parametrizada com valores baixos
de tamanho da população e número de gerações. Como a qualidade da solução final produzida é boa, é
razoável supor que esta heurı́stica seja mais adequada para ambientes em que as mudanças sejam menos
constantes, e assim a solução permaneça válida por mais tempo para compensar o custo inicial de a obter.
Figura 1: Lucro com diferentes orçamentos
5
Conclusões
Neste trabalho mostramos e avaliamos uma heurı́stica baseada em algoritmos genéticos para seleção
de serviços em ambientes P2P através de um modelo formal que permite avaliar métodos desta natureza.
O desempenho desta heurı́stica superou em aproximadamente 32% o melhor resultado até então. Este
desempenho destacado ocorre particularmente em cenários onde o orçamento médio é mais alto, já que
esta heurı́stica não restringe sua busca pela ordem esperada dos serviços.
Pelo fato de as heurı́sticas obterem diferentes lucratividades quando se varia aspectos distintos do ambiente, em trabalhos futuros poderemos explorar outros aspectos. Além disso, por se tratar de um ambiente cooperativo, pode ser interessante estudar a implementação distribuı́da e colaborativa da heurı́stica
Genetic-based, bem como de outras técnicas de otimização combinatória como espalhamento de partı́culas,
colônia de formigas, redes neurais e sistemas imunológicos naturais.
Referências
[1] N. Andrade, F. Brasileiro, W. Cirne, and M. Mowbray, “Automatic grid assembly by promoting
collaboration in peer-to-peer grids,” J. Parallel Distrib. Comput., vol. 67, no. 8, pp. 957–966, 2007.
[2] R. Buyya and S. Vazhkudai, “Compute power market: Towards a market-oriented grid,” The First
IEEE/ACM International Symposium on Cluster Computing and the Grid (CCGrid 2001), 2000.
[3] A. Coêlho and F. Brasileiro, “On the evaluation of services selection algorithms in multi-services p2p
grids,” in Fourth IEEE International Workshop on Business-driven IT Management (BDIM’09).
Piscataway, NJ, USA: IEEE Press, 2009, pp. 52–60.
[4] A. Coêlho and F. Brasileiro, , “Smarter heuristics for business-driven services selection in multiservices p2p grids,” in The 7th IEEE 2010 International Conference on Services Computing (SCC
2010). IEEE Press, 2010, pp. 417–424.
[5] A. Coêlho, F. Brasileiro, and P. D. Maciel, “Using heuristics to improve service portfolio selection
in p2p grids,” in IM’09: Proceedings of the 11th IFIP/IEEE international conference on Symposium
on Integrated Network Management. Piscataway, NJ, USA: IEEE Press, 2009, pp. 438–444.
[6] A. Coêlho, P. D. Maciel Jr., F. d. Figueiredo, D. Candeia, and F. Brasileiro, “On the impact of
choice in multi-service p2p grids,” in Third IEEE International Workshop on Business-driven IT
Management (BDIM’08), Salvador, Bahia, Brazil, 2008, pp. 98–101.
[7] D. Goldberg, Genetic algorithms in search, optimization, and machine learning, ser. Artificial Intelligence. Addison-Wesley Pub. Co., 1989.
258
Download

Thiago Evangelista