Você está na página 1de 137

UNIVERSIDADE ESTADUAL DO CEARÁ

CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DO CEARÁ

Augusto Wagner de Castro Palhano

NOVOS ALGORITMOS DE AGRUPAMENTO E


ROTEIRIZAÇÃO PARA DISTRIBUIÇÃO DE JORNAIS
A ASSINANTES

Fortaleza – Ceará
2004
UNIVERSIDADE ESTADUAL DO CEARÁ

CENTRO FEDERAL DE EDUCAÇÂO TECNOLÓGICA DO CEARÁ

Augusto Wagner de Castro Palhano

NOVOS ALGORITMOS DE AGRUPAMENTO E


ROTEIRIZAÇÃO PARA DISTRIBUIÇÃO DE JORNAIS
A ASSINANTES

Dissertação apresentada ao curso de


Mestrado Integrado Profissional em
Computação, da Universidade Estadual do
Ceará e do Centro Federal de Educação
Tecnológica do Ceará, como requisito parcial
para obtenção do grau de Mestre em
Computação.

Área Temática: Sistemas de Apoio a


Decisão.
Sub-Área Profissional: Sistemas de
Otimização

Orientador: Prof. DSc. Marcos José


Negreiros Gomes

Fortaleza – Ceará
2004
Universidade Federal do Ceará
Centro Federal de Educação Tecnológica do Ceará
Curso de Mestrado Integrado Profissional em Computação

Titulo do Trabalho: Novos algoritmos de agrupamento e roteirização para


distribuição de jornais a assinantes

AUTOR: AUGUSTO WAGNER DE CASTRO PALHANO

Defesa em. ___/___/___ Conceito Obtido.___________


Nota obtida. _____________

Banca Examinadora

___________________________________________
Marcos José Negreiros Gomes, Prof. DSc
Orientador – UECE/MPCOMP

___________________________________________
Geraldo Robson Mateus, Prof. DSc
Membro Externo – DCC/UFMG

___________________________________________
Philippe Yves Michelon, Prof. D.Habil
Membro Externo – Universitè de Avignon

___________________________________________
Airton Fontenele Sampaio Xavier, Prof. LDc
Membro Local – UECE/MPCOMP
AGRADECIMENTOS

Gostaria de agradecer primeiramente ao meu orientador, DSc Marcos


José Negreiros Gomes, pela sua dedicação, amizade, estímulo ao crescimento
científico e profissional, e pelo companheirismo em mais de seis anos de trabalhos
em conjunto.

Gostaria de agradecer ao Professor Philippe Michelon da Universidade de


Avignon-France por seu apoio e comentários dos modelos matemáticos.

Ao Professor Luiz Antônio Lorena, do Instituto Nacional de Pesquisas


Espaciais/Laboratório Associado de Computação e Matemática Aplicada (INPE/LAC)
pelo suporte dado com os resultados do CCP.

À FUNCAP (Fundação Cearense de Apoio ao Desenvolvimento Científico


e Tecnológico) pela ajuda com a bolsa de Mestrado.

À GRAPHVS pela disponibilização de equipamentos, ambiente de


desenvolvimento, livros e suporte financeiro.

A minha irmã Sara Palhano pela paciência na correção e organização


textual.
RESUMO

Neste trabalho estudamos novas metodologias em agrupamento restrito e roteirização


aplicadas na avaliação da rede de distribuição de jornais a assinantes para o Jornal O
GLOBO no Rio de Janeiro. Elaboramos uma estratégia de solução em duas fases:
agrupamento capacitado e roteirização. Definimos e modelamos dois problemas de
agrupamento capacitado, o p-PACCG com número de grupos especificado e g-PACCG
quando o número de grupos não é fornecido. Criamos três procedimentos gerais para
calcular as rotas de distribuição: Aleatório, Dinâmico e Estático. Esses procedimentos
combinam métodos do caixeiro viajante (PCV), caixeiro viajante generalizado (PCVG) e o
método tradicional de roteirização de varreduras (Sweep). Aplicamos as meta-heurísticas de
Monte Carlo, VNS e GRASP tanto para construção como para o aperfeiçoamento das
soluções. Finalmente comparamos duas logísticas de distribuição diferentes, traçando as
principais características e avaliando segundo critérios de distância global das rotas dos
veículos e das rotas dos entregadores.
ABSTRACT

In this work we propose new procedures for large scale constrained clustering and routing
applied to the newspaper subscribers´ distribution and its delivery network model
configuration, related to the procedures developed by the O GLOBO Newspaper, from Rio
de Janeiro. For the modeling process, we define a solution strategy in two phases:
capacitated clustering and routing. For the first phase (clustering) we propose a new
problem: The Capacitated Centered Clustering Problem and study two constrained clustering
approaches for the p-CCCP (p-Capacitated Centered Clustering Problem) version, where the
number of groups are known in advance and the g-CCCP (Generic Capacitated Centered
Clustering Problem) version, when the number of groups is unknown. For the second phase
(routing), we propose three generic procedures to obtain the near optimal routes, we call:
Static, Dynamic and Random. These procedures combine the TSP and the GTSP
(Generalized Traveling Salesman Problem), and the classic Sweep procedure from the
Vehicle Routing Problem. We apply the meta-heuristics: Monte-Carlo, VNS and GRASP,
even for the constructive and improvement routing steps. Finally we compare two different
logistic distribution models, tracing their major characteristics, and evaluating them
accordingly to the total distance traveled by the routes designed for the newspaper
deliverers.
SUMÁRIO

Lista de Figuras, Quadros e Tabelas ......................................................................... 9


Introdução .................................................................................................................. 13
1. Métodos de Otimização ........................................................................................ 19
1.1. O Problema de Agrupamento (definições, tipos, métodos e algoritmos) ....... 20
1.1.1. Critérios de Semelhança e Dessemelhança ........................................ 22
1.1.1.1. Medidas Quantitativas ............................................................ 22
1.1.1.2. Medidas Qualitativas .............................................................. 24
1.1.2. Processo de Agrupamento ................................................................... 26
1.1.3. Métodos de Agrupamento .................................................................... 28
1.1.4. Algoritmos heurísticos não hierárquicos (Algoritmos de Medianas) ..... 30
1.1.4.1. Versão de Forgy ..................................................................... 31
1.1.4.2. Versão de Mac Queen ........................................................... 36
1.1.4.3. Versão JMeans ...................................................................... 37
1.2. O Problema do Caixeiro Viajante (PCV) ........................................................ 38
1.2.1. Método Exato ...................................................................................... 41
1.2.2. Métodos Aproximados ........................................................................ 42
1.2.3. Variações do Problema do Caixeiro Viajante ...................................... 43
1.2.4. O Problema do Caixeiro Viajante Generalizado (PCVG).................... 45
1.3. O Problema de Percurso de Veículos – PPV ................................................. 47
1.4. Meta-Heurísticas ............................................................................................ 54
1.4.1. Monte Carlo.......................................................................................... 55
1.4.2. Busca em Vizinhança Local (VNS)....................................................... 57
1.4.3. Procedimento de Busca Aleatória Gulosa e Adaptativa (GRASP)....... 60
2. Problema de Agrupamento Capacitado com Centro Geométrico (PACCG) .......... 63
2.1. Introdução ..................................................................................................... 63
2.2. Modelagem do PACCG................................................................................. 67
2.3. Heurísticas para o PACCG ........................................................................... 71
Fase 1: Passo Construtivo ............................................................................ 72
Fase 2: Metaheurística (VNS – Busca em Vizinhança Local) ....................... 78
2.4. Resultados da Literatura e de Aplicações Reais .......................................... 80
3. O Problema Generalizado do Percurso de Veículos ........................................... 98
3.1. Introdução e Definição .................................................................................. 98
3.2. Um procedimento geral para o PGRV (Agrupar primeiro e roteirizar
depois)........................................................................................................... 99
3.3. Novos Métodos para o PGRV........................................................................ 103
3.4. Avaliação Computacional dos Métodos ........................................................ 109
3.5. O Sistema SisRot News ............................................................................... 113
4. Estudo de Rede Logística para entrega de Jornais ............................................. 119
4.1. Definição das Redes de Suprimento de Jornais a Assinantes ..................... 120
4.2 Comparativo entre as Redes de Suprimento................................................. 125
Conclusão.................................................................................................................. 132
Referências Bibliográficas ......................................................................................... 135
Anexos ...................................................................................................................... 141
LISTA DE FIGURAS E TABELAS

FIGURAS

Figura I.1: Mapa da cidade de Fortaleza-CE....................................................... 17


Figura 1.1: Exemplo de agrupamento (partição).................................................. 23
Figura 1.2: Visualização de agrupamento não hierárquico.................................. 28
Figura 1.3: Visualização de agrupamento hierárquico ........................................ 29
Figura 1.4: Exemplo de soluções para o PCV...................................................... 36
Figura 1.5: Descrição passo a passo do algoritmo do vizinho mais distante....... 40
Figura 1.6: Visão geral dos passos das heurísticas de k-substituições .............. 41
Figura 1.7: Trocas 2-opt para o caso simétrico ................................................... 41
Figura 1.8: Visualização do problema de rota de cobertura ................................ 42
Figura 1.9: Visualização de solução do problema do caixeiro seletivo .................... 42
Figura 1.10: Um modelo para o PCVG.................................................................. 43
Figura 1.11: Custo mínimo a partir de uma determinada seqüência de grupos..... 44
Figura 1.12: Solução PCVG para entregas de jornais (SisRot News) ................... 45
Figura 1.13: Um modelo de fluxo para o PPV ....................................................... 47
Figura 1.14: Modelo de participação de conjuntos para o PPV............................. 49
Figura 1.15: Solução do PPV utilizando o método de Monte Carlo ...................... 55
Figura 1.16: Passos de uma heurística de busca local ......................................... 56
Figura 1.17: Passos de um procedimento VNS básico ......................................... 57
Figura 1.18: Aplicação do procedimento VNS ao problema de agrupamento
capacitado com centro geométrico .................................................... 58
Figura 1.19: GRASP básico em pseudo-código .................................................... 59
Figura 1.20: Visão hierárquica entre as meta-heurísticas ..................................... 60
Figura 2.1: Solução para um PAC com 25 indivíduos e Q j= 9, e q i= 1 .............. 62
Figura 2.2: Visualização da solução p-PACCG para a instância proposta na
figura 2.1 ............................................................................................ 65
Figura 2.3: Visões comparativas do mesmo conjunto de grupos e instâncias
para PAC e PACCG .......................................................................... 66
Figura 2.4: Uma visão do procedimento da árvore(q-Tree) ................................. 69
Figura 2.5: Algoritmos Próximo Grupo (Next fit) e Melhor Grupo (Best Fit)
usando a estrutura em árvore balanceada (q-tree) ........................... 73
Figura 2.6: Um procedimento construtivo genérico para o g-PACCG ................. 73
Figura 2.7: Algoritmo UCCapCluster para instâncias p/g-PACCG....................... 74
Figura 2.8: Algoritmo VNS para a fase final de melhoramento ........................... 76
Figura 2.9: Avaliação de q-tree + H-Means+ e depois VNS com 1-troca, 2-
trocas e 3-trocas para a instância de 13221 clientes e 30 grupos .... 90
Figura 2.10: Execução do VNS por 20 minutos, e o valor da função objetivo
usando de 1 a 3 trocas– os resultados de 1-troca sombra, em cinza
2-trocas e 3-trocas em degrade ........................................................ 90
Figura 2.11: (a) Grande área de coleta de lixo e a solução gerada pelo algoritmo
UCCAPCluster ............................................................................. 91
(b) Solução final após 120 minutos de VNS e 0.28% de
melhoramento .............................................................................. 92
Figura 2.12: Solução do passo construtivo usando o procedimento
UCCAPCluster .................................................................................. 93
Figura 3.1: Conjunto de 2152 clientes e o processo de agrupamento
capacitado (por exemplo, Q =700) .................................................... 96
Figura 3.2.1: Instância inicial com 1000 entregas .................................................. 97
Figura 3.2.2: Geração dos grupos - visão convexa ................................................ 97
Figura 3.2.3: Geração da grande rota – PCVG....................................................... 98
Figura 3.2.4: Solução PGRV dos veículos de distribuição ..................................... 98
Figura 3.2.5: Solução PGRV dos veículos de distribuição e de entregas .............. 98
Figura 3.2.6: Solução PGRV de 1 veículo de distribuição e entregas
respectivas ........................................................................................ 99
Figura 3.3: Procedimento geral para o PGRV ..................................................... 100
Figura 3.4: Procedimento PGRV utilizando o método de Monte Carlo ............... 102
Figura 3.5: Procedimento PGRV utilizando o método de Dinâmico .................... 103
Figura 3.6: Procedimento PGRV utilizando o método de Estático ...................... 104
Figura 3.7: Resultados da distância total considerando diferentes estratégias
para a instância de 1000 clientes ...................................................... 106
Figura 3.8: Tempo total gasto na obtenção dos resultados considerando
diferentes estratégias para a instância de 1000 clientes .................. 107
Figura 3.9: Distância total obtida utilizando a instância de 5000 clientes e
diferentes estratégias ........................................................................ 108
Figura 3.10: Tempo gasto na obtenção dos resultados considerando diferentes
estratégias para a instância com 5000 clientes ................................ 109
Figura 3.11: Resultados obtidos por um conjunto de instâncias com 10000
assinantes de jornais, considerando diferentes estratégias .............. 109
Figura 3.12: Tempo de execução de cada método da instância de 10000
clientes .............................................................................................. 110
Figura 3.13: Parâmetros dos métodos de agrupamento e roteamento ................. 111
Figura 3.14: Seleção do tipo de rotas a visualizar ................................................. 111
Figura 3.15: Seleção dos parâmetros de aplicação do método VNS .................... 112
Figura 3.16: Visão das rotas e custos associados ................................................ 112
Figura 3.17: Reposicionamento de um ponto avançado de distribuição ............... 113
Figura 3.18: Alteração dos grupos de entregas de um ponto avançado ............... 114
Figura 4.1: Disposição inicial das entregas e formação dos grupos ................... 117
Figura 4.2: Visão das Rotas dos veículos com os grupos de entregas e
solução final das rotas de distribuição ............................................... 118
Figura 4.3: Visão da Base de Operação (retângulo) e os conjuntos de entregas
(círculos) de um dia ........................................................................... 120
Figura 4.4: Visão dos pontos avançados (triângulos) ......................................... 120
Figura 4.5: Rotas dos veículos de distribuição da Base para os pontos
avançados ......................................................................................... 121
Figura 4.6: Rotas dos jornaleiros saindo dos pontos avançados ........................ 121
Figura 4.7: Estratégia do Jornal O POVO utilizando o método Sweep ............... 123
TABELAS
Tabela 2.1: Avaliação dos efeitos de particionamento e cascata para os
métodos de agrupamento sem restrição de capacidade (média de
10 amostras de cada tamanho) ......................................................... 71
Tabela 2.2: Resultados dos métodos UCCAPCluster × Lorena considerando
um conjunto de instâncias da literatura construídas para nossa
avaliação ........................................................................................... 79
Tabela 2.3: Comparação entre os métodos propostos no caso g-CCCP.
• Instâncias – Lorena ..................................................................... 81
• Instâncias – TA ............................................................................ 83
Tabela 2.4: Conjunto de instâncias de distribuição de força de venda ................ 87
Tabela 2.5: Conjunto de instâncias relativas à coleta de lixo em Fortaleza –CE,
Brasil ................................................................................................. 93
Tabela 4.1: Resultados das distâncias totais (veículos + entregadores)
realizadas pelos dois métodos .......................................................... 124
Tabela 4.2: Totais das distâncias realizadas pelos veículos de distribuição ....... 124
Tabela 4.3: Distâncias das rotas dos jornaleiros .................................................. 125
Tabela 4.4: Número total de veículos necessário ................................................ 126
Tabela 4.5: Número total de entregadores necessário ........................................ 126
Tabela 4.6: Deslocamentos médios dos entregadores conforme a solução ........ 127
Tabela 4.7: Diferenças operacionais (uso de veículos) ....................................... 127
Introdução

A intensa competição nos mercados mundiais modernos, a introdução de


ciclos operacionais reduzidos e a grande expectativa dos clientes forçaram as
empresas a focar sua atenção e a investir na rede logística. Esses fatores, juntamente
com o desenvolvimento contínuo na área de tecnologias de comunicação, informação
e transporte (por exemplo, comunicação móvel e entrega noturna), promoveram a
incessante evolução da rede logística e das técnicas utilizadas no seu gerenciamento,
[DSPKES2003].

Simchi-Levi [DSPKES2003] define a rede logística como um conjunto de


abordagens utilizadas para integrar eficientemente fornecedores, fabricantes, depósitos
e armazéns de forma que a mercadoria seja produzida e distribuída na quantidade
certa, para a localização certa e no tempo certo, minimizando os custos globais do
sistema e atingindo o nível de serviço desejado, bem como o desperdício no caso de
produtos perecíveis ou de duração limitada.

Em uma rede logística tradicional as matérias-primas são adquiridas, os


itens são produzidos em uma ou mais fábricas, transportados para depósitos de
armazenamento temporário e, então, despachadas para varejistas e clientes.
Conseqüentemente, para reduzir custos e aumentar o nível de serviço, as estratégias
eficazes da rede logística devem considerar as interações entre os vários níveis da
rede. A rede logística é constituída por fornecedores, centros de produção, depósitos,
centros de distribuição e varejistas, além de matéria-prima, estoques de produtos em
processo e produtos acabados que fluem entre as instalações.

Normalmente, as empresas de grande porte têm estruturas complexas, ou


seja, possuem diversos produtos, milhares de veículos, vários centros de distribuição e
depósitos, milhares de clientes etc. se relacionando para gerar o resultado final,
alcançar o lucro esperado e satisfazer plenamente os clientes. Isso significa que
14

encontrar a melhor estratégia para a rede logística de uma determinada empresa


implica em enfrentar desafios expressivos. Vários aspectos são importantes para o
gerenciamento ou a reengenharia da rede logística: a configuração da rede de
distribuição, o controle de estoque, o emparelhamento do suprimento e da demanda, os
sistemas de apoio à decisão (SADs) e tecnologia da informação etc.

A configuração da rede logística pode envolver aspectos relacionados com a


localização da fábrica, do depósito e do varejista. Essas são decisões estratégicas que
têm efeitos de longo prazo sobre a empresa. As principais são:

I) determinação do número apropriado de depósitos,


II) determinação da localização de cada depósito,
III) determinação do tamanho de cada depósito,
IV) alocação para os produtos em cada depósito e
V) determinação de quais produtos os clientes receberão de cada depósito.

Como vários outros sistemas complexos de negócios, os problemas do


gerenciamento da rede logística não são estáticos nem bem definidos para que possam
ser resolvidos inteiramente por computadores. Na maioria dos casos, a flexibilidade, a
intuição e o conhecimento, características únicas dos seres humanos, são essenciais
para gerenciar os sistemas de maneira eficaz. Todavia, existem vários aspectos desses
sistemas que somente podem ser analisados com o apoio do computador. Esses
sistemas não tomam decisões, mas apóiam o gerente no processo de tomada de
decisão.

Geralmente, os SADs utilizam as informações quantitativas disponíveis para


encontrar diversas soluções possíveis, permitindo ao tomador de decisão determinar
qual a mais apropriada, baseado em outros fatores, possivelmente não quantificáveis
(embora neste último caso eventualmente suscetíveis de representação numérica por
“codificação”). Freqüentemente, esses sistemas permitem ao tomador de decisão
analisar as conseqüências da decisão, dependendo dos diferentes cenários possíveis.
15

As análises do tipo – “o que aconteceria se...” podem ajudar a evitar problemas antes
que eles ocorram, [DSPKES2003].

Muitos SAD’s utilizam ferramentas matemáticas para auxiliar no processo de


tomada de decisão. Essas ferramentas, normalmente derivadas da área de Pesquisa
Operacional (PO), foram primeiramente desenvolvidas para ajudar as forças armadas
em seus enormes desafios logísticos da Segunda Guerra Mundial. A partir desta época,
as melhorias dessas técnicas em conjunto com o desenvolvimento da capacidade de
processamento dos computadores têm auxiliado no desenvolvimento dessas
ferramentas, além de torná-las mais acessíveis ao mercado.

Esta dissertação foi direcionada para a construção de um Sistema de Apoio


à Decisão que auxiliasse no planejamento e gerenciamento (para o Jornal O GLOBO)
da rede de distribuição de jornais aos seus assinantes na cidade do Rio de Janeiro.
Elaboramos esse sistema computacional, denominado SisRot News, com o objetivo de
avaliar as estratégias de distribuição da empresa e, conseqüentemente, buscar a
redução global de seus custos de transporte. Os custos de transporte estão
relacionados normalmente com gastos gerais associados à frota de veículos: veículos
de distribuição, veículos despachantes, combustível, óleos lubrificantes, peças de
reposição ou manutenção, pessoal capacitado: motoristas e entregadores etc. Se a
frota for terceirizada, o custo geral será baseado na quilometragem total diária
percorrida.

O problema desse jornal é de natureza complexa porque deve atender a uma


demanda média diária de aproximadamente 170.000 assinantes, possuindo 700
veículos de distribuição, aproximadamente. Através de e-mail com a empresa
MultiStrata (Operador Logístico da Vale do Rio Doce), fomos desafiados a resolver o
problema de distribuição de jornais no final de 2002 (veja o anexo I com explicações
sobre os questionamentos apresentados). Ficamos empolgados com a possibilidade de
desenvolver um sistema para resolver um problema de grande porte em uma grande
16

cidade do Brasil. Infelizmente não houve a finalização do processo de contrato, apesar


de termos desenvolvido uma solução adequada ao contexto.

Há dois grandes grupos de algoritmos (exatos e heurísticos) que são


utilizados por muitos SAD’s para resolver problemas dos mais variados tipos como, por
exemplo, localização de novos depósitos, política de estoque, rotas para o transporte
de produtos etc. Algoritmos exatos são aqueles que encontrarão uma solução que seja
matematicamente a melhor possível. Em geral, esses algoritmos levarão muito tempo
para serem executados, especialmente se o problema for complexo. Em muitos casos,
é impossível chegar ao ideal ou mesmo encontrar a solução. Em outros casos, pode ser
possível, mas não vale a pena o esforço necessário. Isso acontece porque os dados de
entrada desses algoritmos são freqüentemente aproximados ou agregados e soluções
exatas para problemas aproximados podem não valer mais à pena do que soluções
aproximadas para problemas aproximados. Algoritmos heurísticos fornecem soluções
boas, mas não necessariamente ótimas para os problemas. Heurísticas são executadas
normalmente com maior rapidez em comparação aos algoritmos exatos. Muitos SAD’s
utilizam algoritmos matemáticos que empregam heurísticas. Uma boa heurística
encontrará rapidamente uma solução que pode ser próxima da solução ótima.
Freqüentemente é interessante que a heurística forneça, além da solução, uma
estimativa de quão longe a solução heurística está da solução ótima, haja vista a
necessidade de se ter uma idéia sobre o quanto ainda pode-se otimizar no processo,
[DSPKES2003].

O problema: a determinação das rotas dos veículos de distribuição de jornais


e das rotas dos entregadores para a cidade do Rio de Janeiro. Calcular a rede logística
de distribuição do Jornal O Globo.

Partindo do princípio de que tínhamos um problema de grande porte, ou seja,


constituído por milhares de assinantes e centenas de veículos e entregadores,
desenvolvemos uma estratégia para resolver o problema dividindo-o em duas fases:
agrupamento e roteirização. Combinamos algoritmos heurísticos consagrados da
17

literatura com outros desenvolvidos ou adaptados por nós para estabelecer o processo
de logística de distribuição sugerindo um modelo de resolução em duas fases. Na
primeira fase criamos dois procedimentos de agrupamento (clustering) que procuram
minimizar o número de grupos formados, mas que não garantem a otimalidade. Na fase
de roteirização utilizamos os algoritmos do caixeiro viajante, procedimento generalizado
do caixeiro viajante (PGCV) e o algoritmo de varreduras (Sweep).

Como não temos os mapas do Rio de Janeiro, adaptamos o problema e


geramos instâncias usando a base geográfica da cidade de Fortaleza–CE (Figura I.1).

Figura I.1: Mapa da cidade de Fortaleza-CE.

Durante o desenvolvimento deste trabalho, tentamos aplicar a nossa


estratégia em um outro jornal, O POVO, em Fortaleza–CE. Como a logística de
distribuição deste jornal era diferente, resolvemos fazer um estudo comparativo entre as
metodologias dos dois jornais e, assim, enriquecer nosso estudo. Hoje, as duas
18

metodologias estão implementadas no sistema SisRot News (desenvolvido na Graphvs


- www.graphvs.com.br), o que amplia as possibilidades desse sistema ser implantado e
utilizado por um jornal de grande tiragem na distribuição diária de jornais a seus
assinantes. Poderá também ser adaptado a outras aplicações onde houver uma rede
logística de distribuição de produtos ou serviços em larga escala.

A seguir são descritos os temas abordados em cada capítulo.

Na introdução, definimos os principais elementos da rede logística, definição,


composição, e processos de gerenciamento e de reengenharia de redes de distribuição.
Tratamos da importância dos sistemas de apoio à decisão, dos seus mecanismos e
ferramentas utilizadas. Falamos brevemente sobre nosso problema e nossa estratégia
de resolução.

No capítulo 1 fazemos a revisão bibliográfica de todas as técnicas que


formam a base estrutural desta dissertação. Descrevemos os modelos, algoritmos,
heurísticas e metodologias básicas que foram utilizadas nos capítulos seguintes.

O capítulo 2, que é o coração deste trabalho, descreve todos os detalhes do


problema de agrupamento capacitado com centro geométrico – PACCG. Definimos os
modelos matemáticos para os dois problemas, ou seja, o p-PACCG com número de
grupos p conhecido e o g-PACCG onde o número de grupos é calculado.
Desenvolvemos dois algoritmos principais de agrupamento que utilizam uma estrutura
geométrica especial em formato de árvore, conhecida como q-tree. Comparamos com
resultados da literatura para um conjunto de instâncias específico. Mostramos os
resultados para instâncias reais de definição de regiões de atuação de vendedores
utilizando o sistema SisRot Full e para modelagem de zonas de coleta de lixo
realizadas com o sistema SisRot TransLix. Ambos na cidade de Fortaleza – CE.

