Problemas de Roteamento de Veículos Transporte Escolar Fernando Silveira Alves RA: 100834 2014 RESUMO Em otimização combinatória temos os Problemas de Roteamento de Veículos (PRV). O problema consiste no atendimento de um conjunto de clientes c por meio de veículos v, que partem de um depósito ou mais. A principal restrição de um PRV é que cada veículo v possui uma capacidade m e o somatório de todas as demandas dos clientes atendidos por cada veículo na ultrapasse m. Uma das diversas aplicações do problema é o transporte escolar, onde o objetivo é minimizar a quantidade de veículos necessário para transportar alunos. A Prefeitura Municipal de Coxim - MS, conta com 22 veículos, em 36 linhas, com 5 modelos de capacidades distintas que transportam 1500 alunos da rede pública. A pergunta que surge, será que conseguimos atender todos os alunos com um número menor de veículos fazendo a mesma quantidade de viagens?. Para resolver tal problema usaremos o método Simplex e a técnica Branch-and-Bound. Palavras-chaves: Transporte escolar; Problema de roteamento de veículos; Otimização Combinatória. INTRODUÇÃO O município de Coxim está localizado na região norte do Estado do Mato Grosso do Sul, sendo cortado pelos rios Coxim e Taquari. De acordo com o senso do IBGE de 2010 o município conta com 32.159 habitantes com uma área de 6.409, 224 km 2 , sendo o município composto pelos distritos de: Coxim, Jauru, São Ramão e Taquari. A cidade de Coxim não conta com transporte público e nem privado, tendo somente o serviço de táxi ou moto-táxi. Para atender a rede pública de ensino a prefeitura municipal conta com um serviço gratuito para o transporte escolar dos estudantes no períodos matutino, vespertino e noturno. Sendo no total 36 linhas de atendimento. • 2 linhas universitárias (transportam estudantes da cidade de Coxim até a Cidade de Rio Verde - MS no período noturno); • 4 linhas urbanas (nos três períodos escolares); • 6 linhas de perímetro urbanos (nos três períodos escolares); 1
Problemas de roteamento de veículos no transporte escolar da cidade de Coxim - Ms
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Problemas de Roteamento de VeículosTransporte Escolar
Fernando Silveira Alves RA: 100834
2014
RESUMO
Em otimização combinatória temos os Problemas de Roteamento de Veículos (PRV).O problema consiste no atendimento de um conjunto de clientes c por meio de veículosv, que partem de um depósito ou mais. A principal restrição de um PRV é que cadaveículo v possui uma capacidade m e o somatório de todas as demandas dos clientesatendidos por cada veículo na ultrapasse m. Uma das diversas aplicações do problemaé o transporte escolar, onde o objetivo é minimizar a quantidade de veículos necessáriopara transportar alunos. A Prefeitura Municipal de Coxim - MS, conta com 22 veículos,em 36 linhas, com 5 modelos de capacidades distintas que transportam 1500 alunosda rede pública. A pergunta que surge, será que conseguimos atender todos os alunoscom um número menor de veículos fazendo a mesma quantidade de viagens?. Pararesolver tal problema usaremos o método Simplex e a técnica Branch-and-Bound.
Palavras-chaves: Transporte escolar; Problema de roteamento de veículos; OtimizaçãoCombinatória.
INTRODUÇÃO
O município de Coxim está localizado na região norte do Estado do Mato Grossodo Sul, sendo cortado pelos rios Coxim e Taquari. De acordo com o senso do IBGE de2010 o município conta com 32.159 habitantes com uma área de 6.409, 224 km2, sendo omunicípio composto pelos distritos de: Coxim, Jauru, São Ramão e Taquari.
A cidade de Coxim não conta com transporte público e nem privado, tendo somenteo serviço de táxi ou moto-táxi. Para atender a rede pública de ensino a prefeitura municipalconta com um serviço gratuito para o transporte escolar dos estudantes no períodosmatutino, vespertino e noturno. Sendo no total 36 linhas de atendimento.
• 2 linhas universitárias (transportam estudantes da cidade de Coxim até a Cidade deRio Verde - MS no período noturno);
• 4 linhas urbanas (nos três períodos escolares);
• 6 linhas de perímetro urbanos (nos três períodos escolares);
1
• 24 linhas rurais (períodos matutino e vespertino);
Atendendo 06 (seis) escolas estaduais, 02 (duas) escolas municipais, 01 (uma) escolafederal, 01 (uma) universidade federal, 01 (uma) universidade estadual e 08 (oito) centrode educação infantil (CEI). Fazendo o transporte de 600 alunos em cada períodos matutinoe vespertino e de 300 alunos no período noturno. Onde no períodos matutino e vespertinoo transporte conta com 22 veículos e no período noturno 14 veículos, de cinco modelos ecapacidades distintas.
Usando o algoritmo Simplex e a técnica Branch-and-Bound iremos calcular onúmero mínimo de veículos necessários para efetuar esse transporte, sendo desconsiderado02 veículos que transportam alunos para a cidade de Rio Verde - MS.
Nesse trabalho usando o algoritmo simplex para resolver o modelo matemático coproblema e a técnica branch-and-bound para encontrar uma solução inteira e ótima para oproblema.
DESCRIÇÃO DO PROBLEMA
A cidade de Coxim, conta com 22 veículos para transportar estudantes da redepública de ensino, sendo 9 veículos próprios de sua frota e 13 veículos terceirizados, dediversas capacidades que atendem 1500 alunos, sendo 600 no período matutino, 600 noperíodo vespertino. São em número 5 tipos de ônibus com capacidade distintas conformetabela abaixo.
Tipo tipo 1 (x1) tipo 2 (x2) tipo 3 (x3) tipo 4 (x4) tipo 5(x5)Capacidade 30 40 20 42 44Quantidade 6 5 3 4 4
Tabela 1 – Quantidade veículos disponíveis
Estamos interessados em encontrar um número mínimo de veículos necessáriospara efetuar o transporte, sem alterar as rotas atuais nos períodos matutino e vespertino,pois trabalham com a frota total de veículo.
Formulação MatemáticaO modelo que se segue abaixo representa o problema dado:
minx
z =k∑
i=1xi
sujeito a:
k∑i=1
yi · xi ≥ Q
xi ≤ qi (i = 1, . . . , k) (1)xi ≥ 0 e inteiro
2
Onde: xi são as quantidades de veículos necessários de cada tipo disponíveis pelaprefeitura de Coxim, k é a quantidade de tipos de veículos, conforme suas capacidades, yi
é a capacidade de cada veículo, Q é a quantidade total de alunos a serem atendidos, qi é aquantidade de veículos disponíveis de cada tipo.
METODOLOGIA DE SOLUÇÃO
Programação LinearTécnica que se propõe otimizar (maximizar ou minimizar) o valor de uma função
linear, respeitando um conjunto de restrições (equações ou inequações) lineares.
Exemplo 1. George B. Dantzig (1947): planejamento logístico (suprimentos).
Objetivo tratar problemas de alocação de recursos - determinar o modo mais eficiente deutilizar os recursos limitados;
Linear implica que todas as funções do problema são lineares.
Definição 0.1. Um modelo de programação linear (PL) reduz um sistema real a umconjunto de equações ou inequações em que pretendemos otimizar uma função objetivo.
Exemplos de Problemas de Decisão resolvidos por PL
Exemplo 2. Se tanto a Matéria Prima quanto a Mão de Obra são limitados, qual aquantidade produtos que maximiza o lucro da empresa?
Exemplo 3. Se um dado combustível é obtido de uma mistura de produto de preçosvariados, qual a composição de menor custo com poder calorífico suficiente?
Exemplo 4. Se existem vários caminhos que ligam duas cidades, qual é a que propicia omínimo de gasto de combustível?
Exemplo 5. Se existem vários ativos financeiros, qual a combinação que melhor reflete ocompromisso entre o risco e o retorno?
Exemplo 6. Um empresa de ônibus transportam um quantidade Q de alunos, qual onúmero mínimo de ônibus necessários para efetuar tal transporte.
Eliminação Gaussiana (Pivotamento, Gauss-Jordan)É um método direto para solução de sistemas de equações lineares.
Propriedade A solução do sistema Ax=b não se altera se o submetermos a uma seqüência deoperações do tipo:
1. Multiplicação de uma equação por constante não-nula;2. Soma do múltiplo de uma equação à outra;3. Troca da ordem das equações.
3
Formas de Representação
Formato Padrão todas as restrições são igualdades e todas as variáveis são não-negativas.
Formato canônico (problema de minimização) todas as variáveis são não-negativas e todas as restriçõessão do tipo ≥.
Variáveis básicas e variáveis não básicas
Definição 0.2. Uma base de uma matrix Am×n é uma matriz quadrada de m vetorescoluna linearmente independentes em Rm. As variáveis associadas a essas colunas sãodenominadas variáveis básicas.
Assim, é possível decompor o vetor de variáveis em x = (xB), xA, em que:
xB representa o vetor das variáveis básicas de m componentes;
xA representa o vetor das n−m variáveis restantes (não-básicas).
Método SimplexO método nada mais é do que um algoritmo de busca, isto é, ele começa num
vértice a região factível (região onde se encontra todas as soluções viáveis) e move-se de umvértice a outro até encontrar o vértice ótimo, ele descreve uma sequência de passos para asolução de sistemas de equações lineares sujeitos a uma função objetivo. Basicamente, eledispõe sobre três situações:
1. O método de inversão de matriz básica m×m deduzida a partir de A, uma matrizde restrições m× n.
2. As condições de troca de variáveis dentro da matriz básica, para que exista garantiade uma contínua melhora da solução do longo do desenvolvimento dos passos doalgoritmo.
3. As regras de parada do algoritmo e a interpretação dessa situação final.
Resumo do Algoritmo Simplex
• [Condição de otimalidade] A variável que entra na base em um problema demaximização (minimização) é a variável não básica que tiver o coeficiente maisnegativo (positivo) na linha z. Os vínculos são rompidos arbitrariamente. O ótimo éalcançado na iteração em que todos os coeficientes da linha z das variáveis básicasforem não negativos (não positivos).
• [Condição de viabilidade] Tanto para os problemas de maximização quanto paraos problemas de minimização, a variável que sai da base é a variável básica associadacom a menor razão não negativa (que tenha um denominador estritamente positivo).Os vínculos são quebrados arbitrariamente.
• [Operações de linha por Gauss-Jordan]
1. Linha do pivô
4
a) Substitua a variável que sai da base na coluna Base pela variável que entrana base.
b) Nova linha pivô = Linha pivô atual ÷ Elemento pivô2. Todas as outras linhas, incluindo z Nova linha = (Linha atual) - (Coeficiente
da coluna pivô)×(Nova linha do pivô).
Etapas do Algoritmo Simplex
Etapa 1 Determine um solução básica viável.
Etapa 2 Selecione uma variável para entrar na base usando a condição de otimalidade. Pareaqui se não houver nenhuma variável para entrar na base; a solução é ótima. Senão,passe para a etapa 3.
Etapa 3 Selecione uma variável para sair da base usando a condição de viabilidade.
Etapa 4 Determine uma nova solução básica usando os cálculos de Gauss-Jordan adequados.Passe para a etapa 2.
Branch-and-BoundO método denominado Branch-and-Bound (B&B) baseia-se na idéia de desenvolver
uma enumeração inteligente dos pontos candidatos à solução ótima inteira de um problema.O termo branch refere-se ao fato de que o método efetua partições no espaço de soluções. Otermo bound ressalta que a prova de otimalidade da solução utiliza-se de limites calculadosao longo da enumeração.
Algoritmo B&B
Considerando um problema maximização, estabeleça um limite inferior inicialz = −∞ para o valor dos coeficientes da função objetivo ótima da PLI. Determine i = 0.
Etapa 1 Selecione uma PLi, o próximo sub-problema a ser examinado. Resolva a PLi e tenteinterpretá-la usando uma das três condições:
1. O valor ótimo de z da PLi não pode dar uma valor objetivo melhor que o limiteinferior atual.
2. A PLi dá uma solução inteira viável melhor do que o limite inferior atual.3. A PLi não tem solução viável
Surgirão dois casos.
1. Se a PLi for interpretada em uma solução melhor for encontrada, atualize olimite inferior. Se todos os sub-problemas tiverem sido descartados, para; a PLIótima associada com o limite inferior finito atual. Se não existir nenhum limiteinferior finito, o problema não tem nenhum solução viável. Senão, determinei = i + 1, repita a etapa 1.
2. Se a PLi não for interpretada, vá para a etapa 2 para ramificar.
5
Etapa 2 (Ramificação) Selecione uma das variáveis inteiras xj , cujo valor ótimo x∗j na solução
da PLi não seja inteiro. elimine a região
[x∗j ] < xj < [x∗
j ] + 1
(na qual [v] define o maior inteiro ≤ v), criando dois sub-problemas de PL quecorrespondem a
xj ≤ [x∗j ] e xj ≥ [x∗
j ] + 1
Determine i = i + 1, e vá para a etapa 1.
As etapas dadas se aplicam a problema de maximização. Para minimização, substi-tuímos o limite inferior para um limite superior (cujo valor inicial é z = +∞).
APRESENTAÇÃO DO RESULTADOS
Utilizando a tabela da página 2 e o modelo da página 2, temos então o seguinteproblema a minimizar:
minx
z =5∑
i=1xi
sujeito a:
5∑i=1
(yi − fol) · xi ≥ 600
xi ≤ qi (i = 1, . . . , 5)xi ≥ 0 e inteirox2 ≥ 4x3 ≥ 1
Note que na inequação∑5
i=1(yi − fol) · xi ≥ 600 foi adicionada a variável folreferente a quantidade de passageiros nos veículos, a prefeitura municipal de Coxim nãotrabalha com a lotação máxima, pois esporadicamente fiscais da prefeitura andam naslinhas para verificar se os motoristas não estão dando carona para não estudantes, ou se,os passageiros são estudantes com cadastrado daquela linha. A prefeitura adota fol = 2,x2 ≥ 4 são os veículos para as linhas das escolas rurais, ou seja, os veículos só voltam paraa cidade no final da tarde para começarem a fazer a linha noturna, e x3 ≥ 1, pois umadeterminada escola só é acessível por meio de veículos de pequeno ou médio porte, assim,o modelo fica:
6
minx
z =5∑
i=1xi
sujeito a:5∑
i=1(yi − 2) · xi ≥ 600
xi ≤ qi (i = 1, . . . , 5) (2)xi ≥ 0 e inteirox2 ≥ 4x3 ≥ 1
Observe que a função objetivo é
z = x1 + x2 + x3 + x4 + x5
com coeficientes inteiros, deste modo, uma técnica boa para solução é usar o AlgoritmoSimplex. Como o Algoritmo não está interessado em soluções inteiras, então usando atécnica Branch-and-Bound (B&B) procuraremos as soluções inteiras que minimizem oproblema. Adicionando as variáveis de folgas e variáveis artificiais, deixaremos o modelo(2) na forma padrão.
Utilizando a função Solver da planilha eletrônica, em nosso caso o Excel, e tirandoa restrição de que xi inteiro, temos a seguinte solução ótima:
z = 16, 2857x1 x2 x3 x4 x52,2 5 1 1 4
Tabela 2 – Solução ótima solver
A solução anterior é a solução ótima para nosso modelo, mas estamos interessadosem uma solução inteira, então aplicando o método de branch-and-bound dividiremos oproblema anterior em dois sub-problemas
minx
z =5∑
i=1xi
s. a:28x1 + 38x2 + 18x3 + 40x4 + 42x5 ≥ 600
x1 ≤ 2; 4 ≤ x2 ≤ 51 ≤ x3 ≤ 3; x4 ≤ 4 x5 ≤ 4
xi ≥ 0(Sub-problema 1)
minx
z =5∑
i=1xi
s. a:28x1 + 38x2 + 18x3 + 40x4 + 42x5 ≥ 600
3 ≤ x1 ≤ 6; 4 ≤ x2 ≤ 51 ≤ x3 ≤ 3; x4 ≤ 4 x5 ≤ 4
xi ≥ 0(Sub-problema 2)
Assim, resolvendo com o solver cada um dos sub-problemas, temos que:
z = 16, 44x1 x2 x3 x4 x52 5 1,4 4 4
Tabela 3 – Solução Sub-problema 1
z = 16, 47x1 x2 x3 x4 x53 4,4 1 4 4
Tabela 4 – Solução Sub-problema 2
Estamos então começando a criar a árvore de branch-and-bound, procurando assoluções fazendo uma busca em largura.
P0
P1 P2
Figura 1 – Árvore branch-and-bound
Observe que a tabela 3 e a tabela 4 ainda não obtivemos uma solução inteira, entãocada uma se divide em mais dois mais dois sub-problemas
Como ainda não obtivemos uma solução inteira para o problema, dividimos ossub-problemas 4, 5 e 6 em dois sub-problemas cada, adicionando as restrições:
Observe que Sub-problema 7 e Sub-problema 9 são soluções inteiras e distintas, como asolução ótima [] é z = 16, 2857, logo esse é um limitante inferior para o problema, e encontramosnos Sub-problema 7 e Sub-problema 9 z = 17, ou seja um limitante superior, como os coeficientesda função objetivo são inteiros, deste modo z é um número inteiro tal que
16, 2857 ≤ z ≤ 17
ou seja, o valor mínimo de z é 17, sendo assim, podemos parar de aplicar o método de branch-and-bound e afirmar que as soluções inteiras encontradas para o problema são ótimas.
P0
P1
P3 INV. P4
P7 P8
P2
P5
P9 P10
P6
P11 P12
Figura 3 – Árvore branch-and-bound
Como no 3o nível da árvore de branch-and-bound encontramos duas soluções inteiras, issonos leva a acreditar que existe mais soluções inteiras e ótimas para o problema, assim, continuandoaplicando o método de branch-and-bound e procuraremos todas as soluções ótimas inteiras doproblema, aquela ramo da árvore que encontrar o valor para z superior a 17, podamos aquele ramo
11
da árvore, assim, cada um dos sub-problemas 8, 10, 11 e 12 se dividem em 2 sub-problemas cada:
Note agora que o método de branch-and-bound irá podar vários galhos da árvore desolução, seria os galhos abaixo do Sub-problema 13 por não ter solução viável e os galhos abaixodos Sub-problema 15, Sub-problema 17 por terem valor mínimo maior que o limitante superior, e oSub-problema 20 por já ter solução inteira, observe que encontramos mais uma solução inteira ediferente das anteriores.
Agora os sub-problemas 14, 16, 18, 19 em dois sub-problemas cada, adicionando asrestrições:
Aplicando o método de branch-and-bound podamos os galhos referente aos Sub-problema23, Sub-problema 24, Sub-problema 25 e Sub-problema 27. Agora os sub-problemas 22, 26, e 28 sedividem em dois sub-problemas cada, adicionando as restrições:
Como todos os valores da função objetivo z ou é 17, ou superior a 17, o método debranch-and-bound poda todos os galhos da árvore abaixo desses problemas.
O método de branch-and-bound foi dividindo a região factível gerada pelo AlgoritmoSimplex em sub-regiões e aplicando o Simplex, e gerando sub-problemas para cada uma dassub-regiões adicionando cada vez mais restrições, dependendo da quantidade de variáveis e daquantidade de variáveis não inteira da solução ótima do problema relaxado, encontrar a soluçãointeira pelo método branch-and-bound pode-se tornar um trabalho muito grande, e então teríamosque procurar alguma alternativa para resolver tal problema. No nosso caso, tínhamos cinco variáveise na solução ótima apenas uma única solução não inteira, e isso já gerou 34 sub-regiões. Por outrolado o Solver tem a opção de encontrar solução inteira, basta adicionar a restrição xi inteiro, mas aferramenta só encontra uma solução inteira, e se estivéssemos interessados em todas as soluçõesinteiras para o problema?, para o nosso problema ainda foi viável procurar uma por uma, mas emproblemas com ordens maiores não é interessante fazer isso, pois exigiria grande tempo humano ecomputacional.
Mas temos que analisar também o porque de mais de uma solução inteira. Pois bem, onosso problema é encontrar a quantidade mínima de veículos que a prefeitura municipal de Coximnecessita para fazer o transporte de 600 alunos em cada período, não analisamos as rotas que essesveículos fazem, então em algumas das soluções que encontramos pode não ser possível fazê-la, outalvez em todas elas, também podemos considerar o caso de todas as soluções sejam possíveis seremfeitas, então o tomador de decisão terá um recurso muito bom para remanejar os veículos, casoalgum veículo esteja impossibilitado de fazer viagens em determinado dia.
17
REFERÊNCIAS
[1] Goldbarg, M. C. & Luna, H. P. L. Otimização combinatória e programação linear: modelos ealgoritmos Rio de Janeiro, Campus. 1a Edição, 2000.
[2] Boldrini, Jose Luiz ... [et. al]. Álgebra Linear. São Paulo: Harper & Row do Brasil, 3a Edição,1980.
[3] Taha, Hamdy A. Pesquisa operacional: uma visão geral. 8. ed. São Paulo: Pearson PrenticeHall, 2008.
[4] Scarpel, Rodrigo A. Pesquisa operacional: notas de aula. www.mec.ita.br/˜rodrigo. acessadoem 18/05/2014, 2014