Problema do Caixeiro-Viajante com Restrições de Tempo

25
Curso: Mestrado Acadˆ emico em Ciˆ encia da Computa¸ ao Disciplina: Otimiza¸c˜ ao em grafos Professor: Leonardo Sampaio Rocha Alunos: Daniel Sucupira Lima Jo˜ ao Gon¸calves Filho Problema do Caixeiro-Viajante com Restri¸ oes de Tempo Fortaleza, 27 de novembro de 2014

Transcript of Problema do Caixeiro-Viajante com Restrições de Tempo

Curso: Mestrado Academico em Ciencia da ComputacaoDisciplina: Otimizacao em grafosProfessor: Leonardo Sampaio RochaAlunos: Daniel Sucupira LimaJoao Goncalves Filho

Problema do Caixeiro-Viajantecom Restricoes de Tempo

Fortaleza, 27 de novembro de 2014

Sumario

1 Introducao 3

2 Problema 4

3 Solucao 8

4 Metodo 1 9

5 Metodo 2 11

6 Metodo 3 13

7 Metodo 4 15

8 Metodo 5 17

9 Metodo 6 18

10 Metodo 7 e 8 1910.1 Algoritmo Genetico Implementado . . . . . . . . . . . . . . . . . 20

10.1.1 Cromossomo . . . . . . . . . . . . . . . . . . . . . . . . . 2010.1.2 Geracao da Populacao Inicial . . . . . . . . . . . . . . . . 2010.1.3 Selecao de Reprodutores . . . . . . . . . . . . . . . . . . . 2010.1.4 Cruzamento . . . . . . . . . . . . . . . . . . . . . . . . . . 2010.1.5 Mutacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2110.1.6 Atualizacao da Populacao . . . . . . . . . . . . . . . . . . 21

11 Experimentos 2211.1 Instancias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.2 Configuracao do Algoritmo Genetico . . . . . . . . . . . . . . . . 2211.3 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

12 Conclusao 24

2

1 Introducao

Na computacao em geral existem diversos problemas com diferentes nıveis decomplexidade. Existem muitos problemas com alta complexidade ainda emaberto [1]. Dentre os problemas com alta complexidade pode ser citado o pro-blema do caixeiro viajante - PCV (em ingles, Traveling Salesman Problem -TSP).

Este e um problema que tem chamado a atencao de pesquisadores de dife-rentes campos, dentre eles, pesquisa operacional, matematica, fısica, biologia,inteligencia artificial, dentre outros [2]. Diversos artigos tem sido publicadosabordando este problema, o que mostra a sua importancia.

Diversos problemas do mundo real podem ser modelados usando o problemado caixeiro viajante e suas variantes. Assim, podem ser encontrados na litara-tura trabalhos nas mais diferentes areas usando como solucao uma modelagembaseada no problema do caixeiro viajante [2].

Em termos de complexidade, o PCV e classificado como NP-difıcil (em ingles,NP-hard). Essa complexidade significa que, de acordo com o tamanho da en-trada, o esforco computacional necessario para resolver o problema cresce expo-nencialmente [2].

Nas mais diferentes aplicacoes do mundo real, nao se pode esperar pelo temponecessario para obter uma solucao exata do problema, visto que o esforco com-putacional cresce exponencialmente. Por causa disso, sao aplicadas heurısticaspara resolucao destes problemas. Tais metodos nao asseguram uma solucaootima para o problema. Entretanto, podem entregar uma solucao aceitavel ouainda proxima da solucao real em um tempo abil [2].

O problema do caixeiro viajante possui diferentes variantes. A sua origeme atribuıda para Willian Rowan Hamilton. Em seu trabalho, define-se o PCVcomo o problema de encontrar o roteiro de menor distancia ou custo que passapor um conjunto de cidades, sendo cada cidade visitada apenas uma vez [2].

Neste trabalho busca-se abordar uma variante do PCV: problema do caixeiro-viajante com restricoes de tempo. Nao foram encontradas na literatura re-ferencias de trabalhos que abordam tal problema. A sua modelagem pode seraplicada a diversos problemas do mundo real.