As técnicas de roteamento são descritas no capítulo 3. Definimos o problema


completo mostrando o esquema geral de resolução usando duas fases (agrupar +
19

roteirizar). Falamos da heurística básica desenvolvida para calcular as rotas de


distribuição de jornais e de entrega final utilizando os métodos Monte Carlo, VNS e
GRASP. Aplicamos PGCV, caixeiro viajante e o método de varreduras (Sweep) nas
soluções destas heurísticas para calcular as rotas de distribuição.

No capítulo 4 mostramos as principais diferenças entre as metodologias de


distribuição definidas pelos jornais O GLOBO e O POVO. Quanto à arquitetura, ao
número de bases avançadas (centros de distribuição), número de veículos necessários,
número de entregadores, distância de percurso dos veículos e dos entregadores etc.
1. Métodos de Otimização

Os grandes problemas da vida moderna têm provocado, de maneira


acelerada, a necessidade de construir processos e métodos de cálculo eficientes para
resolvê-los. Alguns dos principais problemas estão nas áreas de produção e logística.
Muitos deles são de natureza complexa, com ordem de grandeza de milhares ou
milhões de informações associadas, precisando de estudos adequados, técnicas
específicas e grande velocidade dos cálculos para conseguir resultados em tempo
viável. Ou seja, como produzir de maneira cada vez mais eficiente e como distribuir
produtos e serviços em larga escala, em tempo hábil e com o menor custo.

Os algoritmos de otimização vêm sendo desenvolvidos e adaptados para


encontrar essas respostas. Há dois grandes grupos de algoritmos a considerar: os
exatos e os heurísticos (aproximativos). Os primeiros são mais aplicados a pequenos
problemas (baixa complexidade), pois necessitam de grande potencial de cálculo
(máquinas mais poderosas e /ou tempo de cálculo), além dos custos, inviabilizando,
portanto sua execução no caso de problemas de grande porte. Os segundos
(heurísticos) são processos que levam a soluções não necessariamente exatas, mas
que conseguem atingir resultados de boa qualidade, isto é, próximos do ótimo. Essa
segunda abordagem trata as propriedades intrínsecas do problema para diminuir o
espaço de procura, não verificando todas as possibilidades. Assim conseguem
encontrar solução viável (prática) para problemas de grande porte.

Os problemas que apresentamos neste trabalho são de complexidade


elevada e, portanto, necessita de técnicas heurísticas para encontrar soluções
exeqüíveis em tempos factíveis. As principais técnicas utilizadas na abordagem deste
problema estão descritas nos seções seguintes.
21

1.1. O Problema de Agrupamento (definições, tipos, métodos e algoritmos)

A análise de agrupamentos é uma técnica estatística usada para gerar uma


estrutura de grupos, classes ou categorias de um contexto ajustadas a um conjunto de
observações. Os grupos formados devem envolver elevado grau de associação entre
indivíduos de um mesmo grupo e baixo grau entre os elementos de grupos distintos
(Anderberg, 1973).

A maioria dos métodos de agrupamento utiliza medidas de dissimilaridades


(ou similaridades) entre as entidades (grupos) em estudo, isto é, valores numéricos
observados diretamente ou, mais freqüentemente, calculados a partir dos dados antes
de realizar a categorização (clustering), [HJ97]. O esquema geral de agrupamento
baseado na medida de dissimilaridade é caracterizado em seguida:

(I) Restrições. Escolher o tipo de agrupamento desejado (hierárquico, não


hierárquico, etc.). Especificar as restrições dos grupos, caso existam, tais como: peso
máximo, cardinalidade, conectividade etc.

(II) Critério. Escolher um ou dois critérios para expressar a homogeneidade e/ou


separação dos grupos a serem encontrados.

(III) Algoritmo. Escolher ou modelar um algoritmo para resolver o problema definido


em (I) e (II).

(IV) Computação. Aplicar o algoritmo para obter os grupos.

(V) Interpretação. Aplicar testes formais ou informais para verificar se os grupos


encontrados em (IV) atendem às expectativas. Descrever os grupos e suas listas de
entidades associadas e fazer estatística descritiva.
22

Algumas observações devem ser colocadas. Primeiro, as dissimilaridades


podem ser calculadas a partir de outras fontes de dados que não a matriz de medidas,
por exemplo: quando são comparadas partições ou seqüências biológicas em
taxonomia numérica, com base na presença ou ausência de caracteres qualitativos.
Segundo, para alguns métodos somente a ordem das dissimilaridades importa. Terceiro,
a análise de agrupamento não é a única maneira de se estudar dissimilaridades ou
distâncias entre entidades no campo da análise de dados. Assim, uma técnica bastante
utilizada é a análise de componentes principais. Quarto, alguns pressupostos são feitos
sobre os grupos do esquema acima e estão fundamentados em termos da teoria dos
conjuntos. Por vezes, o conjunto de entidades pode estar associado a uma mistura de
distribuições, o número e os parâmetros aos quais estão para ser descobertos. Ou
ainda, grupos podem corresponder a objetos tais como caracteres a serem
reconhecidos. Nesse caso pertencem ao modelo de reconhecimento, um campo
próximo, mas diferente da análise de agrupamento. Agrupamento direto pode ser feito
sobre a matriz de dados. Heurísticas se baseiam na permutação de soluções e uma
solução exata pode ser obtida resolvendo dois problemas de caixeiro viajante
associados. Em termos conceituais podem ser utilizados para interpretar os
agrupamentos feitos de forma direta. Agrupamento conceitual tem sido um campo de
pesquisa bastante estudado recentemente, [HJ97].

Os algoritmos de análise de agrupamento são desenvolvidos para encontrar


vários tipos de grupos (clusters). Os principais envolvem: partição, empacotamento
(packing), cobertura, ou são ainda hierárquicos, etc.

Normalmente se utiliza um parâmetro para quantificar o grau de


associatividade entre os elementos. Podendo ser uma medida (distância, similaridade e
dissimilaridade), todas elas procuram a semelhança ou dessemelhança entre indivíduos
e são calculadas por transformação dos dados. Na figura 1.1 (b) temos um exemplo de
agrupamento baseado nas coordenadas (X e Y) dos indivíduos da figura 1.1 (a).
23

(a) Disposição Inicial (b) Formação de 2 grupos

Figura 1.1 – Exemplo de agrupamento (partição)

1.1.1. Métodos de Semelhança e Dessemelhança

No que segue apresentamos as medidas utilizadas para classificar indivíduos


ou elementos, associados aos mesmos. Dentre essas medidas destacamos as
seguintes, que normalmente se constituem “distâncias” calculadas a partir de uma
matriz de dados numéricos. Essas distâncias são aquelas citadas por Hartigan, (1975).

Representaremos os elementos (indivíduos, objetos) a agrupar (ou já


agrupados) por xi , i = 1, 2,..., N, isto é, supondo haver N desses elementos ou, então,
por x, y, z. Supondo ainda que cada elemento seja descrito por K variáveis, então cada
xi poderá ser notado como um vetor K-dimensional:

K
x = ⎛⎜⎜ xik ⎞ ⎛ k
⎟⎟ = ⎜⎜ x

⎟⎟
⎝ ⎠ ⎝ i ⎠ k =1

Ou em particular:
24

K
x = ⎛⎜⎜ x k ⎞⎟⎟ = ⎛⎜⎜ x k ⎞⎟⎟
⎝ ⎠ ⎝ ⎠ k =1

1.1.1.1. Medidas Quantitativas

Supondo x ik e x kj ∈ ℜ P , e x ik dito ser a componente k do vetor xi.

1. Distância Euclidiana: dados dois elementos quaisquer xi e xj, teremos:

p 2
dij = d(xi , x j ) = ∑(x k=1
k
i −x )
k
j
[1.1]

Note-se que vale dii = 0 e dij = dji (simetria), bem como a “desigualdade
triangular” é válida, dij [ dil + dlj (com quaisquer índices i, j e l);

2. Quadrado da distância Euclidiana:

p 2
d ij = d ( x i , x j ) = ∑ ( x ik − x kj ) [1.2]
k =1

3. Distância absoluta (ou “city block”) – também conhecida como Distância de


Manhattan:
K
d ij = d ( x i , x j ) = ∑ | x ik − x kj | [1.3]
k =1
25

4. Distância de Minkowski – que é a generalização da distância absoluta


(para m = 1) e da distância Euclidiana (para m = 2):

1
⎡K m⎤
dij = d ( xi , x j ) = ⎢∑ | xik − x kj | ⎥
m
[1.4]
⎣ k =1 ⎦

5. Distância de Mahalonobis – é uma medida que procura escalonar a


contribuição das variáveis individuais ao valor da distância de acordo com a
variabilidade de cada variável. É a medida da distância entre cada elemento de uma
nuvem multidimensional de pontos e o centróide desta nuvem. Assim, temos:

d 2 = (x − µ )V −1(x − µ ) [1.5]

Onde x é um vetor de valores para uma observação em particular, µ é o vetor


das médias de cada variável e V é a matriz de variância-covariância.

1.1.2. Critérios de Agregação

No processo de agrupamento há necessidade de estimar as distâncias entre


os grupos já formados, dois a dois, bem como entre um grupo e um indivíduo fora desse
grupo. A forma de considerar tais distâncias é que caracteriza o “critério de agregação”
a ser utilizado no processo de agrupamento, conforme Frakes & Yates (2000).

Assim, considerando o critério do vizinho mais próximo, dados dois grupos g1


e g2, a distância entre eles é igual à menor distância entre os elementos dos dois grupos
isto é:

d (g , g ) = min⎧⎨d (x , x | xi ∈ gi , i = 1,2... ⎫⎬
1 2 ⎩ 1 2 ⎭
26

Donde em particular, se g1 = {x1, x2} e g2 = {x3}, então: d(g1, g2) = min {d(x1,
x3), d(x2, x3)}. Por conseguinte, uma vez constituído um grupo particular g o elemento
que em seguida poderá lhe ser incorporado será seu vizinho mais próximo.

Com esse critério, cada indivíduo terá mais tendência para se agrupar a um
grupo já definido do que para formar o núcleo de um novo grupo. Isto se constitui numa
desvantagem, principal responsável pela fraca utilização desse critério.

Critério do vizinho mais afastado: dados dois grupos g1 e g2, a distância entre
eles é igual à maior distância entre os elementos dos dois grupos, isto é:

Supondo g1 = {x, y} e g2 = {z}, a distância entre eles é dada por:


d ( g1 , g 2 ) = max { d(x, z), d(y, z) }

Assim, cada grupo passa a ser definido como o conjunto dos indivíduos em
que cada um é mais semelhante a todos os outros do grupo do que a qualquer outro
elemento. Os grupos assim criados são mais compactos.

Critério da média dos grupos: dados dois grupos g1 e g2, a distância entre
eles é a média entre todos os pares de indivíduos constituídos por todos os elementos
dos dois grupos. Constitui-se como uma estratégia intermédia das restantes.

Critério do centróide: dados dois grupos g1 e g2, a distância entre eles é a


distância entre os respectivos centróides, média das variáveis caracterizadoras dos
indivíduos de cada grupo.

Critério de Ward: esse critério baseia-se na comparação entre a aplicação da


medida da soma dos quadrados dos desvios das observações em relação à média dos
grupos. Primeiro são calculadas as médias das variáveis de cada grupo; em seguida, é
calculado o quadrado da distância Euclidiana entre essas médias e os valores das
variáveis para cada indivíduo. O critério pode ser dado pela fórmula:
27

d = ∑∑ ( xi −x g ) 2 , onde xi é o vetor de características do indivíduo e x é


i g

um vetor que designa o centro geométrico do grupo.

1.1.3. Métodos de Agrupamento

O problema de agrupamento pode ser enunciado, de forma simples, como


sendo atribuir N elementos (objetos, indivíduos) a K grupos. A dificuldade principal é
quando o valor de K é desconhecido, pois a maioria das possíveis escolhas não irá
possuir interesse algum para a resolução do problema. É papel de um método de
agrupamento identificar um conjunto de grupos ou agrupamentos que reflitam uma
estrutura relevante dos dados (Frakes & Yates, 2000).

Existem muitos métodos de agrupamento disponíveis, que têm bases teóricas


ou empíricas discrepantes e por isso produzem estruturas de agrupamento diferentes. A
cada método de agrupamento pode estar associado um algoritmo de agrupamento
distinto ou até mesmo uma forma de implementação distinta. A escolha do método
influenciará diretamente no resultado do agrupamento enquanto a do algoritmo
determinará a eficiência com que ele será alcançado.

Os métodos de agrupamento são classificados de acordo com o tipo de


estrutura de agrupamento que produzem: hierárquicos ou não-hierárquicos.

Os métodos mais simples são os que produzem agrupamentos não-


hierárquicos os quais dividem os objetos em grupos sem que haja interseção entre eles.
Esses métodos também são conhecidos como métodos de partição, pois, a princípio, o
método conta com uma separação inicial dos indivíduos em grupos e a cada iteração o
método tenta melhorar essa partição, realocando os indivíduos entre os grupos
formados anteriormente e diminuindo uma medida de separação global, até que o
critério de parada seja alcançado, sem alteração do número de grupos.
28

Os métodos não hierárquicos (Figuras 1.1 e 1.2) são heurísticos por natureza,
pois como o número de possibilidades de agrupamento de N indivíduos em K grupos é
grande, fica difícil encontrar a solução ótima do problema. Esses métodos tentam
encontrar uma aproximação até que o critério de otimização seja atingido. O esforço
computacional O(NK) é muito menor que os métodos hierárquicos se K for muito menor
que N.

Figura 1.2: Visualização de agrupamento não hierárquico

Os métodos mais complexos são os hierárquicos (Figura 1.3) que produzem


um conjunto de dados agregados em que pares de indivíduos ou grupos são
sucessivamente unidos até que todo o conjunto de dados esteja ligado entre si. As
técnicas hierárquicas podem ser divididas em dois tipos: as ascendentes, que partem de
N grupos de somente um indivíduo cada e por junções de grupos alcançam ao final um
único grupo; e as descendentes, que partem de um único grupo com todos os
elementos e por divisões de grupo alcançam ao final, N grupos de um indivíduo cada
(Frakes & Yates, 2000).
29

Figura 1.3: Visualização de agrupamento hierárquico

1.1.4. Algoritmos heurísticos não hierárquicos (Algoritmos de Medianas)

Os algoritmos deste tipo têm como característica principal agrupar os


indivíduos em torno de centros. Partindo de uma formação inicial, em cada iteração ele
vai criando partições com novas instâncias e conseqüentemente com novos centros,
utilizando para isto o critério da maior proximidade. O algoritmo chega ao final quando
as partições não podem mais ser melhoradas, ou até que um critério de parada seja
alcançado. O critério de melhoramento pode ser subjetivo, mas normalmente se dá pela
somatória das distâncias (ou seus quadrados) dos vários indivíduos com relação aos
centróides dos grupos a que pertencem cada um deles.

Os métodos de K-Means (K representa o número de grupos desejados)


diferem de várias formas do agrupamento hierárquico. Em particular, não há hierarquia
na partição dos dados. O número de classes (K) deve ser definido. A qualidade das
partições é medida pela soma das inércias de suas classes em relação ao seu centro de
gravidade (inércia intraclasse) – considerada como distância euclidiana – sendo tanto
melhor a partição, quanto menor essa inércia. Em resumo, esse critério nos permite
comparar todas as partições formadas com o mesmo número de classes, o que não é
possível no agrupamento hierárquico.
30

Existem muitas implementações derivadas do K-means, como a versão de


Forgy, de MacQueen e a JMeans, conforme descritas a seguir.

1.1.4.1. Versão de Forgy

Trata-se de uma heurística interativa para obtenção de um ótimo local, que


busca identificar rapidamente aqueles k-grupos (onde k é inicialmente informado) que
melhor se ajustam aos dados pela proximidade aos centros previamente encontrados
(Forgy, 1965).

Nesta versão, a solução inicial é fornecida para o algoritmo juntamente com


os centróides dos k grupos, sendo esses os pontos sementes para a geração de novos
grupos. A função objetivo normalmente utilizada é o somatório das distâncias ao
quadrado dos elementos em relação aos respectivos centros dos grupos. Uma das
vantagens desse método é a rapidez da convergência. Num universo de n elementos e
k grupos, o algoritmo só irá realizar n x k comparações O(n), o que torna viável o
agrupamento de um grande conjunto de elementos.

Devido aos bons resultados do método de Forgy e à aplicabilidade aos


conjuntos de larga escala, muitos pesquisadores utilizam-no como algoritmo inicial de
agrupamento e definição prévia do número de classes, sendo posteriormente utilizados
algoritmos para dividir ou fundir a partição obtida inicialmente por este método. Outros
executam o método com diferentes ordenações do conjunto a ser agrupado. Por fim,
variam o número de classes até obter um número que possa generalizar e representar o
conjunto suficientemente.

Nos algoritmos definidos a seguir, f(Ps) significa o valor da função objetivo


das partições obtidas na iteração s e f(Ps-1) o valor da função objetivo calculado na
iteração anterior, { gs1...gsk } representa as partições de todos os N indivíduos de um
dado conjunto em k grupos na iteração s.
31

Segue abaixo a descrição do algoritmo de Forgy.

Passo 0: Faça s = 0 (número de iterações)

Passo 1: se s = 0, definir (por escolha ou sorteio) os grupos iniciais g01 ...


g0k de N (onde k é o número de grupos). Caso contrário obter
novos grupos { gs1 ...gsk } de N, transferindo cada indivíduo para
um grupo cujo centróide esteja mais próximo. Faça s = s + 1.

Passo 2: Calcular os centróides destes grupos.

Passo 3: Se f(Ps) ≥ f(Ps-1), pare. Caso contrário, volte ao passo 1.

Uma solução inicial (partição) é fornecida ao método, assim como os


centróides desta partição. Em geral, a partição inicial é escolhida de forma aleatória,
mas com algum trabalho extra nessa fase, o método encontra melhores resultados. A
mínima convergência local é garantida e o tempo necessário para obter este resultado é
O(n). Em algumas versões do método em vez de uma partição inicial são fornecidos
centróides iniciais e em torno desses e que são constituídos os grupos iniciais.

O problema desse método é a degeneração, isto é, o número final de grupos


formados pode ser diferente do k desejado. Para evitar isto, Hansen & Mladenovic
(2001) propuseram um passo para isolar em grupos unitários a diferença do número de
grupos obtidos (NGO) e a quantidade desejada k. Os elementos escolhidos são os mais
distantes dos seus respectivos centros em ordem decrescente. Esse passo é incluído a
seguir (H-Médias+):

O Método H-Médias+

Passo 0: Faça s = 0 (número de iterações)


32

Passo 1: Se s = 0, definir g01 ... g0k de N (partição inicial); caso


contrário, construir uma nova partição { gs1 ...gsk } de N,
associando cada indivíduo a um grupo com centro mais
próximo. Faça s = s + 1.

Passo 2: Calcular os centróides destes grupos e retornar o número de


grupos final (NGO).

Passo 3: Se NGO < k então: ordenar decrescentemente os elementos


em relação aos seus respectivos centros; pegar e isolar os
primeiros k – NGO grupos ordenados; fazer os elementos
serem os centróides desses grupos; reduzir f(Ps) a partir
das distâncias tomadas.

Passo 4: Se f(Ps) ≥ f(Ps-1), pare; Caso contrário, volte ao passo 1.

Uma variação bastante conhecida (K-Médias) do método de Forgy foi


proposto por Jansen (1966) e mais tarde por MacQueen (1967). Na versão proposta por
MacQueen também existe uma partição inicial dada com k centros, mas a avaliação dos
centros é feita de maneira um pouco diferente do método de Forgy. Para cada alocação
de um elemento a um grupo ocorre o recálculo dos centróides. Isto introduz um esforço
computacional, como pode ser visto no procedimento abaixo.

O Método de K-Médias

Passo 0: Faça s = 0 (número de iterações)

Passo 1: Se s = 0, definir { g01 ... g0k } de N (partição inicial);

Passo 2: Selecionar o objeto i segundo critério e atribuí-lo ao novo grupo gl, (l


≠ i), onde os centróides seriam calculados, segundo (Späth, 1980):
33

nl x l − x j ni x i − x j
xl = e xi = ,
nl − 1 ni − 1
Onde:

nl = cardinalidade do grupo gl

ni = cardinalidade do grupo gi

xl = centróide do grupo gl

xi = centróide do grupo Ci

xj = indivíduo j

Passo 3: Seja vji a melhoria alcançada pela função objetivo (medida


de dissimilaridade):

ni n
v ji ← || xi − x j || 2 − l || xl − x j || 2 , x j ∈ g l , xi ∉ g l
ni + 1 nl − 1

Onde,

vji = melhoria da função objetivo pela realocação de indivíduo de


ordem j;

Passo 4: Se nenhuma melhoria foi obtida, pare (um ótimo local foi
encontrado); caso contrário, implementar a maior vji, volte ao
passo 2.
34

Como nos métodos acima, a versão JMeans, proposta por Hansen &
Mladenovic (2001), inicia com uma partição definida (randômica, por exemplo) k-
partição. Neste método, a cada iteração, os elementos que estão mais distantes dos
seus centróides (com uma tolerância ε) são realocados para outros grupos que
favorecem a melhoria da função objetivo. Essa estratégia é muito mais elaborada que as
anteriores, embora o método permaneça com a mesma complexidade do método
KMédias, O(n2).

O Método de JMédias

Passo 0: Faça s = 0

Passo 1: Se s = 0, definir { g01 ... g0k } de N (partição inicial);

Passo 2: Considerar objetos do grupo gi e alocá-los a um novo grupo gl, (l ≠


i). Esses objetos devem estar mais distantes dos seus centróides
segundo uma tolerância ε, marque-os como não ocupados.

Passo 3: Explorando a vizinhança. Para cada j (j = 1...n) repetir os seguintes


passos:

a) (Realocação). Adicionar um novo grupo-centróide xM+1 em alguma


entidade não ocupada xj e o índice i do melhor centróide para
deleção; faça com que vij seja o valor da mudança na função
objetivo;

b) (Manter a melhor solução). Guardar o par de índices i´ e j, onde vij


(definido em KMédias) é mínimo; (Mover) Substituir o centróide xi´
por xj´ e atualize as atribuições de acordo com a nova partição P´M;
fazer f´:= fopt + vi´j´.
35

Passo 4: Se nenhuma melhoria for obtida, pare (um ótimo local foi atingido);
caso contrário, implemente a melhor partição, voltar ao passo 2.

Muitos outros métodos são estudados pela literatura, usando estratégias


diferentes ou outras técnicas, tais como metaheurísticas, redes neurais (Kohonen) e
conjuntos nebulosos para c-Médias alternativas. Maiores estudos relacionados na
literatura em métodos e aplicações com agrupamentos podem ser vistos em
“Transactions of Pattern Analyses and Artificial Intelligence” (IEEE), análise de padrões
(Pattern Recognition), inteligência artificial e em reconhecimento de padrões (Fuzzy Sets
and Systems). Para uma visão geral de agrupamentos, segundo a programação
matemática, veja Jansen & Joumard (1997). Para uma revisão mais aprofundada sobre
métodos de agrupamento sem restrições, veja-se [JL99], [BV98], [ZM97], [CL2001],
[WY2002], [TK2003].

1.2. O Problema do Caixeiro Viajante (PCV)

O Problema do Caixeiro Viajante é muito estudado pela literatura de várias


áreas, como, por exemplo, em Engenharia do Conhecimento, Pesquisa Operacional e
Computação. Esse problema considera em princípio que um viajante deseja visitar uma
lista de cidades as quais precisa passar somente uma vez, em seguida retornar para o
ponto de partida inicial. Esse percurso deverá ser o menor possível. O PCV é um
problema do tipo combinatorial, pois trata das diversas seqüências de visitação de um
conjunto de cidades, de tal modo que um conjunto destas seqüências atingirá a melhor
distância possível [Negreiros, 1996]. Essa abordagem simples esconde as diversas
aplicações onde se encaixam este problema, tais como a seqüência de tarefas em
fábricas, roteirização de veículos e muitas outras (Golden et al, 1984).

As principais versões do Problema do Caixeiro Viajante são as versões


simétricas (a distância de uma cidade A para B é igual à distância de B para A, duas a
duas para todo o conjunto de cidades) e as versões assimétricas do problema (a
distância de uma cidade A para uma cidade B não é necessariamente igual à distância
de B para A, duas a duas para todas as cidades do conjunto). Na versão assimétrica é
36

possível resolver variações do problema, como, por exemplo, o Problema Generalizado


do Caixeiro Viajante, o problema do Caixeiro Seletivo, o Problema de Orientação, o
Problema de Caixeiro Coletor de Valores ou o Problema da Rota de Cobertura. Nesse
trabalho nos concentramos na resolução dos problemas do caixeiro generalizado.

Seja G = (V, L) um grafo onde V é o conjunto de vértices e L é o conjunto


de ligações, compostas por elos (ligações não orientadas) e arcos (ligações
orientadas). Seja C = [cij]n×n a matriz de custos associada a L.

Para algumas aplicações, C pode ser definida como uma matriz de custos,
distâncias ou tempos de percurso. É importante, porém, fazer a distinção entre os
casos em que C é simétrica, ou seja, cij = cji para todo i, j ∈ V, ou assimétrica (cij ≠
cji). Também se diz que C satisfaz à desigualdade triangular se, e somente se, cij +
cjk ≥ cik, para todo i, j, k ∈ V, em geral nos problemas Euclidianos com grafos
completos.

O PCV consiste em determinar o circuito em termos de custos mínimos


passando por cada vértice somente uma vez. Esse circuito é conhecido como ciclo ou
circuito Hamiltoniano, desde que se considere C uma matriz completa. Um exemplo
gráfico para o PCV pode ser visto na figura 1.4.

(a) Solução aproximada (2157.88ud) (b) Solução exata (2086.82ud)

Figura 1.4. Exemplo de soluções para o PCV


37

Existem diversas formulações para o PCV, que podem ser baseadas nos
problemas de atribuição, de fluxo de custo mínimo, de fluxo de custo mínimo com
múltiplas comodidades e outras.

Dentre as formulações existentes para o PCV, uma formulação baseada


em fluxo (assimétrica) introduzida por Gavish e Gravis (1978) pode ser colocada
como segue:

