• Nenhum resultado encontrado

Modelo de duas fases para o PVRP

Passo 4: Se Sucesso=falso e φ≠∅ então Passo 2;

4.2 Segunda fase do algoritmo – C ALENDARIZAÇÃO DAS ROTAS

4.2.2 Construção de uma solução que verifique a unicidade de visita diária para cada localidade

4.2.2.1 Geração de um grafo

Inspirados por um trabalho apresentado por Burke et al. (1994) na elaboração de horários de exames escolares, vai-se recorrer à geração de um grafo e à sua coloração.

Burke et al. (1994) apresentam um sistema automático de construção de calendário de exames escolares recorrendo à construção de um grafo, no qual os vértices representam as disciplinas e as arestas os conflitos entre disciplinas. Só existe ligação (aresta) entre o vértice

Y e o vértice W se existir algum tipo de conflito entre as disciplinas Y e W.

Os conflitos entre disciplinas podem ter natureza distinta: por exemplo, pode haver conflito entre duas disciplinas pelo facto de haver um ou mais alunos que se proponham a exames dessas duas disciplinas - necessariamente terão que ser exames que ocorrem em períodos distintos. Também a necessidade de uma sala com características específicas pode ser motivo, entre outros, que impeça a ocorrência de dois exames num mesmo período.

Após a construção do grafo procede-se à sua coloração com o intuito de dividir os exames em grupos que possam ocorrer em iguais períodos.

Em teoria de grafos, o problema de coloração consiste em atribuir diferentes cores, no menor número possível, aos vértices, de modo que nenhum par de vértices adjacente tenha a mesma cor. Com a coloração consegue-se perceber quais os exames que devem ocorrer em diferentes períodos (os de cores diferentes), e os que podem ocorrer no mesmo período (os de cor igual).

Vai-se proceder de modo análogo, passando as disciplinas – vértices – a serem as rotas, e as arestas os conflitos entre os vértices. Assim, sobre as rotas da solução da primeira fase, constrói-se um grafo onde os vértices representam as rotas e as arestas os conflitos entre rotas. Se duas rotas são adjacentes significa que têm pelo menos um ponto de visita em comum, daí a existência de conflito por não se poderem efectuar em igual período.

Continuando com o exemplo 1 acima descrito, o grafo representativo terá 7 vértices, um para cada rota. Como todas as rotas têm pelo menos um ponto de visita em comum o grafo é completo, isto é, cada vértice é adjacente a todos os outros – ver Figura 4. 7.

R1 R2

R7

R3

R6 R4

R5

Figura 4. 7: Grafo representativo do exemplo 1

Seja o grafo G(V,E) sendo V o conjunto de vértices (rotas) e E o conjunto de arestas definido por E={(Ri, Rj):Ri, Rj ∈V tal que as rotas Ri e Rj têm algum ponto de visita em comum}.

Ao colorir o grafo pretende-se criar subgrupos de rotas, cada qual constituído apenas por rotas compatíveis. A cada subgrupo corresponderá uma cor, sendo formado pelo conjunto de vértices – rotas – que possuem essa cor. As rotas com igual cor podem ser efectuadas num mesmo dia, uma vez que o conjunto de vértices de uma determinada cor C, não tem qualquer

R1 R2 R3 R4 R5 R6 R7 R1 1 1 1 1 1 1 1 R2 1 1 1 1 1 1 1 R3 1 1 1 1 1 1 1 R4 1 1 1 1 1 1 1 R5 1 1 1 1 1 1 1 R6 1 1 1 1 1 1 1 R7 1 1 1 1 1 1 1

tipo de conflito. As diferentes cores corresponderão aos dias da semana do período em estudo – uma cor corresponderá a um e um só dia da semana.

Coloca-se um problema: “ Se cada cor vai corresponder a um dia da semana e se o horizonte

temporal é de M dias (6 no caso de estudo), o número de subgrupos, isto é, o número de cores não poderá exceder M!”

Ao colorir o grafo, é bem possível que o menor número de cores necessárias para colorir o grafo – que em teoria de grafos se designa número cromático χ(G) – seja superior a M. Isto faz com que seja impossível uma posterior afectação aos dias da semana. Interessa então que o grafo a colorir tenha o menor número de arestas possíveis pois assim serão maiores as possibilidades de o colorir com um menor número de cores. Note-se que um pequeno número de arestas não implica necessariamente um número cromático menor, pois basta existir um subgrafo completo com Z vértices para o número cromático ser superior ou

igual a Z.

Com o objectivo de criar um grafo com o menor número de arestas possíveis tentou-se perceber a origem das arestas e a “força” das mesmas, isto é, interessa não só saber que existe uma aresta que liga Ri a Rj mas também medir o conjunto de clientes que pertencem simultaneamente às duas rotas. A existência de uma aresta devido à presença de um único cliente em comum entre vários de ambas as rotas não é muito desejável pois pode eventualmente prejudicar esta fase, e seria desejável, se possível e não muito dispendioso, que a visita a esse cliente desaparecesse de uma das rotas e assim desapareceria a aresta em questão. Por outro lado, se a aresta aparece devido à presença de vários clientes em comum entre as rotas em análise, é uma aresta mais forte, e o desejável é, se possível, torná-la ainda mais forte.

Interessa então que as rotas sejam formadas de modo que os conflitos entre elas sejam o mais forte possível pois assim diminui-se o número de arestas entre rotas. Por outras palavras, para um determinado grupo de clientes a visitar, interessa formar rotas semelhantes entre si, diminuindo assim o número de conflitos.

Seja então ϕij ={w: w ∈Ri ∧ w∈Rj } . Interessa Max # ϕij

Como na primeira fase do algoritmo não houve a preocupação de criar rotas semelhantes, gera-se uma fase, que designamos por fase de transição, cujo objectivo é construir rotas semelhantes. Claro que esta fase terá implicações (provavelmente negativas) nos valores da função objectivo da resolução do problema da primeira fase, mas que talvez compensem face ao menor agravamento da função objectivo do problema final que inclui as restrições de calendarização.