Este trabalho esta organizado da seguinte forma: no Capıtulo 2 e apre-sentada a definicao oficial do problema bem como algumas de suas aplicacoes.No Capıtulo 3 e apresentada a solucao para o problema. Do Capıtulo 4 ateo Capıtulo 10 sao apresentados 7 metodos de resolucao propostos para o pro-blema. No Capıtulo 11 sao apresentadas as simulacoes realizadas e os resultados.Alem disso e feita uma analise dos resultados. No Capıtulo 12 e apresentada aConclusao do trabalho. Por fim e exibida a Bibliografia.

3

2 Problema

Neste trabalho aborda-se uma variante do PCV: problema do caixeiro-viajantecom restricoes de tempo. Se aplicado no problema original do caixeiro-viajante,deve-se encontrar o roteiro de menor custo que passa por um conjunto de cida-des, sendo cada cidade visitada apenas uma vez. Ao final, o caixeiro-viajantedeve voltar para a cidade inicial. Alem dessas restricoes, adiciona-se as res-tricoes de tempo. Cada cidade tem perıodos de tempo nos quais nao podeocorrer transicoes do caixeiro-viajante para ela. Se uma cidade X esta em umperıodo de restricao de transicao, o caixeiro-viajante nao pode transitar paraela neste momento. Na nossa modelagem, se o caixeiro-viajante chegou em umacidade A em um momento que era seguro e deseja agora ir para uma cidadeB que envolve uma espera de tempo, ele pode esperar o tempo necessario -mesmo que entre em um perıodo de restricao de transicao, pois a restricao ede transicao e nao de permanencia. As solucoes apresentadas devem satisfazertodas as restricoes de transicao.

Nesta abordagem o custo associado ao caminho entre duas cidades e o tempopara sair de uma cidade e chegar a outra. Deve-se salientar que, podem ser intro-duzidos perıodos de espera, visto que algumas cidades nao podem ser visitadasem determinados perıodos de tempo. Nestes casos, o viajante teria que esperarna cidade atual ate que a hora que ele chegaria na proxima cidade nao estejadentro de nenhuma das restricoes da cidade futura.

Para resolver o problema e necessario definir a hora de partida do caixeiro-viajante bem como a cidade inicial. A partir de entao, o caixeiro-viajante devepercorrer as outras cidades de forma a minimizar o custo do caminho.

Suponha que um caixeiro-viajante deva percorrer as cidades exibidas nafigura 1. Suponhamos ainda que ele deve partir da cidade A e a hora inicial e14:50. Cada enlance apresenta os tempos para sua travessia em minutos.

Figura 1: Cidade a ser percorrida

Em um primeiro exemplo, consideremos que nao existem restricoes de tempoem nenhuma cidade. Consideremos ainda que o caixeiro-viajante usou algum

4

algoritmo e resolveu percorrer o caminho A-B-C-D-E-F-A, como ilustrado naFigura 2.

Figura 2: Caminho 1 escolhido pelo caixeiro-viajante

5

Como nao existem restricoes de tempo o caixeiro-viajante pode percorreras cidades sem fazer nenhuma espera. Se considerarmos que o caixeiro-viajantepartiu da cidade A na hora 14:50, como ele leva 9 minutos para chegar na cidadeB, ele estara na cidade B em 14:50 + 00:09 = 14:59. Ele estara na cidade C as14:59 + 00:14 = 15:13. Seguindo esse raciocıcio, temos um conjunto de horariosexibido na Tabela 2.

Cidade HorarioA 14:50B 14:59C 15:13D 15:28E 15:40F 15:50A 16:04

Tabela 1: Tabela de Horarios

Com essa sequencia de horarios o custo dessa solucao e a duracao total dopercurso que e 16:04 - 14:50 = 01:14. Ou seja, 1 h e 14 min que e igual a 60min + 14 min = 74 min.

Consideremos agora um exemplo com restricoes de tempo. Suponhamos queo caixeiro-viajante usou algum algoritmo e resolveu percorrer o mesmo caminhoA-B-C-D-E-F-A. Neste exemplo, o caixeiro-viajante tambem partiu da cidadeA na hora 14:50. Neste caso e inserida uma restricao de tempo na cidade C. Ocaixeiro-viajante nao pode estar na cidade C de 15:00 ate 16:30, como exibidona Figura 3.

Figura 3: Caminho 2 escolhido pelo caieiro-viajante

O caixeiro-viajante pode partir da cidade A as 14:50. Ele ve que o caminhode A para B leva 9 minutos. Ele calcula entao que estara na cidade B as 14:59.