Seja,
cij – custo do arco (i,j);
xij – 1, se o arco (i,j) for utilizado e 0 caso contrário;
yij – quantidade de fluxo enviada através do arco (i, j);
U – é uma constante de valor elevado (soma dos custos dos arcos, pex.)

n n
[ PCV ] Min∑∑ cij .xij
i =1 j =1

∑x
i =1
ij = 1 ( j = 1,2,..., n) [1.14]

∑x
j =1
ij = 1 (i = 1,2,..., n) [1.15]

n n

∑ y ji − ∑ yij = −1
j =1 j =1
(i = 1,2,..., n) [1.16]

y ij ≤ Uxij (i = 1,2,..., n) [1.17]

xij ∈ {0,1}, y ij ≥ 0 (i = 1,2,..., n) [1.18]

Aqueles autores introduziram variáveis de fluxo yij, e supondo que (n-1)


unidades de fluxo são fornecidas pela origem, o nó 1, e que todos os outros vértices da
rede necessitam de apenas uma unidade de fluxo. Os dois conjuntos de restrições,
38

[1.14] e [1.15] são de atribuição. As restrições [1.16] evitam a formação de sub-ciclos e


as desigualdades [1.17] são restrições para forçar o custo, e fazem com que o fluxo no
arco yij sobre o arco (i,j) seja zero se ele não for selecionado na matriz de atribuição X.
Essa formulação proíbe a formação de sub-ciclos, porque se o vértice i recair sobre um
sub-ciclo que não contenha a origem, ele não poderia receber uma unidade de
demanda da origem.

1.2.1. Método Exato

A enumeração exaustiva é um dos métodos utilizados para resolver


problemas computacionais difíceis. Existem n! permutações possíveis para n vértices.
Mas somente (n – 1)! ciclos hamiltonianos distintos (em um grafo direcionado completo).
Teoricamente, o problema pode ser resolvido pela geração de todos os (n - 1)! ciclos e
comparando seus custos. Tal abordagem é bastante ineficiente, mesmo para um grafo
com 20 vértices, com 19! ciclos hamiltonianos (acima de 1017) o algoritmo de
enumeração levaria séculos de cálculos contínuos para conseguir exaurir todas as
possibilidades, [SDK1983]. O problema do caixeiro viajante é um dos problemas de
otimização combinatória onde não são conhecidos algoritmos exatos em tempo
polinomial, encontrando-se na classe de problemas NP-Árduo. Os algoritmos exatos
requerem tempo computacional de ordem exponencial em relação ao número de
cidades (vértices), ou seja, sua complexidade é da ordem O(2n).

Para resolver problemas dessa natureza podem-se utilizar duas abordagens:

1 – Usar técnicas tais como Branch & Bound (B&B) ou programação


dinâmica, reduzem drasticamente o esforço da enumeração exaustiva. Essas técnicas
atingem soluções ótimas, mas para o pior caso utilizam cálculos de ordem exponencial o
que pode ser proibitivo para algumas instâncias;
39

2 – Aplicar métodos de solução rápida (tempo polinomial) que não atingem


necessariamente a solução ótima, mas encontram soluções sub-ótimas aceitáveis
(próximas do ótimo) para a maioria das instâncias.

Em geral, é muito custoso obter uma solução exata para o PCV para redes
com mais de 40 nós, considerando os algoritmos B&B atuais, de ordem O(2kn), 1<k<2.

Existem métodos exatos para o caixeiro viajante simétrico e assimétrico. Para


o caso simétrico temos Jonker & Volgenant (1982) e para o caso assimétrico temos os
algoritmos de Miller & Penky (1991), Carpanetto, Dell´Amico, Toth (1995), Syslo, Deo &
Kowalik (1983).

O algoritmo B&B pode utilizar uma solução de partida oriunda de um


procedimento heurístico do tipo construtivo, por exemplo FITSP+2Opt, e em seguida o
método proposto acima. Haja vista a importância de se evitar enumerações
desnecessárias.

1.2.2. Métodos Aproximados

Em vista de que a complexidade dos métodos exatos para encontrar soluções


do PCV ser em geral O(2n), justifica-se o uso de métodos aproximados ou
heurísticos/meta-heurísticos, entre os principais temos: Savings (Economias), Vizinho
mais próximo, Vizinho mais distante, etc. A seguir descrevemos o método do vizinho
mais distante, amplamente usado em nosso trabalho.

Método de inserção do Vizinho mais distante (FITSP).

Seja um conjunto com n de cidades, arbitrariamente escolhe-se uma cidade s


como o ponto inicial da viagem. A partir das (n – 1) cidades restantes, seleciona-se uma
outra cidade p. Forma-se um ciclo com duas cidades: s → p → s. Um terceiro ponto q é
escolhido dentre as (n – 2) cidades não visitadas e é inserido no ciclo atual produzindo
40

um novo ciclo que pode ser s → p → q → s ou s → q → p → s, o que for mais curto.


Prossegue-se assim até que todas as cidades tenham sido visitadas. A k-ésima iteração
(1 [ k [ n – 1) incrementa o ciclo em uma cidade utilizando um processo em dois passos.

1. Passo de seleção. A partir do conjunto de cidades não visitadas,


determinar qual cidade será adicionada ao ciclo.

2. Passo de inserção. Determinar em que ponto a nova cidade será inserida


no sub-ciclo atual.

Esses passos são gerais para várias heurísticas de construção do PCV. No


FITSP, a cidade mais distante do subciclo será escolhida como próxima candidata a ser
adicionada à viagem atual. Examina-se todas os pares vizinhos de cidades (i, j) e
determina-se o custo de inserção de uma cidade f no subciclo cij = wif + wfj - wij (onde cij
é o ganho pela inserção da cidade e wab a distancia entre as cidades a e b) e
implementa-se o que obtiver o menor custo. A Figura 1.5 contém a construção de uma
solução do caixeiro viajante utilizando a heurística do vizinho mais distante (FITSP)
mostrando a inserção de cada cidade. A cidade origem está representada por um
retângulo e as demais por círculos. As setas indicam a cidade escolhida para a inserção
no circuito atual.
41

Figura 1.5: Descrição passo a passo do algoritmo do vizinho mais distante.

Segundo Syslo, Deo e Kowalik (1983) a heurística de inserção do vizinho


mais distante é a melhor estratégia dentre as citadas anteriormente. Porém existem
heurísticas de substituição que são estratégias de melhoria que partem de um ciclo
hamiltoniano inicial, e que podem atingir melhores resultados. Segundo Goldbarg e
Luna (2000), as heurísticas de k-substituições (k-OPT) podem ser descritas do
seguinte modo:

1. Iniciar por um ciclo hamiltoniano {v1, v2, ..., vn};


2. Remover k vértices do ciclo corrente, tornando-o incompleto;
3. Construir todas as soluções viáveis que contenham o ciclo anterior;
4. Escolher a melhor solução entre as encontradas;
5. Testar condições de parada (número de iterações, limites para o valor
da solução, etc.), prosseguir ou não em nova iteração.

Figura 1.6: Visão geral dos passos das Heurísticas de k-Substituições


42

No desenvolvimento desta dissertação combinamos as heurísticas FITSP e 2-


OPT aliadas a outras técnicas de PPV para gerar as soluções dos roteiros. A
aproximação 2-OPT está ilustrada na figura 1.7.

Figura 1.7: Trocas 2-opt para o caso simétrico.

1.2.3. Variações do Problema do Caixeiro Viajante

Como já dissemos, existem muitas variações do problema do caixeiro


viajante: O problema da rota de cobertura, o problema do caixeiro seletivo, o problema
do caixeiro viajante generalizado, o problema do coletor de valores, problema do
caixeiro viajante multiperiódico, problema do caixeiro viajante com janelas de tempo,
problema do caixeiro viajante com gargalo, o problema do viajante de compras e outras,
[NEG1996].

No problema da rota de cobertura, a partir de um conjunto de cidades, um


carteiro irá passar por um subconjunto delas que deverá estar a uma distância máxima
pré-definida do percurso. O objetivo é visitar um subconjunto de cidades que minimiza o
percurso total e que cobre integralmente as cidades a uma certa distância. Esse
problema aparece principalmente na coleta de trabalhadores, na definição de linhas de
43

transporte coletivo urbano ou rural, e na disseminação de vacinas em regiões rurais,


figura 1.8. [GLS95]

Figura 1.8: Visualização do problema de rota de cobertura.

Outra variação interessante é o problema do Carteiro Seletivo, que considera


serem fornecidos grupos e em cada grupo o caixeiro deverá fazer uma viagem completa
dentro do mesmo, seguindo apenas para um novo grupo de cidades após ter
completado o percurso interno em determinada cidade. O percurso deverá ser realizado
com o mínimo custo, assim como nas demais anteriores, figura 1.9 [NEG1996].

Figura 1.9: Visualização de solução do problema do caixeiro seletivo.

1.2.4. O Problema do Caixeiro Viajante Generalizado (PCVG)

No Problema Generalizado do Caixeiro Viajante (PGCV), assume-se que V é


a união dos n grupos (clusters) de vértices Sj. O PGCV consiste em determinar o
44

caminho mais curto através de cada grupo (passando pelo menos uma vez) e em cada
vértice exatamente uma vez. Se |Sj| = 1 (para l = 1,..., n) então o PGCV se reduz a um
problema de caixeiro viajante (PCV), Fischetti, Salazar & Toth (1995).

Figura 2.1.1: Uma solução para uma instância do E-PCVG.

Figura
Figura 2.1.2
2.1.1 –– Visão
Visão de
de uma
uma solução
solução sub-ótima
sub-ótima para
para o
o PGCV
PGCV simétrico
simétrico

Na formulação do PGCV abaixo, xij é uma variável binária que indica a presença (xij
= 1) ou ausência (xij = 0) de um arco entre os vértices i e j (i≠j) na solução ótima.
Similarmente, y i e y i' são variáveis binárias iguais ao fluxo de saída do vértice i e de
entrada no vértice j, respectivamente, na solução ótima. Essas variáveis são iguais a 1
se o vértice i pertence à solução ótima ou são iguais a zero em caso contrário. Essa
formulação está representada na figura 1.10:
45

(PCVG Simétrico) Minimizar z = ∑c


i , j∈V
ij xij
i≠ j [1.19]
Sujeito a:

∑x
j∈V
ij = y i' (i ∈ V ),
[1.20]
i≠ j

∑x
j∈V
ij = y i (i ∈ V ),
[1.21]
i≠ j

y i = y i' (i ∈ V ) [1.22]

∑x ij ≤ Τ −1 (Τ ⊆ V e Τ ∩ S l para pelo menos um l, não todos l),


i , j∈Τ [1.23]

xij , y i , y i' ∈ {0,1}, (∀i, j ∈ V; i ≠ j), [1.24]

Nessa formulação, as restrições (1.19) e (1.20) expressam as variáveis xij em


termos do fluxo incidente y i' e o fluxo de saída y i ; as restrições (1.21) asseguram que

cada grupo é visitado pelo menos uma vez; as restrições (1.22) correspondem às
equações de conservação de fluxo nos vértices; as restrições (1.23) são as de
eliminação de sub-viagens: elas proíbem a formação de sub-viagens incluindo alguns
vértices, mas não todos os grupos. Finalmente, as restrições (1.24) são os limites
inferiores e condições de integralidade das variáveis.

Uma vez que os grupos estejam formados e a seqüência de visita dos grupos
já determinada, precisamos de um método de escolha dos vértices a serem visitados de
cada grupo. Utilizamos um método dinâmico (programação dinâmica) de construção do
caminho, onde os grupos são os estágios e os vértices de cada grupo são os estados.
Esse método garante a solução ótima para uma dada seqüência de visitação dos
grupos, [NMO1994], [FST1995]. O esquema desse método pode ser visualizado na
figura 1.9 abaixo:
46

Figura 1.11 – Custo mínimo a partir de uma determinada seqüência de grupos

Na figura 1.11, podemos ver o comportamento do algoritmo, supondo que


os grupos 3, 1 e 2 possuem 3, 2 e 3 vértices respectivamente. Os arcos destacados
(mais espessos) indicam qual deverá ser o caminho para se alcançar um vértice. Os
valores circunscritos mostram o custo mínimo para alcançar um vértice, o que implica
que o último valor, ‘9’ corresponde ao custo mínimo total do ciclo entre os grupos.
47

Na figura 1.12 temos o resultado da solução gerada pelo PGCV utilizando o


Sistema SisRot News. Os grupos estão indicados pela envoltória convexa de seus
elementos e a origem pelo quadrado destacado na figura.

Figura 1.12: Solução PCVG para entregas de jornais (SisRot News).

1.3. O Problema de Percurso de Veículos - PPV

O PPV requer um conjunto de rotas partindo de um depósito central a vários


pontos de demanda, cada um deles tendo necessidades de serviço que deverão ser
integralmente atendidas pela mínima distância total coberta por uma frota. Os veículos
possuem restrições relativas a suas capacidades (volume ou peso de carga) e em
alguns casos também à distância e ao tempo de percurso da rota. Esse problema é
denominado PPV Genérico Bodin et al (1986) ap ud (Negreiros, 1996). No caso das
restrições de tempo por percurso ou de capacidade serem omitidas, temos o problema
padrão de percurso de veículos.

Uma formulação para o PPV Genérico pode ser colocada como segue,
conforme Bodin et al (1986) ap ud (Negreiros, 1996).

Sejam dados,
48

n – número de cidades com demanda incluindo o depósito;

nv – número de veículos;

Qv – capacidade do veículo v;

qi – a demanda da cidade i, onde q1 = 0 (centro distribuidor) e ;qi ≤ Qv, ∀ i≥1


e v;

Tv – o tempo máximo permitido para o veículo v;

tvi – o tempo necessário para o veículo v entregar ou receber na cidade i


(tempo de serviço em i por v);

tvij – o tempo de percurso do veículo v entre as cidades i e j, tvii = ∞

xvij = {1, se a ligação ij é usada pelo veículo v e 0 caso contrário}

S – o conjunto formado pelas restrições de subrotas que não incluem a


cidade de origem. O modelo está descrito na figura 1.13 abaixo:

nv n n
(PPV - G) Minimizar ∑∑∑ cij xijv
v =1 i =1 j =1 (1.25)
Sujeito a:

∑∑ x
v i
v
ij = 1 (j = 2,..., n) (1.26)

∑∑ x
v j
v
ij = 1 (i = 2,..., n) (1.27)

∑x −∑x
i
v
ip
j
v
pj = 0 (p = 1,..., nv) (1.28)

∑ q (∑ x
i
i
j
v
ij ) ≤ Q v (v = 1,..., nv) (1.29)
49

∑ t ∑ x + ∑∑ t
i
v
i
j
v
ij
i j
x ≤ T v (v = 1,..., nv)
v v
ij ij (1.30)

∑x
i
v
i1 ≤ 1 (v = 1,..., nv) (1.31)

∑x
j
v
1j ≤ 1 (v = 1,..., nv) (1.32)

X = (x ijv ) ∈ S (1.33)

xijv ∈ {0,1} (i, j = 1,..., n) (v = 1,..., nv) (1.34)

A função objetivo deseja minimizar o custo total do percurso de um conjunto


de veículos iguais ou distintos. As restrições 1.25 e 1.26 definem que cada cidade é
servida exatamente por um veículo. As equações 1.27 consideram a continuidade da
rota (percurso), isto é, se um veículo entra em uma cidade (vértice) com demanda, ele
deve sair. As equações 1.28 são as restrições de capacidade dos veículos; de modo
similar, as equações 1.29 são relativas ao tempo total da rota. As equações 1.30 e 1.31
garantem que a disponibilidade de veículos não será excedida. E, finalmente, as
equações 1.32 representam a proibição de sub-rotas ilegais. No PPV-G, uma vez que
um cliente solicite serviço, sua demanda é plenamente atendida.

Pode-se generalizar mais ainda esse modelo para o caso de múltiplos


produtos, onde muitos tipos de produtos podem ser enviados simultaneamente sobre
uma rede, de modo a satisfazer às demandas individuais de vários clientes (Negreiros,
1996).

Os algoritmos exatos do PPV são classificados conforme (Negreiros, 1996)


em:

I) Métodos de Busca Direta em Árvore;

II) Métodos de Programação Dinâmica;


50

III) Métodos de cobertura de conjuntos;

IV) Métodos de Programação Linear.

Como são muitos os enfoques sobre os métodos, consideraremos apenas


alguns exemplos.

O primeiro exemplo (Métodos de Busca Direta em Árvore) considera, para o


caso do PPV padrão, a atribuição de Limites Inferiores (LI) e B&B. O algoritmo explora a
relação existente entre o PPV padrão (com restrição de capacidade ou de tempo) e uma
de suas relaxações, o m-PCV. Assim, dado um grafo G = (V, A), com o vértice depósito
(1) e m veículos nele baseados, o m-PCV consiste na geração de m rotas de custo
mínimo iniciando e terminando no depósito, de modo que o vértice remanescente é
visitado exatamente uma vez. Pela transformação do m-PCV em 1-PCV, mostra-se que
o problema m-PCV é do tipo NP-Árduo (Negreiros, 1996).

O segundo método (Programação Dinâmica); considere um PPV com número


fixo de veículos. Seja c(S) o custo ou comprimento de uma rota de um veículo através
do vértice 1 e todos os vértices de um subconjunto S de V \ {1}. Então o custo mínimo
pode ser determinado pela seguinte recursão:

⎧⎪ c (U ), k = 1
f k (U ) = ⎨ min
⎪⎩ U * ⊂ U ⊆ V \ {1}
[f
k −1
(U \ U *) + c (U *)], k > 1

O custo da solução é igual a f m (V \ {1}) e o custo da solução ótima dos

subconjuntos otimizados U* na equação 1.37. O número de cálculos necessários é


muito elevado para a maioria das instâncias. O uso eficiente da programação dinâmica
prescinde de uma redução efetiva no número de estados através de um procedimento
51

de relaxação, ou usando critérios de viabilidade ou de dominância. Por exemplo, no


PPV os conjuntos U e U* devem satisfazer.

∑ qi − ( m − k )Q ≤ ∑ qi ≤ kQ (k =1,..., m) e
i∈V \{1} i∈U
∑ qi − ( k −1)Q ≤ ∑ qi ≤ Q (k =1,..., m) [1.35]
i∈U i∈U *

O terceiro (Programação Linear); Partição de Conjuntos. Observe o seguinte


esquema geral: considerando J o conjunto formado por todas as rotas viáveis j, aij o
coeficiente binário da rota j e xi uma variável binária igual a 1 se, e somente se, a rota é
usada na solução ótima. O problema pode ser formulado como a seguir (figura 1.14):

(PPV Partição) Minimizar ∑c *


j xj
j∈J (1.35)
Sujeito a :

∑a
j∈J
ij x j = 1 (i ∈ V \ {1}) (1.36)

x j ∈ {0,1} (j ∈ J) (1.37)

Figura 1.14: Modelo de Partição de Conjuntos para o PPV

Duas dificuldades principais relativas a essa formulação:

1 – O número de variáveis binárias xj pode chegar a casa dos milhões na


maioria dos casos reais. Somente problemas muito restritos (ou seja, problemas com
poucas soluções viáveis) permitirão que o número de variáveis seja pequeno o bastante
de modo que a solução dos problemas seja exeqüível. Porém refinamentos podem ser
feitos de modo a se gerar colunas de boa qualidade que possa produzir uma cobertura
ótima garantida;
52

2 – A dificuldade de se calcular os valores de c *j pode complicar muito o

problema, uma vez que toda rota j corresponde a um conjunto de vértices Sj


satisfazendo a:

∑q
j∈J
i ≤Q

O valor Sj é então obtido pela solução de um PPV sobre Sj. Se o número de


variáveis é pequeno e o objetivo é minimizar o número de rotas (veículos), ou seja, c *j =

1 para todo j ∈ J , a relaxação linear do PPV Partição sempre atinge uma solução
inteira. Se a solução (x*) não é inteira e dá valores fracionários no valor da função
⎡ ⎤
objetivo, então o plano de corte ∑x j > ⎢∑ x*j ⎥ pode ser introduzido. Muito poucos cortes
j∈J ⎢ j∈J ⎥
são necessários de modo a atingir a integralidade, (Negreiros, 1996).

Os algoritmos heurísticos para o PPV podem ser derivados de procedimentos


do PCV. Os algoritmos do vizinho mais próximo, de inserção e melhorias de rotas
podem ser aplicados ao PPV quase sem modificação. Descrevem-se a seguir os dois
procedimentos fortemente utilizados nesse trabalho e que são aplicados ao PPV:
Algoritmo de varreduras (Sweep) e seqüência do caixeiro.

O método de varreduras consiste de um procedimento de composição de


rotas a partir de um depósito central (de onde partem todos os veículos) e que todos os
clientes são ordenados pelo ângulo que fazem entre si e a origem considerada
(depósito). Escolhe-se o ponto de início (ângulo de partida), podendo ser: zero graus,
π/2, π, 3π/2, etc. Também se deve indicar o sentido de rotação (através da ordenação
dos ângulos) para a seleção dos clientes, ou seja, horário ou anti-horário (crescente ou
decrescente). Para facilitar a implementação do método, Gillet e Miller, (1974)
propuseram uma representação dos vértices (clientes) por suas coordenadas polares (θi,
ri), onde θi é o ângulo e ri é o raio. Atribui-se o valor de θi = 0 a um vértice arbitrário i*
53

(podendo ser o depósito se houver apenas um) e calcular os remanescentes a partir de


(1, i*). Ordenam-se os vértices na ordem ascendente dos seus ângulos.

O método de varreduras pode ser simplificado do seguinte modo:

Passo 1: Escolher um veículo não usado k;

Passo 2: Iniciando de um vértice não usado e com o menor ângulo, atribuir


vértices ao veículo tantos quantos não excedam a capacidade do
veículo e ou suas restrições (distância, tempo, janelas de tempo
etc.) . Se houver vértices não alocados a rotas, voltar ao passo 1;

Passo 3: Otimizar cada rota de veículo separadamente pela resolução de um


método PCV correspondente. Realizar trocas de vértices entre as
rotas adjacentes se diminuir a distância. Reotimizar e parar.

Esse método pode ser caracterizado basicamente pelos passos 1 e 2, onde


no passo 2 pode-se iniciar tanto pelo menor ângulo (forward sweep) quanto pelo maior
ângulo (backward sweep). O passo 3 é um recurso importante na melhoria das rotas,
podendo ser feito em tempo razoável através de um procedimento otimal. Com o
objetivo de conseguir o menor custo global das rotas com este método, implementamos
as duas ordenações dos clientes (varredura ascendente ou descendente) para cada
ciclo de passos (1 a 3). No entanto, isso provoca aumento de complexidade e esforço
computacional. Levamos isso em conta quando comparamos os resultados no capítulo
quatro.

Outra proposta para o algoritmo Sweep (Negreiros, 1996) foi elaborada


produzindo uma maneira mais eficiente de partição dos clientes. O procedimento
considera todo subconjunto contíguo da ordem radial como uma rota possível. As rotas
que são viáveis formam um conjunto de pétalas, assim chamadas pela semelhança com
as pétalas de uma flor. Através desta aproximação pode-se notar que a solução do
54

algoritmo de varreduras está contida no conjunto de pétalas. Um subconjunto de rotas


de um conjunto de pétalas que contenha cada cliente exatamente uma vez será uma
solução viável para o PPV.

O segundo procedimento baseia-se numa metodologia de roteirizar primeiro e


agrupar depois proposta por Beasley (1983). Inicia-se com a construção de uma grande
rota contendo todos os clientes sem levar em conta as restrições de carga e distância.
Toma-se então esta rota e agrupam-se os clientes em pequenas rotas obedecendo à
seqüência inicial e considerando agora as restrições. Os passos deste procedimento
podem ser descritos como segue:

I) Utilizar uma heurística para resolver o PCV sem restrições;

II) Abrir uma rota;

III) Percorrer a seqüência gerada de visitação e alocar o cliente à rota, caso sua
inclusão não viole alguma restrição preestabelecida (carga, distância, tempo etc),
caso contrário volte a (II) e continue assim até que todos os clientes estejam
alocados a alguma rota.

Outras heurísticas, métodos combinados e métodos exatos existem para


resolver este problema, muito estudados na área de pesquisa operacional. Mais
detalhes podem ser vistos em Laporte et al. 2000, (LGPS2000).

1.4. Meta-Heurísticas

A otimização combinatória possui um papel importante no processo da


tomada de decisão, uma vez que decisões ótimas freqüentemente dependem de uma
combinação de fatores de natureza não trivial. A maioria dos problemas de otimização
combinatória são NP-Hard (não há algoritmo de tempo polinomial) e limites próximos
dos valores da solução ótima são tipicamente difíceis de conseguir. Isso significa que a
55

enumeração parcial baseada em algoritmos exatos tem baixa taxa de convergência e,


portanto, consegue a otimalidade somente para instâncias de pequeno porte. Os
problemas de otimização combinatória da vida real são normalmente de larga escala e
uma vez que abordagens exatas são inadequadas para instâncias de grande porte, as
heurísticas são mais apropriadas neste caso.

Meta-Heurísticas são técnicas generalistas de otimização combinatória que


não estão ligadas à solução de um problema em particular, mas são preferivelmente
modeladas com o objetivo de serem suficientemente flexíveis para manipular quantos
problemas sejam possíveis. As meta-heurísticas guiam, em teoria, qualquer problema
de otimização combinatória, mas geralmente tem-se que encontrar uma maneira de
adaptar as propriedades gerais desses métodos a um determinado problema em
particular [AHMW2003].

1.4.1. Monte Carlo

Embora se conheçam aplicações envolvendo algoritmos aleatórios desde


épocas primitivas (Shallit, 1992), os primeiros artigos sobre este assunto datam do final
da década de 70 com os trabalhos de Rabin (1976) e Solavay e Strassen (1977) para o
problema do reconhecimento de números primos. As décadas de 1980 e 1990
testemunharam um grande crescimento da área de algoritmos aleatórios. Eles
emergiram de aplicações voltadas unicamente à teoria dos números e geometria
computacional para problemas nas mais diversas áreas de interesse. Muitos
pesquisadores têm utilizado, cada vez mais, técnicas e ferramentas oriundas de
modelos probabilísticos, sejam eles seqüenciais ou paralelos. Como exemplo, podem-se
citar aplicações em algoritmos on-line, otimização combinatória, criptografia, geometria
computacional, teoria dos números, estrutura de dados, processamento paralelo e
distribuído etc., [MTH2002].

