Resumos
Este artigo aborda um problema real de seqüenciamento (roteirização) e programação de visitas domiciliares realizadas diariamente por um conjunto de gerentes de uma instituição bancária. As visitas, com hora marcada, são agendadas por telefone a partir de um sistema tipo tele-atendimento e devem ser programadas até o final do dia, para atendimento no dia seguinte. Os gerentes estão alocados em diferentes agências. Isso pode ser formulado como um problema de roteirização e programação de veículos com restrições de janela de tempo e múltiplas bases. Ao contrário da quase totalidade dos problemas reais que envolvem roteirização e programação de veículos, que requerem heurísticas em função de sua complexidade combinatória, as características particulares do problema em questão permitiram sua simplificação e solução por intermédio de um algoritmo exato, por sua representação como um problema de fluxo em rede. O algoritmo proposto foi implementado e aplicado com sucesso ao problema.
programação de visitas; seqüeciamento; problema de fluxo em rede; roteirização
This paper deals with a real problem of sequencing (routing) and scheduling daily home visits by managers of a large bank corporation. The visits are scheduled in advance by phone operators for the following day. The managers are located in different branches of the bank. This problem can be formulated as a multi-depot routing and scheduling problem with time windows constraints. Contrary to most vehicle and staff routing and scheduling problems, which require heuristic solution methods due to their combinatorial complexity, the special features of the proposed problem allow it to be simplified and solved through an exact algorithm, which is based on a minimum cost network flow model. The proposed solution algorithm has been implemented and successfully used to solve the problem.
visit scheduling; routing; network flow problem
Um modelo matemático para o problema de seqüenciamento e programação de visitas de gerentes de banco
A mathematical model for the problem of sequencing and scheduling visits by bank managers
Claudio Barbieri da Cunha
Departamento de Engenharia de Transportes, Escola Politécnica da Universidade de São Paulo, CP 61584, CEP 05424-970, São Paulo, SP, Brasil, e-mail: cbcunha@usp.br
RESUMO
Este artigo aborda um problema real de seqüenciamento (roteirização) e programação de visitas domiciliares realizadas diariamente por um conjunto de gerentes de uma instituição bancária. As visitas, com hora marcada, são agendadas por telefone a partir de um sistema tipo tele-atendimento e devem ser programadas até o final do dia, para atendimento no dia seguinte. Os gerentes estão alocados em diferentes agências. Isso pode ser formulado como um problema de roteirização e programação de veículos com restrições de janela de tempo e múltiplas bases. Ao contrário da quase totalidade dos problemas reais que envolvem roteirização e programação de veículos, que requerem heurísticas em função de sua complexidade combinatória, as características particulares do problema em questão permitiram sua simplificação e solução por intermédio de um algoritmo exato, por sua representação como um problema de fluxo em rede. O algoritmo proposto foi implementado e aplicado com sucesso ao problema.
Palavras-chave: programação de visitas, seqüeciamento, problema de fluxo em rede, roteirização.
ABSTRACT
This paper deals with a real problem of sequencing (routing) and scheduling daily home visits by managers of a large bank corporation. The visits are scheduled in advance by phone operators for the following day. The managers are located in different branches of the bank. This problem can be formulated as a multi-depot routing and scheduling problem with time windows constraints. Contrary to most vehicle and staff routing and scheduling problems, which require heuristic solution methods due to their combinatorial complexity, the special features of the proposed problem allow it to be simplified and solved through an exact algorithm, which is based on a minimum cost network flow model. The proposed solution algorithm has been implemented and successfully used to solve the problem.
Key words: visit scheduling, routing, network flow problem.
1. Introdução
Uma grande instituição bancária, numa política agressiva para conquistar novos clientes na região metropolitana de São Paulo (RMSP), implantou um serviço de teleatendimento (também conhecido como call center), visando a conquistar novos clientes por meio de contato direto para a oferta de serviços. As chamadas telefônicas efetuadas são de curta duração, pois têm por objetivo gerar interesse e identificar potenciais interessados e não detalhar os serviços e as vantagens oferecidas. Como se trata de uma instituição conhecida do grande público e com boa imagem, não há necessidade de apresentar a instituição nas ligações.
Caso uma pessoa contatada por telefone se interesse em conhecer melhor os serviços oferecidos ou estabelecer relacionamento com o banco, imediatamente a operadora de teleatendimento propõe agendar a visita de um gerente de relacionamento para o dia seguinte. O interessado indica o endereço do local onde quer receber o gerente (geralmente domicílio ou trabalho) e escolhe o horário para a visita. Os horários são predefinidos e correspondem a horas cheias: 9, 10, 11 ou 12 horas, no período da manhã, ou 14, 15, 16 ou 17 horas, no período da tarde.
Estima-se que cada gerente despende no máximo 30 minutos em cada visita, sendo o tempo restante (no mínimo mais 30 minutos) gasto para deslocamento entre dois potenciais clientes. Caso o contato com o potencial cliente necessite de atendimento mais demorado, o mesmo é convidado a visitar a agência que lhe for mais conveniente para receber atendimento personalizado; ou então é marcada nova visita em outra data e horário. Em outras palavras, a visita tem por objetivo apresentar os serviços oferecidos e conquistar o cliente, ficando a formalização do relacionamento para outra oportunidade. Assim, cada gerente pode realizar até 8 visitas por dia, caso os locais a serem visitados sejam suficientemente próximos, de forma a permitir o deslocamento no prazo previsto de 30 minutos.
São agendadas cerca de 300 a 350 visitas por dia, que devem, em sua quase totalidade, ser realizadas no dia seguinte. A central de tele-atendimento opera das 9 h às 15h30. Até 18 h do mesmo dia, cada gerente deve receber, por escrito, a programação do dia seguinte, ou seja, os clientes a serem visitados, seus respectivos endereços, bem como os respectivos horários de visita agendados pelo call center.
Os gerentes que fazem as visitas domiciliares encontram-se em cerca de 50 diferentes agências localizadas na Grande São Paulo. A idéia é fazer com que a visita seja realizada pelo gerente da agência mais próxima do domicílio indicado pelo cliente. Entretanto, essa restrição não é rígida, uma vez que todo o procedimento de cadastro e abertura de conta deve ser feito na agência ou, em condições excepcionais, no próprio domicílio, mas por outro profissional que não o gerente designado para esse primeiro contato.
Assim, um gerente pode visitar um potencial cliente cujo domicílio indicado para visita esteja localizado mais próximo de alguma outra agência que não a que o gerente esteja vinculado. Cabe a ele verificar com o cliente interessado qual a agência mais conveniente ou de sua preferência. Não é raro a visita ser no domicílio do cliente e este desejar abrir conta em agência próxima a seu local de trabalho ou vice-versa.
No início deste trabalho, grande parte das agências ainda não estava interligada via internet. Assim, as informações das visitas programadas para cada gerente eram transmitidas via fax (fac-símile). O banco dispunha de um sistema computadorizado para envio automático das informações, que lia os dados da programação no banco de dados, efetuava as ligações e enviava automaticamente o fax para cada um dos gerentes. Esse sistema está sendo progressivamente migrado para comunicação via correio eletrônico.
Na central de atendimento, todo o cadastro dos potenciais clientes que se interessam em receber uma visita é alimentado diretamente no computador central da instituição bancária. Cada operadora de teleatendimento possui um terminal, em que registra, no momento do contato com o cliente, seus dados, o horário e o endereço da visita.
Entretanto, a programação das visitas, ou seja, a definição da seqüência de visitas a serem realizadas por gerente era realizada manualmente. O reduzido período de tempo para essa tarefa (das 15h30 às 17 h, uma vez que o sistema automático requer cerca de 45 a 60 minutos para gerar e enviar os fax), associado a outros problemas e preocupações da empresa, indicava a importância de um sistema automatizado para efetuar a programação.
Como os endereços de visitas mudam a cada dia, muitas vezes o responsável pela programação não conseguia identificar, de imediato, a localização aproximada do local. A consulta a algum guia de ruas era inviável, tendo em vista o elevado número de visitas a serem programadas diariamente e o tempo escasso para a programação. Assim, muitas visitas eram agrupadas e designadas aos gerentes com base em informações geográficas mais agregadas, como nome do bairro ou três primeiros dígitos do CEP (Código de Endereçamento Postal) informados pelo cliente. Conseqüentemente, havia significativo índice de visitas não realizadas (no show), por impossibilidade de cumprimento de horários pelos gerentes. Muitas vezes, visitas consecutivas eram tão distantes que se tornava impossível a um gerente deslocar-se no tempo disponível de 30 minutos; atrasos sucessivos iam se acumulando, ocasionando a não realização de uma ou até mais visitas agendadas para o dia. Assim, muitas visitas tinham de ser remarcadas, sobrecarregando e prejudicando o trabalho das atendentes do sistema de teleatendimento. Além disso, tais remarcações eram consideradas prejudiciais à imagem de modernidade e eficiência que a instituição desejava transmitir.
Erros ou imprecisões nas informações transmitidas pelos usuários (CEP errado, nome do logradouro impreciso ou incompleto), erros de digitação dos dados, problemas com abreviações de nomes de logradouros, ruas com nomes idênticos para municípios vizinhos na RMSP, entre outros, também contribuíam para gerar programações ineficientes.
Adicionalmente, a instituição constatou eventuais distorções e desvios na programação com a intenção de favorecer a algum gerente, cujo trabalho é comissionado, além de serem reembolsadas as despesas com deslocamentos (entre as mais comuns, despesas com quilometragem, táxi, estacionamento, etc.).
Esses problemas, que reduziam a produtividade esperada, prejudicavam o atendimento e acarretavam custos elevados nas despesas de deslocamentos dos gerentes, levaram a instituição bancária a buscar uma solução de software para automatizar a programação dos atendimentos.
Tal solução não existia no mercado nacional e precisou ser desenvolvida. O coração dessa solução envolve o desenvolvimento e a implementação computacional de um modelo matemático para o problema descrito, que é objeto deste trabalho.
Em sua forma mais geral, o problema descrito anteriormente pode ser modelado como um problema de roteirização e programação de veículos com múltiplas bases (diferentes locais de onde partem os gerentes) e restrições de janelas de tempo (horários de atendimento). Algumas características peculiares dessa operação permitiram a simplificação do modelo matemático, originalmente muito complexo, e, conseqüentemente, sua solução por meio de um algoritmo exato para problemas de fluxo em rede de mínimo custo.
Este artigo está organizado da seguinte forma: no próximo item são descritos os principais trabalhos encontrados na literatura. Já no item 3 é apresentada a formulação matemática do problema proposto, seguindo-se, no item 4, a descrição detalhada da estratégia de solução proposta. Os aspectos da aplicação do modelo, bem como os resultados obtidos, são tratados no item 5. Por fim, o item 6 apresenta as principais conclusões do trabalho.
2. Revisão da bibliografia
A roteirização de veículos é, conforme Assad (1988), uma das histórias de grande sucesso da pesquisa operacional nas últimas décadas. De acordo com Cunha (2000), esse interesse, que dura mais 30 anos, decorre da combinação de dois fatores: a importância cada vez maior, no contexto logístico, dos problemas de roteirização e sua complexidade matemática (trata-se de um problema combinatório, do tipo NP-difícil), que torna impossível a obtenção de soluções ótimas para instâncias encontradas no mundo real, trazendo o desafio da busca de novas heurísticas mais eficientes.
Tendo em vista que problemas reais de roteirização e programação de veículos não podem ser resolvidos até a otimalidade, diferentes características e restrições levam à necessidade de heurísticas diferentes, de forma a produzir resultados próximos do ótimo.
Conforme Teixeira & Cunha (2002), estratégias de solução heurísticas são, por natureza, bastante específicas e, em geral, carecem de robustez, isto é, não conseguem proporcionar boas soluções para problemas com características, condicionantes ou restrições um pouco diferentes daquelas para as quais foram desenvolvidas. Em outras palavras, na área de roteirização de veículos um método de solução para determinado tipo de problema, dados e condicionantes pode não ser adequado para outro problema similar, conforme destacam Hall & Partyka (1997).
Laporte et al. (2000) apresentam uma das mais atualizadas e completas revisões dos principais métodos de solução para problemas de roteirização de veículos, englobando tanto heurísticas tradicionais quanto metaheurísticas. O trabalho de Bodin et al. (1983), embora um pouco antigo, ainda representa uma das principais referências bibliográficas sobre o assunto, referenciado por quase todos os autores, por sua abrangência em retratar o estado-da-arte da modelagem de problemas de roteirização e programação de veículos e tripulações; mais de 1.000 referências bibliográficas foram compiladas e citadas pelos autores.
Znamenski & Cunha (2000) trataram do problema de roteirização e programação de veículos para o transporte porta a porta de idosos e deficientes, de seus locais de origem a seus destinos, conhecido na literatura como pertencente à categoria denominada de dial-a-ride. O problema apresenta restrições de janela de tempo e múltiplas bases, como o problema em questão. O método de solução proposto consiste na adaptação da heurística de inserção paralela, apresentada por Madsen et al. (1995a), seguido por um procedimento de melhoria de solução, similar ao desenvolvido por Toth & Vigo (1996). A heurística de inserção proposta considera um critério de "dificuldade" para ordenar as solicitações de atendimento. Tal critério é composto por três parcelas de "dificuldade", correspondentes à largura da janela de tempo, ao tempo de permanência no veículo (relevante no caso do transporte de passageiros) e à capacidade do veículo. As solicitações de atendimento são ordenadas e tratadas em ordem decrescente nessa medida de "dificuldade". É calculado, para cada solicitação, o custo de sua inserção em cada uma das rotas; essa solicitação é então inserida na rota (veículo) que represente menor acréscimo de custo, se tal rota existir. Maiores detalhes podem ser encontrados em Znamenski (2000).
Tal método, embora proposto para problemas de roteirização para transporte de passageiros do tipo dial-a-ride, que apresentam não só coletas e entregas, como também precedências entre elas, poderia ser adaptado, de forma a ser aplicado ao problema objeto deste trabalho. Pode soar trivial, mas deve-se lembrar que, em problemas com precedência, a tarefa de coleta de um passageiro deve preceder a de entrega no ponto de destino, o que inviabiliza o uso de algumas heurísticas mais gerais.
Poucos são os trabalhos que abordam o problema de roteirização de veículos com múltiplos depósitos ou bases de onde partem os mesmos, conforme apontam Salhi & Sari (1997), embora essa situação seja comum em problemas reais de distribuição. Segundo os autores, na maioria dos casos, o problema é resolvido por meio da decomposição em duas fases: inicialmente cada ponto de atendimento é alocado à base mais próxima, sendo o problema de roteirização de cada base solucionado independentemente das demais.
Diferentemente dos demais autores, Salhi & Sari (1997) trataram do problema com múltiplas bases e frota heterogênea, isto é, os veículos apresentam diferentes tamanhos e capacidades e diferentes custos fixos e variáveis. Os autores propuseram uma heurística de três estágios, em que alguns atendimentos são previamente alocados às bases respectivas mais próximas, enquanto outros permanecem sem alocação; cada um dos problemas de roteirização (definidos os atendimentos designados a cada base) é então resolvido; finalmente, os atendimentos não alocados são inseridos nos roteiros previamente definidos. Note-se que não foram consideradas restrições de janela de tempo. Outras heurísticas para problemas com múltiplas bases podem ser encontradas nos trabalhos de Renaud et al. (1994) e Chao et al. (1993).
O trabalho de Madsen et al. (1995b) está associado a um sistema de programação de serviços de manutenção domiciliar. O objetivo é determinar em tempo real, durante a ligação do cliente solicitando serviço, uma janela de tempo (dia e horário) a ser oferecida ao mesmo para a realização da visita, de forma que a distância total dos roteiros de atendimento, no horizonte de programação, seja minimizada. Dada a característica dinâmica do problema e a necessidade de determinar uma solução em poucos segundos, os autores propuseram uma heurística de solução simples, do tipo cluster-first route-second, em que se busca, para cada novo serviço a ser programado, a melhor inserção, ou seja, aquela que acarrete o menor custo adicional para atendimento, considerando um número de rotas determinado a priori.
Problema semelhante foi tratado por Johns (1995), relativo à programação de serviços de reparos de emergência por uma empresa de distribuição de energia elétrica. O problema consiste em alocar ou atribuir os clientes aos engenheiros de manutenção e definir a seqüência de atendimento para cada um deles.
A cada nova solicitação de serviço, recebida por telefone, define-se uma janela de atendimento, com base no controle do número de solicitações por faixa horária, de modo que o cliente possa ser informado do horário previsto para seu atendimento. Ao contrário do trabalho de Madsen et al. (1995b), a faixa horária de atendimento de cada solicitação é determinada e informada ao cliente durante a ligação, sem considerar a programação dos engenheiros. Uma vez definida a programação, utiliza-se uma heurística de inserção, inspirada no método do vizinho mais próximo com janelas de tempo, para definir a melhor posição de inserção de cada atendimento.
3. Modelo matemático do problema proposto
Genericamente, o problema proposto consiste no seqüenciamento ou roteirização e na programação de visitas domiciliares realizadas diariamente por um conjunto de gerentes de uma instituição bancária.
Seja C o conjunto dos clientes a serem visitados. Para cada cliente i Î C são conhecidos:
1. O tempo de atendimento (ou de processamento) si < 0.
2. A janela de tempo [ei , li], ei < li, que define, respectivamente, o horário mais cedo e o horário mais tarde em que pode ser iniciada a visita.
Seja V o conjunto dos gerentes disponíveis para atendimento e B o conjunto das agências da instituição bancária. O roteiro de cada gerente v Î V inicia e termina na agência b Î B à qual está alocado. Não há horário para iniciar o roteiro ou retornar à agência, respeitadas as janelas horárias das visitas.
Sabe-se, a priori, a alocação de cada um dos gerentes às agências, dada por:
Note-se que a formulação matemática é genérica, de modo a permitir mais de um gerente em uma mesma agência bancária.
O deslocamento do gerente de um ponto i Î (BÈC) até um ponto j Î (BÈC) requer um tempo de viagem tij; da mesma forma, a distância percorrida entre i e j é dada por dij.
A formulação matemática do problema compreende as seguintes variáveis de decisão:
Ti = horário de início de atendimento do cliente i Î C.
O problema geral de roteirização e programação das visitas pode ser formulado assim:
sujeito a:
A função objetivo (1) requer que a distância total percorrida pelos gerentes seja minimizada. As restrições (2) e (3) asseguram que cada cliente seja atendido uma única vez. As restrições (4) e (5) impõem qual gerente deve partir e retornar à agência a que está alocado. As restrições (6) impõem que o horário de início de atendimento (visita) de cada cliente ocorra em sua janela horária programada; já as restrições (7) definem a continuidade e a compatibilidade temporal dos horários de início de atendimento ao longo das rotas dos gerentes (M é uma constante com valor muito elevado, tendendo a infinito) e também garantem a não formação de sub-roteiros (sub-tours). Por fim, as restrições (8) garantem a integralidade da solução.
Conforme diversos autores, entre os quais Lenstra & Rinnooy Kan (1981), Kolen et al. (1987), Solomon (1987), Cunha (1997) e Laporte et al. (2000), os problemas de roteirização de veículos com janelas de tempo, em geral, são considerados NP-hard, isto é, possuem ordem de complexidade exponencial, o que torna impossível a obtenção de soluções ótimas para problemas reais e requer uso de heurísticas para sua solução. Essa complexidade é ainda agravada, nesse caso, pela existência de múltiplas bases (agências) de onde partem os gerentes.
4.Estratégia de solução
A análise do problema e de sua formulação matemática permitiram identificar algumas características da aplicação em questão, em particular:
1. Horário de atendimento predefinido para cada cliente a ser visitado, ou seja (Ti= ei= li) Î {9 h, 10 h, 11 h, 12 h, 14 h, 15 h, 16 h, 17 h}, em vez de Tipoder assumir qualquer valor no intervalo [ei , li] correspondente a uma janela de tempo.
2. Não haver diferenças entre gerentes (o que equivale dizer que a frota é homogênea no problema de roteirização de veículos).
3. Por outro lado, cada gerente pode realizar um número máximo de visitas predeterminado (no caso, 8 por dia); isso significa não haver restrições de "capacidade" na seqüência de atendimento, ou seja, independentemente de quem sejam os clientes a serem visitados, um gerente consegue realizar até 8 atendimentos, caso consiga cumprir os horários programados.
Tais características resultam na simplificação do modelo matemático apresentado no item anterior, as quais afetam, em especial, as restrições (6) e (7), e possibilitam a proposição de uma estratégia de solução exata, em vez de um método heurístico, como ocorre na quase totalidade dos problemas de roteirização e programação. Dessa forma, torna-se possível obter a solução ótima para o problema proposto, em vez de apenas uma boa solução, que seria obtida por intermédio de um método heurístico, para a qual, muitas vezes, nem se conhece seu desvio em relação ao ótimo.
A estratégia de solução proposta é exata e se baseia no problema de fluxo em rede de mínimo custo (minimum cost network flow problem). Mais especificamente, o problema, com as características particulares descritas anteriormente, pode ser modelado como caso particular do problema do transbordo (transshipment problem) da programação linear, com arcos capacitados (para mais detalhes recomenda-se consultar a excelente obra de Ahuja et al., 1993).
O sucesso dessa estratégia reside na construção de uma rede espaçotempo (space-time network) G = (N, A) para a modelagem do problema de fluxo em rede correspondente ao problema de seqüenciamento (ou roteirização) e programação de visitas domiciliares, em que N define o conjunto dos nós e A, o conjunto dos arcos.
A rede espaçotempo proposta compreende dois tipos de nós: os relacionados aos gerentes (NV) e os relacionados aos clientes a serem atendidos (NC), sendo N = NC È NV. Mais especificamente:
Para cada gerente v Î V alocado a uma agência b Î B são definidos dois nós bs e bt Î NV: um de oferta (bs) e um de demanda (bt), sendo a oferta e a demanda em cada um desses nós exatamente iguais a um.
Para cada cliente i Î C são definidos dois nós i1 e i2Î NC: o i1 corresponde ao início do atendimento e o i2, ao término. Ao nó i1 está associado um horário de início de atendimento hi(i1) do cliente i, em que hi(i1) = ei; já ao nó i2 está associado um horário de término de atendimento ht(i2) do cliente i, em que hi(i2) = (ei+ si).
A rede espaçotempo compreende três tipos de arco:
Arcos de atendimento de clientes (ArcoCli): cada cliente i Î C corresponde a um arco, ligando os nós i1 e i2 Î NC. Para cada arco (i1,i2) Î ArcoCli o respectivo custo é nulo e as capacidades inferior e superior são ambas iguais a um; em outras palavras, em cada arco (i1,i2) o fluxo tem de ser exatamente igual a um, o que garante o atendimento do cliente i por exatamente um gerente.
Arcos de deslocamento entre clientes (ArcoDesl): são criados arcos (i2, j1) Î ArcoDesl ligando dois clientes i e j (i, j Î C), desde que seja viável deixar o cliente i e chegar ao cliente j no horário de visita programado para j, considerando o tempo de viagem entre i e j. Naturalmente, só são criados arcos ligando i e j quando o horário programado de atendimento de j for posterior ao horário de atendimento de i (ej > ei); e, além disso, for possível sair de i ao final do atendimento e chegar em j a tempo de iniciar o atendimento no horário programado, ou seja, ht(i2) + si + tij < hi(j1). Cada um desses arcos tem custo igual à distância percorrida dij entre i e j, não havendo limites de capacidade inferior (nula) e superior (infinita).
Arcos de conexão com gerentes (ArcoGer): são criados arcos ligando cada um dos nós de oferta correspondentes aos gerentes (bs) aos nós de início de atendimento de clientes (i1), e também arcos a partir dos nós de fim de atendimento dos clientes (i2) a cada um dos nós de demanda correspondentes aos gerentes (bt). Para cada um desses arcos o custo é igual à respectiva distância da agência onde se localiza o gerente até o cliente, e vice-versa; não há limites de capacidade inferior (nula) e superior (infinita).
Assim, a rede G = (N, A) é formada pelo conjunto dos nós N = (NC È NV) e pelo conjunto dos arcos A = (ArcoCli È ArcoDesl È ArcoGer).
O problema consiste em encontrar a solução de mínima distância total, que assegure o atendimento de todos os clientes programados (a visita é assegurada pela obrigatoriedade de um fluxo unitário em cada arco (i1,i2) Î ArcoCli, que corresponde a um cliente a ser visitado).
Um exemplo dessa construção pode ser visto na Figura 1, que corresponde a um problema com quatro gerentes e 11 clientes a serem visitados (A a K).
Os nós 1 a 4 representam os locais de saídas dos 4 gerentes (suas respectivas agências bancárias); já os locais de retorno são representados pelos nós 1' a 4'. Para facilitar a visualização dos arcos do grafo foram desenhados apenas os relativos ao gerente 1. Os demais são similares.
Na Figura 1, os arcos (i1, i2), que representam os atendimentos de cada cliente, estão representados por linha cheia; os arcos (i2, j1), ligando dois clientes, por pontilhado; por tracejado, os arcos ligando os gerentes (bs) aos nós de início de atendimento de clientes (i1) e os arcos ligando nós de fim de atendimento dos clientes (i2) aos gerentes (bt).
Os clientes A, B, C e D têm visitas programadas às 9 h; já os clientes E, F e G às 10 h e os clientes H, I, J e K às 11 h. Deve-se notar que não só o horário de visita a cada cliente está definido, como também o horário de término da visita. Assim, é possível verificar, com base nos tempos de viagem entre clientes, quais podem ser visitados na seqüência, constituindo arcos de ligação entre clientes no grafo. Pode-se observar, por exemplo, na Figura 1, que após o atendimento do cliente E é possível atender o cliente H, I ou K, porém, não o cliente J (por não ser possível sair de E e chegar em J a tempo). Analogamente, após a visita do cliente B, marcada para as 9 h, é possível visitar o cliente E ou F (10 h) ou o cliente I (11 h).
Assim, o grafo pode ser construído a partir da análise de todas as possíveis combinações de atendimento de clientes que sejam viáveis do ponto de vista dos horários agendados para atendimento. O número total de arcos pode potencialmente ser elevado a ordem de |N|2/ 2; na prática, esse número é bem menor, uma vez que apenas pequena parcela dos arcos resultam ligações possíveis em termos da viabilidade dos horários programados. Por exemplo, como foi visto anteriormente, uma visita só pode suceder outra cujo horário programado seja posterior à primeira.
Note-se que o grafo espaçotempo G é acíclico, isto é, não contém nenhum ciclo direcionado, ou seja, nenhum caminho direcionado fechado i1 i2 ... ip ir, em que ir = i1 (Ahuja et al., 1993). Tal característica, decorrente das restrições temporais associadas aos atendimentos, é essencial para que o problema de seqüenciamento e programação possa ser resolvido por meio de um algoritmo polinomial com base em fluxo em rede, uma vez que assegura a não ocorrência de sub-roteiros (sub-tours) em qualquer solução viável.
Assim, qualquer solução viável para o problema de fluxo em rede corresponde a um conjunto de caminhos independentes {(bs, i1), (i1, i2), (i2, j1), (j1, j2), ... (k1, k2), (k2, bt)}, com fluxo unitário, cada qual partindo de um nó de oferta (gerente) e terminando em um nó de demanda (também gerente). A cada gerente está associado um único caminho, correspondente a uma seqüência de arcos que indica quais clientes serão visitados e a ordem de visitação. Como as restrições de capacidade impõem que o fluxo em cada um dos arcos de atendimento de clientes (ArcoCli) seja exatamente um, assegura-se, dessa forma, que cada cliente seja atendido por apenas um gerente. Conseqüentemente, em qualquer solução viável do problema de fluxo em rede, mais especificamente para cada arco (j1, j2) Î ArcoCli, cada nó j1Î NC possui apenas um arco de entrada (correspondendo a um arco de deslocamento (i2, j1) Î ArcoDesl ou a um arco de conexão (bs, j1) Î ArcoGer); analogamente, cada nó j2Î NC possui apenas um arco de saída (correspondendo a um arco de deslocamento (j2, k1) Î ArcoDesl ou a um arco de conexão (j2, bt) Î ArcoGer).
A representação proposta permite ainda limitar a distância máxima de deslocamento dos gerentes, de forma a impedir que eles se afastem muito das respectivas agências às quais estão alocados. Basta não criar o arco de deslocamento (i2, j1) ligando dois clientes i e j a serem visitados, mesmo que viável do ponto de vista temporal, caso a distância dij ultrapasse um valor limite predefinido.
É possível, ainda, considerar outras restrições que podem ocorrer no dia-a-dia: alguns gerentes só poderem realizar visitas durante determinado período do dia (por exemplo, só no período da manhã ou da tarde). Nesse caso, basta criar arcos de conexão ligando os nós de oferta bs (correspondentes às agências onde se localizam os gerentes) apenas aos nós de clientes (i1) cujo horário de visita corresponda ao período de disponibilidade para visitas; de forma análoga, criam-se arcos de conexão dos nós dos clientes (i2) cujos respectivos horários de visita correspondam apenas ao período de disponibilidade para cada um dos nós de demanda do referido gerente (bt). Isso corresponderia, por exemplo, na Figura 1, ao arco que liga o gerente 1 ao cliente E.
A modelagem matemática do problema de seqüenciamento (ou roteirização) e programação de visitas como um problema de fluxo em rede de mínimo custo assegura a integralidade da solução, conforme demonstrado por Ahuja et al. (1993) e Chvátal (1983). Em outras palavras, como as ofertas, as demandas e os limites inferiores e superiores nos arcos são todos valores inteiros, os fluxos resultantes nos arcos também correspondem a valores inteiros (no caso, zero ou um) ao utilizar um algoritmo de solução específico para o problema de fluxo em rede de mínimo custo.
Há, para o problema do transbordo, algoritmos específicos, com ordens de complexidade polinomiais e ótimos desempenhos computacionais, como os algoritmos network simplex (Bradley et al., 1977; Cunha, 1990; Ahuja et al., 1993) e Out-of-Kilter (Gualda, 1975; Ahuja et al., 1993).
O problema resultante de fluxo em rede de mínimo custo é solucionado por meio do método network simplex. A implementação computacional corresponde a um aprimoramento daquela proposta por Cunha (1990), tendo por base o algoritmo e as estruturas de dados descritas por Chvátal (1983), que asseguram excelente desempenho computacional para problemas de grande porte e também impedem a ciclagem e a não convergência para a solução ótima em problemas que apresentem soluções viáveis intermediárias degeneradas (com valores nulos para algumas variáveis básicas), por intermédio do conceito de árvore fortemente viável. Diversos autores apontam que o método network simplex é um dos mais eficientes para resolver instâncias do problema de fluxo em rede de mínimo custo (Bradley et al., 1977; Grigoriadis, 1986).
5. Aplicação do modelo
O modelo foi implementado em microcomputador PC compatível, utilizando linguagem Delphi da Borland. A nova versão do algoritmo network simplex permite resolver instâncias de problemas com dimensões significativamente maiores que a versão anterior, desenvolvida em Turbo Pascal (Cunha, 1990).
O algoritmo de solução foi concebido e desenvolvido para funcionar de maneira integrada ao sistema computacional da empresa, permitindo a leitura dos dados diretamente da base de dados do cadastro das visitas agendadas pelas operadoras de teleatendimento e também o retorno do roteiro e da programação de cada gerente ao módulo responsável pelo envio automático dessas informações a cada gerente.
Essa integração foi importante para o sucesso do projeto, dado o reduzido tempo para processamento do modelo e obtenção das programações, uma vez que, conforme foi comentado anteriormente, os gerentes devem receber as programações para o dia seguinte em horário predeterminado, anterior ao final da jornada de trabalho.
Os softwares comerciais para roteirização disponíveis no mercado brasileiro, além de não tratarem todas as restrições do problema, também não permitem esse funcionamento integrado, sem necessidade de intervenção humana. A forma de comunicação é por meio de arquivos-texto temporários com os dados de entrada a serem importados manualmente pelo operador e arquivos-texto com os resultados a serem exportados de volta ao sistema da empresa.
Um aspecto fundamental para o sucesso da aplicação do modelo foi o desenvolvimento de um sistema eficiente para localização geográfica de endereços, também conhecida como address matching.
Segundo Cunha (2000), nas formulações matemáticas de problemas de roteirização de veículos, pressupõe-se ser conhecido um grafo ou rede G = (N, A) composto de um conjunto de nós N e de um conjunto de arcos A, representando as ligações entre todos os pares de nós em N, para os quais são conhecidos os tempos de viagem e as distâncias.
Assim, o processamento de um algoritmo para um problema de roteirização deve ser precedido pela etapa de obtenção do grafo G. Isso envolve a localização geográfica ou espacial dos pontos de atendimento e a determinação das distâncias e dos tempos de viagem entre os mesmos, conforme apontado por Cunha (2000). Este é um aspecto pouco discutido, mas de fundamental importância para a aplicação de modelos matemáticos a problemas reais de roteirização, uma vez que, em muitos casos, a forma como o grafo G é obtido e representado pode ser decisiva para a qualidade dos resultados obtidos e para a viabilidade de execução dos roteiros.
No problema em questão esse aspecto é crucial, uma vez que os endereços dos clientes a serem visitados mudam a cada dia. Além disso, as operadoras do sistema de chamadas (call center) estão colhendo os dados dos endereços dos clientes enquanto falam com eles ao telefone, o que acarreta riscos de imprecisões de grafia (principalmente abreviações de títulos em nomes de logradouros e bairros) e até mesmo erros de datilografia, conforme discutido anteriormente. Há ainda que considerar o reduzido período de tempo disponível para o processamento do modelo e a premissa de mínima intervenção humana, dadas pela instituição bancária.
Todos esses aspectos levaram ao desenvolvimento de uma rotina específica para a localização de endereços, com base numa codificação fonética aproximada do nome do logradouro de forma a permitir o reconhecimento de nomes com grafias e abreviações diferentes. Essa rotina considerava não só o nome do logradouro, como também, simultaneamente, o bairro, o CEP e o nome do município. Eventuais inconsistências geravam um relatório de problemas, porém não impediam a programação do atendimento, com base na localização mais provável que o sistema podia determinar. Uma versão comercial e genérica dessa rotina foi desenvolvida posteriormente, com o nome de Geobase.
Adotou-se, para o problema de seqüenciamento e programação de visitas objeto deste trabalho, um modelo simplificado para representação do grafo: os pontos de atendimento e as agências onde se localizam os gerentes foram representados por meio de um sistema de coordenadas geográficas (latitude e longitude).
Nesse caso, as distâncias nos arcos são calculadas com base nas coordenadas dos pontos, segundo a métrica Euclideana, ajustadas por fatores de correção, de forma a considerar o percurso adicional decorrente do sistema viário, conforme sugerido por Novaes (1989). Os tempos de viagem são calculados com base nas distâncias e em velocidades médias, que podem variar segundo o tipo de veículo, as zonas onde se localizam os pontos de origem e de destino ou ainda segundo a distância a ser percorrida.
Embora a representação do grafo por meio de mapas digitais georreferenciados ou Sistemas de Informações Geográficas (SIG) possibilite representação mais realista da malha viária, conforme discutido por Cunha (2000), a manutenção e a atualização de uma base de dados do sistema viário é particularmente crítica e trabalhosa, exigindo acompanhamento e esforço que a instituição não estava disposta a suportar.
O algoritmo de solução proposto demonstrou ser muito rápido, levando menos de 2 minutos para a geração do grafo correspondente ao problema fluxo em rede de mínimo custo (conforme descrito no item 4) e a resolução do problema por meio do algoritmo network simplex.
Os resultados obtidos com o processamento diário do modelo proposto foram muito satisfatórios. O principal benefício observado com a implantação do modelo de otimização foi a redução significativa do número de visitas que precisavam ser remarcadas, pela impossibilidade de os gerentes cumprirem a programação. Quando a programação era realizada manualmente, antes da entrada em operação do sistema, o número de visitas reprogramadas representava cerca de 25% do total diário, chegando a atingir até 30% a 40% nos dias mais carregados. Além de comprometer as metas de desempenho fixadas e sobrecarregar a área de teleatendimento (que precisava contatar novamente os clientes para agendar novos horários), essa reprogramação prejudicava a imagem de eficiência que a instituição pretendia transmitir aos potenciais clientes. Não raro, um mesmo cliente tinha sua visita reprogramada mais de uma vez.
Após a implantação do sistema, esse número caiu para menos de 10% do total de visitas diárias. Essas remarcações de visita ainda ocorrem, não por deficiências do algoritmo de solução proposto, mas por aspectos imponderáveis que não podem ser incorporados ao modelo. Observou-se que a maioria das remarcações, após a implantação do modelo, se deve a gerentes gastando mais tempo que o previsto (e fixado) no atendimento a algum cliente (em geral um cliente cuja aproximação resulte altamente positiva) ou a situações excepcionais em relação a tempos de viagem, como congestionamentos ou outros problemas de trânsito não previstos.
Outro resultado observado foi a redução das despesas com transporte dos gerentes, ocasionada pela redução das distâncias percorridas, além de melhor distribuição da carga de trabalho entre os gerentes. Deve-se notar que o modelo proposto não objetivava minimizar o número de gerentes alocados ao atendimento aos clientes; todos os gerentes designados poderiam fazer visitas, mesmo que algumas, com o tempo restante ocupado em outras atividades.
Entretanto, o modelo pode ser facilmente modificado visando a determinar a solução que signifique o menor número de gerentes alocados, de forma a atender a programação e, para esse número mínimo de gerentes, a menor distância total percorrida. Para tanto, basta introduzir um valor de custo elevado nos arcos de conexão (ArcoGen) que ligam os nós de oferta bs (correspondentes às agências onde se localizam os gerentes) aos nós de clientes (i1).
Não se verificaram problemas relevantes decorrentes da representação simplificada da malha viária e do cálculo de distâncias e tempos de viagem com base nas coordenadas geográficas dos pontos. A calibração dos fatores de correção de distância e também das velocidades, realizada na fase inicial de testes e implantação do sistema, permitiu obter valores que se mostraram suficientemente realistas e compatíveis com as necessidades do sistema proposto.
6.Conclusões
Este trabalho objetivou apresentar um modelo matemático para o problema de seqüenciamento (roteirização) e programação de visitas domiciliares realizadas diariamente por um conjunto de gerentes de uma instituição bancária.
Embora problemas dessa natureza sejam, genericamente, do tipo NP-difícil (dada sua natureza combinatória), o que impede a obtenção de soluções ótimas para instâncias reais, algumas especificidades da aplicação observadas no presente caso, em particular as restrições de janela de tempo a um horário predefinido de atendimento, em vez de uma faixa horária possibilitaram a simplificação do modelo matemático e a proposição de uma estratégia de solução exata.
A estratégia de solução proposta baseou-se na modelagem do problema como um problema de fluxo em rede de mínimo custo, por meio da construção de um grafo que represente adequadamente esse problema. Isso permitiu a utilização de um algoritmo bastante eficiente, o network simplex, que produz soluções em tempos de processamento muito reduzidos.
Entretanto, o caso mais geral, em que os atendimentos podem ocorrer dentro de uma janela horária em vez de em horário predeterminado, correspondente ao modelo matemático apresentado no item 3, não permite essa simplificação. Nesse caso, o uso de alguma heurística apropriada é inevitável, dada a complexidade do problema.
A implantação do modelo proposto proporcionou significativa melhora na qualidade da programação realizada, tanto em termos de redução do número de visitas remarcadas (em função dos gerentes não conseguirem cumprir a programação) quanto da diminuição dos custos de transporte. A não intervenção humana também foi considerada positiva no sistema, uma vez que permitiu eliminar eventuais interferências do programador no sentido de favorecer ou prejudicar algum gerente. O sistema de localização geográfica de endereços, num ambiente em que os pontos de atendimento mudam todos os dias, também foi fundamental para o sucesso da aplicação da ferramenta de otimização proposta.
A experiência aqui descrita enfatiza e reforça a importância da criatividade em busca de soluções não convencionais. Caso se tivesse partido para uma heurística clássica para problemas de roteirização, como, por exemplo, do tipo inserção, como as várias encontradas na literatura (sem perceber que as características especiais do mesmo permitem sua simplificação e conseqüente solução por meio de um algoritmo exato), os resultados certamente seriam inferiores em termos de qualidade das soluções e também em termos de tempo de processamento. Isso requer do analista conhecimento e domínio plenos dos principais conceitos e fundamentos de modelagem matemática, bem como dos algoritmos de solução mais eficientes para cada tipo de problema. Por fim, este trabalho evidenciou a viabilidade de aplicação de ferramentas de otimização na resolução de problemas reais relevantes.
7. Agradecimentos
Aos revisores, pelos comentários, observações e reflexões decorrentes, que contribuíram para o aprimoramento do artigo.
Recebido em 28/6/02
Aceito em 20/6/03
- AHUJA, R. K.; MAGNANTI, T. L.; ORLIN, J. B. Network flows theory, algoritms and applications. Upper Saddle River, New Jersey:Prentice-Hall, 1993.
- ASSAD, A. A. Modeling and implementation issues in vehicle routing. In: GOLDEN, B. L.; ASSAD, A. A. (Ed.). Vehicle rounting: methods and studies. Amsterdam: North Holland, 1998. p. 7-46.
- BODIN, L. D.; GOLDEN, B.; ASSAD, A.; BALL, M. Routing and scheduling of vehicles and crews: the state of the art. Computers and Operations Research, v. 10, n. 2, 1983.
- BRADLEY, G.; BROWN, G.; GRAVES, G. Design and implementation of large scale primal transshipment algorithms. Management Science, v. 24, p. 1-34, 1977.
- CHAO, I. M.; GOLDEN, B. L.; WASIL, E. A new heuristic for the multi-depot vehicle routing problem that improves best-known solutions. American Journal of Mathematical & Management Sciences, v. 13, p. 371-401, 1993.
- CHVÁTAL, V. Linear programming. New York: W.H. Freeman, 1983.
- CUNHA, C. B. Método simplex para redes: aspectos da sua implementaçăo computacional. In: CONGRESSO DE PESQUISA E ENSINO EM TRANSPORTES, 5, Porto Alegre, 1990. Anais... ANPET, Porto Alegre, 1990.
- CUNHA, C. B. Uma contribuiçăo para o problema de roteirizaçăo de veículos com restriçőes operacionais 1997. 222 p. Tese (Doutorado) EPUSP, Departamento de Engenharia de Transportes, Săo Paulo.
- CUNHA, C. B. Aspectos práticos da aplicaçăo de modelos de roteirizaçăo de veículos a problemas reais. Transportes, v. 8 , n. 2, p. 51-74, 2000.
- GOLDEN, B.; ASSAD, A.; LEVY, L.; GHEYSENS, F. The fleet size and mix vehicle routing problem. Comput. & Ops Res., v. 11, n.1, p. 49-66, 1984.
- GUALDA, N. D. F. The out of kilter algorithm applied to the analysis of alternative limestone transport systems 1975. 78 p. Dissertaçăo (Mestrado) The University of Austin, Austin, Texas.
- GRIGORIADIS, M. D. An efficient implementation of the network simplex method. Mathematical Programming Study, v. 26, p. 83-111, 1986.
- HALL, R. W.; PARTYKA, J. G. On the road to efficiency. OR/MS Today, p. 38-47, 1997.
- JOHNS, S. Heuristics to schedule service engineers within time windows. Journal of the Operational Research Society, v. 46, p. 339-346, 1995.
- LAPORTE, G.; GENDREAU, M.; POTVIN, J.Y.; SEMET, F. Classical and modern heuristics for the vehicle routing problem. International Transactions in Operational Research, v. 7, n. 4/5, p. 285-300, 2000.
- KOLEN, A. W. J.; RINNOOY KAN, A. H. G.; TRIENEKENS, H. W. J. M. Vehicle routing with time windows. Operations Research, v. 35, n. 2, p. 266-273, 1987.
- LENSTRA, J. K.; RINNOOY KAN, A. H. G. Complexity of vehicle and scheduling problems. Networks, v. 11, n. 2, p. 221-227, 1981.
- MADSEN, O. B. G.; RAVN, H. F.; RYGAARD, J. M. A heuristic for a dial-a-ride problem with time windows, multiple capacities, and multiple objectives. Annals of Operations Research, v. 60, p. 193-208, 1995a.
- MADSEN, O. B. G.; TOSTI, K.; ĆLDS, V. A heuristic method for dispatching repair men. Annals of Operations Research, v. 61, p. 213-226, 1995b.
- NOVAES, A. G. N. Sistemas logísticos: transporte, armazenagem e distribuiçăo de produtos. Săo Paulo: Edgard Blucher, 1989.
- RENAUD, J.; LAPORTE, G.; BOCTOR, F. F. A tabu search heuristic for the multi-depot vehicle routing problem. Center for Transportation Research, University of Montreal. Working Paper CRT 94-44, 1994.
- SALHI, S.; SARI, M. A multi-level composite heuristic for the multi-depot vehicle fleet mix problem. European Journal of Operational Research, v. 103, p. 95-112, 1997.
- SOLOMON, M. M. Algorithms for the vehicle routing and scheduling problems with time window constraints. Operations Research, v. 35, n. 2, p. 254-265, 1987.
- TEIXEIRA, R. G.; CUNHA, C. B. Heurísticas para o problema de dimensionamento e roteirizaçăo de uma frota heterogęnea utilizando o algoritmo out-of-Kilter. Transportes, v. 10, n. 2, p. 9-30, 2002.
- TOTH, P.; VIGO, D. Fast local search algorithms for the handicapped persons transportation problem. In: OSMAN, I. H.; Kelly, J. P.; (Ed.). Meta-heuristics: theory and applications. Kluwer: Norwell, 1996. p. 677-690.
- ZNAMENSKY, A. Um modelo para a roteirizaçăo e programaçăo do transporte de deficientes 2000. 144 p. Dissertaçăo (Mestrado) EPUSP, Departamento de Engenharia de Transportes, Săo Paulo.
- ZNAMENSKY, A.; CUNHA, C. B. Heurísticas para o problema de roteirizaçăo e programaçăo do transporte de deficientes. In: SETTI, J. R. A.; CYBIS, H. B. B. (Ed.). Panorama Nacional de Pesquisa em Transportes. 2000. p. 303-311.
Datas de Publicação
-
Publicação nesta coleção
12 Dez 2003 -
Data do Fascículo
Ago 2003
Histórico
-
Recebido
28 Jun 2002 -
Aceito
20 Jun 2003