• Sonuç bulunamadı

Ürün Yerleştirmede Mecra Kullanım Alışkanlıklarının Etiksel

3. ÜRÜN YERLEŞTİRMEDE ETİKSEL SORUNLAR ÜZERİNE BİR

3.4. Araştırmanın Bulguları

3.4.3. Verilerin Değerlendirilmesi

3.4.3.4. Varyans Analizi (ANOVA) Bağlamında Elde Edilen Verilerin

3.4.3.4.2. Ürün Yerleştirmede Mecra Kullanım Alışkanlıklarının Etiksel

O operador implementado aqui baseia-se em Potvin (2007). Na figura 5.9, segundo o autor, a área demarcada por um quadrado tracejado em “Pai 1” pode ter as mais variadas formas geométricas e tamanhos.

Pai 1 Filho Pai 2

Figura 5.9. Operador Cruzamento Natural (Potvin, 2007)

Naturalmente as duas entradas principais da busca são os pais. Aqui o pai1 é a solução corrente do algoritmo e o pai2 é a melhor solução que o algoritmo tem no momento corrente. As etapas básicas do operador implementado são:

1) Escolher o número de filhos desejados (nfdes): metade do número de veículos do pai1. Inicializar número de filhos gerados: nf=1. 2) Fazer nf=nf+1. Is nf > nfdes, ir para o passo 8.

3) Escolher região: aleatório de 1 a 8.

4) Selecionar em pai1 a parte da solução dentro da região escolhida que tenha no mínimo um cliente adjacente também dentro da região (ou seja, 1 arco dentro da região delimitada).

5) Armazenar os clientes selecionados em filho, número “nf”.

6) Copiar a solução de pai2, sem os clientes selecionados no passo 4. 7) Reparar o filho com o procedimento “Eliminação de Rotas”, visto

no tópico 5.1.2.1 e retornar ao passo 2.

8) Escolher o filho com melhor avaliação da função objetivo.

9) Melhorar o filho selecionado com as buscas “Realocação” e “Intercâmbio” (tópicos 5.1.2.4 e 5.1.2.5).

10) Avaliar solução corrente e comparar com a melhor solução.

Há 8 regiões possíveis. Elas são criadas em função da localização do depósito, do cliente de maior coordenada x, do cliente de maior coordenada y, do cliente de menor coordenada x e do cliente de menor coordenada y. Conforme pode ser visto nas

figuras 5.10 e 5.11, estes 4 clientes seriam: 36, 31, 13, 40 respectivamente, num exemplo de uma instância de Christofides de 50 clientes. As interseções das retas que passam por cada um destes clientes formam 4 pontos extremos chamados de e1, e2, e3 e e4. Os 4 segmentos de reta que unem o depósito a cada um destes extremos formam as 4 primeiras regiões, vistas na figura 5.10.

Figura 5.10: regiões 1 a 4

Na figura 5.11, podemos ver as demais 4 regiões. Elas são formadas pelos 4 segmentos de reta que partem do depósito e vão até os 4 pontos médios calculados a partir dos 4 pontos extremos. Desta forma as 8 regiões mudam conforme a distribuição dos clientes e a localização do depósito.

Figura 5.11: regiões 5 a 8

A solução contida na área selecionada tem origem no pai1 porque desta forma a maior parte da solução terá origem no pai2 que é a melhor solução obtida pelo algoritmo até o momento. Assim, a busca mostra alguma preferência por esta solução.

? , 9 J "*$&+=4&-.*# +& &"./"3 01*

Como mencionado anteriormente, a perturbação é gerada a partir de operadores genéticos. Das 3 soluções iniciais geradas no algoritmo, as outras 2 soluções não são desperdiçadas, sendo utilizadas no algoritmo quando um movimento de piora é necessário. De fato, o algoritmo sempre mantém uma lista de 3 soluções (ou indivíduos num contexto evolucionário) disponíveis para quando houver necessidade, chamemos esta lista de “IniSol” pois inicialmente esta lista é composta das 3 soluções iniciais geradas no algoritmo. A melhor solução que o algoritmo encontrou até o momento é chamada “oesSol”. Conforme algoritmo 5.1, o procedimento de perturbação é executado quando o algoritmo está estacionado em um ótimo local. O procedimento de perturbação é composto dos seguintes passos:

1) Checar se solução que acabou de sair da fase de busca é repetida no conjunto “IniSol”. Se sim, aplicar operador Shift (explicado adiante em 5.1.4.4) e substituir solução repetida.

2) Selecionar 1 indivíduo de “IniSol” conforme critério de aspiração;

3) Executar 3 cruzamentos genéticos entre o indivíduo selecionado no passo 2 (pai1) e o oesSol (pai2). Estes 3 cruzamentos genéticos são: Cruzamento Natural, Cruzamento B2 e Cruzamento B4 (o primeiro foi descrito no tópico 5.1.2.7 e os demais serão explicados adiante). Incluir os 3 filhos na lista de candidatos.

4) Os 3 filhos dos cruzamentos e o próprio pai1 formam uma lista de 4 soluções candidatas.

5) Escolher a melhor solução da lista de candidatos que não seja Tabu. Este indivíduo é incluído em IniSol em substituição ao indivíduo escolhido no passo 1 (pode ocorrer de ser ele mesmo).

6) O indivíduo selecionado no passo 5 retorna para a fase de melhoria do algoritmo, conforme figura 5.12.