Como relatado em Kalos e Whitlock (1986), o nome Monte Carlo foi utilizado,
inicialmente, na simulação de sistemas físicos por cientistas que trabalhavam no
56

desenvolvimento de armas nucleares em Los Alamos/Estados Unidos. Por volta de


1940, pesquisadores como Von Neuman, Fermi, Ulam, Metropolis juntamente com o
surgimento dos modernos computadores digitais deram grande impulso a trabalhos que
utilizavam o método de Monte Carlo em aplicações como a mecânica estatística,
transporte de material radioativo, economia e outras áreas, vide Donsker e Kac (1949),
Metropolis e Ulam(1951), Householder et al. (1951), apud (Martinhon, 2002).
Atualmente, o termo Monte Carlo possui um sentido mais amplo, sendo difícil defini-lo
exatamente. A utilização do método de Monte Carlo, não garante solução exata na
resolução de um determinado problema. Pode-se dizer apenas que uma solução correta
é obtida segundo uma probabilidade de acerto que poderá ser definida previamente.
Existem dois tipos de algoritmos de Monte Carlo: algoritmos com erro unilateral (one-
sided error) e algoritmos com erro bilateral (two-sided error). Um algoritmo de Monte
Carlo tem erro unilateral se a probabilidade de fracasso é zero para, pelo menos, uma
das saídas Sim ou Não. Se a probabilidade de falha é não-nula para as saídas Sim e
Não, o algoritmo possui erro bilateral, [MTH2002].

A denominação do método provém da cidade de Monte Carlo, no principado


de Mônaco, famosa pelos seus cassinos e jogos de roleta, que são dispositivos que
produzem números aleatórios.

O método de Monte Carlo é baseado na simulação de variáveis aleatórias


para resolução de problemas. Ele é considerado muito simples e flexível para ser
aplicado em problemas de qualquer nível de complexidade. Entretanto, a maior
inconveniência do método é o número de simulações ou execuções necessárias para se
encontrar soluções de boa qualidade, o que tende na prática a tornar o método muito
lento e também de difícil reprodução dos resultados. Contudo, poderá ser utilizado um
método de eleição quando não existirem métodos analíticos disponíveis ou se esses
últimos métodos forem muito complexos.

Como exemplo, descrevemos os passos necessários para se encontrar uma


solução para o PPV utilizando o método de Monte Carlo.
57

V → conjunto completo dos clientes;


Va → conjunto atual de clientes;
D → conjunto de demandas dos clientes;
R → conjunto de rotas geradas;
R* → conjunto de rotas com o menor custo total;
Passo 0: Va ← φ; R← φ; R*← φ; MelhorCusto ← ∞;
Passo 1: Selecionar aleatoriamente um cliente i ∈ Va
Passo 2: Verifique se existe alguma rota j ∈ R que possa receber o cliente i.
Selecionar entre as rotas aquela que seja a mais favorável. Caso
contrário abrir uma nova rota jR+1 e incluí-la no conjunto R.
Passo 3: Va ← Va – {i}
Passo 4: Retornar ao passo 1 até que V = φ
Passo 5: Calcular o custo desta solução. Se este custo calculado for menor
que o MelhorCusto então faça MelhorCusto ← Custo da rota atual
e guarde o conjunto de rotas de menor custo obtido: R* ← R.
Passo 6: Retornar ao passo 0 até que uma condição de parada seja
satisfeita.

Figura 1.15: Solução do PPV utilizando o método de Monte Carlo

1.4.2. Busca em Vizinhança Local (VNS)

É uma meta-heurística recente que tenta manter os objetivos primários das


meta-heurísticas, isto é, simplicidade, coerência, eficiência, robustez etc. É baseada em
um princípio simples e pouco explorado: troca sistemática da vizinhança durante o
processo de busca. É importante salientar que as regras de troca são cruciais, muitos
autores propuseram vários tipos de movimentos nas vizinhanças, dentro da mesma
58

heurística, mas sem fazer sistematicamente e nem considerar como a principal idéia das
suas heurísticas.

Apresentamos o esquema básico da busca local na figura 1.15. A heurística


finaliza assim que um ótimo local for encontrado. Utiliza um tipo de movimento, ou
equivalentemente uma estrutura de vizinhança.

Passo 0: Selecionar a estrutura de vizinhança ψ, a qual será usada na


busca; obtenha uma solução inicial x;
Passo 1: Encontrar o melhor vizinho x’ ∈ ψ(x) de x;
Passo 2: Se x’ não for melhor que x, pare. Caso contrário, faça x = x’ e
volte ao Passo 1.

Figura 1.16: Passos de uma heurística de busca local

Um melhoramento deste esquema é: a busca local é repetida várias vezes a


partir de soluções iniciais aleatórias e a melhor solução é guardada. Contudo, se houver
vários mínimos locais (i.e., um número muito maior que o número máximo de descidas
que podem ser realizadas em tempo razoável), ainda assim o melhor ótimo local obtido
pode estar distante do ótimo global.

Para fugir de ótimos locais, variando soluções por seleção aleatória dos
elementos da vizinhança, uma formulação genérica para um método de busca local
variável foi proposto por Hansen & Mladenovic (2000), ou método VNS, o qual
apresentamos a seguir.

Faça com que ψk (k = 1, 2,..., kmax ) seja um conjunto finito de estruturas de


vizinhança pré-selecionadas e ψk (x) o conjunto de soluções na késima vizinhança de x.
Os passos do VNS básico são mostrados no procedimento VNS a seguir.
59

Procedure VNS()

Begin

Selecionar o conjunto de estruturas de vizinhança ψk , k = 1, 2, ..., kmáx, que será


usado na busca; encontrar um solução inicial x; escolher uma condição de
parada;

Repeat
Faça k ←1
Repeat

1) Gerar um ponto aleatório x’ da késima vizinhança de x (x’ ∈ ψK (x));

2) Busca local. Aplicar algum método de busca local sendo x’ a solução inicial;
faça x’’ ser o ótimo local encontrado;

3) Mover ou não. Se o ótimo local é melhor que a solução atual, mover (x ←


x’’), e continue a busca com ψK (K←1);

4) K ← k + 1;

Until k = kmáx
Until Condição de parada atingida
End; // VNS

As condições de parada podem ser, dentre outras, o tempo de execução, o


número máximo de iterações ou o número máximo de iterações após a última melhoria.

Uma maneira fácil de obter um conjunto de estruturas de vizinhança é


considerar um tipo elementar de movimento e definir a vizinhança ψK (x) como o
conjunto de soluções pela aplicação de k movimentos a x (sem reverter). Como
exemplo, temos o problema do caixeiro viajante e problemas de roteirização
relacionados. O tipo de movimento elementar que poderia ser feito na heurística 2 -
60

optimal, isto é, excluir um par de ligação do percurso corrente e conectar os pontos


finais de modo a manter a conexão da rota [PHNM2000].

Na figura 1.17 temos um exemplo de aplicação de VNS ao problema de


agrupamento capacitado com centro geométrico (capítulo 2). Na figura 1.17 (a) temos a
solução inicial de um algoritmo de agrupamento; em seguida, na figura 1.17 (b),
aplicamos o método de VNS à solução obtida em (a) fazendo trocas simples (um
elemento do grupo é deslocado para outro grupo) aplicadas durante um intervalo de
tempo de um minuto; na figura 1.18 (c), aplicamos o VNS em seqüência com duas
trocas e considerando o mesmo tempo de aplicação. Ambas as trocas foram feitas por
seleção aleatória dos grupos.

(a) (b) (c)


Figura 1.18: Aplicação do procedimento VNS ao problema de agrupamento
capacitado com centro geométrico

1.4.3. Procedimento de Busca Aleatória Gulosa e Adaptativa (GRASP)

Seja um problema de otimização combinatória definido por um conjunto base


E = {1, ..., n}, um conjunto de soluções viáveis F ⊆ 2E e uma função objetivo ƒ : 2E → ℜ.
61

Para uma minimização, buscamos uma solução ótima S* ∈ F tal que ƒ(S*) ≤ ƒ(S), ∀S ∈
F. O conjunto base E, a função de custo ƒ, assim como os conjuntos de soluções viáveis
F são definidos para cada problema específico. Por exemplo, para o problema do
caixeiro viajante, o conjunto base E consta de todas as arestas que conectam as
cidades a serem visitadas, ƒ(S) é a soma dos custos de todas as arestas e ∈ S e F está
formado por todos os subconjuntos de arestas que determinam o caminho Hamiltoniano
[MRJV2003].

GRASP é uma meta-heurística para encontrar soluções aproximadas (sub-


ótimas) de problemas de otimização combinatória. Parte da premissa que soluções
iniciais de boa qualidade tem papel importante no êxito dos métodos de busca locais.
Consiste na construção de uma solução míope e randômica seguida por uma busca
local usando a solução inicial da busca local. Esse procedimento se repete várias vezes
e a melhor solução encontrada de todas as iterações GRASP é a solução aproximada. A
figura 1.18 ilustra um procedimento GRASP para minimização em pseudocódigo.

Procedure GRASP
input: imáx
ƒ* ← ∞;
for i := 1 to i = imáx do
χ ← GreedyRandomized();
χ ← LocalSearch(χ);
if ƒ(χ) < ƒ* then
ƒ* ←ƒ(χ);
χ ← χ*;
endif
endfor
return χ;

Figura 1.19: GRASP básico em pseudo-código.


62

Se considerarmos uma abordagem Orientada a Objetos para definir as


estratégias metaheurísticas acima discutidas, o método de Monte Carlo pode ser visto
como uma classe genérica (generalização) e os métodos VNS e GRASP como sendo
classes especializadas (especializações) da classe superior. Figura 1.19.

Figura 1.20: Visão hierárquica Orientada a Objetos entre as meta-heurísticas

O método GRASP pode ser reduzido a um método de Monte Carlo se


considerarmos todo o espaço de solução disponível, ou seja, eliminando a função que
restringe o espaço.

Esta dissertação seguirá apresentando métodos para problemas específicos


de agrupamento com restrições e roteamento generalizado com restrições, os quais
serão baseados nos métodos de busca de soluções expostos neste capítulo.
3. O Problema Generalizado do Percurso de Veículos

3.1. Introdução e Definição

O Problema Generalizado do Roteamento de Veículos (PGRV) é uma


variação do Problema do Caixeiro Viajante Generalizado ou uma abstração do
Problema de Roteamento de Veículos (PRV). O Problema Generalizado de
Roteamento de Veículos (PGRV) foi proposto por Ghiani & Improta (1997), cuja
definição formal vem a seguir:

Seja G(V, A) um grafo direcionado onde V é o conjunto de vértices e A=


{(vi, vj) | vi, vj∈V, vi≠vj} é o conjunto de arcos. Um custo não negativo cij é associado a
cada arco (vi, vj). Se cij = cji para todo vi, vj ∈ V, o problema é descrito como sendo
simétrico e é normalmente definido sobre um grafo não direcionado, onde cada par
oposto de arcos (vi, vj) é substituído por um elo (vi, vj). Segue que os custos dos
arcos supostamente representam o custo do caminho mínimo entre os vértices (ou,
de outro modo, satisfazem a desigualdade triangular). O conjunto de vértices V é
particionado em m+1 subconjuntos não vazios (ou grupos) C0, C1,…, Cm. O grupo C0
tem apenas um vértice v0, que representa o depósito, enquanto os demais grupos Ch
(h=1,…,m) representam r(h) possíveis clientes com demanda não negativa dh. Além
disso, uma frota de veículos homogênea, com capacidade de transporte Q (≥dh,
h=1,…, m) está disponível em um depósito, visitando cada grupo Ch (h=1,…, m)
exatamente uma vez, sendo que o somatório das demandas não ultrapassa a carga
Q máxima de um veículo,[GI2000], [GBAB1983], [LMN1987].

Basicamente, PGRV deverá visitar todos os clientes, porém em duas


fases. Na primeira, um conjunto de grupos de clientes é definido com a demanda
total inferior à capacidade dos veículos (grande porte), onde somente um indivíduo
de cada grupo é selecionado para ser o ponto de partida do grupo local, ou seja, de
onde os produtos do grupo serão distribuídos. Na segunda fase, a partir deste ponto,
outro veículo (de menor porte) assiste aos clientes específicos do grupo. Restrições
95

de tempo de viagem e de serviço nos clientes, tanto na primeira como na segunda


fase, estão previstas.

O PGRV busca minimizar o custo global de atendimento dos clientes em


ambas as fases, sujeito a restrições temporárias de despacho, carregamento e
deslocamento dos veículos servidores. Este problema pode ser considerado como
um Problema de Roteamento de Veículos em Larga Escala, que também é NP-
HARD. Ele ocorre em várias aplicações da vida moderna, tais como: coleta de leite a
granel, na distribuição de vacinas, na distribuição de jornais a assinantes, na
distribuição de café no atacado, etc. (GI2000), (HM1998).

Na seção 3.2, mostramos uma aplicação do PGRV com visão de um


algoritmo geral sendo: agrupar primeiro e roteirizar depois; na seção 3.3, mostramos
alguns resultados que obtivemos na avaliação do nosso método.

3.2. Um procedimento geral para o PGRV (Agrupar primeiro e roteirizar


depois)

O Problema de Roteamento de Veículos em Larga Escala (PRV-LE) é um


problema resolvido geralmente em duas fases seguindo uma logística hierárquica.
Na primeira fase, grandes veículos despacham produtos para um número
selecionado de grupos de clientes, os quais são servidos na segunda fase para um
conjunto de clientes associados a pequenos veículos (bicicletas, moto, por exemplo)
que partem do ponto de despacho, entregam os produtos e retornam ao mesmo
ponto. Em geral, esse problema está relacionado a aplicações com milhares de
clientes em uma cidade e alguns poucos veículos.

Para resolver o problema, sabendo que o PRV é NP-Hard, heurísticas


combinadas a metaheurísticas (Tabu Search, GRASP, VNS e outras) podem ser
aplicadas, (REEVES1993). Montamos uma arquitetura geral para esse problema que
combina duas fases: agrupamento e roteirização. A fase de agrupamento cria um
conjunto de grupos capacitados de indivíduos que estão posicionados
geometricamente próximos entre si e cuja demanda total não excede à capacidade
de entrega unitária. Nessa fase de agrupamento são gerados grupos limitados à
96

capacidade de produção das tarefas dos veículos (consideramos todos


homogêneos) (NP2002). Podemos ver na figura 3.1 a idéia geral da fase de
agrupamento.

Figura 3.1: Conjunto de 2152 clientes e o processo de agrupamento


capacitado (por exemplo, Q =700).

Na segunda fase, aplicamos a abordagem Generalizada do Roteamento


de Veículos (PGRV) para definir o primeiro conjunto de rotas e a partir de cada
ponto selecionado de cada grupo, aplicamos o segundo estágio de roteamento (um
PCV convencional, se não houver restrição de distância percorrida). O PGRV
considera múltiplas rotas como no Problema do Caixeiro Viajante Generalizado. A
diferença básica é que a carga, a distância e o tempo são restrições que podem ser
97

levadas em consideração, bem como o número de veículos menores. Nas figuras


3.2.1 a 3.2.6, temos uma visão completa de uma solução para esse problema.

Figura 3.2.1: Instância inicial com 1000 entregas.

Figura 3.2.2: Geração dos grupos - visão convexa.


98

Figura 3.2.3: Geração da grande rota - PCVG.

Figura 3.2.4: Solução PGRV dos veículos de distribuição.

Figura 3.2.5: Solução PGRV dos veículos de


distribuição e de entregas.
99

Figura 3.2.6: Solução PGRV de uma rota de distribuição


com suas entregas respectivas.

Na fase de agrupamento, introduzimos também restrições relacionadas a


cada grupo. Grupos heterogêneos podem ser formados, uma vez que os pacotes
serão despachados de diferentes formas. Embora o tamanho de cada pacote possa
ser diferente, ou definido da melhor maneira entre um conjunto de pacotes
disponíveis, todos eles são associados a um veículo (vendedor). Isto sugere muitas
interpretações para o mesmo problema, e abre para propriedades interessantes de
aplicações reais.

3.3. Novos Métodos para o PGRV

A primeira aproximação para esse problema foi proposta por Ghiani &
Improta (2000), onde eles descreveram uma transformação eficiente do PGRV para
o Problema de Roteamento em Arcos Capacitados (CARP) cujos procedimentos
aproximados e exatos estão relatados na literatura. Eles mostram sua abordagem
considerando o VRP com depósito simples restrito à carga da primeira fase (GI2000).

Um método geral para o PGRV, agora considerando uma idéia mais


próxima do PRV original é descrita a seguir na Figura 3.3:
100

Procedimento PGRV

Entrada: Atributos dos clientes (x, y, q), atributos do centro de


distribuição (DC) (x, y), restrições dos veículos de grande porte (distância-tempo)
e entregadores (capacidade de entrega diária), e o número de iterações.

Saída: Conjunto de rotas dos veículos e rotas de distribuição dos


entregadores.
Passo 0: Definição do DC mais próximo de cada cliente;

Passo 1: // Agrupamento Capacitado (Clustering) // Fase - PAC


Aplicar um algoritmo para construir grupos capacitados (considerando
o número de produtos, ou o peso da carga, ou o volume, etc.) que sejam menores
que a capacidade máxima dos veículos para cada DC e seus clientes de entrega
associados;

Passo 2: Para cada DC fazer // Fase – PGRV;

Passo 2.1: Gerar uma grande rota entre os grupos de seu DC


selecionando exclusivamente um cliente de cada grupo, usando (FITSP + 2OPT);

Passo 2.2: Avaliar o PCVG da grande rota;

Passo 2.3: Usar o PCVG nos clientes selecionados considerando as


cargas de cada grupo e realizar um método construtivo apropriado PRV;

Passo 2.4: Refinar as rota da solução do PRV usando um PCVG;

Passo 2.5: Verificar o custo total em cada iteração e se houver


melhoramento grave a solução; se o número de iterações ainda não foi atingido,
volte ao passo 2.1;

Passo 2.6: Refinar usando VNS (opcional).

Figura 3.3: Procedimento geral para o PGRV.


101

No nosso caso, o passo 1 é realizado pelo algoritmo PAC descrito no


capítulo 2 (NP2002). A fase PAC é um procedimento para encontrar grupos
capacitados no espaço ℜ2, considerando as restrições de demanda e distribuição
geográfica dos grupos em equilíbrio. No passo 2.1, usamos um procedimento PCVG
produzido em três diferentes formas: por seleção aleatória de um cliente por grupo
ou aplicando duas estratégias diferentes de GRASP (FR1995), a primeira (V)
considera a avaliação das rotas através da construção de uma lista dinâmica de
grupos a partir da origem (CD) e a segunda (E) uma construção de uma lista de
clientes estaticamente referenciados ao CD. No passo 2.4, usamos um
procedimento (PRV) modificado sweep, e, finalmente um VNS no passo 2.6.

Nossos resultados podem ser vistos nas figuras 3.4, 3.5, 3.6 e 3.7.
Avaliamos a função objetivo (func obj), considerando a distância total percorrida
pelos veículos em 10 corridas (100 iterações por corrida) para cada avaliação,
usando um computador Athlon 1.6GHz com 512MB of RAM e 40GB of HDD e
Windows XP. As instâncias foram retiradas a partir da cidade de Fortaleza – CE,
segundo uma geração aleatória dos pontos extremos (esquinas) dos seguimentos
de rua da cidade. Assim geramos nossos conjuntos de instâncias de entregas a
assinantes usando o sistema SisRot News®. As fases de agrupamento (clustering) e
VNS não foram consideradas nesse processo de avaliação, computamos somente o
PCVG e PRV combinados (passos 2.1, 2.3 e 2.4).

• Características das Instâncias


– Número de assinantes por dia:
• 1000
• 5000
• 10000

– Atributos dos clientes e restrições das rotas:


• 1-10 jornais por entrega,
• 50 jornais por entregador,
• 500 jornais por Kombi (veículo de entrega – 1ª fase),
• Tempo máximo de entrega das Kombis – 2h,
• Velocidade média – 60 Km/h,
102

• Tempo de entrega do grupo não foi considerado.

– Todos os custos e tempos foram avaliados sem o uso do VNS

Usamos os procedimentos segundo algumas estratégias que diferem


entre si tanto nos métodos de criação como também no refinamento do resultado do
VRP da grande rota. Os métodos são chamados Monte Carlo, Dinâmico e Estático.

O método de Monte Carlo considera que a grande rota é construída pela


seleção aleatória de um cliente por grupo aplicando um refinamento PCVG+2OPT;
na fase PRV usamos um método de resolução que roteiriza primeiro e agrupa depois
(Route First Cluster Second - RFCS) e comparamos com um outro refinamento PRV
usando o algoritmo de varreduras (Sweep) (GBAB1983). Inicialmente, aplicamos o
método conforme o modelo de Monte Carlo para obter os limites da distância total
percorrida, porém deve ser evitado devido à dificuldade de se reproduzir resultados.

Seguem abaixo (Figura 3.4) os passos do procedimento PGRV - Monte


Carlo:

Passo 2: Para cada DC, faça:

Passo 2.1: Gerar uma grande rota entre os grupos do DC selecionando


aleatoriamente um único cliente por grupo e aplicar (FITSP + 2OPT);

Passo 2.2: Avaliar o PCVG da grande rota;

Passo 2.3: Usar o PCVG nos clientes selecionados considerando as


cargas de cada grupo e executar RFCS/SWEEP;

Passo 2.4: Refinar as rotas usando um PCVG;

Passo 2.5: Verificar o custo total em cada iteração e se houver


melhoramento grave a solução; se o número de iterações ainda não foi atingido,
volte ao passo 2.1;

Passo 2.6: Refinar usando VNS (opcional).

Figura 3.4: Procedimento PGRV utilizando o método de Monte Carlo


103

O método dinâmico constrói a grande rota pela seleção dinâmica de um


cliente por grupo considerando a proximidade ao último ponto selecionado, a partir
do DC. Aplicamos em seguida um refinamento PCVG+2OPT e na fase PRV
utilizamos o mesmo refinamento do método anterior. Os passos da abordagem
dinâmica são descritos a seguir na figura 3.5:

Passo 2: Para cada DC, faça:

Passo 2.1: // Seleção de uma nova grande rota “gulosa”.

2.1.1. Marcar o DC como a origem da rota;

2.1.2. Criar uma lista de candidatos com os clientes ordenados


ascendentemente pela distância à origem;

2.1.3. A partir da lista (percentagem da lista) selecionamos


aleatoriamente um cliente de um grupo não visitado, e marcamos o grupo como
visitado;

2.1.4. Faça o novo cliente ser a nova origem;

2.1.5. Volte ao passo 2.1.2 até que todos os grupos sejam visitados;

Passo 2.2: Gerar uma grande rota entre os grupos destes clientes
selecionados e executar (FITSP + 2OPT); (FITSP – método do vizinho mais
distante)

Passo 2.3: Executar o PCVG para a grande rota;

Passo 2.4: Usar o PCVG nos clientes selecionados considerando as


cargas de cada grupo e executar RFCS/SWEEP;

Passo 2.5: Refinar as rotas usando um PCVG;

Passo 2.6: Verificar o custo total em cada iteração e, se houver


melhoramento, grave a solução; se o número de iterações ainda não foi atingido,
volte ao passo 2.1;

Passo 2.7: Refinar usando VNS (opcional).

Figura 3.5: Procedimento PGRV utilizando o método de Dinâmico

O método estático considera que a grande viagem é construída por uma


rota produzida por uma versão GRASP + PCVG aplicada sobre os grupos a serem
104

visitados e na fase PRV usamos o refinamento como nos métodos anteriores.


Seguem os passos desta abordagem na Figura 3.6:

Passo 2: Para cada DC, faça:

Passo 2.1: Aplicar GRASP para encontrar uma grande rota;

Passo 2.2: Refinar a grande rota usando PCVG;

Passo 2.3: Usar o PCVG nos clientes selecionados considerando as


cargas de cada grupo e executar RFCS/SWEEP;

Passo 2.4: Refinar as rotas usando um PCVG;

Passo 2.5: Verificar o custo total em cada iteração e, se houver


melhoramento, grave a solução; se o número de iterações ainda não foi atingido,
volte ao passo 2.1;

Passo 2.6: Refinar usando VNS (opcional).

Figura 3.6: Procedimento PGRV utilizando o método Estático

Se a restrição de tempo for considerada no problema, é necessário fazer


uma avaliação da seguinte maneira: calcular o tempo total da viagem até o ponto de
entrega e o tempo gasto para a entrega do grupo em particular (pequenos veículos).
Todos as avaliações dos pontos de entrega de uma rota têm que estar viáveis no
sentido do tempo máximo total de entrega de todos os produtos.

3.4. Avaliação Computacional dos Métodos

Uma comparação entre os métodos acima é demonstrada nas figuras 3.7


a 3.12, com uma visão detalhada da distância percorrida e os tempos gastos para
obter a solução de cada avaliação. Para todos esses testes, o passo de
agrupamento é único e todos os grupos formados são os mesmos para todas as
avaliações por instância.
105

Nos gráficos, podemos ver que o método dinâmico tem a melhor


solução, embora o método estático se aproxime bastante no critério de distância
para a instância de 1000 clientes. Se compararmos ambos os casos, o tempo de
execução médio do método dinâmico é o dobro do método estático. O método
estático funciona como o método de Monte Carlo, mas com solução melhor para a
função objetivo.

Para a instância de 5000 clientes, os resultados da distância total


percorrida pelo método estático foram menores que os resultados do método
dinâmico, mas com pouca diferença.

Uma observação importante a ser evidenciada é que os resultados do


método, para todos os casos, mostram soluções de pior qualidade em comparação à
abordagem RFCS. A característica do comportamento da solução para esta
estratégia (RFCS), como também na fase de PRV usada para este problema, foi
uma grande surpresa para nós. Esperávamos que o comportamento do método
Sweep perdesse no tempo de execução devido a sua complexidade intrínseca, mas
para a função objetivo esperávamos conseguir melhores resultados. Investigamos a
situação e concluímos que a amostragem aleatória dos clientes por grupo e a
seleção, considerando a distância do depósito e em seguida o grupo mais próximo,
é muito mais natural para o problema.