6

Antes de sair, ele verifica se existe alguma restricao em B que bloqueie essehorario. Como nao existe, ele parte de A e chega em B as 14:59. Agora, ele veque o caminho de B para C leva 14 minutos. Ele calcula a hora que chegariaem C: 14:59 + 00:14 = 15:13. Entretanto, 15:13 esta dentro da restricao detempo de C que e de 15:00 ate 16:30. Entao, ele resolve esperar ate um instantede tempo no qual ele possa partir de B e chegar em C fora da restricao. Elecalcula que a hora para sair e 16:17 pois 16:17 + 00:14 = 16:31. Assim, ele saida cidade B apenas as 16:17, chegando na cidade C as 16:31. Como as outrascidades nao tem restricoes, assim que chegar em uma cidade ele podera ir paraa seguinte da lista. Assim, obtem-se a tabela de horarios 2.

Cidade HorarioA 14:50B 14:59C 16:31D 16:46E 16:58F 17:08A 17:22

Tabela 2: Tabela de Horarios

7

3 Solucao

Podem ser empregadas diferentes tecnicas para abordar esse problema. Nestetrabalho, foram empregadas duas categorias:

• Algoritmo guloso para escolha de melhor vizinho;

• Algoritmo Genetico.

Na categoria de algoritmo guloso para escolha de melhor vizinho, foramcriados 6 metodos. Cada metodo tem uma definicao diferente sobre o que e omelhor vizinho.

Na categoria de algoritmo genetico foram criadas diferentes variacoes de umalgoritmo genetico.

Cada um desses algoritmos e apresentado nas secoes seguintes.

8

4 Metodo 1

O primeiro metodo implementado e o do vizinho mais proximo com relacao aotempo. Ou seja, quando o caixeiro viajante esta em uma cidade ele verifica quala cidade que esta mais proxima dele e que ainda nao foi visitada. Ao encontraresta cidade ele vai para ela e continua repetindo o processo. Neste metodo ocaixeiro-viajante desconsidera restricoes de tempo, ou seja, ainda que ele tenhaque esperar para ir para a cidade mais proxima ele nao muda a sua escolha.Considere a Figura 4.

Figura 4: Cidade

Supondo que o caixeiro-viajante esta na cidade A no tempo 5:00 e que ne-nhuma outra cidade foi visitada ainda. O no A tem opcoes para proxima cidadeexibidas na Tabela 4:

Origem Destino TempoA B 9A F 14A E 8

Tabela 3: Tabela de tempos de A

Usando este metodo, a cidade mais proxima e a E, pois leva 8 minutos parachegar la. Como nao existe restricao de tempo em E ele pode sair da cidade Ano tempo 5:00 e chega na cidade E no tempo 5:08.

Considere agora que caixeiro-viajante vai escolher a proxima cidade. Consi-dere ainda que existe uma restricao de tempo na cidade B das 5:10 ate as 5:40.O no E tem as opcoes exibidas na tabela 4:

9

Origem Destino TempoE A 8E B 8E F 10E D 12

Tabela 4: Tabela de tempos de E

Como a cidade A ja foi visitada ela nao e levada em consideracao. Dentreas outras cidades a mais proxima e a B, com tempo 8 minutos. Atualmente,na cidade E, sao 5:08. Se o caixeiro-viajante sair agora de E ele chegara em Bas 5:16. Entretanto, as 5:16 existe uma restricao de tempo. Essa restricao naofaz com que seja escolhida uma outra cidade. O caixeiro-viajante espera ate omomento no qual ele possa sair de E e chegar em B fora da restricao. Essa horae 05:33, pois 05:33 + 00:08 = 05:41. Assim, as 05:33 o caixeiro-viajante sai deE e chega em B as 05:41.

10

5 Metodo 2

O metodo 1 seleciona a cidade mais proxima sem se importar com os tempos deespera. O metodo 2 seleciona a cidade mais proxima que nao produzira temposde espera. Se todas as cidades produzirem tempo de espera, seleciona-se acidade que fica livre primeiro. Considere a cidade exibida na Figura 6

Figura 5: Cidade

Considere que o caixeiro-viajante esta na cidade A as 17:00. Considere asseguintes restricoes:

• Cidade B: restricao de 17:05 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:20 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse caso Enao produz tempo de espera. Assim, seria selecionada a cidade E como proxima.

