• Nenhum resultado encontrado

Nesta seção são descritos o problema do caixeiro comprador (PCC) e problema do caixeiro comprador biobjetivo (2PCC).

3.1.1 PROBLEMA DO CAIXEIRO COMPRADOR MONO-OBJETIVO

O Problema do Caixeiro Comprador (PCC) ou Traveling Purchaser Problem ( TPP) foi introduzido por Ramesh (1981) e representa uma generalização do Problema do Caixeiro Viajante (PCV). Portanto, este problema pertence à classe NP-difícil podendo ser definido como a seguir (LEDESMA, 2002).

Considera-se um conjunto de produtos que deverão ser adquiridos e um conjunto de mercados oferecendo certas quantidades de cada produto. São requeridas quantidades diferentes de cada produto. O preço da unidade do produto é conhecido e varia de acordo com o mercado. É conhecido também o custo da viagem entre cada par de mercados.

A solução do PCC consiste em selecionar um subconjunto de mercados e um ciclo por esse subconjunto de mercados tal que a demanda requerida de produtos é satisfeita (a quantidade de produtos comprada em cada mercado é determinada) e o custo total minimizado. A rota deve iniciar e terminar em um mercado específico normalmente denominado depósito. O PCC assume que:

• Cada produto está disponível em pelo menos um mercado; • Nenhum produto está disponível no depósito;

• A demanda requerida pode ser comprada.

Algumas abordagens modernas para a solução desse problema podem ser encontradas em: Riera-Ledesma e Salazar-González (2005b), Bontoux e Feillet (2008), Goldbarg et al. (2008) e Goldbarg et al. (2009).

3.1.1.1 Problema do Caixeiro Comprador Não-Capacitado

Num caso particular do problema do caixeiro comprador denominado de PCC não- capaci-tado (PCCNC), supõe-se que se um produto estiver disponível em um dado mercado, sua quantidade é suficiente para satisfazer à demanda. Neste caso a demanda é de uma unidade por produto. A Figura 8 exibe um exemplo numérico do PCC não-capacitado com seis mercados e um depósito.

Figura 8: Exemplo do PCC não-capacitado (BAGI, 2007).

A Figura 8(a) exibe o custo de cada produto em cada mercado do grafo. As matrizes próximas aos vértices representam o custo dos quatro produtos em cada mercado. O mercado três, por exemplo, possui a disponibilidade de vender apenas o produto quatro ao custo de uma unidade. A Figura 8(b) mostra uma solução proposta. Observa-se que, ao se dispor de uma sequência de mercados visitados, o custo de aquisição dos produtos é fixado pela lógica de comprar o produto no mercado que o fornece com menor valor. No caso da Figura 8(b) a solução possui adequação igual a 14.

A estrutura do problema do caixeiro comprador aplica-se a muitos problemas reais, tais como (LEDESMA, 2002): escalonamento de tarefas, roteamento, problema de armazenamento e projeto de redes tipo anel.

3.1.2 PROBLEMA DO CAIXEIRO COMPRADOR BIOBJETIVO

A maioria dos trabalhos reportados na literatura considera o problema do caixeiro com- prador como sendo mono-objetivo (BAGI, 2007; ??). Assim, conforme descrito anteriormente, os dois objetivos, o de minimizar o custo da rota e o de minimizar o custo da compra dos produtos, são substituídos por uma única função que corresponde à soma destes dois objetivos. Entretanto, em muitas aplicações reais os objetivos não são comparáveis, como no caso do problema em questão onde o custo de compra dos produtos utiliza uma medida monetária e o custo de rota percorrida para a compra dos produtos utiliza uma medida de distância ou de tempo. Além disso, comumente existe conflito entre os objetivos, ou seja, ao se reduzir o custo de compra dos produtos aumenta-se a distância percorrida para a compra destes produtos. Portanto, é necessária uma abordagem mais sofisticada para tratar adequadamente a estrutura multiobjetivo do problema do caixeiro comprador. A seguir a modelagem matemática para tratar o problema do caixeiro comprador considerando individualmente seus dois objetivos é descrita.

O Problema do Caixeiro Comprador Biobjetivo (2PCC) ou Bi-objective Traveling Pur- chaser Problem( 2TPP) foi proposto por Riera-Ledesma e Salazar-González (2005a) e pode ser definido conforme a seguir.

Considera-se um depósito v0, um conjunto de mercados M = m1, ..., mne um conjunto

de produtos P = {p1, ..., pn}. Seja G = (V, E) um grafo incompleto não-direcionado onde V =

v0S

