MÓDULO 2 - PROBLEMAS DE COBERTURAS DE ARCOS E NÓS
Baseado emCampos, Vânia B.G., Otimização do Transporte, Instituto Militar de Engenharia, Rio de Janeiro, 1998 e Smiderle, Andreia, Técnicas da Pesquisa Operacional Aplicadas – Um Problema de Cobertura de Arcos, Dissertação
de Mestrado (Métodos Numéricos em Engenharia), Universidade Federal do Paraná, 153f., Curitiba, 2001. 1.TEORIA DE GRAFOS
Está contida na área de Pesquisa Operacional. Pode ser considerada como uma teoria baseada na interligação de pontos e linhas, utilizada principalmente na solução de problemas de roteamento.
Um Grafo é definido como sendo um par ordenado (V,A). Os elementos de V são denominados vértices ou nós do grafo e os pares ordenados de A, denominados de arestas ou arcos do grafo. Alguns aspectos importantes devem ser considerados em relação aos Grafos:
Quando um arco é incidente a um único vértice é denominado "laço".
Dois vértices são considerados "adjacentes" se eles estão interligados por um arco. Uma "cadeia" é uma seqüência de arcos (orientados ou não). O tamanho de uma
cadeia está relacionada ao número de arcos que a compõe.
Um "caminho" é uma cadeia em que todos os arcos têm a mesma direção, ou seja, é um grafo com conjunto de vértices da forma {1, 2, 3, . . , k–1, k} e conjunto de arestas da forma {{1,2} , {2,3}} , . . , {k–1, k}}.
Um "ciclo" é uma cadeia cujo vértice inicial e final é o mesmo (cadeia fechada), isto é, é um grafo com conjunto de vértices da forma {1, 2, 3, . . , k–1, k} e conjunto de arestas da forma {{1,2} , {2,3}} , . . , {k–1, k}, {k,1}}
Um grafo é "conexo" quando existe um caminho entre cada par de vértices, ou se seja, se para todo par x, y de vértices existe um caminho que liga x a y; caso contrário, o grafo é desconexo.
Quanto às características de seus arcos, um grafo pode ser:
1. Orientado ou não orientado: são orientados quando os seus arcos possuem uma orientação definida, e não orientados, quando não existe noção de direção. Quando os arcos não possuem direção, são denominados arestas.
2. Valorado e não valorado: é valorado quando existem valores atribuídos a cada um dos seus arcos.
3. Planar e não planar: é planar quando os arcos somente cruzam sobre um nó, podendo consequentemente ser projetado sobre um plano, sem perder as suas características. Um grafo não planar, quando projetado sobre um plano, apresenta interseções de arcos não coincidentes com um nó, em função da sua estrutura espacial.
A figura a seguir mostra a representação gráfica de um grafo.
G(V,A) => V={V1,V2,V3,V4} e A={V1V2,V2V3,V3V4,V4V1}
Quando em um grafo existe a associação de um ou mais valores aos arcos e/ou nós, pode-se defini-lo como uma rede.
V1 V2
V3 V4
Sendo assim, pode-se representar uma rede como R={V,A,α}, onde V e A são, respectivamente, os conjuntos de nós e arcos que formam um grafo, e α, os parâmetros associados aos elementos do conjunto A e/ou do conjunto V.
Podem-se citar alguns valores de α associados aos arcos:
a capacidade de fluxo, que corresponde ao limite que pode passar pelo arco; o custo no arco, que pode ser considerado como um valor monetário, a
distância percorrida ou o tempo de viagem no arco e o fluxo no arco.
Existem também os valores de α associados aos nós: população de uma cidade;
número de produtos fabricados em uma unidade e demanda de produtos em uma área geográfica. 2.CAMINHOS EULERIANOS E HAMILTONIANOS
2.1. Diferenças entre os caminhos Eurelianos e Hamiltonianos
Euleriano: passa por cada aresta uma vez, passando por todas. Hamiltonianos: passa por cada vértice uma vez, visitando todos.
Obs.: O Ciclo Hamiltoniano é um caminho Hamiltoniano que termina no vértice vizinho onde começou, ou seja, volta ao ponto de partida.
Exemplo: Para os grafos abaixo obter os caminhos Eulerianos e Hamiltonianos e verificar quais dos caminhos Hamiltonianos são ciclos:
Caminhos Eulerianos Caminhos Hamiltonianos Ciclos Hamiltoniano 1, 2, 3, 4, 2 1, 2, 4, 3, 2 2, 3, 4, 2, 1 2, 4, 3, 2, 1 1, 2, 3, 4 1, 2, 4, 3 4, 3, 2, 1 3, 4, 2, 1 não existe. 1 2 3 4
Caminhos Eulerianos
Caminhos Hamiltonianos Ciclos Hamiltoniano 1, 2, 3, 4, 1, 5, 4 1, 2, 3, 4, 5, 1, 4 1, 4, 3, 2, 1, 5, 4 1, 5, 4, 3, 2, 1, 4 1, 5, 4, 1, 2, 3, 4 4, 1, 2, 3, 4, 5, 1 4, 3, 2, 1, 4, 5, 1 4, 1, 5, 4, 3, 2, 1 4, 5, 1, 4, 3, 2, 1 4, 5, 1, 2, 3, 4, 1 1, 2, 3, 4, 5 1, 5, 4, 3, 2 2, 3, 4, 5, 1 2, 3, 4, 1, 5 2, 1, 5, 4, 3 3, 4, 5, 1, 2 3, 2, 1, 5, 4 3, 2, 1, 4, 5 4, 5, 1, 2, 3 4, 3, 2, 1, 5 5, 1, 2, 3, 4 5, 1, 4, 3, 2 5, 4, 3, 2, 1 5, 4, 1, 2, 3 1, 2, 3, 4, 5 1, 5, 4, 3, 2 2, 3, 4, 5, 1 2, 1, 5, 4, 3 3, 4, 5, 1, 2 3, 2, 1, 5, 4 4, 5, 1, 2, 3 4, 3, 2, 1, 5 5, 1, 2, 3, 4 5, 4, 3, 2, 1
2.2. Considerações sobre o Caminho Euleriano
Aplicação ⇒ Problema do carteiro chinês : Um carteiro precisa passar por todas as ruas (arestas) entregando cartas, ele não quer passar mais que uma vez pela mesma rua, assim ele faz a entrega com mais eficiência.
Teorema do Caminho Euleriano ⇒ Baseado no grau dos vértices do grafo, verifica-se a existência de um caminho Euleriano em um grafo se:
Obs.: O Grau de um vértice V é igual ao número de vértices adjacentes a V. A. Não existirem vértices de grau impar. Neste caso o caminho começa em um vértice e termina no mesmo.
Ex.:
1
2
3
1
2
3
2
3
1
4
4
1, 2, 3, 1 1, 2, 3, 4, 1 5 2, 1, 3, 2 3, 4, 1, 2, 3 1, 2, 3, 4, 5, 3, 1
B. Existirem 2 vértices de grau ímpar. Neste caso, o caminho começa em um vértice ímpar e termina no outro vértice impar.
Ex.: 1 2 1 2
3 4 4 3 1, 2, 3, 4, 2 1, 2, 3, 4, 1, 5, 4 2, 3, 4, 2, 1 4, 5, 1, 4, 3, 2, 1
vértices impares: 1 e 2 vértices impares: 1 e 4
1 2
3 4
5
2.3. Considerações sobre Caminho Hamiltoniano
Aplicação ⇒ Problema do caixeiro viajante: Um caixeiro viajante precisa visitar todas as cidades (vértices) de uma região passando somente uma vez por cada uma. Ele deseja também terminar na cidade vizinha onde começou (Ciclo Hamiltoniano). Se existir mais de uma opção, escolher o menor caminho.
Não existe um algoritmo eficiente para verificar se o ciclo existe (ver ilustração dessa dificuldade no item 3.1.1). Pode-se somente afirmar que qualquer grafo conexo, com mais de 3 elementos possui um Ciclo Hamiltoniano.
3. ROTEAMENTO DE VEÍCULOS
Um problema de roteamento pode ser considerado como um conjunto organizado de meios que objetiva o atendimento de demandas localizadas nos arcos ou nos vértices de alguma rede de transporte. A idéia principal desse tipo de problema é a designação de pontos de paradas de veículos, bem como a determinação da seqüência com que esses pontos de parada são visitados, estabelecendo assim, as rotas para os veículos.
Duas abordagens básicas para o roteamento de veículos têm sido adotadas, supondo que os veículos serão roteirizados em uma rede composta por nós e arcos: problemas de coberturas de nós e problemas de cobertura de arcos.
3.1. Problemas de cobertura de nós
Estes tipos de problemas devem indicar uma rota de comprimento mínimo que visite cada nó uma única vez.
3.1.1. Problema do Caixeiro Viajante
Este problema implica no cálculo de um ciclo de Hamilton, em um grafo, de encargo total mínimo. O ciclo Hamiltoniano é caracterizado pela possibilidade da existência de uma rota, que passasse pelos nós, iniciando e terminando no mesmo nó, sem nunca repetir uma passagem. Este ciclo é denominado de Hamilton em homenagem Willian Rowan Hamilton, que em 1957 propôs um jogo denominado Around the World (figura 2.1). O problema do Caixeiro Viajante é um problema de otimização associado ao da determinação dos caminhos hamiltonianos em um grafo qualquer.
Figura 3.1 - Esquema do tabuleiro do jogo de Hamilton
Para solução desses problemas, principalmente em redes reais de grande porte, necessita-se de apoio computacional. É importante observar que o tempo de solução computacional cresce exponencialmente com o aumento do número de nós. Somente o Método de Enumeração (identificação de todos os ciclos possíveis), garante o cálculo
da solução ótima do problema, mas tal método é impraticável. Para ilustrar esta dificuldade observa-se que para um computador tratar em torno de 10.000 ciclos/segundo, ele necessitará de aproximadamente 18 segundos para finalizar a avaliação de uma solução ótima em um grafo com 10 vértices, 50 dias para um grafo com 15 vértices, 2 anos para um grafo com 16 vértices e 193.000 anos para um grafo com 20 vértices.
Serão apresentados três modelos heurísticos (utiliza experiências passadas): do vértice adjacente mais próximo, da inserção com menor encargo e da inserção com maior afastamento.
A) Método do Vértice Adjacente mais Próximo
Este método baseia-se nos seguintes passos para identificar a solução aproximada:
1-Seleciona-se arbitrariamente um nó Ni para o início do ciclo.
2-Dentre os nós não selecionados, seleciona-se o nó Nk que está a menor distância
de Ni, ficando a cadeia Ni,Nk. Repetem-se esses passos até que todos os vértices
possam ser utilizados.
Exemplo - Considerando a tabela a seguir que registra as distâncias em quilômetros entre os nós de um grafo orientado, determine uma rota com encargo total mínimo, utilizando o método em estudo, que passe pelos nós, iniciando e terminando no mesmo nó, sem repetir uma passagem.
A B C D E A 16 12 18 16 B 10 18 20 20 C 18 20 18 16 D 14 18 10 8 E 8 12 12 12 Seleciona-se o nó inicial: A
O nó mais próximo de A que ainda não foi selecionado? C (12Km) O nó mais próximo de C que ainda não foi selecionado? E (16Km) O nó mais próximo de E que ainda não foi selecionado? B (12Km) O nó mais próximo de B que ainda não foi selecionado? D (20Km) O nó mais próximo de D que ainda não foi selecionado? A (14Km)
O circuito inicial então teria a seguinte configuração: A > C > E > B > D > A com a distância total de 74Km.
B) Método da Inserção com Menor Encargo.
Este método baseia-se nos seguintes passos para identificar a solução aproximada:
1-Seleciona-se um subciclo "i,j,i" associado a Min {Cij + Cji}
Obs.: se houver empate deve-se escolher arbitrariamente um subciclo.
2-No subciclo corrente, calcular para cada ligação do tipo (u,v), a inserção do nó "k" (não selecionado) a que corresponda ao aumento mínimo da distância dado por Min {Cuk + Ckv - Cuv}. Repetir este procedimento até serem selecionados todos os nós do
grafo.
Exemplo - Considerando a tabela a seguir que registra as distâncias em quilômetros entre os nós de um grafo orientado, determine uma rota com encargo total
mínimo, utilizando o método em estudo, que passe pelos nós, iniciando e terminando no mesmo nó, sem repetir uma passagem.
A B C D E A 16 12 18 16 B 10 18 20 20 C 18 20 18 16 D 14 18 10 8 E 8 12 12 12
Inicialmente deve-se escolher o subciclo inicial. A tabela a seguir mostra as distâncias equivalentes de cada subciclo.
A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E
Então, o primeiro subcircuito será DED com distância total de 20Km.
Agora, devem-se então verificar todas as inserções possíveis no subciclo anterior, de acordo com o passo 2.
Opções entre D e E: D > A = 14Km e A > E = 16Km >> 14 + 16 = 30Km - 8Km = 22Km D > B = 18Km e B > E = 20Km >> 18 + 20 = 38Km - 8Km = 30Km D > C = 10Km e C > E = 16Km >> 10 + 16 = 26Km - 8Km = 18Km Opções entre E e D E > A = 8Km e A > D = 18Km >> 8 + 18 = 26Km - 12Km = 14Km E > B = 12Km e B > D = 20Km >> 12 + 20 = 32Km - 12Km = 20Km E > C = 12Km e C > D = 18Km >> 12 + 18 = 30Km - 12Km = 18Km
A menor quilometragem na inserção foi observada com o nó A entre E e D. O novo circuito agora tem esta configuração.
As próximas inserções possíveis são:
D 8Km E 12Km D
Opções entre D e E: B > 18+20-8 = 30Km C > 10+16-8 = 18Km Opções entre E e A: B > 12+10-8 = 14Km C > 12+18-8 = 22Km Opções entre A e D: B > 16+20-18 = 18Km C > 12+18-18 = 12Km
A menor quilometragem foi observada com a inserção do nó C entre A e D, ficando o novo subciclo da seguinte forma:
D > 8Km > E > 8Km > A > 12Km > C > 18Km > D
Avaliando-se a última inserção possível (nó B), deve-se identificar em que trecho deve ser efetuado.
Opções de inserção: DBEACD = 76Km DEBACD = 60Km DEABCD = 68Km DEACBD = 68Km
Então o circuito teria a seguinte configuração por este método:
D > E > B > A > C > D com a distância total de 60Km.
C) Método da Inserção com maior afastamento.
Este método baseia-se nos seguintes passos para identificar a solução aproximada:
1-Seleciona-se o subciclo "i,j,i" associado a Max {Cij + Cji}
Obs.: se houver empate deve-se escolher arbitrariamente um subciclo.
2-Seleciona-se um nó "k" dos não inseridos de acordo com os subpassos a seguir:
2.1-Avalia-se a menor distância entre os nós já pertencentes ao subciclo atual, ao nó "k" a inserir.
2.2-Escolhe-se para inserção o nó "k" onde seja maior à distância registrada (máximo dos mínimos)
3-No subciclo atual, calcular para cada ligação do tipo (u,v) a inserção do nó "k", selecionado anteriormente, a que corresponda o aumento mínimo de distância dado por Min {Cuk+Ckv-Cuv}.
Exemplo - Considerando a tabela a seguir que registra as distâncias em quilômetros entre os nós de um grafo orientado, determine uma rota com encargo total mínimo, utilizando o método em estudo, que passe pelos nós, iniciando e terminando no mesmo nó, sem repetir uma passagem.
A B C D E A 16 12 18 16 B 10 18 20 20 C 18 20 18 16 D 14 18 10 8 E 8 12 12 12
Inicialmente deve-se escolher o subciclo inicial. A tabela a seguir mostra as distâncias equivalentes de cada subciclo.
A B C D E
A ABA=26Km ACA=30Km ADA=32Km AEA=24Km
B BCB=38Km BDB=38Km BEB=32Km
C CDC=28Km CEC=28Km
D DED=20Km
E
Então, o primeiro subciclo será BCB com distância total de 38Km.
Agora, devem-se então verificar todas as inserções possíveis no subciclo anterior, de acordo com o passo 2.
Distância entre os nós
A D E
B 10 20 20
C 18 18 16
Min. entre linhas 10 18 16
Máx. entre colunas 18
Opções de inserção para o nó D:
1-B > D > C = 20+10-18 (BC) = 12Km 2-C > D > B = 18+18-20 (CB) = 16Km B C B 18Km 20Km B 18Km C B 20Km D D 18Km 18Km 20Km 10Km
O menor encargo com a inserção do nó "D" é 12Km, ficando então o novo subciclo é BDCB.
Deve-se escolher um novo nó para inserção:
Distância entre os nós A E B 10 20 C 18 16 D 14 8
Min. entre linhas 10 8
Máx. entre colunas 10
Opções de inserção:
1-B > A > D = 10+18-20 (BD) = 8Km 2-D > A > C = 14+12-10 (DC) = 16Km 3-C > A > B = 18+16-20 (CB) = 14Km
O menor encargo com a inserção do nó "A" é 8Km, ficando então o novo subciclo é BADCB.
O único nó que falta ser inserido no subciclo é o "E". Sendo assim, deve-se avaliar as opções de encargos (distâncias).
Opções de inserção:
1-BEADCB = 20+8+18+10+20 = 76Km 2-BAEDCB = 10+16+12+10+20 = 68Km 3-BADECB = 10+18+8+12+20 = 68Km 4-BADCEB = 10+18+10+16+12 = 66Km
Então o circuito inicial teria a seguinte configuração por este método.
B > A > D > C > E > B com a distância total de 66Km.
B 10Km C 20Km B 18Km 10Km 20Km D A A A 12Km 14Km 18Km 16Km