Um estudo sobre abordagens para solução de
problemas de localização de dacilidades
M. G. Oliveira
Technical Report
-
February
RT-INF_001-12
-
2012
-
-
Relatório Técnico
Fevereiro
The contents of this document are the sole responsibility of the authors.
O conteúdo do presente documento é de única responsabilidade dos autores.
Instituto de Informática
Universidade Federal de Goiás
www.inf.ufg.br
Um estudo sobre abordagens para solução
de problemas Facility Location
Max Gontijo de Oliveira
∗
Cedric L. de Carvalho
[email protected][email protected]
Abstract. This paper is intended to propose a solution to the problem of resource
distribution in a predetermined geographic region. For this purpose, techniques
and data mining approaches have been studied in order to obtain patterns of
demand of the distribution problem you want solved. This type of problem is
known in literature as facility location problems, where we seek to find the best
locations for new facilities, considering the estimated demand.
Keywords: facility location, data mining, clustering algorithms, k-means.
Resumo. Este relatório tem o objetivo de apresentar um estudo sobre diversas abordagens que buscam solução para o problema de distribuição de recursos
em uma região geográfica pré-determinada. Nesse estudo, as informações de
demanda e de possı́veis localizações de uma facilidade terão respaldo de dados
históricos referentes ao problema. Assim, o uso de técnicas e abordagens de
mineração de dados para o aprendizado é fundamental. Esse tipo de problema
é conhecido na literatura como problemas de localização de facilidades (facility
location), onde busca-se encontrar as melhores localizações para a inserção facilidades, considerando a demanda existente.
Palavras-Chave: facility location, mineração de dados, algoritmos de cluster,
k-means.
1
Introdução
Decidir sobre como realizar a distribuição de facilidades1 em uma região geográfica
limitada (uma cidade, por exemplo), é uma atividade estratégica para muitas organizações.
Quando a disponibilização de um recurso envolve um custo muito alto ou o número de
recursos disponı́veis é limitado, esse problema fica ainda mais preocupante, pois uma
distribuição mal realizada pode acarretar em prejuı́zo certo para a organização.
∗
Mestrando em Ciência da Computação, INF-UFG
Orientador
1
Nesse contexto, uma facilidade é um recurso que provê algum tipo de serviço ou produto para atender
uma demanda medida ou estimada que, geralmente, está próxima a esse recurso. De modo geral, facilidade
e recurso terão o mesmo significado nesse trabalho.
†
1
Facility Location
2
Uma distribuição mal realizada de recursos disponı́veis pode ser responsável por uma
série de consequências indesejáveis pela organização, como interesse maior de clientes locais à concorrência, dificuldades de atingir metas de qualidade de serviço (prazo para
atendimento) e baixo uso do recurso (considerando sua capacidade). Somente para ilustrar, pode-se tomar como exemplo de organizações que se deparam com esse tipo de
decisão, redes de supermercados (que precisam decidir onde instalar uma nova filial), empresas que coordenam o serviço de divulgação por panfletagem (que precisam decidir como
alocar as pessoas que irão distribuir panfletos), empresas distribuidoras de energia elétrica
(que precisam decidir os melhores pontos em uma rede elétrica onde inserir chaves e transformadores), hospitais, postos de saúde, delegacias e semáforos em uma malha rodoviária
(que precisam ser distribuı́dos de forma que haja a maior cobertura possı́vel em uma
cidade, considerando a demanda e necessidade de cada unidade em uma cada região).
Esses problemas de realizar a distribuição de recursos (ou facilidades) em uma região
geográfica limitada é caracterizado na literatura como modelos do tipo facility location[?].
De modo geral, esses problemas lidam com recursos que, quando distribuı́dos, sempre permanecerão no local da distribuição. Isso é o caso das organizações que tem que
construir edificações para o fornecimento do serviço ou produto.
Entretanto, esse trabalho visa atacar problemas onde os recursos distribuı́dos irão
se locomover para atender as demandas. Cooperativas de taxi, por exemplo, poderiam
oferecer um atendimento mais rápido (e mais barato para a cooperativa) se realizasse
a distribuição dos taxistas de forma bem planejada, para que cada demanda recebida
pudesse ser mais facilmente atendida. Atendimentos médicos de emergência podem ser
realizados cada vez mais rápidos se as ambulâncias estiverem distribuı́das em locais estratégicos. É importante notar que nesse tipo de problema, a facilidade deverá estar
preparada para atender a uma demanda local, de modo que chegar a um consumidor não
afaste a facilidade demais dos outros consumidores.
Segundo Benati e Laporte[?], problemas de otimização modelados como facility location são NP-Difı́ceis, tornando inviável até mesmo a solução de instâncias relativamente
pequenas. Dessa forma, esse trabalho visa buscar uma abordagem inteligente embasadas
em propostas feitas ao longo do tempo na literatura, de modo que seja viável a geração
de boas sugestões de distribuição de recursos de um determinado problema de localização
de facilidades.
2
Caracterı́sticas de problemas facility location
Os problemas de localização de facilidades abrangem uma grande quantidade de
aspectos que podem determinar diversos tipos de modelos e abordagens.
Segundo Klose e Drexl[?], os modelos desse tipo de problema podem ser classificados
em diversas formas:
1. Organização da região geográfica. A região geográfica pode ser representada
como um plano ou o problema pode permitir que a região seja mapeada para um
modelo discreto. Uma exploração maior sobre modelos contı́nuos e descritos poderão
ser vistos na sessão 3.
2. Objetivos. Os objetivos podem incluir a minimização de uma variável (como a
soma do custo de instalação de uma facilidade ou a soma das distâncias entre pontos de demanda e a facilidade mais próxima) ou a maximização de outra (como a
cobertura de uma facilidade).
Facility Location
3
3. Capacidade da facilidade. Os modelos facility location podem ou não ter que considerar a restrição de capacidade. Essa restrição se refere à capacidade de demanda
que uma facilidade tem. De fato, de acordo com Melkote e Daskin[?], modelos que
não possuem a restrição de capacidade podem ser vistos como modelos que possuem tal restrição, desde que a capacidade de cada uma das facilidades seja maior
ou igual à soma de todas as demandas do problema. Assim, uma facilidade teria
capacidade para atender todos os pontos de demanda, podendo então, essa restrição,
ser desconsiderada, restando apenas as demais restrições do problema.
4. Quantidade de estágios. A logı́stica de atendimento de demanda pode ter um
único estágio ou pode ter vários estágios. Modelos com apenas um único estágio são
aqueles onde todas as facilidades atendem diretamente aos clientes da organização.
Modelos multi-estágios são aqueles em que, além das facilidades que atendem aos
clientes, tem-se ainda facilidades que atendem à outras facilidades, como por exemplo, pontos de abastecimento de estoque. A quantidade de estágios nessa estrutura
é determinada pelo problema.
5. Quantidade de produtos/serviços. Os modelos podem contemplar facilidades
que forneçam apenas um tipo de produto/serviço ou que forneçam mais de um tipo
de produto/serviço. São ainda considerados modelos de um único produto/serviço
aqueles modelos em que os diversos produtos/serviços podem ser condensados em
um único produto/serviço.
6. Influência da demanda. A maioria dos problemas do tipo facility location consideram que a demanda existe independente da localização das facilidades. Entretanto,
em alguns casos, a demanda pode ser influenciada pela existência ou não de uma
facilidade.
7. Dinamismo. Modelos podem ser estáticos ou dinâmicos. Modelos estáticos buscam
otimizações para perı́odos especı́ficos. Modelos dinâmicos consideram o tempo como
fator determinante a ser considerado na otimização.
Ainda analisando as classificações de modelos facility location, segundo Farahani,
SteadieSeifi e Asgari[?], esses modelos ainda podem ser distinguidos segundo a quantidade
de critérios a serem otimizados. Eles apresentam um grande estudo sobre o estado-da-arte
de problemas facility location com múltiplos critérios.
Assim, as seguintes classificações podem ainda ser acrescentadas à lista:
• Modelos com múltiplos objetivos;
• Modelos com múltiplos atributos.
3
Modelos contı́nuos e discretos
Quando se fala em distribuir facilidades em uma região geográfica, a primeira decisão
a ser tomada é de como essa região será organizada. A abordagem e algoritmos utilizados,
bem como fatores de performance e complexidade estão totalmente dependentes da forma
como essa organização é tratada no problema.
Assim, pode-se classificar os modelos do tipo facility location em pelo menos dois
grupos: modelos contı́nuos e modelos discretos.
4
Facility Location
3.1
Modelos contı́nuos e o problema de Weber
O meio mais natural de se enxergar a solução para a questão é tratar o plano de
forma contı́nua, de modo que cada ponto do plano seja uma localização potencial onde
pode-se instalar uma facilidade.
Partindo dessa premissa, em 1909 A. Weber[?] propôs o problema de encontrar o
melhor ponto para instalar uma facilidade, de modo que a soma das distâncias (euclidiana)
entre todos os pontos de demanda e a facilidade instalada fosse minimizada.
No problema de Weber simples (PWS), a quantidade de facilidades a serem distribuı́das era apenas uma. Dessa forma, dado que dk (x, y) é a distância do ponto de
demanda k à facilidade localizada na posição (x, y) e que pk é o peso de um ponto de
demanda (podendo ser obtido por uma função que considere diversos aspectos como prioridade, custo, frequência de uso da facilidade, etc.), o problema de otimização poderia
ser descrito conforme (1).
X
pk dk (x, y)
(1)
v(PWS ) = min(x,y)
k∈K
Se o plano for dividido em coordenadas discretas, a solução para o problema de
otimização (1) poderia ser facilmente implementada com o uso de um simples algoritmo
iterativo, como apresentado no Algoritmo 1.
Algoritmo 1: PWS (K)
Entrada: vetor K[(x1 , y1 ), (x2 , y2 )...] de coordenadas (k x , ky ) dos
pontos de demanda
Saı́da: coordenadas (x, y) do melhor posicionamento para a
facilidade
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
xMaior ← maior valor de coordenada x do vetor K
xMenor ← menor valor de coordenada x do vetor K
yMaior ← maior valor de coordenada y do vetor K
yMenor ← menor valor de coordenada y do vetor K
somaMenor ← ∞
para x ← xmenor até xMaior faça
para y ← ymenor até yMaior faça
soma ← 0
para cada k ∈ K faça
soma ← soma+ distância entre pontos (k x , ky ) e (x, y)
fim
se soma < somaMenor então
somaMenor ← soma
xS olucao ← x
yS olucao ← y
fim
fim
fim
retorna (xS olucao, yS olucao)
Percebe-se que a quantidade de operações necessárias para se encontrar a melhor
solução para o problema de Weber simples é O(x ∗ y ∗ k), onde x é a quantidade de colunas
5
Facility Location
do plano, y é a quantidade de linhas e k é a quantidade de pontos de demanda. Assim, o
problema de Weber simples possui uma solução iterativa eficiente.
Entretanto, é mais comum que problemas reais requeiram a distribuição de mais de
uma facilidade no plano. Dessa forma, uma extensão do problema de Weber simples é um
problema onde a quantidade de facilidades seja maior que 1. Essa extensão é chamada de
problema de Weber com múltiplas fontes (PWM).
O problema PWM consiste em distribuir n facilidades em uma determinada região
geográfica com os pontos de demanda K e alocar cada ponto de demanda à uma facilidade
especı́fica. Esse problema pode ser descrito conforme (2).
v(PW M) = min
p
XX
(2a)
pk dk (x, y)zk j
k∈K j=1
sujeito à
p
X
zk j = 1
∀k ∈ K,
(2b)
zk j ∈ {0, 1}
∀k ∈ K, j = 1, ..., p,
(2c)
j=1
onde zk j indica se o ponto de demanda k está sendo atendido pela facilidade j (zk j
assume valor 1) ou não (zk j assume valor 0), enquanto a restrição (2b) garante que somente
uma facilidade irá atender um ponto de demanda.
Dessa forma, avaliar todas as possibilidades de distribuição de uma facilidade em
um plano resultaria na execução de O((x ∗ y ∗ k)n ). Assim, analisando a quantidade de
facilidades n, pode-se perceber que a complexidade é exponencial.
3.2
Modelos discretos e modelos em rede
Uma grande parte dos problemas de localização podem ser modelados como problemas discretos, tendo em vista que um número limitado de pontos de localização é suficiente
para o espaço de busca da solução ótima. Os problemas de rede, por exemplo, constituem
de um tipo particular de problemas discreto.
Em problemas de localização de facilidades modelados em rede, as distâncias são
computadas como a menor distância em um grafo. De fato, muitos problemas de localização de facilidades podem considerar um número limitado de localizações como possı́veis
pontos de para a instalação de uma facilidade. Esses pontos são representados em um
grafo através dos vértices.
Segundo Klose e Drexl[?], um modelo de rede pode ser mapeado com um grafo,
onde os vértices representam os pontos de demanda e cada aresta que liga um vértice
representa uma ligação entre os dois pontos de demanda no problema real. Nesse contexto,
a distância entre um nó e outro é dada pela menor distância entre ambos no grafo. Um
subconjunto dos vértices desse grafo e mesmo pontos adicionais inseridos nas arestas do
grafo representam os possı́veis pontos de instalação de uma facilidade.
Em algumas abordagens, dependendo da função de distância adotada, como a de
[?], os pontos de localização de facilidades em potencial podem ser restritos ao próprio
conjunto de nós do grafo (pontos de demanda).
O problema de localização de facilidades modelado em rede correspondente ao problema de Weber com múltiplas fontes é conhecido como p-mediana. Nesse problema, buscase encontrar a localização de p medianas em um grafo, de modo que a soma das distâncias
6
Facility Location
entre todos os vértices (pontos de demanda) e a mediana mais próxima seja minimizada.
As medianas encontradas representarão, ao final, a localização das p facilidades que se
deseja distribuir.
O problema p-mediana pode ser formulado conforme apresentado em (3)
XX
v(PMed) = min
pk dk j zk j
(3a)
k∈K j∈J
sujeito à
X
zk j = 1
∀k ∈ K
(3b)
zk j − y j 6 0
X
yj = p
∀k ∈ K, j ∈ J
(3c)
j∈J
(3d)
j∈J
zk j , y j ∈ {0, 1}
∀k ∈ K, j ∈ J
(3e)
onde dk j representa a distância no grafo entre os vértices d e j, zk j indica se o ponto
de demanda k está sendo atendido pela facilidade j (zk j assume valor 1) ou caso contrário
(zk j assume valor 0) e y j indica se foi instalada uma facilidade no vértice j (y j assume
valor 1) ou não (y j assume valor 0).
Comumente, problemas de distribuição de facilidades em um plano (modelos contı́nuos) podem ser mapeados para um modelo de rede, de acordo com a conveniência em
se fazer essa conversão. Para isso, diversas abordagens podem ser utilizadas para a realização desse mapeamento, desde que os pontos de demanda resultem em vértices do grafo
e as arestas representem alguma ligação entre esses pontos de demanda.
Para problemas onde o negócio da organização pode enxergar os bairros de uma
cidade como unidades a serem tratadas individualmente, uma abordagem interessante
seria mapear cada bairro para um vértice do grafo e cada fronteira entre os bairros poderia
ser representado como uma aresta. O valor de cada aresta nessa abordagem, poderia ser,
por exemplo, a distância entre o ponto central de um um bairro ao ponto central do outro.
Em uma outra abordagem, o plano poderia ser discretizado em células que representariam os vértices. O problema de distribuição de facilidades em um plano poderia ser
mapeado para um problema de distribuição de facilidades em rede com alguns passos: a
discretização do mapa em células de tamanho igual; a identificação de células que contenham algum ponto de demanda; a ligação de células vizinhas; o grafo sairia das células
(vértices do grafo) e suas ligações com as células vizinhas (arestas do grafo). A Figura 1
mostra os passos dessa conversão.
Facility Location
7
Figura 1: Passos para um possı́vel mapeamento de pontos de demanda em um mapa
geográfico plotado em um plano cartesiano para uma representação em grafo. Em (a)
tem-se a configuração inicial do problema no plano, com a representação dos pontos de
demanda distribuı́dos pelo mapa de uma cidade (nesse caso, Goiânia); no passo (b) o
mapa é dividido em células de tamanhos iguais (nesse caso, optou-se por dividir em uma
grade de 8 x 8); em seguida, em (c), são identificadas as células que não possuem nenhum
ponto de demanda e as mesmas são excluı́das do espaço de solução; no passo seguinte (d),
cada célula que possui pelo menos um ponto de demanda recebe um vértice (ponto azul)
e os vértices gerados são ligados por arestas conforme alguma regra de fronteira entre as
células (nesse caso, optou-se como regra, considerar apenas fronteiras nos lados esquerdo,
direito, cima e baixo); o grafo gerado passa a ser o resultado da conversão (e), onde cada
aresta tem como valor, a distância euclidiana do centro de cada célula ao centro da célula
vizinha.
É importante notar que cada caso pode ser modelado de acordo com as caracterı́sticas do problema. A quantidade de células bem como a restrição de tamanhos serem iguais
podem ser alteradas conforme a necessidade. A polı́tica de atribuição das arestas também
pode ser adaptada, permitido, por exemplo, a criação de arestas diagonais ou proibindo
a criação de arestas que passem por células sem pontos de demanda.
Uma outra possı́vel abordagem poderia considerar identificar clusteres no mapa e
mapear cada centroide à um vértice. As arestas poderiam ser atribuı́das conforme alguma
regra estabelecida como, por exemplo, a parametrização de uma distância máxima entre
dois clusteres para a atribuição de uma aresta entre os mesmos.
Muitos problemas de localização de facilidades podem ser naturalmente mapeados
para um modelo de rede, sem exigir nenhuma conversão do plano para o grafo. O problema
de distribuição de transformadores em uma rede elétrica é um exemplo. Cada transformador deverá abastecer à uma quantidade determinada de pontos de consumo. Assim,
cada ponto de consumo representa um vértice em um grafo enquanto as arestas podem
ser representadas pelas ligações fı́sicas existentes entre esses pontos de consumo. Um
outro exemplo são as linhas de trânsito do transporte coletivo. Tomando como caso as
Facility Location
8
linhas de ônibus, o problema está em decidir onde inserir pontos de parada dos ônibus do
transporte coletivo de modo que os pontos de demanda (bairros contemplados pela linha)
sejam atendidos da maneira mais satisfatória possı́vel.
4
Critérios e objetivos
Os modelos de localização de facilidades buscam sempre otimizar algum critério
em sua função objetivo. A maioria dos modelos busca atingir um único objetivo. Em
geral, trata-se de minimizar uma variável, como a soma das distâncias entre os pontos de
demanda e a facilidade mais próxima, ou maximizar a cobertura de atendimento de uma
facilidade.
Entretanto, diversos problemas podem exigir uma abordagem que considere a
otimização de mais de um objetivo. Assim, de acordo com Farahani, SteadieSeifi e Nasrin
Asgari[?], os modelos podem ainda ser classificados quanto aos seus objetivos.
Antes de buscar uma solução para um problema multi-critério, alguns passos iniciais
são necessários:
• Verificar conflitos entre os objetivos. Geralmente modelos com mais de um objetivo tendem a ter conflitos em seus objetivos. Como exemplo, um problema pode
requerer minimizar a soma das distâncias entre pontos de demanda e a facilidade
mais próxima ao mesmo tempo em que pode requerer a minimização da maior distância entre um ponto de demanda e a facilidade mais próxima.
• A eficiência de uma solução. Esse ponto é referente ao fato de que uma abordagem
deve se preocupar com todos os objetivos, pois uma abordagem só será considerada eficiente se produzir soluções que otimize todos os objetivos, de modo que um
objetivo não serja superotimizado em detrimento de outro.
• A definição de uma solução preferida. Essa definição auxiliará no desenvolvimento
do modelo, de modo que as soluções geradas pela abordagem sejam capazes de
gerar aquele tipo de solução. Uma abordagem interessante é a de tentar converter
um problema multi-objetivo em um problema com apenas um objetivo.
Objetivos comuns para problemas de localização de facilidades, incluem: minimizar
o custo total; minimizar a maior distância de um ponto de demanda à facilidade mais
próxima; minimizar o custo fixo, que é o custo fixo de instalar uma facilidade em um ponto
especı́fico; maximizar a quantidade de serviço; minimizar a média de tempo ou distância
percorrida; minimizar o maior tempo ou distância percorrida; minimizar o número de
facilidades instaladas, diminuindo assim o custo de investimento; dentre outros objetivos.
Farahani[?] divide os problemas de localização com multi-critérios em problemas
multi-objetivos e problemas multi-atributos. Os problemas bi-objetivos são aqueles que
possuem sempre dois objetivos e, são um caso particular dos problemas multi-objetivos.
Os demais problemas dessa classe são chamados de problemas de localização k-objetivos.
Esse relatório não se aprofundará no assunto acerca de problemas com multicritérios. Para referências, a revisão da literatura feita por Farahani[?] é bastante vasta e
atualizada.
Facility Location
5
9
Algumas abordagens e algoritmos para solução de
problemas facility location
Os problemas de localização de facilidades tendem a abranger uma grande diversidade de possibilidades, podendo alcançar todo tipo de organização e seus vários contextos
para seus produtos providos e/ou serviços prestados.
Dessa forma, é improvável que exista um algoritmo que resolva todos os problemas
de um determinado modelo, sendo a solução, totalmente dependente do problema.
Entretanto, existem diversas abordagens que podem ser aplicadas à modelos especı́ficos, auxiliando assim na implementação de uma solução.
Essa sessão irá apresentar algumas propostas de abordagens para a solução de alguns
problemas de localização de facilidades.
5.1
Clusteres e o algoritmo k-means
A distribuição de K facilidades em um plano, como visto na sessão 3.1, é um problema de modelo contı́nuo. Em muitas abordagens para resolver esse tipo de problema,
um passo preliminar é encontrar os clusteres existentes no plano. Uma abordagem por
força bruta poderia ser definida por encontrar os clusteres por meio de um algoritmo iterativo, como o apresentado no Algoritmo 1. Entretanto, como já mencionado antes na
sessão 3.1, essa atividade que avalia todas as possibilidades e encontra os K clusteres seria
impraticável dado o número de comparações a serem realizadas.
Em 1967, MacQueen[?] introduziu o método k-means. O método k-means é, na
verdade, um algoritmo classificador. O seu propósito é o de encontrar clusteres nos dados,
onde cada cluster encontrado representa uma classe. Esse método é uma técnica de
mineração de dados do tipo não-supervisionada. Isso significa que o k-means não precisa
ser parametrizado e nem acompanhado. De modo geral, toda a informação necessária
como entrada para esse método restringe-se ao conjunto de dados amostral. A partir
desse conjunto, é possı́vel realizar a classificação.
Mahajan, Nimbhorkar e Varadarajan[?] apresentaram uma prova de que o problema
k-means no plano é NP-Difı́cil, realizando a redução através do problema 3-SAT2 .
Portanto, para resolver esse problema, é necessário o uso de boas meta-heurı́sticas
que sejam capazes de obter bons resultados em um tempo aceitável.
5.1.1
Abordagens para solução do problema k-means
O algoritmo k-means foi concebido inicialmente como uma abordagem não determinı́stica. Trata-se de um algoritmo bastante simples, rápido e eficiente que busca encontrar os centroides dos clusteres e pode ser resumido nos seguintes passos:
• Passo 1: Gerar valores iniciais para os centroides. Nesse passo, cada um dos k
centroides são distribuı́dos no espaço n-dimensional (geralmente de forma aleatória).
• Passo 2: Gerar uma matriz An×k , onde n é a quantidade de pontos de demanda e
Ai j tem o valor da distância (geralmente euclidiana) entre o ponto de demanda i e o
centroide j. Essa distância considera todos os atributos utilizados para determinar
um ponto. No caso do problema de distribuição de facilidades no plano, esses
atributos são apenas 2: as coordenadas x e y.
2
O 3-SAT é um problema da classe NP-Completo[?].
Facility Location
10
• Passo 3: Atribuir cada ponto de demanda ao centroide mais próximo. Nesse ponto,
o algoritmo termina se nenhum ponto de demanda mudar de centroide em relação ao
centroide a que estava atribuı́do anteriormente. Caso contrário, o algoritmo segue
para o próximo passo.
• Passo 4: Calcular os novos centroides. Cada um dos k centroides é movimentado
para o centro de cada cluster. Assim, cada atributo que define as coordenadas de
um centroide, assume como valor, a média de todos os valores desse mesmo atributo
dos pontos a ele atribuı́dos.
• Passo 5: Repetir até a convergência. O algoritmo volta ao Passo 2 a irá continuar
sua execução até que seja atingida a convergência.
Esse método converge bem rápido. Entretanto, nota-se que a qualidade o resultado está diretamente relacionada à distribuição inicial. Assim, o algoritmo k-means não
garante a convergência para a melhor configuração de localização dos centroides. Existem muitas abordagens para encontrar a solução desse problema por meio de artifı́cios
que busquem melhorar os resultados alcançados pelo algoritmo k-means. Kaveh, Zadeh
e Sahraeian[?], por exemplo, sugerem um algoritmo para resolução de um problema de
localização de facilidades que utiliza o k-means para gerar uma solução inicial e, para
melhorar os resultados obtidos nessa solução inicial, o algoritmo k-means é executado
várias vezes.
Contudo, mesmo rodando várias vezes, o k-meanscontinua gerando soluções que
convergem para um ótimo local, quando o desejado é um resultado que venha a convergir
para um ótimo global. Assim, existem diversas abordagens propostas para a busca de
uma convergência global. Somente para ilustrar, algumas serão apresentadas a seguir.
Em 1999, Krishna e Murty[?] propuseram uma versão do k-means utilizando algoritmos genéticos e que gera resultados que convergem para um ótimo global. Nesse
algoritmo, que foi batizado de GKA (Genetic K-Means Algorithm), a codificação do cromossomo utilizada foi um vetor C de tamanho n, onde n é a quantidade de pontos e cada
Ci assume um valor de 1 à k. Assim, cada cromossomo representa os pontos e a qual
centroide cada um está ligado. Essa codificação só é possı́vel porque cada ponto só pode
estar relacionado a um e somente um dos k centroides.
A população inicial é criada a partir de configurações aleatórias e execuções do kmeans clássico. A mutação ocorre selecionado alguns pontos de uma solução e somando
ao complemento de outra solução, tendo assim, uma nova solução. A partir daı́, os k
centroides são então recalculados novamente, baseando-se na sua nova configuração. A
convergência é atingida depois de um número parametrizado de iterações.
Yi Lu, Shiyong Lu, Fotouhi e DengBrown[?] criaram, em 2004, melhorias para o
GKA e batizaram o novo algoritmo de FGKA (Fast Genetic K-means Algorithm). Assim
como seu antecessor, o FGKA também converge para um ótimo global mas, segundo os
autores, o algoritmo faz isso muito mais rápido, graças às mudanças nos operadores de
mutação e seleção.
Likas, Vlassis e Verbeek[?] propuseram um algoritmo com convergência global que
possui um tempo de processamento consideravelmente mais longo que o k-means clássico,
mas ainda assim, com um bom desempenho. Trata-se de um algoritmo iterativo que
executará o k-means diversas vezes seguindo uma estratégia bem definida.
Primeiro, o k-means clássico é rodado com k = 1 para se encontrar a solução ótima
para k = 1. Em seguida, o k-means é rodado N vezes para k = 2, obedecendo a seguinte
Facility Location
11
regra: a posição inicial do primeiro centroide é sempre a posição ótima para k = 1 calculada
anteriormente. A posição inicial do segundo centroide é aleatória para a primeira rodada
do k-means e, a partir da segunda rodada, a posição inicial do segundo centroide passa a
ser a localização final do mesmo centroide na rodada anterior.
Assim, à medida em que vão sendo adicionados centroides para que o algoritmo
k-means execute N vezes com a nova quantidade de centroides, a estratégia de posicionamento inicial dos centroides continua a mesma: quando k = j, o algoritmo k-means irá ser
executado N vezes e, nessas N vezes, os primeiros j − 1 centroides assumem como posição
inicial, a posição ótima encontrada para k = j − 1, enquanto o j-ésimo centroide inicia em
uma posição aleatória na primeira rodada do k-means e, a partir da segunda rodada até
a última, a sua posição é a posição ótima encontrada na rodada anterior.
Esse algoritmo termina sua execução quando executa a última das N rodadas para
a quantidade de centroides k desejada.
Uma grande vantagem desse algoritmo é que, além de resolver o problema k-means ,
encontrando uma solução que converge para um ótimo global, ainda possibilita resolver
um outro problema: encontrar a quantidade de centroides necessárias para minimizar o
custo total. Ou seja, encontrar o valor de K. O mesmo algoritmo aqui descrito poderia
ser executado sem se limitar à quantidade K. Assim, o ponto de parada seria o valor do
custo desejado. O retorno seria o valor K e o posicionamento desses centroides.
5.2
Busca Tabu
Al-Sultan e Al-Fawzan[?] apresentaram uma abordagem baseada em uma Busca
Tabu para resolver o problema de localização de facilidades sem restrição de capacidade
e sugerir a quantidade de facilidades a serem instaladas. No problema atacado pelos
autores, o custo de instalação de uma facilidade é levado em consideração.
Nessa abordagem, além das informações atuais, um breve histórico de soluções encontradas é armazenado para evitar um recálculo desnecessário. Assim, essas soluções
armazenadas passam a compor os movimentos tabu4 .
Primeiramente, busca-se uma solução inicial para o problema. Para essa solução
inicial, cada ponto de demanda passa a ser atendido pela facilidade instalada mais próxima. Em seguida, começa a fase de remoção de facilidades. Nessa fase, cada facilidade
é analisada quanto à possibilidade de sua remoção. A remoção vai acontecer se o custo
total da solução (soma das distâncias de pontos de demanda à facilidade mais próxima e
soma dos custos de instalação das facilidades) diminuir com a remoção da mesma.
Após a criação dessa solução inicial, é iniciada a busca de soluções vizinhas melhores.
Essa abordagem não é amarrada e deixa aberta a forma como essa exploração é realizada.
Uma possibilidade é a de substituir algumas facilidades por outro ponto aleatório. Outra
maneira de formular a vizinhança é considerar que cada nova solução alcançada pelo
movimento de uma unidade de espaço de uma facilidade rumo à alguma direção faz parte
3
3
Busca Tabu (Tabu Search)[?] é um método meta-heurı́stico de busca de soluções para problemas
exponenciais que utiliza alguns artifı́cios para evitar que a busca convirja muito precocemente, dando
ao algoritmo, mais tempo para explorar novas soluções, seguindo caminhos de soluções piores do que a
melhor encontrada até o momento. A Busca Tabu utiliza uma lista de soluções visitadas (Lista Tabu)
que visa evitar que soluções recentes sejam recalculadas. O critério de parada é uma quantidade k de
passos dados sem encontrar nenhuma nova solução que seja melhor.
4
Em uma busca tabu, um movimento tabu é aquele que não pode ser realizado. Em outras palavras,
é uma solução que não pode ser considerada na busca, pois passar nessa solução novamente iria gerar um
ciclo e, consequentemente, a convergência.
12
Facility Location
da vizinhança atual.
Por fim, a abordagem assume que o algoritmo deve parar quando atingir algum
limite de iterações sem que haja melhoria nas soluções encontradas.
5.3
Aproximações para o problema das p-medianas
O problema das p-medianas, formulado em (3), é objeto de constante pesquisas
e existem diversos trabalhos que apresentam abordagens para a solução desse tipo de
problema. A seguir, algumas dessas abordagens serão apresentadas.
5.3.1
Algoritmo de Teitz e Bart
Dado um conjunto V de nós (vértices) em uma rede, Teitz e Bart[?] apresentaram
um algoritmo simples para o problema das p-medianas, onde espera-se encontrar um
subconjunto V 0 (onde |V 0 | = p) dos nós da rede de modo que a soma de todas as distâncias
entre os nós de V e o nó de V 0 mais próximo fosse minimizado.
Esse algoritmo, é inicializado com uma solução S aleatória tal que S ⊂ V e |S | = p.
A partir dessa solução inicial, é realizada uma varredura pelos demais vértices do conjunto
V, objetivando encontrar um vértice vi ∈ (V − S ) que possa substituir um vértice v j ∈ S
tal que a soma das distâncias entre todos os nós de V e o nó mais próximo em (S ∪ vi ) − v j
seja menor que a soma das distâncias entre todos os nós de V e o nó mais próximo em
S . O algoritmo termina quando não houver mais nenhuma substituição que produza uma
soma de distâncias menor que a atual.
É notório que esse algoritmo busca encontrar uma melhor solução, mas pode demorar muito para convergir. Assim, muitas outras meta-heurı́sticas surgiram para buscar
boas aproximações sem demandar muito tempo para a convergência. Uma alternativa é
relaxar o problema em alguma de suas restrições. A seguir, será apresentada a relaxação
lagrangeana/surrogate, que se mostra bastante conveniente para resolver o problema de
localização de facilidades.
5.3.2
O uso da relaxação lagrangeana/surrogate
Senne, Lorena e Pereira[?] propuseram um algoritmo branch-and-price 5 que faz uso
da relaxação lagrangeana/surrogate 6 para resolver o problema das p-medianas.
Nesse trabalho, o problema das p-medianas foi convertido em um problema de partição de conjuntos com uma restrição de cardinalidade. O problema então passa a ser
formulado como em (4).
v(S PPmed) = min
m
X
ck xk
(4a)
k=1
sujeito à
5
Branch-and-price é um método de geração de colunas em uma árvore de busca proposto por
Barnhart[?].
6
A relaxação lagrangeana/surrogate é um tipo de relaxação voltada para diversos problemas de
otimização de programação inteira, incluindo problemas de localização. Essa relaxação foi criada por
Greenberg e Pierskalla[?]
13
Facility Location
m
X
k=1
m
X
Aik xk = 1
∀i ∈ S ,
(4b)
xk = p,
(4c)
xk ∈ {0, 1},
(4d)
k=1
onde N é o conjunto de todos os nós da rede, S = {S 1 , ..., S m } é o conjunto de todos os
subconjuntos de N, A = [aik ]n×m é uma matriz que indica a qual subconjunto pertence cada
nó (aik = 1 se i ∈ S k e aik = 0 caso contrário), xk indica se o subconjunto k foi selecionado
P
como parte da solução e ck = min j∈S k ( i∈S k di j ). A relaxação utilizada pelos autores foi na
substituição da restrição (4d) pela restrição xk ∈ [0, 1].
5.4
Aproximações para o problema das p-medianas capacitado
Uma restrição bastante recorrente em muitos problemas de localização de facilidades
é a capacidade que uma facilidade tem para poder atender os pontos de demanda. Os
algoritmos clássicos para solução de problemas de localização geralmente não consideram a
capacidade de atendimento e, dessa forma, podem gerar soluções ótimas, porém, inviáveis.
Dessa forma, a restrição de capacidade deve ser sempre levada em consideração,
quando o problema do mundo real tem essa restrição. Exemplos clássicos de facilidades
que possuem essa caracterı́sticas são as redes de telefonia e redes elétricas, onde cada
facilidade (uma antena ou um transformador) tem uma capacidade que limita o tamanho
da demanda que pode atender.
Portanto, para resolver problemas dessa natureza, algoritmos mais elaborados se
fazem necessários.
Kaveh, Zadeh e Sahraeian[?] introduziram um algoritmo hı́brido, que mescla o uso
do algoritmo k-meanscom o algoritmo FNS (Fixed Neighborhood Search). Esse algoritmo
tem o objetivo de resolver o problema das p-medianas capacitado no qual cada ponto
de demanda pode ser alocado a somente uma facilidade. A formulação do problema é
apresentada em (5)
XX
v(CPMed) = min
ci j xi j
(5a)
i∈N j∈J
sujeito à
X
xi j = 1
∀i ∈ N,
(5b)
j∈J
X
y j = p,
(5c)
j∈J
X
ci j xi j 6 b j y j
∀ j ∈ J,
(5d)
∀i ∈ N, ∀ j ∈ J,
(5e)
i∈N
xi j ∈ {0, 1}, y j ∈ {0, 1}
onde xi j assume valor 1, se o ponto de demanda i está alocado à facilidade j e 0, caso
contrário; y j indica se no ponto j foi (assume valor 1) ou não (assume valor 0) instalada
uma facilidade; e b j representa a capacidade da facilidade j. A restrição (5d) é o que
Facility Location
14
garante que a capacidade da facilidade j jamais irá ser extrapolada pela demanda alocada
à ela.
O algoritmo proposto utiliza o algoritmo k-means para gerar uma solução inicial,
que irá servir de entrada para o algoritmo FNS. Como já mencionado antes, o k-means é
um algoritmo que não garante a solução ótima. Por essa razão, a abordagem utilizada
executa o k-means 20 vezes iniciando o mesmo em posições aleatórias. Evidentemente, a
quantidade de clusteres que se deseja encontrar é p (K = p). Para otimizar os resultados,
garantindo que será encontrada a mediana, o k-means executado aqui tem a função de
distância alterada. O valor utilizado para comparação é a distância elevada ao quadrado.
Assim, garante-se que a mediana será encontrada.
Depois de executar o k-means 20 vezes, o algoritmo seleciona a melhor solução.
Então, para cada um dos k clusteres identificados isoladamente, é executado um algoritmo
simples de solução do problema p-mediana (p = 1) com a finalidade de encontrar o melhor
nó para cada um dos k clusteres encontrados. Nesse ponto, o algoritmo tem a sua solução
inicial S .
No próximo passo, o algoritmo FNS é executado com a solução inicial S . Aqui, o
conceito de vizinhança é definido como: “a k0 -ésima vizinhança de uma solução são todas
as soluções que diferem da solução corrente em exatamente k0 facilidades.”
Dada uma função f (x) que retorna o valor do custo total de uma solução x, o
algoritmo FNS pode ser descrito conforme os passos do Algoritmo 2.
Algoritmo 2: FNS (k0 , maxiter, N)
Entrada: valor inteiro k0 que vai determinar o tamanho da
vizinhança; maxiter (que vai indicar quando o
algoritmo irá parar); o conjunto de pontos de demanda
N
Saı́da: solução S contendo os pontos de localização das
facilidades
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
S ← solução inicial do problema dada pelo algoritmo k-means
enquanto Não convergir faça
Vizk0 (S ) ← a k0 -ésima vizinhança de S
para cada S 0 ∈ Vizk0 (S ) faça
se f (S 0 ) < f (S ) então
S ← S0
r←1
sai do laço “para cada”
fim
se f (S 0 ) > f (S ) então
r ←r+1
se r > maxiter então
retorna S
fim
fim
fim
fim
Esse algoritmo foi então adaptado para o problema das p-medianas capacitado para
otimizar a escolha das novas soluções[?].
Facility Location
15
A primeira alteração foi na forma como os nós são selecionados no momento em
que a k0 -ésima vizinhança é gerada. No algoritmo FNS original (Algoritmo 2), todas as
possibilidades seriam geradas. A modificação realizada exclui alguns pontos do espaço de
busca. E isso pode ser feito de duas formas diferentes. Na primeira, k0 pontos são removidos da solução corrente e, a seleção dos novos k0 pontos irá considerar todos os demais
pontos que não possuem facilidade instalada, com exceção dos h nós mais próximos de
cada um dos k0 pontos selecionados. O valor de h deve ser parametrizado empiricamente,
por tentativa e erro.
A segunda alternativa é excluir os pontos mais periféricos, pois esses tendem a não
serem escolhidos para a solução final. Aqui, mais uma vez, os limites de periferia devem
ser parametrizados empiricamente.
A Figura 2 mostra o resultado dessas duas abordagens para a exclusão de pontos na
geração da vizinhança.
Figura 2: Identificação de nós candidatos à substituição na geração da vizinhança. Inicialmente, tem-se a solução corrente (a) onde os pontos azuis representam as facilidades
instaladas. Para k0 = 2, em (b), (c) e (d), são selecionadas duas facilidades para serem
removidas. Em (b), a vizinhança passa a ser gerada a partir de todos os demais pontos
(brancos). Em (c), para um h = 3, são selecionadas os três pontos mais próximos para
serem excluı́dos do espaço de solução (pretos). Em (d), as linhas pontilhadas delimitam
as margens periféricas, onde estarão os pontos excluı́dos.
A segunda alteração no algoritmo FNS foi o critério de parada. Antes, o critério
de parada era quando atingia a quantidade de iterações realizadas sem melhoria no custo
total. Agora, todas as k0 soluções da vizinhança deverão ser analisadas e o algoritmo só
para se nenhuma dessas soluções for melhor que a solução corrente.
Por fim, a última alteração realizada foi a adição de memória ao algoritmo, acrescentando uma lista tabu para armazenar soluções e evitar o recálculo de soluções já visitadas.
Facility Location
6
16
Aplicações
É notória a aplicação de modelos facility location a problemas de distribuição de
facilidades em uma região geográfica. Entretanto, de acordo Klose e Drexl[?], uma série
de ouras possı́veis aplicações podem fazer uso dos modelos de localização de facilidades.
A análise de clusteres para a identificação de classes distintas baseando-se em atributos diversos de uma grande quantidade de dados é uma atividade que já foi mapeada
como um problema das p-medianas.
A seleção de vendedores e a alocação dos mesmos aos produtos pode ser mapeado
para um modelo de localização. Identificar um conjunto de vendedores para vender um
determinado produto representa um problema de multi-critérios, onde devem ser levados
em conta a experiência do vendedor, o preço do produto que se deseja alocar, a qualidade
do mesmo, dentre outras.
Em alguns problemas, a organização não deseja oferecer um produto/serviço para
uma demanda especı́fica, mas explorar um produto/serviço de diversas fontes. Um exemplo de casos assim é o de encontrar a melhor localização para plataformas de exploração
de petróleo. Se o custo de instalação de uma plataforma fosse irrelevante, certamente
haveriam plataformas por toda a região que fosse rica em petróleo. Entretanto, esse custo
é muito relevante e, encontrar a melhor localização para a instalação de p plataformas,
bem como o tamanho de cada uma, pode ser facilmente mapeado para um problema de
localização de facilidades.
A localização de um servidor de banco de dados em uma rede de computadores pode
ser mapeada para um problema de p-medianas onde p = 1 em uma rede.
Assim, pode-se perceber que diversos problemas que, a princı́pio, não parecem se
enquadrar em algum modelo facility location, poderiam ser mapeados para um problema
de localização e ser resolvido com a ajuda de alguma das tantas abordagens que já foram
publicadas.
7
Conclusão
O problema de localização de facilidades em uma região geográfica é pertinente aos
mais diversos tipos de organizações: indústrias que buscam viabilizar o fornecimento de
produtos industrializados aos distribuidores, sem inviabilizar o recebimento de matéria
prima; grandes organizações comerciais, como redes de supermercado, que visam atender
o maior número de clientes; empresas de distribuição de energia elétrica; órgãos de saúde
e segurança pública; empresas de transporte; dentre outros tantos tipos de organizações,
cuja qualidade do serviço está diretamente ligada à uma distribuição ótima de facilidades.
Tais problemas de localização são conhecidos como NP-Difı́cil. Assim, uma grande
atenção tem sido voltada para essa área da Pesquisa Operacional. Não é uma necessidade
recente, sendo ela estudada desde o inı́cio do século XIX[?]. Entretanto, um grande salto,
no que diz respeito à quantidade de pesquisas realizadas e abordagens sendo criadas,
aconteceu nos últimos quinze anos, com um grande interesse sobre o assunto sendo cada
vez mais evidente.
Contudo, mesmo diante de tanto empenho por parte da comunidade de Pesquisa
Operacional, fica claro que os diversos modelos de localização de facilidades ainda deixam
muitas lacunas, abrindo espaço para novas abordagens. Percebeu-se que, mesmo com a
louvável iniciativa de separar os problemas em modelos bem definidos, diversas abordagens
poderiam ser bastante eficientes para um tipo especı́fico de problema, mas sendo inviáveis
Facility Location
17
para outros tipos. Dessa forma, conclui-se que, embora as abordagens existentes possam
ser utilizadas parcialmente, totalmente ou combinadas com outras, cada caso deve ser
analisado com suas particularidades.
Conclui-se também que existem muitas possibilidades de evolução das pesquisas
nessa área, tendo em vista que diversas boas novas abordagens foram propostas com a
simples junção de duas ou mais abordagens anteriormente publicadas ou com alguma
adaptação e/ou melhorias em cima de uma outra abordagem.
8
Agradecimento
À Profa. Dra. Telma Woerle de Lima Soares, pela avaliação do presente texto e
pelas sugestões feitas, as quais muito contribuı́ram para a melhoria do texto original.
Referências
[1] Al-Sultan, K.; Al-Fawzan, M. A tabu search approach to the uncapacitated facility location problem. Annals of Operations Research, 86:91–103, 1999.
10.1023/A:1018956213524.
[2] Barnhart, C.; Johnson, E. L.; Nemhauser, G. L.; Savelsbergh, M. W. P.; Vance, P. H.
Branch-and-price: Column generation for solving huge integer programs.
Operations Research, 46:316–329, 1996.
[3] Benati, S.; Laporte, G. Tabu search algorithms for the (r|xp)-medianoid and
(r|p)-centroid problems. Location Science 2, 1994.
[4] Cook, S. A. The complexity of theorem-proving procedures. In: Proceedings
of the third annual ACM symposium on Theory of computing, STOC ’71, p. 151–158,
New York, NY, USA, 1971. ACM.
[5] Farahani, R. Z.; SteadieSeifi, M.; Asgari, N. Multiple criteria facility location
problems: A survey. Applied Mathematical Modelling, 34(7):1689 – 1709, 2010.
[6] Glover, F.; Laguna, M. Tabu search, p. 70–150. John Wiley & Sons, Inc., New
York, NY, USA, 1993.
[7] Greenberg, H. J.; Pierskalla, W. P. Surrogate mathematical programming.
Operations Research, 18(5):924–939, September/October 1970.
[8] Hakimi, S. L. Optimum Distribution of Switching Centers in a Communication Network and Some Related Graph Theoretic Problems. OPERATIONS
RESEARCH, p. 462–475, 1965.
[9] Klose, A.; Drexl, A. Facility location models for distribution system design.
European Journal of Operational Research, 162(1):4 – 29, 2005. Logistics: From
Theory to Application.
[10] Krishna, K.; Narasimha Murty, M. Genetic k-means algorithm. Systems, Man,
and Cybernetics, Part B: Cybernetics, IEEE Transactions on, 29(3):433 –439, jun
1999.
Facility Location
18
[11] Likas, A.; Vlassis, N.; Verbeek, J. J. The global k-means clustering algorithm.
Pattern Recognition, 36(2):451 – 461, 2003.
[12] Lu, Y.; Lu, S.; Fotouhi, F.; Deng, Y.; Brown, S. J. Fgka: a fast genetic k-means
clustering algorithm. In: Proceedings of the 2004 ACM symposium on Applied
computing, SAC ’04, p. 622–623, New York, NY, USA, 2004. ACM.
[13] MacQueen, J. B. Some methods for classification and analysis of multivariate
observations. In: Cam, L. M. L.; Neyman, J., editors, Proceedings of the fifth
Berkeley Symposium on Mathematical Statistics and Probability, volume 1, p. 281–
297. University of California Press, 1967.
[14] Mahajan, M.; Nimbhorkar, P.; Varadarajan, K. The Planar k-Means Problem is
NP-Hard. In: Das, S.; Uehara, R., editors, WALCOM: Algorithms and Computation, volume 5431 de Lecture Notes in Computer Science, p. 274–285. Springer
Berlin / Heidelberg, 2009.
[15] Melkote, S.; Daskin, M. S. Capacitated facility location/network design problems. European Journal of Operational Research, 129(3):481 – 495, 2001.
[16] Melo, M.; Nickel, S.; da Gama, F. S. Facility location and supply chain management - A review. European Journal of Operational Research, 2009.
[17] Payman Kaveh, A. S. Z.; Sahraeian, R. Solving Capacitated P-median Problem
by Hybrid K-means Clustering and FNS Algorithm. International Journal
of Innovation, Management and Technology, 2010.
[18] Senne, E. L. F.; Lorena, L. A. N.; Pereira, M. A. A branch-and-price approach
to p-median location problems. Computers & Operations Research, 32(6):1655
– 1664, 2005.
[19] Teitz, M. B.; Bart, P. Heuristic methods for estimating the generalized vertex
median of a weighted graph. Operations Research, 16(5):955–961, September/October 1968.
[20] Weber, A.; Pick, G. Ueber den Standort der Industrien. Ueber den Standort
der Industrien. J.C.B. Mohr (Paul Siebeck), 1909.
Download

Um estudo sobre abordagens para solução de problemas de