CP Damat 2019 1 05
CP Damat 2019 1 05
CP Damat 2019 1 05
LICENCIATURA EM MATEMÁTICA
CORNÉLIO PROCÓPIO
2019
STEPHANY PRISCILA CORREIA
CORNÉLIO PROCÓPIO
2019
Ministério da Educação
Universidade Tecnológica Federal do Paraná
Câmpus Cornélio Procópio
Diretoria de Graduação
Departamento de Matemática
Curso de Licenciatura em Matemática
FOLHA DE APROVAÇÃO
BANCA EXAMINADORA
Algumas pessoas marcam a nossa vida para sempre, umas porque nos vão ajudando
na construção, outras porque nos apresentam projetos de sonho e outras ainda porque nos
desafiam a construí-los.
Esta fase da minha vida é muito especial e não posso deixar de agradecer a Deus por
toda força, ânimo e coragem que me ofereceu para ter chegado até aqui. A Ele eu devo minha
gratidão.
Aos meus pais Reinaldo e Adriana, meus maiores mestres, cujos ensinamentos guardo
com grande carinho e consideração para toda vida. Se hoje tenho este título, dedico a vocês.
Aos meus irmãos Stélly e Reinaldo Júnior, que sempre torceram por mim, mesmo que
de longe.
A minha orientadora, Profa . Dra . Claudia Fink, pela orientação, confiança, dedicação,
paciência e, principalmente, pela amizade e ensinamentos durante todo o período do trabalho.
Só tenho agradecer as minhas amigas, em especial Mirian, que esteve comigo ao
longo da vida. As minhas amigas Jéssica, Glaucia e Débora, que conheci durante a graduação.
Obrigada por todos os momentos em que fomos estudiosas, brincalhonas e cúmplices. É muito
gratificante quando você percebe que tem alguém pra te ajudar, pra estar do seu lado. Obrigada
pela paciência, pelo sorriso, pelo abraço, pela mão que sempre se estendia quando eu precisava.
Esta caminhada não seria a mesma sem vocês. Minha eterna gratidão.
Agradeço também aos membros da banca examinadora, Profa . Dra . Glaucia Maria
Bressan e o Profo . Dro . Josimar da Silva Rocha pela disponibilidade de participar e pelas
contribuições valiosas.
A todos que direta ou indiretamente fizeram parte da minha formação, o meu muito
obrigada.
“Você só vive uma vez.
É sua obrigação
aproveitar a vida
da melhor forma possível."
(Como eu era antes de você)
RESUMO
Palavras-chave: Teoria dos Grafos. Problema do Carteiro Chinês (PCC). Problema do Carteiro
Chinês Não Direcionado (PCCND) Roteirização. Entrega de Correspondências.
ABSTRACT
The present work aims to present and implement the algorithm of the Chinese Postman Problem
(CPP), which consists of determining a minimum path that starts at some vertex of the graph,
passes through all the edges at least once and returns to the initial vertex of it. To contextualize
this problem, the route of a postman in a neighborhood in Bandeirantes city, western Paraná, was
used to optimize the route traveled by him. A study on the theory of graphs and the problem of
the Chinese postman according to its variations was previously carried out. Excel, LINDO, DEV-C
++ and Xpress software was used to implement the Non-Directed Chinese Postman algorithm.
The developed algorithm was applied in the real problem of correspondence delivery and also in
the example of Problems of the Konigsberg Bridges.
Keywords: Graphs theory. Chinese Postman Problem (CPP). Non-Directed Chinese Postman
Problem. (NDCPP). Scripting. Correspondence Delivery.
LISTA DE FIGURAS
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.1 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.1.1 OBJETIVO GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.1.2 OBJETIVOS ESPECÍFICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.3 ORGANIZAÇÃO DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . 22
2 COLETA DE DADOS NO MUNICÍPIO DE BANDEIRANTES . . . . . . . . . . . . 23
2.1 CARACTERIZAÇÃO DO MUNICÍPIO DE BANDEIRANTES . . . . . . . . . . 23
2.2 DESCRIÇÃO DO PROCESSO DE ENTREGA DAS CORRESPONDÊNCIAS . 23
2.3 DESCRIÇÃO DO PROBLEMA A SER ESTUDADO . . . . . . . . . . . . . . . 25
3 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1 GRAFOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.1.1 REPRESENTAÇÃO MATRICIAL DE GRAFOS . . . . . . . . . . . . . . . . . . . . 32
3.2 PROBLEMAS DE ROTEAMENTO DE ARCOS . . . . . . . . . . . . . . . . . . 32
3.3 GRAFOS DE EULER E O PROBLEMA DAS PONTES DE KÖ NIGSBERG . . . 32
3.4 CIRCUITOS EULERIANOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5 PROBLEMA DO CARTEIRO CHINÊS . . . . . . . . . . . . . . . . . . . . . . . 35
4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1 MÉTODO MATEMÁTICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.1 PROBLEMA DAS PONTES DE KöNIGSBERG RESOLVIDO NO SOFTWARE LINDO 40
4.2 TECNOLOGIAS UTILIZADAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 IMPLEMENTAÇÃO COMPUTACIONAL E ANÁLISE DOS RESULTADOS . . . . . 43
5.1 ETAPAS DA IMPLEMENTAÇÃO COMPUTACIONAL . . . . . . . . . . . . . . . 43
5.2 ANÁLISE DOS RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.1 LIMITAÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
A APÊNDICE A: CÓDIGO DO MODELO MATEMÁTICO UTILIZANDO O SOFT-
WARE DEV-C++ PARA IMPLEMENTAR NO SOFTWARE LINDO . . . . . . . . . 51
B APÊNDICE B: PARTE DA MATRIZ DISTÂNCIA . . . . . . . . . . . . . . . . . . . 56
C APÊNDICE C: CÓDIGO DO MODELO MATEMÁTICO UTILIZANDO O SOFT-
WARE DEV-C++ PARA IMPLEMENTAR O MODELO NO SOFTWARE XPRESS . 57
21
1 INTRODUÇÃO
1.1 OBJETIVOS
1.2 JUSTIFICATIVA
A dificuldade para se definir o trajeto a ser realizado pelos carteiros incide diretamente
na rota que eles vão fazer durante o dia. Portanto, a definição de uma rota que minimize esse
trajeto se faz fundamental para reduzir o custo operacional com esta função.
Nesse sentido, pensando na redução de custo, o presente trabalho visa minimizar a rota
percorrida pelos carteiros na agência de Correios no município de Bandeirantes/PR. Otimizar
essa atividade acarretaria em uma possível diminuição na fadiga dos carteiros, traria economia de
combustível e, uma diminuição nos atrasos de correspondências. O trabalho torna-se oportuno
ao introduzir e apresentar soluções de problemas de roteirização que podem ser utilizados para
otimização dessa situação.
no carro são encomendas do tipo SEDEX, PAC e MALOTES. São atendidos três distritos de moto
e dois distritos de bicicleta e o outro a pé. Os de moto, são os bairros mais afastados da cidade
e, na região mais central (por exemplo, os comércios, escritórios, etc.) os carteiros pedestres.
Em Bandeirantes, com seus 31.526 habitantes [IBGE] chegam até ao correio aproxima-
damente 3.000 cartas por dia. Destas 3.000 cartas, são objetos tais como: correspondências,
encomendas, folhetos de propaganda, malotes, entre outros.
As correspondências chegam todas misturadas da cidade toda. E então os carteiros
fazem a separação, que funciona da seguinte forma: primeiramente separam por distritos, por
exemplo, cada bairro tem o número do distrito a qual pertence. Após a separação por distrito,
que é chamado de Triagem, é feita a separação por logradouro, que é a separação por rua.
Cada carteiro pega sua caixeta com as correspondências do distrito e começa a separar por
rua. Existe uma mesa com várias posições. Cada uma com o nome de uma rua. Cada carteiro
começa a ordenar sua correspondência conforme a ordem de entrega, por exemplo, se o carteiro
fizer a rua sentido centro-bairro, é de menor para o maior a numeração. Caso contrário, do maior
para o menor e assim, sucessivamente.
Esse serviço é realizado de segunda-feira a sexta-feira, sendo que a região A é atendida
em um dia e a região B no outro dia, como mostraremos mais adiante. Na Tabela 1, pode-se
observar como é feita a divisão das regiões da cidade que pertencem a cada distrito.
Para fazer esta divisão, foi feita uma contagem de cartas e foram medidas as ruas. Este
processo é feito a cada três anos mais ou menos. Ou seja, eles contam o tempo de uma carta
25
registrada que precisa ser assinada e que leva em média três minutos mais a percorrida da rua.
Outro ponto importante, seria o tempo gasto de cada carteiro para percorrer um trecho de rua
e para entregar as correspondências, quantidades de objetos a serem entregues e modo de
fazer cada trajeto (modo em U - pode percorrer um lado do trajeto, fazer o contorno no final do
mesmo e retornar pelo outro lado; modo em Z - pode percorrer o trajeto cruzando a rua de um
lado para o outro ou modo em L - pode percorrer apenas um lado da rua, pois o outro lado não
há entregas).
Nesse sentido, cada carteiro ficou responsável por cada bairro da região para a entrega
de correspondência, como mencionado na Tabela 1. Os distritos 362 e 363 são as regiões que
tem mão única, já os distritos 361, 364 e 365, são as regiões de mão dupla.
Para o desenvolvimento deste trabalho, será implementado o algoritmo do PCC apenas
em um distrito, neste caso, o distrito 364-B (mão dupla). Vale ressaltar que deve-se levar em
consideração, variáveis como o tempo de duração das entregas, a quantidade de quilômetros
percorridos, o número de viagens necessárias para que a entrega das correspondências seja
26
finalizada com sucesso e, diversas condições climáticas como intenso calor, frio ou chuva. Neste
trabalho, será levado em consideração somente a distância que o carteiro percorre fazendo cada
rota.
27
3 FUNDAMENTAÇÃO TEÓRICA
3.1 GRAFOS
Ressaltamos que neste trabalho, serão adotadas as notações: G = (N, E), ou sim-
plesmente G, para descrever o grafo correspondente ao conjunto de vértices e arestas. E
também, vamos supor que o número de elementos fundamentais é finito, de modo que podemos
enumerá-los.
Definição 1 (grafo e rede): Seja N um conjunto finito, cujos elementos são chamados nós (ou
vértices) e E um conjunto de pares de nós, cujos elementos são chamado de arestas. O par G =
(N, E) é chamado grafo. Uma rede é um grafo cujo nós e/ou arestas têm valores associados.
Observação 1 Os termos grafos e redes são usados como sinônimos, então não fazemos
distinção entre os dois.
Definição 3 Grafo Completo Simples Um grafo é dito ser completo quando há uma aresta
entre cada par de seus vértices. Estes grafos são designados por Kn , onde n é a ordem do grafo.
Um grafo Kn possui o número máximo possível de arestas para um dado n. Ele é, também
regular (n-1) pois todos os seus vértices tem grau n-1.
Na figura 4 são apresentados exemplos de grafo completo simples.
Definição 4 (grafo orientado e rede orientada): Um grafo G = (N, E) no qual as arestas são
pares ordenados (subconjuntos de N x N) é chamado grafo orientado ou dígrafo. Neste caso,
o par ordenado (i, j) é chamado arco, e i é o nó inicial e j o nó final. Uma rede orientada é um
grafo orientado cujos nós e/ou arcos têm valores associados. Um grafo orientado é representado
graficamente de forma análoga ao grafo, porém, o arco (i, j) é representado por uma flecha de i
para j, indicando a orientação relevante.
Exemplo 2 Considere um conjunto de nós N = {A, B, C, D} e o conjunto de arcos E = {(A, B), (A,
D), (D, C), (B, C), (B, D)} e os valores associados a cada arco, a = 2, b = 5, c = 1, d= 1 e e = 3. A
representação gráfica da rede orientada é ilustrada na Figura 5 , abaixo.
Exemplo 3 No grafo da Figura 5, um caminho possível do nó A ao nó C, seria: {(A, B), (B, D),
(D, C)}.
Definição 6 (cadeia): Uma cadeia é uma estrutura similar à de um caminho, exceto que os
arcos não precisam estar coerentemente orientados, ou seja, uma cadeia é uma sequência de
arcos de modo que cada arco tem exatamente um nó em comum com o arco imediatamente
anterior na sequência.
Observação 2 : Todo caminho é uma cadeia, mas nem toda cadeia é um caminho.
Exemplo 4 No grafo da Figura 5, uma cadeia do nó A ao nó D, poderia ser: {(A, B), (B, C), (D,
C)}.
Exemplo 5 Na Figura 5, não há nenhum circuito, mas apenas ciclos. Por exemplo:{(B, C), (D,
C), (B, D)} e {(A, D), (B, D), (A, B)}.
30
Definição 9 (grafo fraco ou fortemente conexo): Um grafo é dito fracamente conectado (ou
simplesmente conexo) se existe pelos menos uma cadeia entre quaisquer dois de seus nós, e
fortemente conexo se existe pelo menos um caminho de cada nó a todos os demais nós do grafo.
Note que o grafo da Figura 5 não é fortemente conectado pois não há caminho do nó B
para o nó A, por exemplo.
e E’ ⊆ E, com a condição de que, se (i, j) E’, então i e j também devem pertencer a N’. Uma
árvore geradora de um grafo G é um subgrafo de G que é uma árvore e inclui todos os nós do
grafo G.
Proposição 1 (árvore geradora): Considere um grafo G = (N, E), com |N| = n (isto é, G tem n
nós), e um subgrafo G’ = (N, E’) de G. As seguintes afirmações são equivalentes:
i) G’ = (N, E’) é uma árvore geradora de G.
ii) |E’| = n–1 (isto é, G’ tem n–1 arestas) e G’ é conexo.
iii) |E’| = n–1 e G’ não tem ciclos.
Em outras palavras, toda árvore geradora de um grafo com n nós tem n–1 arestas e
basta que seja um subgrafo conexo ou sem ciclo.
Figura 9 – Exemplo de subgrafos com três arcos que não são árvore geradora do grafo da Figura 4.
Existem várias formas de se organizar os dados de um grafo, de modo que eles possam
ser introduzidos em um computador. Uma delas seria a forma matricial. Assim, neste trabalho por
exemplo, vamos considerar a Matriz de Adjacência, que consiste em uma matriz que representa
os dados de um grafo.
0 1 0 1 0 1 0 1
1 0 1 1 0 0 1 1
M1 =
0
, M2 =
1 0 1 0 0 0 0
1 1 1 0 0 0 1 0
A matriz de adjacências de grafos não orientados é sempre simétrica (M = M T ). No caso de
uma rede, com o valor cij 6= 0 associado a aresta (i, j), podemos colocar essa informação em M,
fazendo mij = cij para todo (i, j) E e mij = 0 em caso contrário.
Como mencionado na seção 3.1, um circuito é dito euleriano se ele contém todas
as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. O
grafo da Figura 10, por exemplo, é um grafo euleriano, pois possui o seguinte circuito Euleriano:
T = (A, B, C, D, E, C, G, F, E, G, B, F, A).
33
Euler foi o primeiro matemático a escrever um documento sobre a teoria de grafos. Ele
iniciou seus estudos, sobre tal teoria, estudando e tentando resolver um problema conhecido
como "O Problema das 7 Pontes de Königsberg". Tal problema consiste em saber se um indivíduo
pode, a partir de um determinado ponto, passar em cada uma das sete pontes exatamente uma
vez e voltar ao ponto de origem. A Figura 11, mostra a cidade de Königsberg, mostrando o rio
Pregel e as sete pontes.
Euler foi desafiado a realizar um passeio pelas sete pontes da cidade, mas o detalhe
deste passeio é que ele deveria passar uma única vez por cada ponte e retornar ao seu ponto
de partida sem passar pela mesma ponte mais de uma vez, onde provou que tal trajeto não era
possível. Ele usou uma representação gráfica bem simples para desenhar a situação - associou
as pontes a linhas e as regiões de terra a pontos, criando possivelmente o primeiro grafo da
história. Este problema pôde ser modelado (e resolvido) utilizando-se da teoria dos grafos. Uma
34
representação gráfica da região pode ser expressa pelo que chamamos de representação gráfica
de um grafo e está expressa na Figura 12, onde os vértices A, B, C, D são as margens e as ilhas,
e as arestas correspondem as pontes.
Pode-se observar na Figura 12, que para este problema ter solução é preciso traçar um
circuito euleriano, ou seja, um circuito contendo todas as arestas.
O Problema das Pontes de Königsberg inspirou o estudo do problema do carteiro chinês,
em que o objetivo é determinar um caminho de comprimento mínimo cobrindo cada arco ao
menos uma vez. O problema foi relatado de forma simplificada por [Guan 1962]: Um carteiro
tem de cobrir sua rota e depois retornar ao Posto de Correio. O problema é encontrar a menor
distância a ser percorrida pelo carteiro.
Supondo um grafo não orientado G(N, E), fortemente conexo, um circuito que contém
todas as arestas do grafo sem que repita a mesma aresta mais de uma vez, é denominado de
Circuito Euleriano. E como foi analisado por [Sherafat et al. 2004], nem todo grafo contém um
circuito euleriano; quando possui, ele é chamado de grafo euleriano. O teorema básico sobre a
existência de um circuito euleriano em um grafo não orientado, é o seguinte:
Teorema 3.4.1 : Um grafo fortemente conexo G (N, E) contém um circuito euleriano, se, e
somente se, o grafo não tem nenhum nó de grau ímpar.
Demonstração 1 Suponha que o grafo seja euleriano (Figura 13). Então G possui um circuito
(passeio fechado) euleriano (Figura 14). Se contarmos para cada nó, a entrada e saída dele, ao
final de todo percurso teremos um conjunto de números pares. Suponha agora que temos um
grafo G onde todos os seus nós têm grau par.
Escolha um nó i qualquer e comece a percorrê-lo sem repetir arestas, até não existirem
arestas a serem percorridas, a partir do vértice corrente. Como todos os nós têm grau par
então o último nó alcançado é o nó i. Se o circuito C contiver todas as arestas de G então a
demonstração está concluída, caso contrário existirão arestas não percorridas.
35
Como o grafo é conexo então existe um caminho entre qualquer par de vértices. Logo,
existe algum caminho entre algum vértice do circuito até uma aresta q não incluída em C .
Imagine que este caminho seja formado pela aresta (j, k), onde j pertence ao circuito C e k
pertence a aresta q . Se isto ocorrer deve-se percorrer o grafo a partir de j visitando todas as
novas arestas sem acessar nenhuma aresta em C . Este novo circuito C 0 pode ser unido ao
circuito C formando um único circuito.
Agora basta percorrer C a partir de j e quando retornar a j começar a percorrer C 0 .
Repete-se este processo até que todas as arestas tenham sido visitadas. No final teremos um
único circuito formado pela união de vários circuitos. O circuito resultante é chamado euleriano,
assim como o grafo.
Este problema foi elaborado pela primeira vez em 1962 por Mei-Ku Kwan, um mate-
mático chinês. Ele aborda os grafos eulerianos com arestas valorizadas, ou seja, as arestas
possuem valores que podem ser distância, tempo de percurso, custo, etc.
36
Agora, suponhamos que temos um bairro em que o carteiro deverá entregar as cartas
por todas as ruas que começa e termina no ponto de distribuição. O problema é de identificar essa
rota de maneira a minimizar a distância total percorrida. Essa situação pode ser representada por
um grafo, onde as arestas correspondem as ruas e os vértices correspondem ao cruzamento das
ruas. Caso a descrição das ruas apresentar um grafo euleriano, é óbvio que o carteiro deverá
percorrer as ruas passando pelo circuito euleriano, caso o grafo não seja euleriano, poderemos
acrescentar ruas (arestas ao problema de modo a minimizar o esforço do carteiro), ou até repetir
ruas sempre descrevendo um circuito euleriano.
Segundo [Goldbarg e Luna 2005], um dos mais antigos problemas da teoria de grafos é
o da determinação de um percurso sobre um grafo G que contenha toda aresta de G exatamente
uma vez (Karp, 1975). Tal circuito é denominado de Euleriano, pelo fato de Euler ter sido o
primeiro a reportar um estudo sobre a sua determinação, no ano de 1736.
O PCC é um problema de otimização que objetiva cobrir com um percurso (ou tour )
todos os arcos do grafo, minimizando a distância total percorrida. O percurso do carteiro distingue-
se do circuito (ou ciclo) Euleriano por nele ser permitida, se necessário, a repetição de arestas.
Claramente no caso de o grafo possuir circuitos Eulerianos, tais circuitos solucionam o problema.
O PCC é um exemplo de um problema de roteamento que admite solução em tempo polinomial
( [Edmonds e Johnson 1973].
[Edmonds e Johnson 1973] apresentam um interessante algoritmo para a solução do
PCC via matching (emparelhamento). Pode-se resumir o algoritmo da seguinte forma [Goldbarg
e Luna 2005]:
INÍCIO
Se todos os nós em G, o grafo original, possuem grau par então determinar um ciclo
Euleriano em G e Fim.
Reunir todos os vértices de grau ímpar no grafo Kn e associar a cada par de vértices
i e j no grafo, uma aresta (i, j) com peso igual ao caminho mais curto que liga i a j no grafo G.
Gn .
FIM
Desde sua aparição na moderna literatura, o problema do carteiro chinês vem ganhando
muita atenção de pesquisadores que tratam de logística, principalmente ligados à logística
urbana.
O PCC, de acordo com a natureza da rede, classifica-se em:
37
• Problema do Carteiro Chinês Misto (PCCM): deseja gerar um percurso de custo mínimo
sobre um grafo G = (N, E, A), valorado e fortemente conexo (f–conexo), a partir de um
vértice v0 N , origem. Exemplo: Cidades com ruas de mão dupla e mão única.
4 METODOLOGIA
Minimizar
n X
X n
cij xij (4.1)
i=1 j=1
Sujeito a:
n
X n
X
xij − xji = 0, i = 1, ..., n (4.2)
j=1 j=1
onde:
xij = número de vezes em que a aresta (i, j) é percorrido de i para j ;
cij = comprimento ou o custo da aresta (i, j).
No modelo matemático proposto, a função objetivo (4.1) minimiza o custo total, ou seja,
no caso do trabalho em estudo, a distância total a ser percorrida. As restrições em (4.2) garantem
a continuidade da rota, as restrições em (4.3) que nenhuma aresta deixará de ser considerada e,
em (4.4), tem-se que as variáveis do problema são não negativas, inteiras.
Note também que nas restrições em (4.3) é permitido percorrer as arestas mais de uma
vez. Essa condição é necessária pois, caso o grafo não seja Euleriano, algumas arestas são
repetidas no grafo, fazendo com que todas tenham grau par, para que assim se possa obter a
solução.
Agora, vamos aplicar o modelo matemático apresentado acima, no Problema das Pontes
de Königsberg, utilizando o grafo da Figura 12.
40
Note que não existe nenhuma aresta ligando os vértices 1 e 2, portando as posições
(1,2) e (2,1) da matriz recebem o valor zero. Depois de concluída a construção da matriz
distância, foi criado um programa no DEV-C++ para imprimir o modelo matemático do PCCND,
como mostra a Figura 15. O algoritmo do PCCND desenvolvido no DEV-C++ se encontra no
Apêndice A.
Observa-se que no problema das pontes de Königsberg, há duas pontes ligando os
vértices A e B e duas pontes ligando o vértices A e C. Assim, é necessário fazer algumas
modificações das restrições em (4.3) no modelo utilizado, ou seja, na Figura 14 por exemplo,a
restrição 2 indica que x01 + x10 >= 2 (pontes entre A e B) e x02 + x20 >= 2 (pontes entre A e
C).
Figura 15 – Modelo matemático do PCCND gerado com código no DEV-C++ implementado no LINDO
Definido o modelo matemático, já no formato que o programa LINDO lê, a etapa seguinte
foi resolvê-lo. Assim, ao resolver o modelo, o programa retorna uma janela, como é mostrado na
Figura 16 a seguir.
Figura 16 – Solução do Problema das Pontes de Königsberg utilizando o modelo de Bodin (1983) no soft-
ware LINDO.
Na segunda etapa, foi construída no Excel a matriz distância que foi obtida através dos
dados coletados na primeira etapa. Uma parte desta matriz pode ser observada no Apêndice B.
Na terceira etapa, depois de concluída a matriz distância, foi utilizado o software DEV-
C++ para a imprimir o modelo matemático do PCCND. No Apêndice B, encontra-se uma parte do
programa.
A última etapa, consiste em resolver o modelo gerado utilizando o software LINDO e
Xpress.
Figura 18 – Código escrito em C para gerar a formulação matemática no formato lido pelo Xpress
A Figura 19, a seguir, mostra o modelo que seria resolvido com o Xpress.
45
Tabela 4 – Solução obtida usando o Xpress para resolver o problema do PCCND gerado
6 CONCLUSÃO
6.1 LIMITAÇÕES
REFERÊNCIAS
ARENALES, Marcos et al. Pesquisa operacional: para cursos de engenharia. [S.l.]: Elsevier
Brasil, 2015. Citado na página 27.
BODIN, Lawrence. Routing and scheduling of vehicles and crews, the state of the art. Comput.
Oper. Res., v. 10, n. 2, p. 63–211, 1983. Citado na página 39.
COSTA, Deise Maria Bertholdi et al. Operations research techniques applied in the post services.
Gestão & Produção, v. 8, n. 1, p. 37–55, 2001. Citado na página 21.
EDMONDS, Jack; JOHNSON, Ellis L. Matching, euler tours and the chinese postman. Mathema-
tical programming, Springer, v. 5, n. 1, p. 88–124, 1973. Citado na página 36.
GOMES, Marcos José Negreiros et al. O problema do carteiro chinês, algoritmos exatos e um
ambiente mvi para análise de suas instâncias: sistema xnês. Pesquisa Operacional, v. 29, n. 2,
p. 323–363, 2009. Citado na página 21.
GUAN, Meigu. Graphic programming using odd and even points. Chinese Math., v. 1, p. 237–277,
1962. Citado na página 34.
PRADO, Darci. Programação linear. [S.l.]: Editora de Desenvolvimento Gerencial, 1998. Citado
na página 44.
PRESTES, Edson. Teoria dos grafos. Porto Alegre. 2011a. Disponível em:< http://www. inf.
ufrgs. br/˜ prestes/Courses/Graph% 20Theory/GrafosA6. pdf>. Acesso em, v. 4, 2016. Ci-
tado na página 35.
SHERAFAT, Hassan et al. Algoritmos heurísticos de cobertura de arcos. Florianópolis, SC, 2004.
Citado na página 34.
XPRESS-OPTIMIZER, Dash. 16.01. 05: Getting Started and Reference Manual, Dash Opti-
mization Ltd. 2004. Citado na página 42.
51