M é o conjunto de vértices e E = {[vi, vj] : vi, vj∈ V, i < j} é o conjunto de arestas. Cada

produto pk pode ser comprado em um subconjunto de mercados Mp ⊆ M. Denota-se dk o

número de unidades do produto pk que deve ser comprada. Da mesma maneira, apenas qki unidades do produto pk estão disponíveis em cada mercado mi∈ Mk. Assume-se que qki e dk

satisfazem 0 < qki≤ dk e que ∑mj∈Mkqki≥ dkpara todo pk∈ K e mi∈ Mk. No caso particular

do problema não capacitado tem-se dk= 1 e qki= 1, para os mercados que possuem o produto pke qki= 0, caso contrário.

Denota-se por bki o preço do produto pk no mercado mi, e seja Ce a distância entre

mi e mj onde e = [mi, mj] é a aresta que une mi e mj. Um ciclo simples em G com início e

fim no depósito v0é dito uma solução factível se para cada produto pk o ciclo visita mercados

suficientes para a compra de todas as dkunidades necessárias. Dada uma solução factível Sf =

(V (σ ), E(σ )) esta indica que visitando os vértices V (σ ) ⊆ V ligados pelas arestas E(σ ) ⊆ E, há um custo de compra associado que pode ser definido pela Equação 6.

f1(Sf) = ∑vi∈MkTV(σ )bkizki

sujeito a ∑ zki= dk;

zki≤ qki para todo vi∈ Mk

T

V(σ ) (6)

tal que zki é o valor indicado pela solução σ que representa a quantidade do produto pk a ser comprada em mi. No caso particular do problema não-capacitado, ∑ zki= 1, ou seja,

zki deve assumir valor unitário para apenas um mercado na lista de mercados (indicando que o produto pkserá comprado no armazém mi).

O custo associado à rota pode ser definido pela Equação 7, tal que:

f2(Sf) =

e∈E(σ )

ce. (7)

Então, o 2PCC tenta determinar uma solução factível σ minimizando f1(σ ) e f2(σ ).

Claramente, o 2PCC também está relacionado ao problema do caixeiro viajante multiobjetivo e ao problema de rota de veículos multiobjetivo (LEDESMA, 2002). Entretanto, existe uma diferença clara entre o 2PCC e estes problemas: a rota da solução do 2PCC não necessita visitar todos os vértices em V, mas necessita satisfazer outras condições adicionais com relação à coleta dos produtos.

3.1.2.1 Abordagens para o 2PCC

Dois estudos prévios que abordam o 2PCC, minimizando f1(σ ) e f2(σ ) simultanea-

mente, que podem ser encontrados em Riera-Ledesma e Salazar-González (2005a) e Almeida et al. (2010). No primeiro trabalho os autores propõem um procedimento que combina métodos clássicos em programação biobjetivo com o algoritmo branch-and-cut para resolver subproble- mas mono-objetivos, usando uma estrutura para salvar os cortes gerados previamente durante a solução de um subproblema que podem ajudar na solução de outros subproblemas. Este método é capaz de resolver de maneira exata instâncias com até 100 mercados e 200 produtos. O tra- balho de Riera-Ledesma e Salazar-González (2005a) trata apenas de instâncias não capacitadas do 2PCC. Na pesquisa desenvolvida são tratadas instâncias capacitadas e não capacitadas do problema 2PCC disponíveis no banco de instâncias TPPLib (LEDESMA, 2011).

O segundo trabalho compara um algoritmo transgenético multiobjetivo chamado 2TA (Bi-objective Transgenetic Algorithm) (ALMEIDA et al., 2010) com a versão escalarizada do

algoritmo proposto em Goldbarg et al. (2009) chamado 1TA. O algoritmo 2TA contém um par de transponsons (um para cada objetivo) e um plasmídio associado ao custo de compra dos pro- dutos. O trabalho analisa a taxa de sucesso dos três agentes transgenéticos. Para isso, diferentes combinações dos agentes transgenéticos (versões do algoritmo) são apresentadas. Os resultados mostram que o transponson com foco no custo de rota obteve menor taxa de sucesso, mas está presente nas duas combinações que apresentam melhores resultados, ou seja, apesar da sua taxa de sucesso ser baixa ele é importante para o desempenho dos demais agentes transgenéticos. São realizadas simulações com as 175 instâncias da Classe 2 do TPPLib (LEDESMA, 2011). Os algoritmos 1TA e 2TA são capazes de resolver instâncias com até 500 mercados e 200 produ- tos. Os resultados mostram que o 2TA apresenta melhor desempenho com relação ao algoritmo escalarizado.