USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

15
USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE ROTEIROS DE VIAGENS PARA TURISTAS: ESTUDO DE CASO NA CIDADE DO RIO DE JANEIRO Rodrigo Tagliari [email protected] Marcos Costa Roboredo [email protected] Durante o planejamento de suas viagens, os turistas necessitam empregar uma quantidade excessiva de tempo, de forma a achar as melhores atividades a se fazer, buscar informações e verificar a melhor forma logisticamente viável de realizar as mesmas. Visando mitigar o problema prévio, a Local Cave, que é uma Startup do ramo do turismo, visa tornar o processo de viagem mais rápido e eficiente para o viajante através do uso de um aplicativo na Web e ferramentas computacionais. Uma destas ferramentas é um gerador de roteiros de viagem otimizados e customizados de acordo com o perfil do turista. Os roteiros de viagem gerados são extremamente detalhados e levam em consideração diversas especificidades, como por exemplo necessidade de descanso ou troca de trajes entre atividades. O presente artigo visa neste contexto descrever com detalhes o algoritmo utilizado pelo gerador na cidade do Rio de Janeiro-RJ, que se baseia em uma heurística com construção aleatória e busca local do tipo 2-opt. Palavras-chave: Roteirização, Métodos Heurísticos, Turistas XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil” Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018.

Transcript of USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

Page 1: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

USO DE INTELIGÊNCIA

COMPUTACIONAL PARA GERAÇÃO DE

ROTEIROS DE VIAGENS PARA

TURISTAS: ESTUDO DE CASO NA

CIDADE DO RIO DE JANEIRO

Rodrigo Tagliari

[email protected]

Marcos Costa Roboredo

[email protected]

Durante o planejamento de suas viagens, os turistas necessitam

empregar uma quantidade excessiva de tempo, de forma a achar as

melhores atividades a se fazer, buscar informações e verificar a melhor

forma logisticamente viável de realizar as mesmas. Visando mitigar o

problema prévio, a Local Cave, que é uma Startup do ramo do turismo,

visa tornar o processo de viagem mais rápido e eficiente para o

viajante através do uso de um aplicativo na Web e ferramentas

computacionais. Uma destas ferramentas é um gerador de roteiros de

viagem otimizados e customizados de acordo com o perfil do turista.

Os roteiros de viagem gerados são extremamente detalhados e levam

em consideração diversas especificidades, como por exemplo

necessidade de descanso ou troca de trajes entre atividades. O presente

artigo visa neste contexto descrever com detalhes o algoritmo utilizado

pelo gerador na cidade do Rio de Janeiro-RJ, que se baseia em uma

heurística com construção aleatória e busca local do tipo 2-opt.

Palavras-chave: Roteirização, Métodos Heurísticos, Turistas

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018.

Page 2: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

2

1. Introdução

O setor de turismo vem mudando bastante nos últimos anos. A evolução do turismo

internacional junto com a evolução da tecnologia tem mostrado uma tendência de os turistas

viajarem para lugares cada vez mais longe. Cada vez mais, as pessoas irão viajar com uma

maior frequência, na qual tornará o lugar de origem uma referência cada vez menos fixa

(GIAMMATTEY, 2014).

Atualmente, no ramo de turismo, é difícil encontrar e praticamente não existem empresas ou

plataformas online que consigam realizar o planejamento completo de uma viagem, já que as

empresas que se propõem a tal não consideram todos os aspectos de forma satisfatória para os

viajantes. Seja pelo preço elevado cobrado pelas agências de viagens em seus pacotes ou na

falta de personalização das plataformas online, o viajante se vê em um cenário no qual se

gasta muito tempo para planejar as suas viagens e não consegue maximizar sua experiência no

local (NASCIMENTO, 2017). De acordo com Nunes (2012), para o público alvo dos

chamados “mochileiros”, que são viajantes que costumam planejar sua viagem por conta

própria e possuem um orçamento mais limitado, tal problema pode ser validado segundo

pesquisa com estes viajantes, cujos principais meios de busca foram amigos e parentes, bem

como sites turísticos.