Todas as estratégias demonstradas nas figuras 3.3 a 3.7 denotam a


grande diferença entre os métodos. Observamos a grande dominância do método
estático usando RFCS na fase PRV. Embora o método dinâmico tenha obtido
resultados próximos, a diferença entre eles aumenta na comparação das instâncias
de 1000 a 5000 clientes. Considerando o tempo de execução, os resultados
mostrados na figura 3.7 revelam que o método estático e o método Monte Carlo
estão muito próximos.

O melhor resultado obtido usando esses métodos é a avaliação sobre as


diferenças de tempo de execução. Se considerarmos o uso do RFCS na fase PRV,
para o método Monte Carlo, a diferença é grande entre a melhor e a pior solução,
enquanto para o método estático ou dinâmico essa diferença é muito menor. Isso
106

quer dizer que precisamos executar poucas iterações para obter bons resultados e
gastar mais tempo na avaliação da solução. O procedimento Sweep, embora os
métodos tenham menor interesse por causa da qualidade da solução, é mais estável
que os outros métodos. Nas figuras 3.7 a 3.10 utilizamos uma curva de tendência
logarítmica.

Figura 3.7: Resultados da distância total considerando diferentes


estratégias para a instância de 1000 clientes.
107

Figura 3.8: Tempo total gasto na obtenção dos resultados considerando


diferentes estratégias para a instância de 1000 clientes.
108

Figura 3.9: Distância total obtida utilizando a instância de 5000 clientes e


diferentes estratégias.
109

Figura 3.10: Tempo gasto na obtenção dos resultados considerando


diferentes estratégias para a instância com 5000 clientes.

MonteCarlo Monte Carlo SW

Dinâmico Dinâmico SW

Estático Estático SW

1500

1400
Func Obj

1300

1200

1100

1000
1 2 3 4 5 6 7 8 9 10 Corridas

Figura 3.11: Resultados obtidos por um conjunto de instâncias com 10000


assinantes de jornais, considerando diferentes estratégias.
110

Comparação entre Métodos


10000 Clientes
1100

900 MonteCarlo
Tempo (s)

Monte Carlo SW
700
Dinâmico
Dinâmico SW
500
Estático

300 Estático SW

100
1 2 3 4 5 6 7 8 9 10

Corridas

Figura 3.12: Tempo de execução de cada método da instância de 10000


clientes.

3.5. O Sistema SisRot News

SisRot News® é um sistema de apoio à decisão (SAD), desenvolvido com


base no sistema SisRot Full®. Possui um ambiente baseado em mapas com
formato *.DXF. É uma ferramenta interativa onde o usuário pode fazer alterações
com o simples movimento do mouse, tais como: deslocamento de entregas entre
grupos, re-posicionamento de clientes, centros de distribuição e bases avançadas;
visualização parcial de grupos e rotas. Possui todas as ferramentas e algoritmos
para avaliar a arquitetura dos procedimentos PGRV discutidos aqui nesta
dissertação. Utiliza tanto os algoritmos para o PACCG como para o PGRV.

As interfaces principais do sistema contêm a escolha do método de


agrupamento, os algoritmos de roteirização, e também o centro de distribuição; a
visualização das rotas dos veículos (linhas mais espessas) e rotas dos entregadores
(linhas mais finas); a seleção dos parâmetros para a aplicação do método do VNS,
etc. Estas interfaces podem ser vistas nas figuras abaixo.
111

Figura 3.13: Parâmetros dos métodos de agrupamento e roteamento.

Figura 3.14: Seleção do tipo de rotas a visualizar


112

Figura 3.15: Seleção dos parâmetros de aplicação do método VNS.

Figura 3.16: Visão das rotas e custos associados.


113

Um dos pontos fortes de um sistema de apoio à decisão é a capacidade de


intensa interatividade com o usuário e possibilitando ao tomador de decisão a
possibilidade de interferência na solução obtida inicialmente, ou seja, adaptando-a
de acordo com o seu contexto. Um exemplo da necessidade de interatividade no
nosso sistema é cálculo para o posicionamento dos pontos avançados. O cálculo
não obedece nenhuma restrição específica, ou seja, é simplesmente posicionada no
centro geométrico das posições geográficas de suas entregas relativas. Desta forma,
a posição de um ponto avançado pode cair em algum lugar inapropriado (por
exemplo: na pista do aeroporto). Então, torna-se necessário que a ferramenta
possua um mecanismo de intervenção adequado. A figura 3.17 demonstra esta ação
– canto inferior esquerdo.

Figura 3.17: Reposicionamento de um ponto avançado de distribuição.

Outro exemplo de interatividade é a possibilidade de alteração dos grupos de


entregas de um ponto avançado. Note que não houve cuidado em manter as
restrições de capacidades originais do processo de agrupamento. A figura 3.18
mostra a configuração inicial dos grupos e a remodelagem manual de algumas
entregas.
114

Figura 3.18: Alteração dos grupos de entregas de um ponto avançado.

A base de dados foi adaptada para guardar os atributos e restrições da


entrega diária de jornais. Maior detalhamento das informações da base de dados
vem a seguir:

– Tabelas

• Clientes (localização e periodicidade de entrega);


• Pontos de entrega (local de entrega, assinantes e número de
jornais);
• Entregadores (Regiões de trabalho a serem alocados);
• Veículo de despacho de cada entregador (a pé, bicicleta, moto,
etc.).

– Restrições das Rotas

• Veículos de grande porte – capacidade homogênea (Kombis);


• Tempo máximo de entrega (do CD ao cliente mais distante da
última rota);
• Capacidade de entrega das Kombis;
• Tempo máximo de entrega das Kombis;
• Tempo de entrega de cada despachante;
• Número máximo de jornais levados pelos entregadores.
115

– Rotas das Kombis e Entregadores


• Rotas Temáticas – rotas ponto a ponto (seqüência de entrega);
• Rotas rua a rua (Seqüência de entrega considera as restrições
da malha viária – rede de tráfego).

– Editor de rotas das Kombis e despachantes.


4. Estudo de Rede Logística para entrega de Jornais

A configuração da rede logística pode envolver aspectos relacionados com a


localização da planta, do depósito e do varejista. As decisões estratégicas que têm
efeitos de longo prazo sobre a empresa são:

I) determinação do número apropriado de depósitos,


II) determinação da localização de cada depósito,
III) determinação do tamanho de cada depósito,
IV) alocação para os produtos em cada depósito e
V) determinação de quais produtos os clientes receberão de cada depósito,
(DSPKES2003).

Normalmente, esse contexto de definição se apóia em situações de