Considere as novas restricoes:

• Cidade B: restricao de 17:30 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:01 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse caso Eproduz tempo de espera e, portanto, nao e selecionada. Partindo de A as 17:00poderia se chegar em B as 17:09. Nesse caso B nao produz tempo de espera e,portanto, e selecionada.

Considere este ultimo conjunto de restricoes:

11

• Cidade B: restricao de 17:03 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:01 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse casoE produz tempo de espera e, portanto, nao e selecionada. Partindo de A as17:00 poderia se chegar em B as 17:09. Nesse caso B produz tempo de esperae, portanto, nao e selecionada. Partindo de A as 17:00 poderia se chegar em Fas 17:14. Nesse caso F produz tempo de espera e, portanto, nao e selecionada.Como todas as cidades produzem tempos de espera, escolhe-se a cidade que ficalivre primeiro, nesse caso, a cidade E as 18:01. As outras cidades ficam livresas 19:01 (B) e 21:01 (F).

12

6 Metodo 3

O metodo 1 seleciona a cidade mais proxima sem se importar com os tempos deespera. O metodo 2 seleciona a cidade mais proxima que nao produzira temposde espera. Se todas as cidades produzirem tempo de espera, seleciona-se acidade com menor tempo para chegar nela. O metodo 3 e semelhante ao metodo2, mudando apenas o criterio de escolha quando todas as cidades produziremtempo de espera. Nesse caso, escolhe-se a cidade com menor duracao parachegar nela. Considere a cidade exibida na Figura 6

Figura 6: Cidade

Considere que o caixeiro-viajante esta na cidade A as 17:00. Considere asseguintes restricoes:

• Cidade B: restricao de 17:05 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:20 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse caso Enao produz tempo de espera. Assim, seria selecionada a cidade E como proxima(como feito no metodo 2).

Considere as novas restricoes:

• Cidade B: restricao de 17:30 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:01 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse caso E

13

produz tempo de espera e, portanto, nao e selecionada. Partindo de A as 17:00poderia se chegar em B as 17:09. Nesse caso B nao produz tempo de espera e,portanto, e selecionada (como feito no metodo 2).

Considere este ultimo conjunto de restricoes:

• Cidade B: restricao de 17:03 as 19:00;

• Cidade F: restricao de 17:10 as 21:00;

• Cidade E: restricao de 17:01 as 18:00.

A ordem das cidades por proximidade, da mais proxima para a mais distante,e E-B-F. Partindo de A as 17:00 poderia se chegar em E as 17:08. Nesse casoE produz tempo de espera e, portanto, nao e selecionada. Partindo de A as17:00 poderia se chegar em B as 17:09. Nesse caso B produz tempo de esperae, portanto, nao e selecionada. Partindo de A as 17:00 poderia se chegar em Fas 17:14. Nesse caso F produz tempo de espera e, portanto, nao e selecionada.Como todas as cidades produzem tempos de espera, escolhe-se a cidade commenor duracao de tempo para chegar nela, nesse caso, a cidade E com 8 minutos.Aqui este metodo se diferencia do metodo 2 que teria selecionado a cidade Epor ter ficado livre mais cedo (as 18:01).

14

7 Metodo 4

No metodo 1 o caixeiro-viajante levava em consideracao para a escolha daproxima cidade apenas o tempo para se deslocar ate ela, ou seja, desconsi-derava os perıodos de restricao de tempo mesmo que esses envolvessem perıodosde espera. No metodo 4 o caixeiro-viajante considera os dois perıodos de tempo,ou seja, ele vai para a proxima cidade que ainda nao foi visitada e que pode-seestar nela o mais rapido possıvel. Considere a cidade exibida na Figura 7.

Figura 7: Cidade

Suponha que o caixeiro-viajante esta na cidade A as 7:10 e que nenhumaoutra cidade foi visitada ainda. Considere que: a cidade B tem uma restricaodas 7:20 - 8:00; a cidade F tem uma restricao das 7:18 as 9:10; a cidade E temuma restricao das 7:03 as 9:55.

Considerando que a hora atual e 7:10 e que existem perıodos de tempo parachegar nas outras cidades define-se a tabela 7 com os proximos possıveis valoresde tempo para as outras cidades.