Diante disso, a “Local Cave” (https://localcave.com/), startup no setor de viagens, apresenta

uma proposta para mitigar este problema. Trata-se de realizar, dentre outras atividades, a

elaboração de roteiros customizados e adaptados às preferências dos viajantes, especialmente

os mochileiros, através do uso de dados e técnicas de otimização.

O foco deste trabalho é descrever com detalhes o algoritmo de roteamento utilizado

atualmente pela Local Cave, que visa resolver o problema de estabelecer, para um turista da

cidade do Rio de Janeiro-RJ, a ordem de visitação de pontos turísticos em cada dia da viagem.

Tal planejamento considerando diversas restrições, como por exemplo orçamento, tempo

disponível no local, horários de visitação da atividade, necessidade de descanso, entre outras.

O problema é visto como um Problema de Roteamento de Veículos com Janelas de Tempo

(PRVJT) (TOTH; VIGO, 2002), onde as rotas representam o roteiro de um dia de viagem do

Page 3: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

3

turista e as janelas de tempo estão associadas aos horários de início e término das atividades.

Para a resolução do problema, é proposta uma heurística com construção de soluções

aleatórias e busca local baseada na clássica troca do tipo 2-opt.

2. Revisão de Literatura

2.1 Problemas de Roteamento de Veículos

O Problema de Roteamento de Veículos (PRV) foi primeiro proposto por Ramser e Dantzig

(1959), ao estudar um problema de distribuição de gasolina para diversos postos de venda. De

acordo com Arenales et al. (2015), o PRV é um problema logístico no qual envolve diversas

rotas de entregas partindo de um depósito ou base, visando alcançar os clientes com um custo

mínimo e retornando ao depósito. A função de custo no PRV em geral está atrelada a

distância total percorrida pelos veículos. Em uma solução viável para este problema, as

seguintes restrições devem ser respeitadas: cada cliente deve ser visitado exatamente uma vez,

as capacidades dos caminhões não podem ser excedidas e o tempo gasto por um veículo em

uma rota possui um limitante superior que deve ser respeitado. Uma variante do PRV exige

que o cliente comece a ser atendido dentro de um intervalo de tempo chamado de janela de

tempo. Tal problema é conhecido como Problema de Roteamento de veículos com Janelas de

Tempo (PRVJT).

O problema abordado neste trabalho pode ser visto como um PRVJT fazendo as seguintes

associações:

Os clientes são representados pelas atividades a serem realizadas pelo turista.

O depósito é representado pelo hotel.

As rotas representam um dia de viagem do turista.

As janelas de tempo estão associadas aos horários de início e término das atividades.

2.2 Heurísticas

Nos métodos heurísticos, é deixada de lado a necessidade de se encontrar uma solução ótima

em prol de achar soluções próximas da ótima em um tempo significativamente menor. Muitas

heurísticas encontram soluções para o problema geralmente baseadas em uma fase de

construção e uma fase de refinamento.

Page 4: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

4

Na fase de construção, como o próprio nome sugere, é a realizada a construção de uma

solução para o problema. Tal construção é feita em geral através de um método guloso ou de

um método aleatório. No método guloso, as soluções começam a partir do zero e

componentes vão sendo adicionados, um de cada vez de acordo com algum critério, chamado

de critério guloso. Já no método aleatório, a construção da solução é feita com base em algum

componente aleatório.

Na fase de refinamento, são realizadas diversas trocas na solução gerada na fase de

construção. Cada troca gera uma outra solução, que pode ser melhor. O processo de realização

de trocas é comumente chamado de busca local. A melhor solução encontrada nesta etapa é

chamada de solução ótima local. (BLUM; ROLI, 2003).

Algumas heurísticas aplicam as fases de construção e refinamento diversas vezes, sempre

procurando garantir que as soluções construídas não se repitam. O pseudo código abaixo

ilustra as possíveis etapas de uma heurística.

1 Para i de 1 até iter faça:

2 X Solução Construída;

3 Refinamento (X);

4 Fim Para

5 Retorne a melhor solução encontrada;

Para mais detalhes a respeito de heurísticas, ver Souza (2008) e Blum e Roli (2013). A

heurística proposta neste trabalho é baseada no pseudo código prévio, onde a etapa de

Construção é feita de forma aleatória e a etapa de Refinamento é feita baseada em uma busca

local do tipo 2-opt (VIDAL, 2013). Para maiores detalhes sobre heurísticas para problemas

de roteamento, ver Bräysy e Michel (2005) e Laporte et al. (2000).

3. Estudo de Caso

3.1 Descrição da Startup

A Local Cave é uma startup do ramo de turismo fundada recentemente no início do ano de

2017, composta por 3 alunos do curso de Engenharia de Produção da UFF. Possui como

propósito central tornar mais eficiente e inteligente a elaboração de roteiros e do

Page 5: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

5

planejamentos de viagens, buscando empregar as tecnologias mais recentes do mercado, tais

como inteligência artificial e machine learning, além da pesquisa operacional, para alcançar

seu propósito.

Seu produto é baseado em um aplicativo online hospedado em um site. A principal finalidade

deste aplicativo facilitar a vida de viajantes que estão planejando a sua visita em alguma

cidade, mas também a de pessoas locais em busca de lugares a visitar em sua própria cidade,

ao oferecer uma plataforma digital que permita o usuário descobrir e se informar sobre

atividades que estejam alinhadas com suas preferências pessoais em uma ou mais cidades.

3.2 Descrição do processo

Atualmente, o visitante que entra na página principal do site pode optar entre realizar um

questionário para descobrir o seu perfil de viagem, baseado em uma distribuição com 9 tipos

de viajante distintos, ou então optar por fazer o seu roteiro diretamente e personalizar o seu

tipo de viajante manualmente.

Caso o usuário opte pela primeira opção, ele responde perguntas acerca de gostos e suas

opções de viagem, e então é mostrado para o mesmo, ao final do questionário, qual a sua

distribuição, calculada automaticamente por uma pontuação atrelada a cada uma das

respostas. A Figura 1 mostra um exemplo de distribuição.

Figura 1: Exemplo de distribuição para um viajante após realização do questionário

Fonte: Site da Local Cave

Page 6: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

6

Ao entrar em uma das páginas de cidade, tanto o viajante que realizou o questionário quanto

demais usuários podem optar ainda por selecionar algumas preferências para a viagem

específica em questão, como por exemplo se o viajante gostaria de economizar na viagem ou

visitar as principais atrações turísticas. Além disso, o turista deve colocar por quantos dias irá

permanecer na cidade e qual seu ritmo de viagem, como mostrado na Figura 2.

Figura 2: Perguntas complementares respondidas pelo turista.

Fonte: Site da Local Cave

Após o usuário clicar para começar o seu roteiro, este será direcionado para uma página

contendo diversas atividades, apresentadas por ordem de pontuação, para que o usuário possa

escolher atividades de interesse para adicionar ao seu roteiro, como por exemplo na Figura 3.

Figura 3: Atividade sugerida ao turista

Page 7: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

7

Fonte: Site da Local Cave

A distribuição do viajante, extraída do questionário, irá influenciar na pontuação das

atividades disponíveis, assim como as preferências de viagem. Após isso, o usuário poderá

clicar para gerar seu roteiro personalizado.

O foco deste trabalho consiste justamente nesta próxima etapa, que é o processo de geração de

um roteiro de viagem através de um algoritmo, com base nas atividades geradas para o

usuário. A Figura 4 esquematiza a relação entre os dados de entrada, o algoritmo proposto e

os dados de saída.

Figura 4: Entradas e saídas do processo de geração de roteiro

3.3 Recebimento dos Dados de Entrada

Page 8: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

8

No website da Localcave, o usuário possui algumas opções de ajuste de acordo com a

especificidade de sua viagem e suas preferências e necessidades. Estes dados, que são

recebidos pelo servidor, juntamente com outros dados que são extraídos do banco de dados

como entrada do processo, estão listados abaixo:

Quantidade de dias

Ritmo da viagem (7 possibilidades são fornecidas)

Lista de atividades a serem visitadas.

Bairro de hospedagem.

Matriz tempo de deslocamento

Janelas de tempo das atividades

Duração das atividades

Energia gasta por cada atividade

Limitações adicionais (uso de trajes especiais, por exemplo)

3.4 Pré-Processamento

Nesta etapa, primeiramente é feita a transcrição do ritmo de viagem. Este é um atributo

nominal e, portanto, precisa ser transformado em um índice numérico. Baseado neste mesmo

índice numérico, é então calculado também o limite de energia, que reflete o limiar de esforço

físico e mental que o viajante pode aguentar de forma acumulada em um mesmo dia. Este

também é um atributo comparativo, baseado na mesma noção de energia. O seu cálculo é feito

multiplicando o valor numérico do ritmo por 2 e somando 4. Ou seja, como o valor numérico

de ritmo varia entre 1 e 7, o valor mínimo do limite é 6 e o máximo é 18, conforme a Tabela

1.

Tabela 1: Correspondências de ritmo com limite de energia

Ritmo nominal Indice numérico Limite de energia

Bastante Lento 1 6

Lento 2 8

Tranquilo 3 10

Normal 4 12

Um pouco puxado 5 14

Corrido 6 16

Muito corrido 7 18

Page 9: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

9

A partir deste limite de energia, entre as atividades pré-selecionadas para serem incluídas no

roteiro do usuário, são removidas aquelas que, por si só, superam este limite de energia. Isto é,

são atividades que exigiriam um nível de esforço que não está de acordo com o ritmo de

viagem previamente escolhido pelo viajante.

3.5 Algoritmo de Roteamento

3.5.1 Ideia Principal

A noção principal do algoritmo se baseia no princípio de sequenciamento. Isto é, o que será

analisado como cada solução única é uma determinada sequência ordenada contendo todas as

atividades a serem realizadas. O algoritmo varia diversas sequências e calcula para cada uma

delas quantos dias são necessários para que o turista realize as atividades na ordem da

sequência bem como a distância total percorrida.

Seja por exemplo a sequência S = {E,B,D,A,C} com as atividades A,B,C,D e E. O algoritmo

retornaria por exemplo que no dia 1 serão feitas as atividades E e B, no dia 2 a atividade D, e

no dia 3 as atividades A e C, mesmo que o usuário não deseje fazer o roteiro em 3 dias. Os

fatores que levam ao algoritmo a limitar o número de atividades diárias são diversos, como

por exemplo: duração do dia, janelas de tempo das atividades, nível de energia do turista

dentre outros. Tais fatores serão explicados com mais detalhes posteriormente neste trabalho.

Para comparar as sequências, o algoritmo utiliza uma função de custo Custo(S) que é dada

pela soma do tempo total percorrido pelo turista somado a uma penalização que só é

considerada caso o número de dias retornado pelo algoritmo seja maior do que o número de

dias desejado pelo turista.

A ideia central do algoritmo é diversificar as sequências, de forma a achar e guardar as

melhores soluções.

3.5.2 Notação Matemática

Visando um maior entendimento acerca do algoritmo principal, seguem as notações utilizadas

para detalhamento do algoritmo e seus respectivos significados:

: Quantidade de dias selecionados pelo usuário.

n: número de atrações pré selecionadas para inclusão no roteiro

S: Determinada sequência das n atividades.

Page 10: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

10

Custo(S): É o custo (função objetivo) da atual sequência de atividades.

: Sequência encontrada pelo algoritmo com o menor custo.

3.5.3 Detalhes do Algoritmo

O algoritmo principal pode ser explicado melhor através de uso do pseudocódigo descrito no

Algoritmo 1. Na linha 1, tem-se que a sequência começa vazia e o custo ótimo é dado

inicialmente por um valor suficientemente grande. A linha 2 indica que sequências

aleatórias iniciais são geradas. Para cada uma destas sequências, uma busca local é aplicada

(linhas 4 – 13). A busca local é feita com base na função Espelha(S,k,j), onde k e j

representam a posição inicial e a posição final, respectivamente, da subsequência que é

espelhada. Basicamente, é feita uma inversão completa da subsequência.

Ex1: Dado S = {4, 6, 2, 9, 1, 5} , k = 1 e j = 3

Espelha(S,k,j) retorna {2, 6, 4, 9, 1, 5}

Ex2: Dado S = {4, 6, 2, 9, 1, 5}, k = 2 e j = 5

Espelha(S,k,j) retorna { 4, 1, 9, 2, 6, 5}

Após cada espelhamento, é calculado através da função Custo(S) o custo atrelado a nova

sequência a fim de verificar se há uma melhoria da melhor solução até o momento (linhas 8 -

10). A função Custo(S) visa considerar o quesito mais importante do planejador que é

encaixar as atividades de forma a não exceder a quantidade Q de dias do usuário. Além disso,

Custo(S) tem mais dois objetivos: um é a de minimizar os tempos de deslocamento entre as

atividades escolhidas. O outro é maximizar o tempo que o usuário está realizando atividades.

Abaixo, segue o valor retornado por Custo(S):

,

onde:

M: É um número grande suficientemente para desqualificar as soluções que não

estiverem dentro do número de dias estabelecido.

: É o tempo de deslocamento do local i para o local j em minutos

Page 11: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

11

: É uma constante binária. Possui valor 1 se o viajante irá se deslocar de i para j na

sequência S, 0 caso contrário.

D(S): Quantidade mínima de dias calculada pelo algoritmo dada uma sequência de

atividades S.

R(S): Menor tempo diário gasto em minutos com atividades.

O cálculo D(S) para uma dada sequência S verifica qual a quantidade mínima de dias para se

realizar a sequência ordenada S através do seguinte algoritmo. Seja por exemplo, a sequência

S={A,C,E,D,B}. O algoritmo inicialmente verifica se é possível realizar as atividades C após

A em um mesmo dia. Isto pode ser impossibilitado devido ao tempo insuficiente. Nesta etapa,

o algoritmo não leva em consideração somente o tempo de deslocamento, duração e janelas de

tempo, mas também a necessidade de retorno ao Hotel devido a troca de trajes ou necessidade

de descanso. Caso A e C fiquem em um mesmo dia, o algoritmo agora tenta incluir E no

mesmo dia que A e C. Já se A e C ficam em dias diferentes, o algoritmo tenta incluir E junto

com C no segundo dia. O processo para as atividades D e B é similar, terminando assim o

algoritmo, que retorna o número de dias utilizados.

O cálculo de R(S) é simples e feito da seguinte forma. Seja uma Sequência S com D(S) = 2,

se a soma dos minutos em atividades no dia 1 tem 400 min e no dia 2 tem 80 min,

O objetivo do parâmetro R(S) é preparar a solução para a etapa de

viabilização, já que serão retirados menos minutos de atividade (as atividades que compõem

R), ao mesmo tempo que a distância percorrida também continuará sendo critério. O valor 0,4

foi encontrado baseado em testes a fim de descobrir o melhor balanceamento entre estes dois

quesitos.

Algoritmo 1: Funcionamento do algoritmo principal de roteamento

1 S* { Ø }

2 Para i de 0 até 50*Q faça:

3 S Sequência aleatória com todas as n atividades;

4 Para k de 0 até n/2 faça:

5 Para j de k+1 até n faça:

6 S Espelha(S, k, j);

Page 12: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

12

7 custo CalculaCusto(S);

8 Se Custo(S) < Custo(S*):

9 S* S

10 Fim se

11 Fim para

12 Fim para

13 Fim para

3.6 Viabilização da Solução

A fase de viabilização, que só é utilizada caso não exista nenhuma solução que consiga ser

realizada dentro de Q dias, tem como principal objetivo adequar a melhor solução S*

encontrada ao número de dias Q delimitado pelo usuário para a viagem. Basicamente, é

retirado da solução a quantidade de dias excedentes com os menores tempos gastos em

atividades.

3.7 Dados de Saída

Apesar do algoritmo demonstrar o processamento e cálculo de apenas uma solução ótima, na

atualidade são guardadas mais soluções para o problema. O processo, porém, funciona da

mesma forma, apenas são adicionadas variáveis para guardar mais soluções e seus custos

atrelados.

A saída do algoritmo proposto neste trabalho são planos de viagem, visando auxiliar o

viajante dizendo como ele irá fazer as atividades em uma determinada cidade. A Figura 5

ilustra um exemplo de roteiro gerado e impresso na tela pelo algoritmo. Neste caso, o usuário

escolheu 4 dias para seu roteiro, com hospedagem em Copacabana e um ritmo normal de

viagem. Neste caso, alguns detalhes são interessantes de destacar. No primeiro dia, o

algoritmo considerou que, antes de fazer a atividade de ir a um evento cultural, o turista

necessita de descanso por ter feito as duas últimas atividades. No dia 2, o usuário tem a opção

de retornar para a hospedagem para esperar o início da próxima atividade. Já no dia 3, por

exemplo, considerou-se que é preciso voltar da praia para tomar um banho/se trocar na

hospedagem antes de ir no forte de Copacabana.

Figura 5: Exemplo de roteiro do Rio de Janeiro

Page 13: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

13

Fonte: Site da Local Cave

Além das atividades e horários propostos, o usuário ainda consegue visualizar em um mapa da

ferramenta do Google Maps, onde são mostradas as atividades do roteiro em marcadores

vermelhos, que indicam a qual dia a atividade pertence, como mostra a Figura 6.

Figura 6: Demonstração das atrações no mapa por dia do roteiro

Page 14: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

14

Desta forma, os principais dados que compõem um plano de viagem são:

Lista e sequenciamento das atividades:

Deslocamentos:

Horário de início das atividades

Horário de término das atividades

Voltas para a hospedagem (incluindo voltas para descanso ou troca de trajes).

4. Conclusões

Este trabalho apresentou um algoritmo de roteamento, que é utilizado para criação de roteiros

personalizados para turistas que desejam visitar a cidade do Rio de Janeiro. Tal algoritmo não

só considera características básicas como tempos de deslocamento e horários de início e

término de cada atividade, mas também visa incorporar diversos detalhes de modelagem não

triviais, como por exemplo, necessidade de descanso, necessidade de troca de trajes, dentre

outros.

REFERÊNCIAS

ARENALES, Marcos et al. Pesquisa operacional: para cursos de engenharia. Elsevier Brasil, 2ª Ed, 2015.

BRÄYSY, Olli; MICHEL, Gendreau. Vehicle routing problem with time windows, Part II:

Metaheuristics, Transportation Science, v.39, n.1, p. 119-139, 2005.

BLUM, Christian; ROLI, Andrea. Metaheuristics in combinatorial optimization: Overview and conceptual

comparison. ACM computing surveys (CSUR), v. 35, n. 3, p. 268-308, 2003.

DANTZIG, George B.; RAMSER, John H. The truck dispatching problem. Management science, v. 6, n. 1, p.

80-91, 1959.

GIAMMATTEY, RAPHAEL. O tempo e o espaço em uma viagem a turismo. Niterói: UFF, 2014. Trabalho

de Conclusão de curso – Departamento de Turismo, Universidade Federal Fluminense.

Page 15: USO DE INTELIGÊNCIA COMPUTACIONAL PARA GERAÇÃO DE …

XXXVIII ENCONTRO NACIONAL DE ENGENHARIA DE PRODUCAO “A Engenharia de Produção e suas contribuições para o desenvolvimento do Brasil”

Maceió, Alagoas, Brasil, 16 a 19 de outubro de 2018. .

15

Disponível em < http://www.repositorio.uff.br/jspui/bitstream/1/1077/1/345%20-

%20Raphael%20Giammattey.pdf> Acesso em 14 de novembro de 2017.

LAPORTE, Gilbert et al. Classical and modern heuristics for the vehicle routing problem. International

transactions in operational research, v. 7, n. 4-5, p. 285-300, 2000.

NASCIMENTO, Pedro Franklin. Desenvolvimento de um planejador de viagens: validação dos problemas e

soluções para o mvp (produto mínimo viável) de uma startup. Trabalho de Conclusão de Curso,

Departamento de Engenharia de Produção, Escola de Engenharia, Universidade Federal Fluminense.

NUNES, PRISCILLA DE SOUSA NUNES. A percepção dos backpackers sobre a exploração financeira em

suas viagens. Niterói: UFF, 2012. Trabalho de Conclusão de curso – Departamento de Turismo, Universidade

Federal Fluminense. Disponível em < http://www.repositorio.uff.br/jspui/bitstream/1/1722/1/182%20-

%20Priscilla%20Nunes.pdf > Acesso em 14 de novembro de 2017.

SOUZA, Marcone Jamilson Freitas. Inteligência computacional para otimizaçao. Notas de aula, Departamento

de Computaçao, Universidade Federal de Ouro Preto. Disponıvel em http://www. decom. ufop.

br/prof/marcone/InteligenciaComputacional/InteligenciaComputacional. pdf, 2008.

TOTH, Paolo; VIGO, Daniele (Ed.). The vehicle routing problem. Society for Industrial and Applied

Mathematics, 2002.

VIDAL, Thibaut et al. Heuristics for multi-attribute vehicle routing problems: A survey and

synthesis. European Journal of Operational Research, v. 231, n. 1, p. 1-21, 2013.