A fase de perturbação é ilustrada pelo fluxograma da figura 5.12. Observa-se que a função Shift tem o papel de manter as soluções do conjunto IniSol diferentes. Também observa-se que quando uma solução é adicionada no conjunto IniSol, a função objetivo destas soluções é armazenada numa lista Tabu. Sempre que uma solução é gerada para substituir alguma solução de IniSol é testado se esta solução é Tabu. Isto é importante para evitar que soluções já exploradas anteriormente na fase de busca sejam novamente exploradas.

O conjunto In manter uma diversidad tempo que mantém es qualidade que não são com o conjunto IniSol com diferentes caracte soluções geradas não tê Os cruzamen soluções diferentes e de ter flexibilidade de mud IniSol. E de boa qual segundo pai faz parte d

Figura 5.12: Fase de Perturbação

IniSol trata-se de uma memória adaptativa, se rsidade das soluções encontradas na fase de pertu tém esta diversidade, trata-se de um conjunto

o são descartadas pelo algoritmo. O procedimen iSol dão à fase de perturbação maior poder par aracterísticas e ao mesmo tempo de boa qualidad não têm um efeito de “restart” no algoritmo. zamentos genéticos utilizados também contribu

es e de qualidade. Diferentes devido a seus parâme de mudar um dos pais que participa do cruzamento a qualidade, pois um dos pais é a melhor soluç

arte de IniSol.

va, sendo importante para e perturbação. Ao mesmo unto de soluções de boa edimento Shift juntamente er para explorar soluções idade, de forma que as

ntribuem para encontrar arâmetros aleatórios e por mento devido ao conjunto solução encontrada, e o

A figura 5.13 (círculos) e solução g instância qualquer. Fig A figura 5.13 inicial. No ponto 2 vê solução melhor que aq perturbações pequenas 8 permitiu que o algor exemplo de fuga do perturbações ajudaram

5.1.3.1 – Cruzament

Este operador seguir: 1) Esc de 2) Faz

5.13 mostra um gráfico com a convergência ção gerada pelo mecanismo de perturbação (lin

Figura 5.13: Convergência e Perturbações

5.13 mostra que o algoritmo convergiu rapidam vê-se uma perturbação e em seguida o algoritmo ue aquela tida como a melhor até então. Nos pon uenas e nos pontos 7 e 8 perturbações maiores. A p

algoritmo melhorasse a melhor solução corrente a do ótimo local em que se encontrava. É pos

aram o algoritmo a sair de um ótimo local e contin

amento B2

erador foi baseado em Hjorring (1995). As eta

Escolher o número de filhos desejados (nfdes de veículos do pai1. Inicializar número de filhos Fazer nf=nf+1. Is nf > nfdes, ir para o passo 8.

ência da melhor solução o (linha contínua) numa

pidamente após a solução oritmo converge para uma s pontos 5 e 6 observa-se s. A perturbação do ponto rrente, sendo um clássico É possível ver como as continuar convergindo.

s etapas são descritas a

es): metade do número filhos gerados: nf=1. so 8.

3) Escolher aleatoriamente uma rota de pai1 (rota semente). 4) Armazenar a rota semente em filho, número “nf”.

5) Copiar a solução de pai2, sem os clientes selecionados no passo 4. 6) Reparar o filho com o procedimento “Eliminação de Rotas”, visto

no tópico 5.1.2.1. e retornar ao passo 2.

7) Escolher o filho com melhor avaliação da função objetivo.

8) Melhorar o filho selecionado com as buscas “Realocação” e “Intercâmbio” (tópicos 5.1.2.4 e 5.1.2.5).

9) Avaliar solução corrente e comparar com a melhor solução.

Observa-se que apenas 1 rota é herdada de pai1, toda a solução tem origem no pai2, mostrando forte preferência por este indivíduo.

5.1.3.2 – Cruzamento B4

Este operador foi baseado em Alvarenga & Mateus (2004). As etapas são descritas a seguir:

1) Inicializar filho, escolhendo aleatoriamente 1 rota de pai2, copiando esta rota.

2) Se possível, escolher aleatoriamente uma rota de pai1 que não possua qualquer cliente em filho.

3) Se possível, escolher aleatoriamente uma rota de pai2 que não possua qualquer cliente em filho.

4) Repetir passos 2 e 3 até que um deles não seja mais possível.

5) Se existirem clientes não incluídos em filho, completar solução aplicando uma heurística rápida para estes clientes. Aqui isto foi feito aplicando Gillet & Miller e Clarke & Wright. Assim, obtem-se 2 filhos, cada um completado com uma heurística diferente.

6) Para cada filho,aplica-se 2-Opt intra-rotas para todas as rotas das 2 soluções.

8) Me “R 9) Av

5.1.3.3 – Processo d

Em todos os Cruzamento B2 e Cruz respectiva fonte de ref Normalmente o filho g por existirem sub-rotas de reparação faz-se ne primeiro e o último clie viável e que possui processo normalmente cruzamentos, o primeir Após esta busca, a sol “Realocação” e “Intercâ

5.1.4.4 – Shift

O procedimen composto de 3 soluções a gerar soluções dife daqueles já obtidos pe (1974). O funcionamen

Matriz Sol

Melhorar o filho selecionado com as buscas “El “Realocação” e “Intercâmbio” (tópicos 6.1.2.1, Avaliar solução corrente e comparar com a melh