suprimento já herdadas pelas companhias ao longo dos anos, haja vista a visão
empreendedora de seus gestores, e o modo como sempre imaginam chegar ao cliente
da forma mais barata. Além disto, considera-se também que ainda hoje os recursos de
projeto de cadeias logísticas não são uma realidade, pois se trata de um instrumento
computacional caro e de difícil acesso, mais ligado à simulação, e que dificilmente
integra os recursos da otimização para esta etapa de planejamento.Alguns softwares
como o TransCAD (http://www.caliper.com/tcovu.htm) podem fazer isto de forma não
integrada, o que dificulta na tomada da decisão.

O objeto principal desenvolvido nesta dissertação foi a avaliação da rede


logística de distribuição de jornais a assinantes do Jornal O GLOBO (JG) do Rio de
Janeiro. Durante nosso estudo, tivemos a oportunidade de conhecer a logística de
distribuição de um jornal local, o Jornal O POVO (JP) de Fortaleza. Para se obter uma
medida de desempenho entre as duas cadeias logísticas, estudamos suas variações e
potencialidades de aplicação real, dando um importante avanço do nosso trabalho que
é o projeto de redes logísticas de suprimento integrando os conceitos de simulação e
otimização combinatória.
117

Assim, nossa maior preocupação será mostrar as principais diferenças entre


as metodologias de suprimento das cadeias de entregas de jornais a assinantes,
indicando a mais adequada em cada contexto considerando algumas das variáveis
relativas aos custos de transporte.

4.1. Definição das Redes de Suprimento de Jornais a Assinantes

A rede logística do jornal O GLOBO constitui-se de uma base de produção


centralizada (BP) e onze centros de distribuição e montagem (CD) dispersos em pontos
estratégicos pela cidade, além de milhares de entregas diárias. Centenas de veículos e
entregadores saem dos CDs para fazer a distribuição dos jornais. Os veículos levam os
entregadores, carrinhos de distribuição e os jornais. Desta forma o espaço disponível
para os jornais fica reduzido nas kombis. Na medida em que os cadernos (módulos
separados dos jornais) vão sendo terminados na BP, os mesmos são enviados para os
CDs onde é feita a composição final do jornal pelos próprios entregadores. Cada
veículo transporta os jornais e o pessoal de despacho, deixando-os em pontos
(entrega) específicos para dali serem entregues pelos despachantes para um conjunto
de clientes determinados. Nosso estudo considera apenas a logística de distribuição a
partir dos centros de distribuição, figuras 4.1 e 4.2.

Figura 4.1: Disposição inicial das entregas e formação dos grupos.


118

Figura 4.2: Visão das Rotas dos veículos com os grupos de entregas e
solução final das rotas de distribuição.

Para resolver a logística do jornal O GLOBO, utilizamos a técnica de dividir


para conquistar. Determinamos quais os clientes que serão atendidos por cada Centro
de Distribuição (CD), usando o critério da distância euclidiana. Em seguida
consideramos a logística de todos os CDs separadamente, conforme expomos no
capítulo anterior.

A rede logística do jornal O POVO é descrita do seguinte modo: A base de


produção do jornal e o centro de distribuição situam-se na mesma unidade. Os veículos
já saem com jornais totalmente montados. É utilizado um pequeno número de veículos
(com capacidade de 2200 jornais aproximadamente) que partem da base e levam os
jornais a pontos avançados estratégicos (PA) pré-determinados que se encontram
dispersos na cidade. Os jornaleiros se concentram nestes PAs de onde partem para
fazer a entrega dos jornais aos assinantes.

Os dados atuais desta logística foram conseguidos em entrevista com o Sr.


Demócrito Filho, diretor do Jornal O POVO, no dia 24/08/2004.

Os principais aspectos estão listados a seguir:


119

• Custo fixo geral por veículo: 2.5 salários mínimos (sm) mensais,
• Capacidade de transporte dos veículos: 2000 a 2200 jornais,
• Custo do jornaleiro: 0.65 a 0.70 (sm) e um adicional de 0.05 (sm) se
não houver reclamação das entregas,
• Existe um coordenador para cada área de entrega que trabalha com
equipes de 15 a 20 jornaleiros, tendo 1 a 2 reservas, e os distribui
segundo sua própria lógica,
• Cada jornaleiro também poderá entregar nas bancas de revistas que
estejam na sua área de cobertura,
• As entregas diárias variam de 13 a 14 mil unidades diárias durante a
semana e de 23 a 24 mil nos finais de semana,
• As bancas recebem aproximadamente 3000 jornais diários durante a
semana e por volta de 5000 nos finais de semana.

As figuras 4.3 a 4.6 detalham esta configuração de suprimento do Jornal O


Povo.

Os jornaleiros geralmente utilizam bicicletas, motos, ou fazem o percurso a


pé, dependendo da dispersão espacial de cada grupo de assinantes contidos em cada
conjunto de entregas respectivo.

Normalmente, os pontos avançados são fixos e determinados previamente


de acordo com a disposição geográfica das entregas. Nossa abordagem, implementada
no sistema SisRot News, foi um pouco diferente, ou seja, o conjunto de PAs é criado
dinamicamente na fase de agrupamento das entregas. Isto sugere uma visão mais
interessante em termos da aplicação diversificada de entregas. O Jornal poderá ter
clientes com assinatura diferenciada, por exemplo: somente segunda-feira, quarta-feira
e sexta-feira; ou somente no domingo, combinações de dias, etc. Isso poderia diminuir
o custo da assinatura de alguns tipos de clientes, e o Jornal teria uma atuação mais
dinâmica e de maior especificidade.
120

Figura 4.3: Visão da Base de Operação (retângulo) e os conjuntos de


entregas (círculos) de um dia.

Figura 4.4: Visão dos pontos avançados (triângulos).


121

Figura 4.5: Rotas dos veículos de distribuição da Base para os pontos


avançados.

Figura 4.6: Rotas dos jornaleiros saindo dos pontos avançados.


122

Aparentemente entre as duas cadeias apresentadas, pode-se intuir que


aquela proposta pelo Jornal O POVO é mais eficiente do que a do Jornal O GLOBO,
porém cada uma tem um comportamento econômico específico, como veremos na
seção a seguir.

4.2. Comparativo entre as Redes de Suprimento

O primeiro ponto que se deve cuidar é com a qualidade das amostras.


Nossas instâncias foram geradas de forma aleatória e estão uniformemente distribuídas
na cidade, uma vez que não dispúnhamos de amostras reais de entregas. Isto pode
influenciar para que os grupos sejam homogêneos em todos os pontos da cidade.
Porém, nossos pontos de entregas foram gerados a partir das esquinas da cidade,
assim conseguimos gerar amostras que são mais concentradas em algumas áreas e
mais dispersas em outras. Isto garante instâncias bem próximas da realidade.

Para podermos fazer comparações adequadas entre as duas estratégias,


consideramos as instâncias do capítulo 3, porém com um centro de distribuição (CD).
Avaliamos então a diferença entre as rotas do esquema do Jornal O GLOBO, ou seja,
as rotas dos veículos saem do CD, passam pelos grupos, sendo escolhida uma entrega
de cada grupo como ponto de despacho e, finalmente, retornam ao CD.

Segundo a abordagem do jornal O POVO, os veículos partem do CD e


distribuem os jornais para os pontos avançados de onde se concentram os jornaleiros.
Os pontos avançados têm um limite de jornaleiros que cobrem uma determinada região.
Os jornaleiros fazem um percurso de despacho e depois retornam ao CD. Para este
caso, tivemos que reorganizar nosso projeto de agrupamento com o objetivo de atender
a esta nova realidade, ou seja, agrupar clientes e agrupar centros de grupos de
clientes, e verificar percursos passando por estes centros com as mesmas restrições de
capacidade e temporais para os veículos, consideradas no capítulo anterior.
123

Para facilitar nossa comparação entre as duas estratégias, escolhemos


somente um método (Estático), dentre os descritos no capítulo anterior e dois métodos
em relação à nova abordagem proposta para o Jornal O POVO. Também utilizando
RFCS e o método de varreduras (Sweep). Neste segundo método, fizemos uma
variação na técnica de agrupamento, ou seja, agrupamos todas as entregas de cada
ponto avançado, considerando a capacidade de cobertura de assinantes respectiva e, a
partição das rotas, segundo a capacidade de entrega do jornaleiro (fixada em 50 para
ambas as estratégias), foi feita através do procedimento Sweep. Observe a menor
quantidade de grupos formados, figura 4.7.

Figura 4.7: Estratégia do Jornal O POVO utilizando o método Sweep.

A estratégia do O GLOBO utiliza um número maior de veículos devido à


capacidade de transporte de jornais ser menor, isto é, transportam tanto entregadores
quanto jornais. Considerando o custo global (rotas dos veículos e rotas dos jornaleiros),
o método do O GLOBO possui menor valor do que o método do jornal O POVO para
todas as instâncias testadas. Contudo, as rotas dos veículos são sempre menores na
estratégia do O POVO, deixando um maior esforço para as rotas dos jornaleiros, que na
verdade possuem custo reduzido porque a grande maioria utiliza bicicletas, veículos de
baixo consumo de combustível (motos), ou ainda fazem o percurso a pé em áreas de
grande concentração de entregas. As distâncias totais podem ser vistas na tabela 4.1.
A coluna “Entregas” se refere ao número total de entregas diárias, a coluna
124

denominada Jornais contém o número de jornais distribuídos, as demais colunas


registram as distâncias totais percorridas pelos veículos e jornaleiros segundo as duas
estratégias abordadas.

Tabela 4.1: Resultados das distâncias totais (veículos + entregadores)


realizadas pelos dois métodos.

Distâncias totais das rotas em Km


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 644,84 783,99 887,92
5000 27544 1807,92 1798,84 2167,85
10000 55077 2935,94 2594,71 3647,99
15000 81994 3974,26 3271,93 5048,87

Dois fatores fazem com que o custo global das rotas dos veículos de
distribuição (jornal O POVO) seja menor: O primeiro se caracteriza pela maior
capacidade de carga, já que os carros somente transportam jornais, e isso diminui a
quantidade de veículos necessários para transportar uma mesma carga de jornais. O
segundo fator se refere à disposição dos PAs. Os pontos avançados localizam-se no
centro geométrico de alguns grupos de entrega mais próximos, fazendo com que os
veículos realizem percursos em uma área mais centralizada, evitando o percurso até os
grupos periféricos. A disposição geográfica desta observação pode ser vista na figura
4.5 e os resultados numéricos na tabela 4.2.

Tabela 4.2: Totais das distâncias realizadas pelos veículos de distribuição.

Distâncias das rotas dos veículos em Km


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 226,21 76,68 74,31
5000 27544 864,21 265,16 260,45
10000 55077 1630,83 462,88 498,57
15000 81994 2345,17 663,09 723,90
125

Em relação à distância percorrida pelos jornaleiros (entregadores), o


método do Jornal O GLOBO é mais eficiente, pois os jornaleiros já iniciam em um ponto
do seu roteiro (algum assinante), ou seja, não existe percurso entre o centro de
distribuição e a primeira entrega e o retorno da última entrega para o CD. A diferença
percentual entre os métodos do Jornal O GLOBO e o do Jornal O POVO (RPAD) é de
60% aproximadamente. Considerando que o número de entregadores se manteve
praticamente o mesmo entre os métodos. Isto é um reflexo do método de agrupamento
(capítulo 2) e também do caixeiro viajante que foi o procedimento usado no cálculo das
rotas dos entregadores, tabelas 4.3. e 4.5. Uma pequena variação do número de
entregadores (grupos) ocorre quando utilizamos o procedimento Sweep para separar as
rotas de entrega, o qual obteve melhor performance somente na menor instância de
1000 entregas. Este detalhe nos indica que, para instâncias grandes, é melhor utilizar
um método de agrupamento e depois roteirizar os elementos dos grupos. Além de gerar
menor número de rotas, também é calculado mais rapidamente, haja vista a
complexidade do método Sweep ser mais elevada.

Tabela 4.3: Distâncias das rotas dos jornaleiros.

Distâncias das rotas dos entregadores em Km


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 418,63 707,31 813,61
5000 27544 943,71 1533,68 1907,40
10000 55077 1305,11 2131,83 3149,42
15000 81994 1629,09 2608,84 4324,97

Todas as metodologias testadas fornecem como resultado: o


dimensionamento da frota de distribuição – número de veículos, as rotas de
distribuição; o número de entregadores necessário para o despacho total de jornais
diariamente, as rotas de entrega dos jornaleiros e, também, o tipo mais adequado de
veículo que cada jornaleiro deverá utilizar. Contudo, para obter este último dado,
necessitaríamos avaliar a relação entre a dispersão do grupo de entregas e o tipo de
veículo capaz de realizar a rota em tempo hábil (2h).
126

Tabela 4.4: Número total de veículos necessário.

Número de rotas dos veículos


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 12 3 3
5000 27544 57 15 14
10000 55077 113 29 28
15000 81994 169 42 42

Tabela 4.5: Número total de entregadores necessário.

Número de rotas dos entregadores


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 119 119 118
5000 27544 577 577 580
10000 55077 1151 1151 1159
15000 81994 1700 1700 1722

Dentro desse contexto, nota-se nas tabelas 4.4 e 4.5. o alto custo fixo e
variável associado à solução do Jornal O GLOBO que sempre supera a solução do
Jornal O POVO. O preço disto é o aumento nas distâncias percorridas pelos
entregadores que, conforme podemos ver na tabela 4.6, há uma diferença considerável
entre as soluções, fazendo com que a solução do Jornal O GLOBO seja a mais
adequada nesta fase.

Se considerarmos a solução do Jornal O POVO, neste caso, o trabalho


dos entregadores na periferia fica comprometido, pois o jornal local precisaria também
investir em veículos motorizados (motos) para vencer a dispersão dos assinantes na
entrega. Além disto, as condições do tempo e adversidades podem criar infortúnios
naturais que são específicos da aplicação, uma vez que as turmas devem estar
dispostas nos pontos avançados (PAs).
127

Tabela 4.6: Deslocamentos médios dos entregadores conforme a solução

Média de Deslocamento das Rotas dos Entregadores em Km


O GLOBO O POVO
Entregas Jornais
Método Estático RFCS SWEEP
1000 5580 3,518 5,944 6,895
5000 27544 1,636 2,658 3,289
10000 55077 1,134 1,852 2,717
15000 81994 0,958 1,535 2,512

No entanto, como podemos ver na tabela 4.7 (de forma resumida), a


vantagem competitiva da solução do jornal local é superior à do Jornal O GLOBO,
reduzindo custos operacionais de frota e deslocamento dos veículos, que são os
grandes responsáveis pelos custos totais da distribuição e, portanto, refletem o custo
final do Jornal.

Tabela 4.7: Diferenças operacionais (uso de veículos)


– Custo Operacional da Entrega (COE)= CF × NV (unidade: salários
mínimos)

O GLOBO O POVO
Entregas Jornais Método Estático RFCS SWEEP
COE COE COE
1000 5580 30,00 7,50 7,50
5000 27544 142,50 37,50 35,00
10000 55077 282,50 72,50 70,00
15000 81994 422,50 105,00 105,00

CF (Custo Fixo) – Custo mensal de contratação de um veículo;


NV – Número de veículos

Porém qual a nossa recomendação, até onde usar o projeto de uma


cadeia ou da outra? Observando que o número de rotas dos entregadores foi quase o
mesmo para todos os métodos e instâncias, levaremos em consideração somente os
custos dos veículos. Os custos do Jornal O POVO se mantiveram em torno de quatro
vezes menor para todas as instâncias acima. As instâncias foram construídas para uma
área específica, a cidade de Fortaleza, ou seja, a diferença entre elas está na
128

densidade das entregas, as instâncias maiores possuem mais assinantes por metro
quadrado. À medida que a densidade aumenta, as distâncias das rotas dos jornaleiros,
na estratégia do Jornal o POVO, se aproximam das distâncias das rotas da outra
estratégia.

Desta forma, seguindo estes critérios de avaliação, para o caso de


Fortaleza, indicamos a solução da rede logística do Jornal O POVO como sendo a de
menor custo, não importando o tamanho da instância, ou seja, a quantidade total de
entregas diárias.

Os dois Jornais estudados ainda utilizam processos manuais de definição


da rede logística. Ambos poderiam diminuir significativamente seus custos se
adotassem uma política automática do processo de distribuição. Para o Jornal O
GLOBO, onde o volume de entregas é bastante significativo (mais de 170 mil jornais
diários), pode-se estimar a melhoria de performance entre 20 e 30% do custo de
distribuição total ao se adotar uma metodologia computacional adequada. O uso de
métodos de agregação poderá diminuir o número de jornaleiros necessário para fazer
as entregas diárias melhorando também o desempenho de cada um deles, para os dois
modelos de distribuição. Portanto, os procedimentos de agrupamento e roteirização
combinados se constituem em ferramentas essencias para a definição da rede logística
de distribuição de jornais a assinantes.
5. Conclusão

Nesta dissertação propomos um novo problema e o denominamos de Problema


de Agrupamento Capacitado com Centro Geométrico (PACCG), ou Problema de
Agrupamento Capacitado Contínuo. Desenvolvemos dois modelos com
abordagens diferentes: p-PACCG, onde o número de grupos é dado, e o genérico
g-PACCG, onde desejamos encontrar o melhor número “p” de grupos devido às
restrições de carga por grupo, enquanto buscamos maximizar a dissimilaridade
entre os grupos.

Sabendo que os problemas são de natureza NP-Completo, desenvolvemos


um método heurístico em duas fases para o caso genérico, usando uma estrutura
em árvore balanceada (q-tree) e métodos restritos de médias (Forgy – Hmeans+ e
JMeans) para gerar soluções aproximadas que chamamos de CAPCluster.
Avaliamos empiricamente o processo de melhoramento usando métodos de
agrupamento (Means) em cascata. Também propomos um procedimento genérico
UCCAPCluster mantendo o p/g-PACCG, o qual pode alcançar resultados
melhores que o procedimento CAPCluster, dependendo da configuração da
instância, ou seja, da dispersão e dos pesos dos elementos que a constitui.
Notamos que isto ocorre algumas vezes quando os pontos estão dispersos. Por
exemplo, a instância de coletas de lixo (40919 indivíduos), onde os pontos são os
centróides dos segmentos de rua, estes guardam uma certa distância intrínseca
entre si, o método UCCAPCluster consegue uma diferença aproximada de 30% da
dispersão total atingida sobre o método CAPCluster.

Instâncias da literatura do PAC, e instâncias reais provenientes de dados de


um distribuidor de alimentos e da coleta de lixo em Fortaleza, foram utilizadas na
avaliação dos métodos de agrupamento. Comparamos os custos do PAC obtidos
através do método de geração de colunas por programa gentilmente fornecido
pelo professor Antônio Lorena, LAC/INPE. Uma vez que os valores PAC são
próximos dos PACCG, se na instância, o número de medianas (p) e a capacidade
130

Q são os mesmos para ambos os problemas. Em relação à função objetivo, a


maioria dos valores encontrados do PACCG superaram os obtidos nos testes do
PAC.

Todos os testes podem ser encontrados na página


www.lcc.uece.br/~negreiro/artigos/cccp. Os testes foram realizados no sistema
SISROT® (Full e TRANSLIX), que são softwares modelados para resolver
problemas de roteamento associados a métodos de agrupamento.

Mostramos também três métodos para o Problema Generalizado de


Roteamento de Veículos (PGRV), recentemente proposto pela literatura.
Propomos uma arquitetura geral para estudar soluções considerando as restrições
de carga e tempo de um conjunto de dados provenientes do processo de entrega
de jornais a assinantes. Os métodos suportam o roteamento de instâncias de larga
escala em tempo razoável. Em vista dos métodos aqui apresentados, a versão
estática obteve os melhores resultados na distância total percorrida e também no
tempo de execução, não importando o tamanho da instância considerada. Os
métodos e algoritmos descritos foram implementados na ferramenta SISROT®
News em desenvolvimento desde 2002.

Sobre a influência da solução do agrupamento sobre o problema


generalizado de percurso de veículos, é importante ressaltar que quanto maior for
a dissimilaridade entre os grupos, melhor será o custo geral da rede logística, isto
é, a distância total percorrida pelos veículos e pelos entregadores. A heurística
VNS foi pouco utilizada, haja vista o tempo necessário de cálculo para instâncias
de grande porte. Não aplicamos VNS na fase de roteirização, em vez disso
optamos por aumentar o numero de iterações dos métodos projetados para o
problema.

Em nosso estudo, não consideramos as restrições de tráfego (mão e


contramão de ruas) e também acidentes geográficos (açudes, vegetação,
131

aeroporto, etc.). Todas as distâncias consideradas foram euclidianas (menor


distância entre dois pontos), porém sem perda de conteúdo pois as rotas dos
entregadores são geralmente muito pequenas. Para as grandes rotas dos
veículos, entretanto, seria interessante avaliar os custos totais levando em conta
as restrições viárias, principalmente na cidade do Rio de Janeiro, objeto inicial do
nosso estudo, por causa da grande quantidade de acidentes geográficos
presentes. A dificuldade de obter mapas com malhas viárias precisas e também a
grande dimensão do problema favoreceram a escolha das rotas seqüenciais, ou
seja, ditas ponto a ponto.

Outro ponto importante a avançar seria a fase de refinamento dos grupos,


usando a heurística VNS. Durante a fase de agrupamento consideramos todo o
espaço de solução possível de trocas entre os grupos. Uma nova abordagem
poderia ser a utilização de GRASP nesta fase de melhoria ou ainda uma
combinação entre elas.

Além das contribuições em agrupamento e PGRV, estudamos as diferenças


entre dois modelos logísticos de dois grandes Jornais, o Jornal O GLOBO da
cidade do Rio de Janeiro e o Jornal O POVO na cidade de Fortaleza. Tomando
como referência a malha viária da cidade de Fortaleza−CE, fizemos adaptações
para tornar os modelos comparáveis e assim, traçamos as principais
características e calculamos os custos gerais de transporte dos modelos
baseando-se principalmente nos custos mensais de fretamento dos veículos de
distribuição. Concluímos que para o problema de distribuição de jornais a
assinantes, o Jornal O POVO obteve o melhor custo/desempenho para todas as
instâncias avaliadas.

De uma forma geral podemos dizer que o uso de métodos de agrupamento


restrito poderá diminuir o número de jornaleiros necessário para fazer as entregas
diárias, melhorando também o desempenho de cada um deles, para os dois
modelos de distribuição.
132

Concluímos, portanto, que combinar procedimentos de agrupamento e


roteirização constitui numa estratégia eficiente para a definição das rotas de
distribuição de jornais a assinantes.
Referências Bibliográficas

[AO2004]. AHMADI, S; OSMAN, I. H. Greedy random adaptive memory


programming search for the capacitated clustering problem. European Journal
of Operational Research – to appear, 2004.

[JB1983] Beasley, J. Route-First Cluster Second Methods for Vehicle Routing,


Omega, vol 11, pp. 403-408 (1983)

[BV98] BOUGUETTAYA, A.; LE VIES, Q. Data Clustering Analysis in a


Multidimensional Space, Information Sciences, vol 112 pp 267-295, 1998.

[BRUCKER78] BRUCKER J. On the complexity of clustering problem. Lecture


notes in Economics and Mathematical Systems, vol. 157, pgs 45-54 (1978).

[CDT1995] CARPANETTO, G. ; DELL´AMICO, M.; TOTH, P. A Branch-And-Bound


Algorithm For Large Scale Asymmetric Travelling Salesman Problems,
Transactions on Mathematical Software, VOL. 21, no. 4, December, pgs 410—415,
1995.

[CL2001] CHIOU, Y-C; L. L. Genetic Clustering Algorithms, European Journal of


Operations Research, vol 135, pg 413-427, 2001.

[CEG88] COLLINS, N.E.; EGLEASE, R.W.; GOLDEN, B.L. Simulated annealing an


annotated bibliography. American Journal of Mathematics and Management
Sciences, vol. 9, pp. 209-307, 1988.

[CLR2000] CORMEN, T.H.; LEISERSON, C.E.; RIVEST, R.L. Introduction to


Algorithms. The MIT Press and McGRAW. Hill Book Company, 2000.

[CPLEX] CPLEX Optimization, Inc., Suite 279, 930 Tahoe Blvd. Bldg. 802. Incline
Village. NV 89451-9436, e-mail: cplex.com
133

[DIERH85] DIEHR, G. Evaluation of a Branch-and-Bound Algorithm for


Clustering. [S.L.]: SIAM J. Sci. Stat. Comp.,. vol 6, pgs 266-284, 1985.

[DOW93] DOWNSLAND, K.A. Simulated annealing. Modern heuristic Techniques


for Combinatorial Problems, pp. 20-69. Oxford: Blackwell Scientific, In C.R Reeves,
1993.

[ELL2001] EVERITT, B.S.; LANDAU, S. L.; LEESE, M. Cluster Analysis. 4e.


[S.L.]:Arnold, 2001.

[FPQN96] FARIAS, B.; TITO, M.; QUINDERÉ, M.; NEGREIROS_GOMES, M. Uma


Avaliação de Algumas Técnicas de Pesquisa em Intervalos. Anais do VIII CLAIO
- XXVIII SBPO. Rio de Janeiro: [s.e.] 1996.

[FR1995] FEO, T.; RESENDE, M. Greedy randomized adaptative search


procedures. Journal of Global Optimization Algorithms. Boston: Kluwer Academic
Publishers, vol. 6, pp 109-133, 1995.

[FST95] M. FISCHETTI, J.J. SALAZAR, P. TOTH, The symmetric generalized


traveling salesman polytope, Networks 26 (1995) 113–123.

[FORGY65] FORGY, E.W. Cluster analysis of multivariate data: efficiency


versus interpretability of classifications. [S.L.]: Biometrics. Vol. 21(3), pg. 768,
1965.

[FSP99] FRANÇA, P.M; SOSA, N.M.; PUREZA, V. An adaptive tabu search


algorithm for the capacitated clustering problem - Intl. Trans. in Op. Res. [S.L.]:
[s.e.] Vol 6 pgs 665-678, 1999.

[GJ79] GAREY, M.R. & JOHNSON D.S. Computers and Intractability: A Guide to
the Theory of NP-Completeness. San Francisco:Freeman,1979.

[GLS95] GENDREAU, M., LAPORTE, G., SEMET, F. (1995) The Covering Tour
Problem, Operations Research vol. 45 pgs. 568-576
134

[GI2000] GHIANI, G.; IMPROTA, G. An efficient transformation of the generalized


vehicle routing problem. [S.L.]: EJOR, vol. 122 pp 11-17, 2000.

[GM74] GILLETT, B.E. AND MILLER, LR (1974) A Heuristic Algorithm for the
Vehicle Routing Problem, Operations Research vol. 22, pgs. 240-349.

[GL93] GLOVER, F. & M. Tabu Search. Kluwer Academic Publishers. [S.L.]:


Laguna,1997.

[GL2000] GOLDBARG, M.; LUNA, H. Otimização Combinatória e Programação


Linear. Rio de Janeiro: Editora Campus, pgs 430-437, 2000.

[GBAB1983] GOLDEN, B.; BODIN, L. ; ASSAD, A. & BALL, M. Routing and


Scheduling of vehicle and crews. The state of art. Computers & Op. Res. [S.L.]:
[s.e.] Vol. 10(2) pp. 63-211, 1983.

[HM1998] HANSEN, P., MLADENOVIC, N. An Introduction to Variable


Neighborhood Search. Les Cahiers du GERAD. [S.L.]: [s.e.] G-97-51, 1998.

[HM1999] HANSEN, P. , MLADENOVIC, N. JMeans: A new local search heuristic


for minimum sum-of-squares clustering. Les Cashiers du GERAD. [S.L.]: [s.e.] G-
99-14, 1999.

[HJ97] HANSEN, P. , JAUMARD, B. Cluster Analysis and mathematical


programming. Mathematical Programming. [S.L]: [s.e.] vol 79 pgs. 191-215, 1997.

[HART75] HARTINGAN, J.A. Clustering Algorithms. New York: John Wiley, 1975.

[HM2000] HANSEN, P , MLADENOVIC, N., Variable Neighbourhood Search: A


Chapter of Handbook of Applied Optimization. GERARD and École des Hautes
Études Commerciales, 3000 chemin de la Côte-Sainte-Catherine. Montreal, Canada:
H3T 2A7, 2000.
135

[AHMW2003] HERTZ, A.; WIDMER, M. Guidelines for de use of meta-heuristics


in combinatorial optimization. European Journal of Operational Research. [S.L.]:
[s.e.], 2003.

[KR90] KAUFMAN, L. & ROUSSWEUW, P. Finding Groups in Data: An


Introductory to Cluster Analysis. New York: Wiley, 1990.

[JDM2000] JAIN A.K.; DUM, R.P.W.; MAO J. Statistical Pattern Recognition: A


Review. IEEE Trans on Pattern Analysis and Machine Intelligence. [S.L.]: [s.e.] vol
22(1) pp 4-37, 2000.

[JV1982] JONKER, R.; VOLGENANT, T. A branch and bound algorithm for the
symmetric traveling salesman problem based on the 1-tree relaxation.
European Journal of Operational Research. [S.L.]: [s.e.] v9, pp 83-89, 1982.

[JL99] JOSIEN J.; LIAO T.W. Simultaneous grouping of parts and machines with
integrated fuzzy clustering method. Fuzzy Sets and Systems. [S.L.]: [s.e.] vol. 126
pp 1-12, 1999.

[K2001] KIANG M. Y. Extending the Kohonen Self-organizing map networks for


clustering analysis. Computational Statistics &Data Analysis. [S.L.]: [s.e.] vol 38,
pp. 161 –180, 2001.

[KP92] KOSKOSIDIS, Y. & POWELL, W.B. Clustering Algorithms for


Consolidation of Custemer Orders into Vehicle Shipments. Transportation
Resesearch, B. [S.L.]: [s.e.] Vol. 26B(5) pp. 365-379, 1992.

[LP98] LAPORTE, G. (1998) “Exact Algorithms for the Travelling Salesman Problem
and the Vehicle Routing Problem”, Les Cashiers du Gerad – G-98-37

[LGPS2000] LAPORTE, G., GRENDREAU, M., POTVIN, J-Y, SEMET, F. (2000)


“Classical and Modern Heuristics for the Vehicle Routing Problem”, International
Transations in Operations Research – vol 7 pgs. 285-300
136

[LMN1987] LAPORTE,G.; MERCURE, H.; NOBERT, Y. Generalized Travelling


Salesman Problem Through n Sets of Nodes: The Asymmetrical Case. Discrete
Applied Mathematics. [S.L.]: [s.e.] vol 18 pp 185-197, 1987.

[LR1981] LENSTRA, J. & RINOOY KAN A. Complexity of Vehicle Routing and


Scheduling Problems. . [S.L.]: Networks, Vol. 11 pp 221-227, 1981.

[LF2001] LORENA, L.A. &. FURTADO J.C, Constructive Genetic Algorithm for
Clustering Problems. Evolutionary Computation. [S.L.]: [s.e.] vol. 9 (3), pp 309-327,
2001.

[LS2001] LORENA, L.A. & SENNE E.L.F. Local Search Heuristic for the
capacitated p-Median Problem, Networks and Spatial Economics. To appear,
[S.L.]: [s.e.] 2002.

[LS2001] LORENA, L.A. & SENNE E.L.F.A column generation approach for the
capacitated p-median problems, Computers & Op. [S.L.]: Research , vol 31 pp
863-876, 2004.

[MT90] MARTELLO S.; TOTH, P. Knapsacks problems, algorithms and computer


implementations. [S.L.]: John Wiley & Sons, 1990.

[MTH2002] MARTINHON, C.A. Algoritmos Randômicos em Otimização


Combinatória. XXXIV. Simpósio Brasileiro de Pesquisa Operacional. [S.L.]: [s.e.] pp
43 a 52, novembro de 2002.

[MP1991] MILLER, D.L; PENKY, J.F. Exact Solution of Large Assymetric


Travelling Salesman Problems, Science vol. 251 pgs. 754-761 (1991).

[MB84] MULVEY, J.M. & BECK M.P. Solving Capacitated Clustering Problems-
European Journal of Operations Research. [S.L.]: [s.e.] vol 18 pp. 339-348, 1984.

[NEG1996] NEGREIROS, M.J.G Contribuições para Otimização em Grafos e


Problemas de Percurso de Veículos: Sistema SisGRAFO. Tese de Doutorado,
Eng de Sistemas e Computação, COPPE/UFRJ, 1996.
137

[NEG2002] NEGREIROS, M.J.G.; ALMEIDA, P.G.; GUARANY, A.; XAVIER, AE.


Análise de Agrupamentos para a Taxa de Resíduos Sólidos de Fortaleza.
Limpeza Urbana, to appear [S.L.]: [s.e.] 2002.

[NMO1994] NEGREIROS, M.J. G.; MACULAN & OCHI, L S. O Problema de


Compras Pesquisa Operacional vol. 14 (2) pg. 73-86 1994 (publicado em 1996).

[NP2004] NEGREIROS, M.J. G. & PALHANO, A.W. C. An Algorithm for the


Capacitated Centred Clustering Problem (a ser publicado na revista Computers
and Operations Research). [S.L.]: [s.e.] 2004.

[OC94] OSMAN, I. & CHRISTOFIDES, N. Capacitated Clustering Problems by


Hybrid Simulated Annealing and Tabu Search. Int. Trans. Opl. Res. [S.L.]: [s.e.]
Vol. 1(3) pp. 317-336, 1994.

[MRJV2003] RESENDE, M.G.C.; VELARDE, J.L.G. Procedimientos de búsqueda


miopes aleatorizados y adaptativos. [S.L.]: [s.e.] 2003.

[REEVES1993] REEVES, C. R. Modern Heuristic Techniques for Combinatorial


Problems. [S.L.]: Blackwell Scientific Publications,1993.

[DSPKES2003] SMICHI-LEVI, D; KAMINSKY, P.; SIMCHI-LEVI, E. Cadeia de


Suprimentos: Projeto e Gestão. Tradução de Marcelo Klippel. Porto Alegre:
Bookman, cap. 1, 2 e 11, 2003.

[SDK1983] SYSLO, DEO & KOWALIK. Discrete Optimization Algorithms,


Prentice-Hall 1st Ed. 1983.

[TK2003] THEODORIDES, S.; KOUTROUMBAS, K. PATTERN RECOGNITION,


Academic Press 2nd Ed. 2003.

[WY2002] WU K-L; YANG M-S. Alternative c-means clustering algorithms.


Pattern Recognition. [S.L.]: [s.e.] vol. 35 pp. 2267-2278, 2002.
ANEXO I

-----Mensagem original-----

De: rafael@multistrata.com.br [mailto:rafael@multistrata.com.br]


Enviada em: sexta-feira, 29 de novembro de 2002 15:59
Para: negreiro@uece.br
Assunto: Re: Questões importantes...

Marcos,

Segue seus questionamentos.

Atenciosamente,

Rafael dos Santos Gallo


Consultor de Logística - Multistrata
(XX)XXXX-XXXX
Av Rio Branco XXX / XXX Andar
Rio de Janeiro - XXXXX-XXX

1. Qual a quantidade de jornais por Jornaleiro?

Depende da região (mais ou menos densa)e da janela de tempo (de 2.5 a


4.5 horas dependendo da região). Este último tempo se refere à escolha de locais
vão receber o jornal mais cedo e aqueles que receberão mais tarde (lembrando que
a planta vai produzindo os jornais e estes vão sendo deslocados para os Centros de
Distribuição). Trocando em miúdos, existem roteiros de 80 a 200 jornais.

2. Existe algum tipo de restrição quanto à distância de deslocamento de um


jornaleiro, haja vista o tempo de entrega?
139

A janela de tempo associada à distância é o que efetivamente determina


o número e jornais por entregador. Normalmente, utilizam carrinhos de
supermercado para facilitar a movimentação do jornal o que não garante uma maior
possibilidade de taxa de entrega (jornais entregues / unidade de tempo - hora).
Existe entregador que se utilizam veículos próprios como moto, por exemplo. Isto
pode aumentar a velocidade em regiões menos densas. Além disso, os Agentes de
Distribuição possuem kombis que deslocam jornais para áreas de reposição para os
entregadores. Ex: O entregador tem 190 jornais na sua rota. No entanto, seu
carrinho de supermercado, só permite que o mesmo leve 70 jornais (é um exemplo,
depende do dia da semana) por vez. No CD, o entregador chega mais cedo, monta
seus jornais (o jornal não vem montado da planta, vem em partes, primeiro o
classificado às 20 horas, às 22 horas chega o segundo caderno e por aí vai, até que
das 01 às 03:30 da manhã chega a parte quente - que diminuída do horário máximo
de entrega - 06:30 - determina o tempo médio dos roteiros). Bom, como ele montou
os 190 jornais da sua rota e só tem capacidade de levar 70 jornais, monta 2 pacotes
de 60 e coloca na Kombi de apoio que colocará os dois pacotes em pontos
estratégicos da rota do entregador (onde acabará o jornal que leva no carrinho de
supermercado). Uma das coisas que o Infoglobo espera é definir o melhor tipo de
veículo por roteiro. Imaginamos associar veículos ao tipo de região (densidade, tipo
de entrega - casa, apartamento, portaria etc.).

3. Como é a entrega de jornais dentro de prédios?

3.1. No caso, a entrega é feita deixando os jornais na porta de cada


apartamento (como faziam comigo)?

Existem dois tipos de entrega. A que é feita na portaria do prédio e o


porteiro é responsável pela entrega nos apartamentos e uma mais comum, onde o
entregador sobe no prédio e entrega porta a porta (muitas das vezes, em prédios
menores, estes possuem a chave da portaria).

3.2. O(s) jornal(is) é(são) dado(s) ao porteiro e em seguida o jornaleiro segue


adiante?
140

Respondida anteriormente.

3.2.a. Sendo esta a situação, onde há uma agregação de número de jornais em


uma única entrega em um único local, como se considera isto na empresa? Ou
seja, a empresa considera que a tarefa do jornaleiro é medida através De uma
entrega = um jornal ou uma entrega pode ser mais de um jornal?

O jornal emite roteiros diariamente, que incluem novas entradas e saídas


de assinantes daquele roteiro. Cada jornal entregue tem sua linha com
características, mesmo que operacionalmente 10 jornais sejam entregues a um
porteiro. Na verdade, o exemplo a seguir é que vai determinar as características de
simulação, incluindo o tipo de veículo a ser utilizado. Exemplo: Em determinado
roteiro tenho uma parada em um prédio com 10 apartamentos e em um outro roteiro
tenho 10 casas com entrega de um jornal em cada uma. E em um terceiro roteiro
existem as duas condições.

3.2.b. Podemos ver o problema como o número de entregas ou de jornais


entregues. O jornaleiro somente pode levar consigo um certo número de
jornais dentro de sua área de cobertura. Tendo também que minimizar o
número de entregas. Para facilitar, poderemos considerar o número de
entregas igual ao número de jornais (mas é isto o que eles pensam)?

A solução do problema envolve as duas coisas: número de entregas e


jornais entregues. Na verdade, como a roteirização é feita por cada Agente de
Distribuição e sem ferramenta, provavelmente não deve estar maximizado o número
de rotas visto de forma absoluta ou relativa (entre os Agentes de Distribuição). Não
poderemos considerar, portanto, os números de entregas iguais ao número de
jornais entreguem. É uma relação diferente de 1 para 1. Temos menos pontos de
entrega do que jornais entregues.

4. Como são as restrições de tempo que temos?


141

4.1. Os jornais são entregues ao assinante dentro de uma determinada faixa de


tempo? Qual é ela?

Conforme anteriormente respondida, cada roteiro tem de 2.5 a 4.5 horas


para entrega.

4.2. Os veículos que fazem a entrega aos jornaleiros realizam quê tipo de
serviço?

4.2.a. Deixam os jornais em cada ponto marcado (Escolhido pelo Otimizador).

Em alguns casos, deslocam os jornais em um determinado roteiro


(quando o entregador trabalha com seu veículo para isto) e em outros, existe um
abastecimento de jornais de diversos roteiros em pontos estratégicos (pontos de
reposição).

4.2.b. Têm um tempo de saída marcado para que cada jornaleiro de seu
percurso possa realizar sua cobertura em tempo mínimo ou na janela de tempo
de atendimento aos assinantes?

Sim. Depende da definição de qual a seqüência de envio dos jornais para


os Agentes de Distribuição. O acordo com o assinante é que o mesmo receba os
jornais até às 6:30 horas.

4.2.c. Têm uma capacidade limitada de entrega?

Sim. Testamos no passado o sistema caminhão de lixo. Uma Kombi(com


motorista) desloca cerca de 700 a 800 jornais - o tamanho do roteiro. Neste vão
cerca de 2 a 3 entregadores. O caminhão desloca o estoque e os entregadores
percorrem uma distância menor entre a unidade abastecedora e o ponto de entrega,
incorrendo em uma maior produtividade (taxa de 250 jornais / entregador). Este
sistema só serve para pontos de alta densidade. Com certeza, será reavaliado no
projeto.
142

4.2.d. Atendem além dos jornaleiros, bancas de jornais? (Se sim, serão
incluídos no contexto? - isto muda as coisas, pois provavelmente eles pegam
de volta volumes de jornais nas bancas que encalharam...). Além desta
entrega, seguem outras entregas?

Não estará sendo considerada a entrega em bancas de jornais. Na região


metropolitana do Rio de Janeiro, existem as Capatazias que são os agentes
comerciais e logísticos da região em que atuam. Portanto, as empresas jornalísticas
levam os jornais para pontos pré-definidos (poucos - 5 ou 6 no máximo) onde as
capatazias retiram o jornal e levam para sua região de atuação.

Marcos José Negreiros Gomes


To: <rafael@multistrata.com.br>
ARTICLE IN PRESS

Computers & Operations Research ( ) –


www.elsevier.com/locate/dsw

The capacitated centred clustering problem


Marcos Negreirosa,∗ , Augusto Palhanob
a Universidade Estadual do Ceará, Mestrado Profissional em Computação-UECE/CEFET, Av. Paranjana,
1700-Campus do Itaperi, Fortaleza-Ceará-CEP: 60740-000, Brazil
b GRAPHVS CONS. COM. & REP. LTDA, Av. Santos Dumont, 2789 lj 12 (Aldeota), Fortaleza-Ceará-CEP: 60150-161, Brazil

Abstract
The capacitated centred clustering problem (CCCP) consists of defining a set of clusters with limited capacity
and maximum proper similarity per cluster. Each cluster is composed of individuals from whom we can compute a
centre value and hence, determine a similarity measure. The clusters must cover the demands of their individuals.
This problem can be applied to the design of garbage collection zones, defining salesmen areas, etc. In this work,
we present two variations (p-CCCP and Generic CCCP) of this problem and their mathematical programming
formulations. We first focus our attention on the Generic CCCP, and then we create a new procedure for p-CCCP.
These problems being NP-HARD, we propose a two-phase polynomial heuristic algorithm. The first phase is a
constructive phase for which we will propose two variants: the first technique uses known cluster procedures
oriented by a log-polynomial geometric tree search, the other one uses unconstrained to constrained clustering.
The second phase is a refinement of the variable neighbourhood search (VNS). We also show the results we have
obtained for tests from the CCP literature, the design of garbage collection zones, and salesmen areas distribution
using the approach implemented for the SISROT䉸 system.
䉷 2004 Elsevier Ltd. All rights reserved.

Keywords: Clustering; Capacitated clustering problem; VNS metaheuristic

1. Introduction

Clustering analysis involves the grouping of data entities (points) in a way that maximises the homo-
geneity of points within a group and, at the same time, the heterogeneity of points between groups [1–4].

∗ Corresponding author.
E-mail addresses: negreiro@uece.br (M. Negreiros), augustopalhano@graphvs.com.br (A. Palhano).

0305-0548/$ - see front matter 䉷 2004 Elsevier Ltd. All rights reserved.
doi:10.1016/j.cor.2004.11.011
ARTICLE IN PRESS
2 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Capacitated clustering problems (CCP) have arisen when Mulvey and Beck proposed the first model for
this problem. The main idea is based on a problem where we want to find capacitated clusters (each cluster
with a given capacity) centred by a median of its individuals (objects or customers) that minimises an
objective function that is described by the sum of the total dissimilarity between each individual and its
median [5]. The original formulation of the problem can be stated as follows (CCP):

(CCP) Min dij xij (1.1)
i∈I j ∈J

such that,

xij = 1, ∀i ∈ I, ∀j ∈ J, (1.2)
j ∈J

yj  p, ∀i ∈ I, (1.3)
j ∈J

xij  yj , ∀i ∈ I, ∀j ∈ J, (1.4)

qi xij  Qj , ∀j ∈ J, (1.5)
i∈I

xij , yj ∈ {0, 1}, ∀i ∈ I, ∀j ∈ J, (1.6)


  
where n is the number of individuals, p the number of clusters, p  i∈I qi / j ∈J Qj , ai[] are the
components of an individual i with an array i[] of its characteristics, in Rl , ||I || ≡ n, ||J ||
≡ p, dij =
 1/2
l
k=1 (aik − aj k ) the dissimilarity measure between i and its median j, xij is 1, if the individual i
2

is assigned to cluster j and 0 otherwise, yj is 1, if cluster j is used and 0 otherwise, I the set of individuals,
J the set of medians, Qj the maximum capacity of cluster j, qi the demand of the individual i.
In the CCP model, the total dissimilarity in the clusters must be minimised (1.1). The number of
clusters may not exceed the given number of clusters p (1.2). An individual is assigned to only one cluster
(1.3). Every individual is assigned to a cluster (1.4). The cluster capacity must cover the demands of its
individuals (1.5). Eq. (1.6) specifies the decision variables.
The above formulation is also known as the Capacitated p-Median Problem when Qj is homogeneous,
and was considered by [6–10].
For the CCP, the centre of a given cluster is a particular individual of the cluster from which the sum of
the dissimilarities to all other individuals in the cluster is minimised (scatter of the cluster) [6]. In Fig. 1,
we have the visualisation of a solution of a CCP instance. This instance of CCP considers 25 individuals
with unit demand, where we wish to find 3 clusters with capacity limited to 9 individuals at most, with
minimum dissimilarity in R2 or as = (as1 , as2 ), ∀s ∈ I or J. Note that the set J is formed by the medians
(as the centres) of each cluster. The capacitated p-median problem is a special version of the CCP where
the coefficients of the objective function are distances [9].
For large scale instances, which are found in many real life situations, it seems reasonable to use heuristic
approaches to solve this problem. The heuristics for this problem must be designed in consequence of
good strategies knowledge to find initial and improved solutions. Some authors consider, for solving CCP
instances (>1000 individuals), the use of procedures that are, in fact, very time consuming, either in the
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 3

Fig. 1. CCP solution for an instance with 25 individuals and Qj = 9, and qi = 1.

constructive phase interactively using Regret functions, simulated annealing or Lagrangean relaxation
using surrogate constraints or in the improvement phase, generally using tabu search metaheuristic and
more recently GRAMPS (GRASP with adaptative memory programming) [3,5–7,10–14].
The capacitated (geo) centred clustering problem (CCCP), or continuous capacitated clustering prob-
lem, can be viewed as the problem of defining a set of clusters with limited capacity and minimum
dissimilarity between the formed clusters, where each cluster has a centre located at the geometric centre
of its individuals and covers all the demands of a set of individuals. It is different from the CCP, the
clusters are centred at the centre of their individuals’ co-ordinates, where for the CCP, the clusters are
centred by their medians.
The CCCP has a wide range of applications such as: the design of garbage collection zones, sales force
territorial design, depot location in distribution systems, location of switching centres in communica-
tion networks, location of off-shore platforms for oil exploration, clustering of customers into different
marketing segments in marketing studies, taxation to municipalities, information systems design, rout-
ing newsboys to newspaper subscribers delivery, routing agents to dengue disease combat, and others
[6,15–17].
In this article, we are particularly interested in the case where the CCCP problem is in R2 . We design
and adapt heuristic/metaheuristic techniques that are taken from the literature. This problem is applied to
the design of territories to sales force and garbage collection zones/circuits.
This article is organised as follows, in Section 2 we introduce the new problem and its formulation
considering two aspects, when the number (p) of clusters is given and when we want to find the appropriate
number of clusters to cover the individuals’ demands. In Section 3 we show two log-polynomial heuristic
algorithms for the generic capacitated clustering and p-CCCP. In Section 4, we show the results using
instances from the CCP literature, considering variations of the constructive phase. Some results in the
design of garbage collection zones, and sales force areas distribution using this approach implemented
for the system SisRot (FULL and TRANSLIX), are also reported.
ARTICLE IN PRESS
4 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Fig. 2. Visualisation of the p-CCCP solution for the instance proposed in Fig. 1.

2. Modelling the CCCP

The CCCP consists in defining a set of clusters with limited capacity and maximum proper similarity
per cluster. Each cluster is composed of individuals from whom we can compute a centre value and
hence, determine a dissimilarity measure between clusters. The clusters must cover the demands of their
individuals. In Fig. 2, we can see the same solution of the above instance, from a CCCP point of view.
We consider two different formulations. In the first one (p-CCCP), the number of clusters is known in
advance and in the second one (g-CCCP), the number of clusters and the dissimilarities are minimised.
The first formulation (p-CCCP) can be stated as follows:

(p-CCCP) Min ||ai − xj ||2 yij (2.1)
i∈I j ∈J

such that,

yij = 1, ∀i ∈ I, (2.2)
j ∈J

yij = nj , ∀j ∈ J, (2.3)
j ∈J

ai yij = nj x j , ∀j ∈ J, (2.4)
i∈I

qi yij  Qj , (2.5)
i∈I

x̄j ∈ Rl , nj ∈ N, yij ∈ {0, 1}, ∀i ∈ I, ∀j ∈ J, (2.6)


where, x̄j is the centroid of a cluster j, nj the number of individuals in cluster j, yij = 1, if the individual i
is assined to cluster j, and 0 otherwise, ai the position of the individual i in the Rl space, Qj the maximum
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 5

load of the cluster j, qi the demand of the individual i, I the set of individual s = n, J the set of Clusters
= p.
In the above model, the objective function minimises the sum of dissimilarities in each clusters (2.1).
An individual is assigned to only one cluster (2.2). Eq. (2.3) gives the number of individuals in each
cluster. Eq. (2.4) locates the centre of each cluster at its geometric centre. Eq. (2.5) maintains the demand
of individuals limited to the capacity of each particular cluster (in our case, Qj = Q, ∀j ∈ J ), and the
equations (2.6) define the decision variables, and the upper limits to the number of individuals per group.
The p-CCCP is slightly different from the CCP. In the p-CCCP, the centre of a cluster is not necessarily
an individual, it is the centre value computed with respect to all the individuals of the same cluster.
This introduces non-linearity in the model, in the objective function and in some set of constraints. This
difference in the two models implies that for a given instance of a problem, the clusters found by a
solution of the CCP are not necessarily the same as the ones found by the p-CCCP. To illustrate this, in
Fig. 3(a)–(c) we have from the same set of points of the above instance, a resolution of an instance where
Q = 6, p = 5, qi = 1 (i = 1, . . . , 25).
The second formulation can be stated as follows (Generic CCCP):
 
  
(Generic CCCP) Min F zj  + zj ||ai − xj || yij
2
(2.7)
j ∈J j ∈J i∈I

such that,

yij = 1, ∀i ∈ I, (2.8)
j ∈J

 
ai yij = x̄j yij , ∀j ∈ J, (2.9)
i∈I i∈I

qi yij  Qj zj , ∀j ∈ J, (2.10)
i∈I

x̄j ∈ Rl , zj , yij ∈ {0, 1}, ∀i ∈ I, ∀j ∈ J, (2.11)

where x̄j the centroid of a cluster j, yij = 1, if the individual i is assigned to cluster j, and 0 otherwise,
zj = 1, if a cluster j is open, and 0 otherwise, ai the position of the individual i in the Rl space, Qj the
capacity of the cluster j, qi the demand of the individual i, I the set of individual, ||I || = n, J the set of
possible clusters, 1  ||J ||  n, F the fixed cost for opening a cluster.
In the model above, the objective function minimises the number of clusters and the sum of dissimilar-
ities of each of those clusters (2.7). An individual is assigned to only one cluster (2.8). Eq. (2.9) locates
the centre of each cluster at its geometric centre. Eq. (2.10) maintains the demand of individuals limited
to the capacity of each particular cluster (in our case, Qj = Q, ∀j ∈ J ), and in Eq. (2.11) we specify the
decision variables.
The major difference in the second model is that we wish to find the number of clusters that covers,
with minimum dissimilarity, all the individuals, with a capacity constraint for each cluster. A bin packing
ARTICLE IN PRESS
6 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Fig. 3. Comparative visions on the same set of groups and instance for CCP and CCCP. (a) CCP Optimum Solution,
fmin = 1216.622 . (b) Solution 3(a) in CCCP, fmin = 1273.462 . (c) Solution for the CCP, fmin = 1231.002 . (d) CCCP best
known Solution, fmin = 1251.442 .

constraint is included in the clustering, and this constraint changes drastically the problem. We call it a
generic centred capacitated clustering, since it has general purposes. The above formulations show how
difficult this problem is, and as a consequence it can be shown that the CCP, and similarly the CCCP, can
be polynomially reduced to a NP-Complete equivalent problem [18].
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 7

3. Heuristics for CCCP

The key aspects of the CCCP use the geometric positioning of the individuals in their related clusters.
The problem of exchanging individuals from Neighbour clusters may be solved easily, if we find a good
approximation of the clusters centres within a refinement phase. Considering this, we propose a two-
phase algorithm where the first phase uses a constructive cluster procedure (Forgy algorithm, [19]). This
procedure builds an initial solution oriented by a log-polynomial algorithm using structured geometric
balanced q-trees. The second phase is a refinement of the variable neighbourhood search (VNS) [20,21].
For our method we also consider classic clustering methods from the literature. The unconstrained
clustering is in itself NP-Complete, exact methods were proposed for short instances and some heuristic
methods were also proposed to find feasible solutions with results of good quality [1,2,22–24]. All the
methods consider an initial partition g10 , . . . , gp0 of E and then [4], try to improve the solution exchanging
the elements to its most promising group, for some criteria, and then recalculate the centre. The procedures
continue until no improvement is achieved. These procedures are called Procedures of Means, in essence
they have the same objective, but they differ by their strategies to find the final solution. The preliminary
method of means is the Forgy’s method (this method is also called H-Means), [19,21]:

3.1. The Forgy’s method

Step 0: Set k = 0
Step 1: If k = 0, define g10 , . . . , gp0 of E;
Otherwise, build a new g1k , . . . , gpk of E, assigning each individual to a group
where its centre is closest. Set k = k + 1.
Step 2: Calculate the centroids of these groups.
k ) = f (g k−1 ), stop;
Step 3: If f (gm m
Otherwise, continue step 1.

An initial solution (partition) is given to the method as the centroids of this partition. In general, this
partition is chosen at random, but with a little extra work in this initial step the method finds better results.
The local minimum convergence is guaranteed, and the time required to achieve this result is O(n). The
problem of this method is the degeneracy, i.e. the number of final clusters formed may be different from
the p desired. To avoid this, Hansen and Mladenovic (2001) proposed a step to isolate in clusters of a
unique individual the difference between the number of achieved clusters (NAC) and p. The individuals
are taken from the most distant to its centre to the least, in decreasing order. This step is included as
follows (H-Means+).

3.2. The H-Means method

Step 0: Set k = 0
Step 1: If k = 0, define g10 , . . . , gp0 of E;
Otherwise, build a new g1k , . . . , gpk of E, assigning each individual to a group
where its centre is closest. Set k = k + 1.
ARTICLE IN PRESS
8 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Step 2: Calculate the centroids of the groups formed


Step 3: If NAC  p then
Order the elements accordingly to the decreasing distance to its cluster centre; Take and isolate
the first p-NAC groups ordered. Make the centroids be these elements;
Reduce f (gm k ) from the distances taken
k
Step 4: If f (gm ) = f (gmk−1 ), stop;

Otherwise, continue 1.

There is a difference between H-Means+ and the original Forgy’s method. But nevertheless, in this
text we will use the same denomination for the Forgy method and the non-degenerate Forgy, that is the
H-Means+ method proposed by Hansen and Mladenovic (2001).
A variation of the Forgy’s method is the well known KMeans method proposed by Jansen (1966) and
later by MacQueen (1967). In the MacQueen’s version we also have an initial given partition with p
centres but the evaluation of the centres is a little different from the Forgy’s method. In this method at
each allocation of an individual to its group centre, a new evaluation of the centroids is made. It introduces
a computational effort to the method as can be seen below.

3.3. The KMEANS method

Step 0: Set k = 0
Step 1: If k = 0, define g10 , . . . , gp0 of E;
Step 2: Take the object k and attribute to a new group gl , (l = i), where the centroids would be obtained
by [2]
nl x̄l − xj ni x̄i − xj
x̄l = and x̄i = ,
nl − 1 ni − 1
where nl is the cardinality of the group gl , ni the cardinality of the group gi , x̄l the centroid of
the group gl , x̄i the centroid of the group Ci , xj the individual j;
Step 3: Let vj i is the improvement achieved by the objective function (measure of dissimilarity):
ni nl
vj i ← ||x̄i − xj ||2 − ||x̄l − xj ||2 , xj ∈ gl , x̄i ∈
/ gl ,
ni + 1 nl − 1
where

vj i = improvement of the objective function by reallocating j ;

Step 4: If no improvement was obtained, terminate (a local optimum was achieved) Otherwise, imple-
ment the greatest vj i , go to step 2.

As the above methods, the JMeans version, proposed by Hansen and Mladenovic (2001), starts with a
defined (random, p.ex.) p-partition. In this method, at each iteration, the individuals that are far from their
group’s centroid (with a tolerance ε) are reallocated to other centres that further improve the objective
function. This strategy is much more elaborate than the others, although the method remains with the
KMEANS complexity, O(n2 ).
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 9

3.4. The JMeans method

Step 0: Set k = 0
Step 1: If k = 0, define g10 , . . . , gp0 of E;
Step 2: Take objects of group gi and attribute to a new group gl , (l = i). These objects must be far
from their centroids for a given tolerance ε, mark them as non-occupied.
Step 3: (Jump neighbourhood). // exploring the neighbourhood.
For each j (j = 1, . . . , n) repeat the following steps:

(a) (Relocation). Add a new cluster centroid xM+1 at some unoccupied entity location xj and the index
i of the best centroid deletion; denote with vij the change in the objective function value;
 
(b) (Keep the best). Keep the pair of indices i and j , where vij (defined in KMEANS) is minimum;
 ;
(Move) Replace centroid xi  by xj  and update assignments accordingly to get the new partition PM

set f := fopt + vi  j  .

Step 4: If no improvement was obtained, terminate (a local optimum was achieved) Otherwise, imple-
ment the greatest partition, go to step 2.

Many other methods are studied by the literature using other strategies or other techniques from neural
networks (Kohonen), fuzzy sets to alternative c-means. Major related literature in cluster methods and
applications can be viewed in IEEE Transactions in Pattern Analysis and Machine Intelligence, and in
Pattern Recognition. For a mathematical programming overview on clustering, refer to [4]. For a better
review of the state-of-the-art unconstrained methods, refer to [25–30].

3.5. Phase 1: Constructive step

In this phase, the coordinates of each individual are included in a balanced q-tree structure. As the
points (individuals) are included in the tree, the structure self-adjusts, to position all the roots of sub-
trees approximately as the 1-median of their sub-trees (points already included). Some rotations, based
on AVL-trees and extended to 2-dimentional data structures, are used to balance the sub-trees. This
algorithm is O(log n) for the insertion and for the deletion parts [20,31]. The purpose of this algorithm is
to define precisely the Neighbourhood of the individuals, and to map as accurately as possible the initial
cluster solution for a given constructive/improvement cluster algorithm such as the Forgy Algorithm or
the JMeans Algorithm [19,21].
The guided partitioning phase can be viewed in Fig. 4. First, the individuals are positioned in the q-tree
according to their relative position (quadrants). As the individuals are placed, the tree is adjusted (rotated)
to balance its nodes. This process is similar to adjusting sons in the tree by the approximate median of
each internal node.
The two cluster methods (the Forgy method and the JMEANS method), described above in this sec-
tion, can be considered as improvement type algorithms, and encompass the idea of trying to relocate
individuals from their initial cluster to a new cluster, until the individuals’ positions “minimise” the total
dissimilarity [21]. All these types of methods can be used in cascade, Forgy and then JMeans or vice
versa, and they can give different results if we consider the initial partition given to any of them. To ob-
serve this phenomenon applied to our case, we decided to build the algorithms using our structured q-tree
ARTICLE IN PRESS
10 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

P1

P1
P2 P2
1stQ 2ndQ 3rdQ 4thQ
P3
P3 P4 P4
P6 P5
Rotations

P6 P5 P3

P2 P1 P6 P4

1stQ 2ndQ 3rdQ 4thQ P5

Fig. 4. A view of the q-tree procedure.

procedure as the starting step of those algorithms. The procedures were tested for a set of instances where
the individuals are in R2 , and are uniform randomly distributed in the space where X ∈ [−50, 4950] and
Y ∈ [−390, 4610]. The results are shown in Table 1, which shows the objective function (dissimilarity
measure), the number of iterations and the time to find a local optimum solution.
In Table 1, the algorithms are named in the following way: Forgy—Forgy with a random starting
solution, JMeans—JMEANS with a random starting solution; Forgy A—Forgy with the q-tree solution
as the starting solution; JMeans A—JMeans with the q-tree solution as the initial solution.
When starting with q-tree solution, we divide the number of individuals by the number of p-clusters
and distribute this result between the p-clusters. For the tests, we made 10 different instances (samples)
for each number of points (1000, 2000, . . . , 5000). The clusters are built for the first three tests (with
1000, 2000 and 3000 points/individuals), we can see the best dissimilarity solution for the Forgy A in
almost all results. These methods are working in cascade, and it is only outperformed by another method
(JMeans) in the tests with 3000 and 5000 points/individuals, although the results from JMeans A and
Forgy A are very close.
Another important observation is the number of iterations. The Forgy method with an initial random
solution does not give good results. However, the Forgy method combined with the structured q-tree
procedure quickly provides an initial solution for the other methods. The resulting solutions obtained are
very interesting in terms of time and dissimilarities. Hence, we can see, that for the majority of methods,
the results produced are much better in terms of time, number of iterations and total dissimilarity if used
with a Forgy method combined with the structured q-tree procedure as an initial solution. We extend these
results for the capacitated centred clustering.
The unconstrained clustering methods can be modified to encompass the load constraint by including,
before the exchanging step, a check of the exchange feasibility. In this step, the load of the individual
is removed from the source cluster and relocated to the target cluster. If this is feasible and there is any
improvement in the objective function, the exchange is performed.
For the capacitated case, we initially process the geometric organisation and positioning of the in-
dividuals using a q-tree. We use two different strategies in building feasible initial clusters. In the first
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 11

Table 1
Evaluation of the effect in better partitioning and cascading Means unconstrained min-sum-of-squares cluster methods (average
of 10 samples for each number of points)

Number of individuals Method Fobj Iter Time (s)

1000 Forgy 20477.89 24 0.27


Forgy A 20412.94 27 0.31
JMeans 20462.31 1191 74.57
JMeans A 20435.54 658 41.36

2000 Forgy 29006.09 35 0.76


Forgy A 28985.54 31 0.68
JMeans 28941.49 2682 649.14
JMeans A 29017.52 1353 327.64

3000 Forgy 35584.30 40 1.27


Forgy A 35624.22 32 1.04
JMeans 35575.93 3951 2116.03
JMeans A 35525.99 1871 1005.57

4000 Forgy 40942.23 45 1.90


Forgy A 40913.63 49 2.08
JMeans 40979.56 5614 5322.88
JMeans A 40979.02 2864 2720.84

5000 Forgy 45900.40 42 2.19


Forgy A 45898.12 47 2.51
JMeans 45891.85 7035 10370.62
JMeans A 45927.05 3462 5097.71

strategy (Next Fit), we consider a first cluster, insert the root in the actual cluster, and delete it from the
q-tree. We continue this step until the cluster capacity is reached. If the actual root overloads the present
cluster capacity, we open another cluster and proceed with the procedure until all individuals are clustered
(q-tree is empty). In the second (Best Fit), we start as in the first strategy, but once there are more than
one cluster and a root candidate to be inserted, the procedure searches for the closest feasible insertion
cluster (closest considering the root and the ith cluster centre). All these strategies work like the classical
heuristics from the bin packing problem (Next Fit and Best Fit). The meaning of best here is the closest
centre [32].
After this step, once the cluster(s) is/are feasible, we execute the algorithms Forgy (H-Means+) and/or
JMEANS, both constrained in the exchange phase.
The procedure CAPCluster in Fig. 6, does not take into account simultaneously the two proposed
problems, p-CCCP and g-CCCP. To consider this, we build another method based on the unconstrained
clustering initial solution. The major idea is: from a solution produced by the unconstrained clustering
step, if it is not feasible make it feasible and try to improve the feasible clusters found using CAPMEANS().
Fig. 7 shows the UCCAPCluster procedure which proceeds like this.
ARTICLE IN PRESS
12 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

1. Procedure NextFit ; 1. Procedure BestFit ;


2. // Building feasible clusters with the first strategy using q-tree 2. // Building feasible clusters with the second strategy using
3. // I (In) : Set of Individuals q-tree
4. // Qmax : Maximum cluster demand 3. // I (In) : Set of Individuals
5. // q (In) : demand vector of individuals 4. // Qmax : Maximum cluster demand
6. // Q (Out) : load vector of clusters 5. // q (In) : demand vector of individuals
7. // IC (Out) : Assignment vector of individual to a cluster 6. // Q (Out) : load vector of clusters
8. // NC (Out) : Final number of clusters 7. // IC (Out) : Assignment vector of individual to a cluster
9. for ∀i ∈ I do 8. // NC (Out) : Final number of clusters
10. call q-tree_Insert(i); // Insert individual in the balanced q-tree 9. for ∀i ∈ I do
11. j:=1; Qj:=0; 10. call q-tree_Insert(i); // Insert in the balanced q-tree
12. repeat 11. j:=1; Qj:=0;
13. i:=q-tree_root(); // Take the root from q-tree generated 12. repeat
14. If Qj+qi ≤ Qmax Then 13. i:=q-tree_root(); // Take the root from q-tree generated
15. call insert_individual_in_cluster(j, i, ICj, Qj , qi); 14. // Find Closest feasible open cluster
16. else 15. Feasible :=FindBestOpenCluster(j, qi);
17. begin // Open a new cluster 16. If Feasible Then
18. j:=j+1; 17. call insert_individual_in_cluster(j, i, ICj, Qj , qi);
19. Qj:=0; 18. else
20. end; 19. // Open a new cluster for the incoming individual
21. call q-tree_Delete(i); // Remove the actual root 20. begin
22. until q-tree_empty(); // Check if the q-tree is empty 21. j:=j+1;
23. NClusters:=j; // Final number of clusters 22. Qj:=0;
24. return (Q, IC,NC) 23. call insert_individual_in_cluster(j, i, ICj, Qj , qi);
25. end NextFit 24. end;
25. call q-tree_Delete(i); // Remove the actual root
26. until q-tree_empty(); // Check if the q-tree is empty
27. NClusters:=j; // Final number of clusters
28. return (Q, IC,NC)
29. end BestFit

Fig. 5. Next Fit and Best Fit algorithms using a structured balance q-tree.

1. Procedure GenericCAPCluster
2. // A constructive procedure for the g-CCCP
3. // Build initial feasible clusters
4. call NextFit(); // or BestFit();
5. // Improvement phase using methods of Means (Forgy, Jmeans)
6. call Dissimilarity(IC,Objective_function); // Calculate centres and dissimilarity
7. call CAPMEANS(); // Calculate avoid generating the initial partition
8. end // GenericCAPCluster

Fig. 6. A constructive procedure for the g-CCCP.

For simplicity our proposed method CAPCluster can be viewed below in Figs. 5 and 6:
The UCCAPCluster procedure in Fig. 7 (UC-unconstrained to constrained), shows between lines
17–37 that the individual which overloads the cluster is relocated to a new feasible cluster, closest to this
individual. If no cluster can be used, a new one is opened. Line 9 creates a cluster vector with the lists of
their elements, from the solution generated by the unconstrained non-degenerate procedure, H-Means+.
In line 10, there is an ordering of all clusters by the decreasing demand of their individuals (vector of
lists, MatIC). In this ordering process, one can use the distance or the distance/demand criteria, instead
of the demand only, the use of these criteria can change the results, depending on the instance.
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 13

1. Procedure UCCAPCluster;
2. // A constructive procedure for the g-CCCP and p-CCCP
3. if p is not given then
4. g:=BestFit(); // Number of clusters produced by BestFit
5. else
6. g:=p;
7. // Unconstrained Phase
8. call Forgy(g); // Build clusters using H-Means+ with g-clusters
9. call Build(MatIC);//Cluster vector with the list of its individuals and their demands
10. call Order(MatIC);//Order each cluster by the decreasing demand of its individuals
11. If Clusters are not feasible Then
12. for j := 1 to g do
13. If MatIC[j].Qtotal ≤ Qmax Then // Reallocate the infeasible individuals
14. begin
15. Lj:=0;
16. for i:=1 to NIC[j] do
17. If MatIC[j,i].q + L j ≤ Qmax Then
18. begin
19. Feasible:=FindBestOpenCluster(k, qi);
20. If Feasible Then
21. call insert_individual_in_cluster(k, i, ICj, Qj , qi);
22. else
23. // Open a new cluster for the incoming individual
24. begin
25. g := g + 1;
26. Qj := 0;
27. call insert_individual_in_cluster(g, i, ICj, Qj , qi);
28. end
29. end;
30. else
31. Lj:= Lj+ MatIC[j,i].q;
32. end; // for j
33. // Improvement phase using methods of Means (Forgy, Jmeans)
34. call Dissimilarity(IC,Objective_function); // Calculate centres and dissimilarity
35. call CAPMEANS(); // Calculate avoid generating the initial partition
36. end // GenericCAPCluster

Fig. 7. UCCapCluster algorithm for p/g-CCCP instances.

Line 4 finds the number of clusters at minimum or close to the minimum number, taking into account
the g-CCCP model. We found by experimentation that the Best Fit() procedure obtains least/equal number
of clusters than Next Fit(), see results below.

3.6. Phase 2: Metaheuristic step (VNS)

This step is processed independently, after analysing the clusters obtained in the first phase. We de-
fine the type of exchanges (number of individuals selected to proceed the exchange), and the time al-
lowed for each exchange in the VNS algorithm. We build a VNS procedure, that considers two major
strategies:

1. Closest centre: Randomly choosing the individuals, and trying to insert them in the closest cluster;
ARTICLE IN PRESS
14 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

1. Procedure VNS(Individuals, Groups,Initial_Objective_Value)


2. Objective_function:=Initial_Objective_Value;
3. while time < selected_time do
4. begin
5. call Select_Individuals();
6. call Select_Clusters();
7. call try_exchange();
8. New_Objective:=evaluate_new_objective();
9. If New_Objective < Objective_Function Then
10. begin
11. call implement(“try_exchange()”);
12. Objective_Function:=New_Objective;
13. Gain:= Initial_Objective_Value - Objective_Function;
14. end
15. else
16. call desimplement(“try_exchange()”);
17. end
18. end // VNS
(a)

(b)

(c)

Fig. 8. (a) VNS algorithm as the final improvement phase. (b,c) Evaluation of the q-tree+H-Means+ and then VNS with 1-ex-
change, 2-exchange and 3-exchange for an instance of 13,221 individuals and 30 groups.

2. Random centre: Randomly choosing the individuals, and trying to insert them in randomly selected
clusters.
The proposed VNS algorithm, can be written generically as follows (Fig. 8):
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 15

In the proposed VNS procedure, the following set of procedures does as follows:

1. Select_Individuals()—according to the type of exchanges, a specified number of random distinct


individual(s) is/are selected;
2. Select_Clusters()—according to the type of strategy, a specified number of clusters (equal to the
number of individuals but not necessarily distinct), are selected for each individual to be moved to;
3. Try_exchange()—exchange selected individuals between the clusters;
4. Evaluate_new_objective()—calculate new dissimilarity and store the exchanges (individuals to clus-
ters) if they are all feasible;
5. Implement()—proceed with the exchange, recalculating centres, and fixing the new solution proposed
by try_exchange();
6. Desimplement()—restore the solution as it was in the previous iteration proposed by try_exchange().

In essence it is the same algorithm proposed by Hansen and Mladnovic [33], the difference here is in
the implementation of lines 5–7. In our case, we fix the choice of the number of exchanges. According
to the appropriate strategy used, instead of selecting a random k source individuals to k target clusters
at each iteration, we maintain k fixed for all iterations, we call this fixed k-exchange. The experimental
results obtained on the instances we have for this problem, suggested that fixing k was a good strategy. It
can also be implemented as the original VNS algorithm [21].
VNS is a type of Monte Carlo integrated to a Neighbour search algorithm that is very simple and
appropriate for this problem, since making and returning the exchangeable tries is easy to implement.
The evaluation time is in the order of O(1).

4. Results from literature and “real” applications

We developed a first set of instances (TA) and test some other kindly offered by Professor Luiz Antônio
Lorena, for the Capacitated p-Median problem [9]. For our tests, we use the cost function (dissimilarity)
calculated for the CCP instances using the column generation program produced by Lorena and Senne [9].
We consider CCP costs, once its instances optimal/near optimal objective values are at the same order of
magnitude to the CCCP for the same p or g. All the tests were made using a PC-AMD ATHLON 1.6 GHz
512 MB RAM, and all the instances are available at http://www.lcc.uece.br/∼negreiro/artigos/cccp.
In Table 2, we can see a set of evaluations for the procedure UCCAPCluster, for a number of instances
TA specially generated for given demands (qi = 1) and specific given capacities Q. The tests from Lorena
and Senne [9], are the set of instances initiated by SJC and P3038. Our results return the g value achieved
for each instance and strategy (Next Fit and Best Fit), we also see CCP related instance best feasible cost
known (g = p), and for the VNS (1+1) phase with 1-exchange and then fixed 2-exchange, each running
in 1 min. The percentage of improvement achieved between the construction phase and VNS phase are
reported (imp%).
The set of TA instances do not appear in the Next Fit tests, since the same results were obtained in Best
Fit. The Best Fit strategy shows how good it is in the sense of constructing the least number of clusters
between the two strategies. For the CCP × g-CCCP results (Gap%), for the same p, the g-CCCP objective
cost is [−0.48, 28.96]% far from the results of CCP produced by the Lagrangean/surrogate method, for
the TA and SCJ instances, where the bounds were obtained using CPLEX [9,34].
ARTICLE IN PRESS
16 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Table 2
Results from UCCAPCluster × Lorena’s considering a set of instances from the literature, and built for our evaluation

Instance No points Q P CCP p-CCCP Time (s) VNS (1+1) Imp % GAP %

Next Fit
p3038_600 3038 321 600 122020.66 192575.70 20.81 192024.83 0.28 57.37
p3038_700 3038 273 700 108653.04 176731.07 16.07 176731.07 0.00 38.52
p3038_800 3038 238 800 98483.26 184502.38 17.15 184502.38 0.00 87.34
p3038_900 3038 216 900 90131.62 176781.51 26.93 176781.51 0.00 96.13
p3038_1000 3038 191 1000 83012.98 159139.89 23.34 159139.89 0.00 91.70

SJC1_dat 100 720 10 17288.99 19429.459 0.020 17696.53 8.91 2.30


SJC2_dat 200 840 15 33370.20 35322.476 0.020 33423.84 5.37 0.16
SJC3a_dat 300 740 25 45335.16 50254.310 0.078 47985.29 4.51 5.52
SJC4a_dat 402 840 30 62026.94 76352.451 0.078 66689.96 12.65 6.99

Best Fit
TA25 25 6 5 1216.03 1528.64 0.00 1257.51 17.73 3.30
TA50 50 11 5 4429.06 4605.03 0.00 4485.44 2.59 1.26
TA60 60 13 5 5357.36 5475.96 0.00 5391.47 1.54 0.63
TA70 70 17 5 6203.44 6292.06 0.00 6275.99 2.55 1.16
TA80 80 12 7 4153.64 5918.44 0.00 5846.94 1.20 28.96
TA90 90 23 4 9032.90 9646.38 0.00 9134.69 5.30 1.11
TA100 100 17 6 8181.04 8270.26 0.00 8141.70 1.55 −0.48

SJC2_12_dat 200 840 12 38796.80 49094.94 0.020 41949.56 14.55 7.52


SJC3a_16_dat 300 740 16 64129.20 96579.12 0.020 72545.49 24.88 11.60
SJC4a_21_dat 402 840 21 –xxx– 88981.33 0.047 87367.94 1.81 –xxx–

For all P3038, we do not have the results for the g-CCCP from Lorena’s program (p = g), the results
reported are from the paper [9]. The great difference between obtained results may be further investigated.
For the comparison Next Fit × Best Fit, Table 3, the difference between both methods in the number of
clusters formed can be noticed. For example, the difference for the instance P3038/Qmax = 191, where
Next Fit and Best Fit results differs in more the 10% in the number of clusters.
Considering the effect of time to obtain good solutions, Table 3, we have for UCCAPCluster heuristic
a performance that is less time consuming. Very high scale instances can be hold, and the method can
be used to obtain initial solutions that are 0–50% to the best known for the set of instances tested. For
CCP, pex., the instance SJC4a_dat, the method proposed by Lorena and Senne [9] takes 1.34 h to solve
the instance. For this particular instance, the difference between CCP cost and g-CCCP is 6,99%, with
2 min of VNS.
We also made our tests for instances from real meaning, garbage collection and sales force territorial
design. For this cases we develop a set of instances that are related to these two applications to evaluate
the progress of our algorithm.
The second set of instances (7), was formed from sub-sets of 13,221 customers of a food distributor
that operates in the metropolitan area of Fortaleza, capital of Ceará State in Brazil. The demand of an
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 17

Table 3
Comparison between proposed methods for g-CCCP case

Lorena’s instances

SJC1 Next Fit Best Fit


NI: 100, Q = 720 G = 10 g = 9/10

Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)