Origem Destino Deslocamento Proximo Instante LivreA B 9 7:19A F 14 9:11A E 8 9:56

Tabela 5: Tabela de tempos de A

O proximo instante livre de B e 7:19, pois 7:10 + 0:09 = 7:19 e 7:19 naoesta dentro de nenhuma restricao de B. O proximo instante livre de F e 9:11,pois 7:10 + 0:14 = 7:24, mas 7:24 esta dentro da restricao de F das 7:18 as 9:10.Assim, o proximo instante de F e entao 9:10 + 0:01 = 9:11. O proximo instantelivre de E e 9:56, pois 7:10 + 0:08 = 7:18, mas 7:18 esta dentro da restricao deE das 7:03 as 9:55. Assim, o proximo instante de E e entao 9:55 + 0:01 = 9:56.

15

Dessa forma, o caixeiro-viajante escolhe que a proxima cidade e, B poischegara la as 7:19, que dentre todas as cidades e o menor tempo.

16

8 Metodo 5

O metodo numero 5 e um metodo probabilistico. De acordo com as duracoesde viagens de uma cidade para as suas vizinhas sao atribuıdos valores de pro-babilidade para cada uma. Considere o cenario exibido na Figura 8.

Figura 8: Cidade

Suponha que o caixeiro-viajante esta na cidade A e que a hora atual e 19:20.Temos a configuracao exibida na Tabela 8.

Origem Destino Tempo Probabilidade Prob. Acum. Faixa de Prob.A B 9 29,03 29,03 0 ≤ r ≤ 29,03A F 14 45,16 74,19 29,03 < r ≤ 74,19A E 8 25,80 100,00 74,19 < r ≤ 100.00

Tabela 6: Tabela de Probabilidades de A

Os valores da coluna Probabilidade sao obtidos a partir dos valores da colunaTempo. Faz-se um somatorio dos valores de tempos. A esse somatorio associa-se100 %. Entao, para cada valor de tempo para deslocamento calcula-se o valor daprobabilidade associada. Calcula-se entao o valor da probabilidade acumuladabem como as faixas de valores. De posse disso, faz-se a geracao de um numeroaleatorio. Assim, escolhe-se o destino de acordo com a faixa de valores que eleestiver. Por exemplo: se o valor aleatorio for 25 % sera selecionada a cidadeB como destino. Exemplo 2: se o valor aleatorio for 80 % sera selecionada acidade E como destino.

17

9 Metodo 6

No metodo 6 o caixeiro-viajante escolhe aleatoriamente entre os vizinhos naovisitados qual vai ser a proxima cidade. Considere a cidade exibida na Figura9.

Figura 9: Cidade

Neste caso e usada a funcao do C++ std::random shuffle para fazer a escolhado caminho. Essa funcao faz uma reordenacao de valores em um vetor deforma aleatoria. Passa como parametro para essa funcao um vetor com umasolucao qualquer. Apos chamar essa funcao temos um caminho gerado de formaaleatoria.

Uma possıvel saıda gerada para o metodo, admitindo que parte-se de A e:A-E-F-D-C-B-A.

18

10 Metodo 7 e 8

Para os Metodos 7 e 8 foi utilizado o algoritmo genetico. Esta e uma tecnicainspirada pela biologia evolutiva, sendo uma classe particular de algoritmos evo-lutivos, que e utilizada para encontrar solucoes para problemas de otimizacaocombinatoria, cujo objetivo e descobrir a melhor combinacao dos recursos dis-ponı- veis para otimizar seu uso.

Algoritmos Geneticos [3] sao implementados como uma simulacao de com-putador em que as melhores solucoes sao encontradas em uma populacao quevai evoluindo a cada geracao. O processo de evolucao geralmente se inicia comuma populacao criada aleatoriamente. A cada geracao, as solucoes na populacaosofrem cruzamentos e mutacoes, suas adaptacoes entao sao avaliadas e algunsindivıduos sao selecionados para a proxima geracao [4].

A seguir temos o processo do Algoritmo Genetico:

Inicializa População

Avalia População

Seleciona Reprodutores

Cruza Selecionados

Muta Resultantes

Avalia Resultantes

Atualiza População

Deve Parar?

FIM

Não

Sim

Figura 10: Passos do Algoritmo Genetico

19

10.1 Algoritmo Genetico Implementado

10.1.1 Cromossomo