q-Tree + Forgy 21782.34 0.00 19493.53 10.51% (9) 27462.61 0.00 20495.54 25.36%
UCCAPCluster 19429.45 0.00 17696.53 8.91% (10)19131.00 0.01 18005.17 5.88%

SJC2 Next Fit Best Fit


NI: 200, Q = 204 g = 12/13 g = 12
Method Obj func Time (s) VNS (1+1) Obj func Time (s) +VNS (1+1)
q-Tree + Forgy (12)49180.31 0.02 39576.09 19.52% 79414.83 0.00 41171.34 48.15%
UCCAPCluster (13)39110.14 0.02 36955.71 5.50% 49094.94 0.02 41949.56 14.55%

SJC3 Next Fit Best Fit


NI: 300, Q = 740 G = 17 g = 16
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 81567.71 0.03 62912.61 22.87% 108936.88 0.01 68354.34 37.25%
UCCAPCluster 61285.36 0.06 59266.17 3.29% 96579.12 0.02 72545.49 24.88%

SJC4 Next Fit Best Fit


NI:402, Q = 840 G = 21/23 g = 20/21
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy (21)98257.97 0.03 84165.56 14.34% (20)126763.14 0.04 97444.74 23.12%
UCCAPCluster (23)79580.77 0.04 77976.48 2.01% (21)88981.03 0.04 87367.94 1.18%