O cromossomo ou a solucao, nada mais que do que um conjunto de vertices,comecando do no origem, passando entao por todos os demais vertices e voltandonovamente a origem. Nossa implementacao ficou basicamente em 5 etapas,sendo que as 4 ultimas ficam em laco ate o fim do execucao do algortimo,sao elas Geracao da Populacao Inicial, Selecao de Reprodutores, Cruzamento,Mutacao e Atualizacao da Populacao, conforme descrito em seguida.

10.1.2 Geracao da Populacao Inicial

A diferenca entre o metodo 7 e 8, fica com a geracao da populacao inicial, na 7e utilizada a os metodos 5 e 6 que sao os metodos com resultados aleatorios. No8 a populacao e gerada a partir de todos os metodos explicados anteriormente.

10.1.3 Selecao de Reprodutores

Neste implementacao toda populacao faz cruzamento, a escolha dos pares e feitada seguinte forma, pegue-se o melhor cromossomo e o cruza com o pior, depoispega o segundo pior e assim por diante em toda populacao.

10.1.4 Cruzamento

Cada cruzamento gera dois novos cromossomos, para o melhor entendimentosuponha que iremos cruzar os cromossomos (0, 2, 3, 1, 4, 5, 0) e (0, 1, 3, 4, 5,2, 0). O cruzamento ocorre conforme a Figura 11

Figura 11: Funcionamento do Cruzamento

O ponto de corte define aonde o cromossomo sera dividido para o cruza-mento. E importante notar que os filhos gerados nao sao validos uma vez que

20

possuem vertices repetidos, causando a falta de vertices para compor a solucao,por exemplo no filho 1, esta faltando o vertice 4. Para resolver isso e executadoum processo de reparacao no filho assim que ele gerado, o processo basicamenteprocura os vertices repetidos e os substitui para o proximo disponıvel, ou sejaque ja nao esteja na solucao. A Figura 12 mostra o processo:

Figura 12: Reparacao

10.1.5 Mutacao

Apos o cruzamento, cada filho gerado ira passar pelo processo de mutacao,basicamente ele passa por os vertice, se um numero sorteado no processo estiverno intervalo da taxa de mutacao estabelecido, entao esse vertice troca de posicaocom algum outro vertice do solucao, o maximo possıvel de mutacoes tambemum parametro nesse processo.

10.1.6 Atualizacao da Populacao

Tendo agora em maos pais e filhos, a abordagem da atualizacao e semelhante ada escolha do cruzamento, pegue-se o melhor pai, depois em seguida o melhorfilho, depois o pior pai e pior filho, assim segue ate a populacao esteja novamentecompleta, o processo volta a etapa 2, ate o criterio de parada seja atingido, emnosso implmentacao o criterio foi o numero de iteracoes.

Em cada uma das etapas, sempre e guardado o melhor cromossomo, no finalda execucao do algoritmo, ele sera a solucao final.

21

11 Experimentos

11.1 Instancias

Para a realizacao dos experimentos, foram utilizadas 3 instancias, todas elasgeradas com o script de geracao de instancias implementada neste trabalho. Oscript primeiramente gera aleatoriamente o conjunto de restricoes para cada nodo grafo(o numero de nos e um parametro do script). O intervalo maximo decada restricao e 3 horas. Entao e gerada todas as combinacoes possıveis (grafocompleto) de arestas com um valor de peso aletorio, onde o maximo tambem edefinido por parametro. Abaixo um exemplo de uso do script:

./gerar instancia 20 120 5

As configuracoes das instancias entao ficaram da seguinte forma:

Tabela 1: Configuracao das instanciasNumero de vertices 50Numero maximo de peso para aresta 120 minutosNumero de restricoes para cada vertice {2, 4, 6}Instante Inicial 7:00

Obs: O instante inicial foi um valor fixo que nao configurado atraves do script

11.2 Configuracao do Algoritmo Genetico

Para o algoritmo genetico foram definidos os seguintes parametros:

Tabela 2: Configuracao do algoritmo geneticoPopulacao 20Taxa de mutacao 0.1Numero maximo de mutacoes 2Ponto de corte Numero de vertices / 2Numero de iteracoes 20000

11.3 Resultados

Para geracao dos resultados cada metodo executou as 3 instancias 5 vezes. Dessaforma pode ser tirada a media das solucoes, media do tempo de execucao e amelhor solucao obtida dentre as 5 rodadas, os resultados sao mostrados emseguida:

Tabela 3: Instancia com 2 restricoesMetodo 1 2 3 4Melhor Solucao 1235 509 1322 509Tempo de Execucao em Segundos 0.003000 0.003400 0.003000 0.003800Metodo 5 6 7 8Melhor Solucao 2494 2523 1301 509Solucao Media 2617.80 3114.20 1448.40 509.00Tempo de Execucao em Segundos 0.004000 0.003000 7.774200 7.987000

22

Tabela 3: Instancia com 4 restricoesMetodo 1 2 3 4Melhor Solucao 1168 625 1426 622Tempo de Execucao em Segundos 0.003000 0.004000 0.003000 0.004000Metodo 5 6 7 8Melhor Solucao 2797 3216 1465 622Solucao Media 3107.40 3495.00 1545.80 622.00Tempo de Execucao em Segundos 0.004000 0.003000 11.754800 11.854200

Tabela 3: Instancia com 5 restricoesMetodo 1 2 3 4Melhor Solucao 1369 844 1487 600Tempo de Execucao em Segundos 0.003400 0.004000 0.004000 0.004400Metodo 5 6 7 8Melhor Solucao 2690 2990 1617 600Solucao Media 2993.40 3265.00 1750.40 600.00Tempo de Execucao em Segundos 0.004000 0.003000 15.582400 15.580000

Observando as Tabelas 3, 4 e 5, podemos perceber que os metodos 2, 4 e 8conseguiram os melhores resultados nas 3 instancias. O algoritmo 2 apresentabons resultados por que ele seleciona a cidade proxima que nao produzira temposde espera. Em outras palavras, apos uma pre-ordenacao de acordo com os pesosdas arestas leva-se em consideracao os perıodos de espera.

O metodo 4 considera os dois perıodos de tempo, ou seja vai para cidademais proxima que nao visitada e que pode estar nela o mais rapido possıvel.

O metodo 3, quando todos estam ocupados, pega a menor aresta sem consi-derar o tempo de espera. Isso causa degradacao na sua solucao.

O algoritmo genetico por sua vez nao conseguiu obter solucoes que superam-se as variacoes da heurıstica do vizinho mais proximo. O metodo 7 ficou muitoatras, e no 8 nao obteve nenhuma convergencia da solucao inicial.

O metodo 6 que e totalmente aleatorio obteve os piores resultados como jaesperado. A heurıstica com vizinho mais proximo usando probabilidade ficouatras do genetico, ele fica com resultado semelhante ao do metodo 1, pois eleutiliza o peso da aresta com probabilidade para decidir qual o proximo vertice.

23

12 Conclusao

Neste trabalho foi abordado uma variante do PCV: problema do caixeiro-viajantecom restricoes de tempo. Nao foram encontradas na literatura referencias detrabalhos que abordam tal problema. A sua modelagem pode ser aplicada adiversos problemas do mundo real.

Neste trabalho, foram empregadas duas categorias de solucoes para abordaro problema:

• Algoritmo guloso para escolha de melhor vizinho;

• Algoritmo Genetico.

Na categoria de algoritmo guloso para escolha de melhor vizinho, foramcriados 6 metodos. Na categoria de algoritmo genetico foram criadas diferentesvariacoes de um algoritmo genetico.

Foram realizadas diversas simulacoes destes metodos. Com base nos resul-tados foi feita uma analise que mostrou quais metodos sao mais eficientes.

Os objetivos deste trabalho foram alcacados, pois foram criados diversosalgoritmos eficientes para a resolucao deste novo problema proposto.

24

Bibliografia

[1] G. J. Woeginger, “Exact algorithms for np-hard problems: A survey,” inCombinatorial Optimization—Eureka, You Shrink! Springer, 2003, pp.185–207.

[2] C. B. da Cunha, U. de Oliveira Bonasser, and F. T. M. Abrahao, “Expe-rimentos computacionais com heurısticas de melhorias para o problema docaixeiro viajante,” in XVI Congresso da Anpet, 2002.

[3] J. H. HOLLAND, “Adaptation in natural and artificial systems. ann arbor:University of michigan press,” 1975.

[4] F. A. Joao G. (2012) Problema da mochila valiosa com valor minimo deutilidade:.

25