P3038_600 Next Fit Best Fit


NI: 3038, Q = 321 g = 538 g = 498
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 199648.18 7.95 198065.35 0.79% 541160.19 9.57 535613.70 10.24%
UCCAPCluster 193788.72 12.76 193788.72 0.00% 372170.64 12.21 371771.22 0.05%

P3038_700 Next Fit Best Fit


NI: 3038, Q = 273 g = 639 g = 582
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree+ Forgy 198309.60 7.90 196817.68 0.75% 508272.45 11.76 507966.93 0.00%
UCCAPCluster 178441.39 12.5 178441.39 0.00% 365525.68 11.50 363243.31 0.62%

P3038_800 Next Fit Best Fit


NI: 3038, Q = 238 g = 745 g = 669
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 174057.10 8.08 174057.10 0.00% 538082.35 10.23 535195.53 0.53%
UCCAPCluster 169633.94 13.09 169633.94 0.00% 354653.42 15.34 354653.42 0.00%
ARTICLE IN PRESS
18 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Table 3 (continued)

Lorena’s instances

SJC1 Next Fit Best Fit


P3038_900 Next Fit Best Fit
NI: 3038, Q = 216 g = 853 g = 761
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 156165.36 7.14 156165.36 0.00% 421702.32 10.15 420789.82 0.21%
UCCAPCluster 144180.41 13.43 144180.41 0.00% 303916.41 16.28 303916.41 0.00%

P3038_1000 Next Fit Best Fit


NI: 3038, Q = 191 g = 966 g = 846/849
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 146585.25 9.98 146585.25 0.00% (846)445340.69 9.75 443726.45 0.36%
UCCAPCluster 131445.91 11.81 134396.99 0.00% (849)291294.55 18.93 291294.55 0.00%

TA instances

TA25 Next Fit Best Fit


NI: 25, Q = 6 g =6 g =5
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 2510.46 0.00 1256.62 49.99% 2341.42 0.00 1256.62 46.33%
UCCAPCluster 1717.05 0.00 1251.44 27.11% 1528.64 0.00 1257.51 17.73%

TA50 Next Fit Best Fit


NI: 50, Q = 11 g =5 g =5
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 6848.86 0.00 4493.09 34.39% 6848.86 0.00 4498.72 34.31%
UCCAPCluster 5324.71 0.00 4476.12 15.93% 4605.03 0.00 4485.44 2.59%

TA60 Next Fit Best Fit


NI: 60, Q = 13 g=5 g=5
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 7942.48 0.00 5386.74 32.17% 7942.48 0.00 5390.73 32.12%
UCCAPCluster 6179.57 0.01 5356.58 13.31% 5475.96 0.00 5391.47 1.54%

TA70 Next Fit Best Fit


NI: 70, Q = 17 g =5 g=5
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 8900.64 0.00 6241.55 29.87% 8900.64 0.00 6241.55 29.87%
UCCAPCluster 6463.82 0.00 6241.55 3.43% 6292.06 0.00 6275.99 2.55%

TA80 Next Fit Best Fit


NI: 80, Q = 12 g =7 g =7
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 10178.94 0.00 5730.28 43.70% 10178.94 0.00 5730.28 43.70%
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 19

Table 3 (continued)

Lorena’s instances

UCCAPCluster 5913.44 0.00 5730.28 3.09% 5918.44 0.00 5846.94 1.20%

TA90 Next Fit Best Fit


NI: 23, Q = 23 g =4 g=4
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 11176.82 0.00 9103.21 18.55% 11176.82 0.00 9103.21 18.55%
UCCAPCluster 9979.46 0.00 9103.21 8.78% 9646.38 0.00 9134.69 5.30%

TA100 Next Fit Best Fit


NI: 100, Q = 17 g=6 g=6
Method Obj func Time (s) VNS (1+1) Obj func Time (s) VNS (1+1)
q-Tree + Forgy 13033.27 0.00 8128.38 37.63% 13033.27 0.00 8283.57 36.44%
UCCAPCluster 8533.86 0.00 8122.67 4.81% 8270.26 0.00 8141.70 1.55%

individual is one unit of service, and all individuals must be covered by a district. For this instance,
capacity means a number of visited customers per month. Fig. 8(a)–(c) show the evolution of the process
of calculating capacitated sales force districts in the Fortaleza’s area.
Table 4 compares two methods, Forgy (q-tree+H-Means+) and UCCAPCluster. The VNS phase was
applied to test if any improvements were made (running for 5 min in a static 2-exchanges). The objective
function is the total dissimilarity as in the general CCCP model. Below the VNS title is the improvement
achieved by using the VNS for the same methods above. As we can see, the Forgy+VNS dominates in
the instances from DONI1 to DONI6. In DONI2 instance, Best Fit strategy for modified Forgy reaches
the least number of clusters possible for it (5).
In Table 4, the improvement achieved in large instances is very small as we maintain the time as the
other instances for the VNS step. For evaluating if VNS can obtain better results if we give more time, we
experimented for the instance DONI7 (13,221 customers) 20 min after the solution obtained by modified
Forgy with Best Fit. In the experiment, from the initial solution we proceed first the 1-exchange (running
for 5 min, 3.13% improvement, 175 success from 92,895 tries), 2-exchanges (10 min, 0.62% improvement
from the q-tree+Forgy solution, 35 success from 205,385 tries) and finally 3-exchanges (5 min, 0.06%
improvement from the last improved result, 3 success from 105,109 tries)–VNS (5+10+5). Note that even
for this time the solution is still far from the best known 23478.79, Table 4. Fig. 9 shows the decreasing
steps of the objective function using VNS, note that in Table 4 we find a better result. This experiment
shows that the VNS step may obtain very different results, and it is not stable for these type of instances.
In the third set of instances, we have a set of unoriented and oriented street segments from Fortaleza/CE,
where each segment demands a weight uniformly and randomly distributed between 0 and 100 kg per
segment. All segments are identified by their centroids, and the weights of the segments are assigned to
their centroid. The total load of the segments for these instances is Qtotal = 190.001 kg (3780 centroids)
and Qtotal = 2034.699 kg (40,919 centroids). We choose vehicles’ areas weighted with a maximum of
30.000 kg (local load packers can perform daily 3 trips of 10 t, or 4 trips of 7.5 t).
ARTICLE IN PRESS
20 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Table 4
Set of instances from sales force districting

DONI1 Next Fit Best Fit


NI: 1000, Q = 200 g=6 g=6

Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min

q-Tree + Forgy 3950.91 0.00 3072.80 22.22% 3577.04 0.00 3065.64 28.10%
UCCAPCluster 3590.91 0.07 3021.41 15.86% 3577.04 0.04 3026.27 15.40%

DONI2 Next Fit Best Fit


NI: 2000, Q = 400 g=6 g = 5/6
Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min
q-Tree + Forgy 7596.84 0.04 6080.70 19.95% (5) 9795.03 0.00 7596.91 22.44%
UCCAPCluster 7514.13 0.10 6449.11 14.18% (6) 8405.21 0.01 6412.13 23.71%

DONI3 Next Fit Best Fit


NI: 3000, Q = 400 g =8 g=8
Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min
q-Tree + Forgy 9575.20 0.04 8786.60 8.23% 9575.20 0.03 8769.05 8.41%
UCCAPCluster 11587.71 0.18 8989.92 22.42% 11587.71 0.17 9000.74 22.33%

DONI4 Next Fit Best Fit


NI: 4000, Q = 400 g = 10 g = 10
Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min
q-Tree + Forgy 18341.50 0.02 11639.93 36.53% 18341.50 0.02 11516.14 37.21%
UCCAPCluster 15934.29 0.54 14626.69 8.21% 15934.29 0.54 14633.45 8.16%

DONI5 Next Fit Best Fit


NI: 5000, Q = 450 g = 12 g = 12
Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min
q-Tree + Forgy 11848.74 0.20 11635.18 1.80% 12603.80 0.14 11929.30 5.35%
UCCAPCluster 14459.60 0.60 12605.70 12.82% 12965.86 0.42 12254.97 5.48%

DONI6 Next Fit Best Fit


NI: 10000, Q = 450 g = 23 g = 23
Method Obj func Time (s) VNS 5 min Obj func Time (s) VNS 5 min
q-Tree + Forgy 20117.20 0.50 18443.50 8.31% 24672.55 0.31 20038.29 18.78%
UCCAPCluster 23449.39 2.21 23289.81 0.68% 23437.21 2.34 23121.46 1.35%

DONI7 Next Fit Best Fit


NI: 13221, Q = 450 g = 30 g = 30
Method Obj func Time (s) VNS (5+10) Obj func Time (s) VNS (5+10)
q-Tree + Forgy 30896.43 0.45 26447.37 14.39% 28636.09 0.84 25010.48 11.10%
UCCAPCluster 25341.22 3.09 24208.53 5.15% 24553.51 3.36 23478.79 4.37%
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 21

VNS Decreasing - DONI7 with 13,221 customers -


Modified Forgy as Starting Solution
28750
28500
28250

Obj Function
28000
27750
27500
27250
27000
26750
1 3 5 7 9 11 13 15 18.5
Time (Min)

Fig. 9. VNS running for 20 min, and the value of the objective function using 1–3 exchanges—in shadow 1-exchange results, in
grey 2-exchange and in degrade 3-exchange.

Figs. 10(a) and (b) show the evaluation process of calculating capacitated garbage collection zones,
using UCCAPCluster approach for a sub-area of Fortaleza. In this evaluation, we can see what happens
with the initial feasible partition using UCCAPCluster algorithm (a), then the solution obtained by VNS,
after 60 min of 1-exchange, 60 min of 2-exchanges. In this instance, we have p = 7 for every case and
the load distribution can change between clusters. The achieved improvement is 0.28%.
Figs. 11(a) and (b) show another evaluation process for all the city’s street segments. In this evaluation,
we can also see what happens with the initial feasible solution using only the UCCAPCluster. We have
p = 68 clusters and the load distribution can be flexible between them. We avoid using VNS in this case.
In Table 5, we have the results for the proposed UCCAPCluster algorithm. For a better view, we include
the same elements proposed by Table 3, now, considering the instances from Figs. 10 and 11.
We have also done, for these instances, tests to evaluate the most appropriate way of processing the
VNS phase. We also tried mixed exchanges, 1–4 exchanges, randomly selected (as the original VNS,
[21]), but the results obtained are much poorer than the ones reported here. Because of this, we think that
the best way to use VNS for these instances and approaches is in the sequential form, or exchanges one
at a time.

5. Conclusion

In this work we propose a new problem we call the capacitated centred clustering problem (CCCP), or
capacitated continuous clustering problem. We propose two different models for different views: p-CCCP,
where the number of clusters is given, and Generic CCCP, where we wish to find the best (p) number of
clusters while minimising the dissimilarity between clusters.
Since the problems are NP-Complete, we prepare a two phases heuristic method for the Generic
case, using a structured q-tree and constrained Means (Forgy-HMeans+ and JMeans) method to generate
approximate solutions we call CAPCluster. We evaluate empirically the process of cascading improvement
clustering (Means) methods. We also propose a more general procedure UCCAPCluster that can hold the
p/g-CCCP, which is much more appropriate than the CAPCluster procedure for the instances tested.
Instances from the CCP literature, and very large instances from sales force districting of a food
distributor and design of garbage collection zones, in Fortaleza, were used to evaluate the method. We
compare the results using CCP costs obtained from Column Generation Antônio Lorena’s program, since
CCP values are close to CCCP, if in the instance, the number of medians (p) and the capacity Q is the
ARTICLE IN PRESS
22 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

Fig. 10. (a) Garbage collection great area and initial solution from the UCCAPClust algorithm; (b) Final solution after 120 min
of VNS and 0.27% of improvement.

same for both problems. We obtained in the majority of the instances tested that the objective function
values of the CCCP are greater than the ones obtained for CCP.
All the tests can be found at http://www.lcc.uece.br/∼negreiro/artigos/cccp. The tests were done in the
SISROT䉸 (Full and TRANSLIX) system, a software designed for solving related routing problems after
clustering.
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 23

Fig. 11. Solution from the constructive step using UCCAPCluster procedure.

Table 5
Set of instances related to garbage collection in Fortaleza-CE/Brazil

GC01 Next Fit/Best Fit


NI: 3872, Q = 30 t g=7

Method Obj func Time (s) +VNS (60+60)

q-Tree+ Forgy 3095.10 0.09 3013.84 2.62%


UCCAPCluster 3007.35 0.24 2999.11 0.27%

GC02 Next Fit/Best Fit


NI: 40919, Q = 30 t g = 68
Method Obj func Time (s) +VNS
q-Tree+ Forgy 160022155.44 187.50 -XXX- -XX-
UCCAPCluster 34414277.03 9.84 -XXX- -XX-

Acknowledgements

We would like to thank Professor Philippe Michelon from the Université de Avignon/France for his
appointments in our models and comments, and Diane Béland for her English review of this text. Thanks to
Professor Luiz Antônio Lorena, from the Instituto Nacional de Pesquisas Espaciais/Laboratório Associado
de Computação e Matemática Aplicada (INPE/LAC) for his kind support in the CCP results. We also
thank the anonymous referees for their suggestions to improve this work. This work is supported by
ARTICLE IN PRESS
24 M. Negreiros, A. Palhano / Computers & Operations Research ( ) –

FUNCAP (Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico) by the grant for
the project “Otimização Combinatória em Grafos”, and GRAPHVS.

References

[1] Hartingan JA. Clustering algorithms. New York: Wiley; 1975.


[2] Späth H. Clustering algorithms for data reduction and classification of objects. Chichesten: Ellis Hornwood; 1980.
[3] KoskosidisY, Powell WB. Clustering algorithms for consolidation of customer orders into vehicle shipments. Transportation
Research B 1992;26B(5):365–79.
[4] Hansen P, Jaumard B. Cluster analysis and mathematical programming. Mathematical Programming 1997;79:191–215.
[5] Mulvey JM, Beck MP. Solving capacitated clustering problems. European Journal of Operations Research 1984;18:
339–48.
[6] Osman I, Christofides N. Capacitated clustering problems by hybrid simulated annealing and tabu search. International
Transactions in Operations Research 1994;1(3):317–36.
[7] França PM, Sosa NM, Pureza V. An adaptive tabu search algorithm for the capacitated clustering problem. International
Transactions in Operations Research 1999;6:665–78.
[8] Lorena LA, Senne ELF. Local search heuristic for the capacitated p-median problem. Networks and Spatial Economics
2003;3:407–19.
[9] Lorena LA, Senne ELF. A column generation approach for the capacitated p-median problems. Computers & Operations
Research 2004;31:863–76.
[10] Ahmadi S, Osman IH. Greedy random adaptive memory programming search for the capacitated clustering problem.
European Journal of Operational Research 2005;162(1):30–44.
[11] Lorena LA, Furtado JC. Constructive genetic algorithm for clustering problems. Evolutionary Computation 2001;9(3):
309–27.
[12] Glover F, Laguna M. Tabu search. Dordrecht: Kluwer Academic Publishers; 1997.
[13] Downsland KA. Simulated annealing. In: Reeves CR, editor. Modern heuristic techniques for combinatorial problems.
Oxford: Blackwell Scientific; 1993. p. 20–69.
[14] Collins NE, Eglease RW, Golden BL. Simulated annealing an annotated bibliography. American Journal of Mathematics
and Management Sciences 1988;9:209–307.
[15] Negreiros Gomes MJ, Palhano AWC. Uma Aplicação para o problema generalizado de percurso de veículos. Anais do
XXV SBPO–NATAL/RN, 2003.
[16] Kaufman L, Roussweuw P. Finding groups in data: an introductory to cluster analysis. New York: Wiley; 1990.
[17] Negreiros Gomes MJ, Almeida PG, Guarany A, Xavier AE. Análise de Agrupamentos para a Taxa de Resíduos Sólidos de
Fortaleza. Limpeza Urbana 2002;57:10–7.
[18] Garey MR, Johnson DS. Computers and intractability: a guide to the theory of NP-completeness. San Francisco: Freeman;
1979.
[19] Forgy EW. Cluster analysis of multivariate data: efficiency versus interpretability of classifications. Biometrics
1965;21(3):768.
[20] Farias B, Tito M, Quinderé M, Negreiros_Gomes M. Uma Avaliação de Algumas Técnicas de Pesquisa em Intervalos.
Anais do VIIICLAIO-XXVIII SBPO;Rio de Janeiro, Agosto;1996.
[21] Hansen P, Mladenovic N. JMeans: a new local search heuristic for minimum sum-of-squares clustering. Pattern Recognition
2001;34(2):405–13.
[22] Brucker J. On the complexity of clustering problem, Lecture notes in economics and mathematical systems, vol. 157;1978.
p. 45–54.
[23] Everitt BS, Landau SL, Leese M. Cluster analysis. fourth ed., Paris: Arnold; 2001.
[24] Diehr G. Evaluation of a branch-and-bound algorithm for clustering. SIAM Journal on Scientific and Statistical Computing
1985;6:266–84.
[25] Bouguettaya A, Le Vies Q. Data clustering analysis in a multidimensional space. Information Sciences 1998;112:267–95.
[26] Chiou Y-C, Lan LW. Genetic clustering algorithms. European Journal of Operations Research 2001;135:413–27.
[27] Jain AK, Dum RPW, Mao J. Statistical pattern recognition: a review. IEEE Transactions on Pattern Analysis and Machine
Intelligence 2000;22(1):4–37.
ARTICLE IN PRESS
M. Negreiros, A. Palhano / Computers & Operations Research ( ) – 25

[28] Josien J, Liao TW. Simultaneous grouping of parts and machines with integrated fuzzy clustering method. Fuzzy Sets and
Systems 1999;126:1–12.
[29] Kiang MY. Extending the Kohonen self-organizing map networks for clustering analysis. Computational Statistics & Data
Analysis 2001;38:161–80.
[30] Wu K-L, Yang M-S. Alternative c-means clustering algorithms. Pattern Recognition 2002;35:2267–78.
[31] Cormen TH, Leiserson CE, Rivest RL. Introduction to algorithms. Cambridge and NewYork: The MIT Press and McGraw-
Hill Book Company; 2000.
[32] Martello S, Toth P. Knapsacks problems, algorithms and computer implementations. New York: Wiley; 1990.
[33] Hansen P, Mladenovic N. Variable Neighborhood Search. Chapter 3.6.2. Handbook of Applied Optimisation. In: Panos M.
Pardalos, Mauricio GC, editors. New York, USA: Resendeby Oxford University Press, Inc.; 2002.
[34] CPLEX Optimization, Inc., Suite 279, 930 Tahoe Blvd. Bldg. 802. Incline Village. NV 89451-9436, e-mail: cplex.com