• Nenhum resultado encontrado

Esta abordagem algor´ıtmica determina sucessivamente ´arvores de suporte at´e en- contrar o melhor valor da vari´avel dual Lagrangeana λ. O objetivo do algoritmo ´e procurar melhores solu¸c˜oes admiss´ıveis do que a correspondente solu¸c˜ao da ´arvore Tw usando combina¸c˜oes lineares do custo e do peso das solu¸c˜oes das ´arvores Tc e Tw. As sucessivas ´arvores de suporte obtidas podem ser admiss´ıveis ou n˜ao admiss´ıveis. No caso da ´arvore obtida ser admiss´ıvel atualiza-se o valor do limite superior (LS) para o custo, caso contr´ario, atualiza-se o valor do limite inferior (LI) para o custo.

Apresentamos de seguida, em forma esquematizada, o Algoritmo Lagrangeano Base (ALagB) para o Problema WMST.

Algoritmo Lagrangeano Base (ALagB) para o Problema WMST

Passo 1: Inicializa¸c˜oes

Passo 1.1: Obter um limite inferior

Obter a ´arvore de suporte de custo m´ınimo Tc = (V, ATc).

Se W (Tc) ≤ W , ent˜ao

Tc ´e a ´arvore correspondente `a solu¸c˜ao ´otima. STOP. Caso contr´ario,

Tβ = Tc.

Calcular C(Tβ).

Passo 1.2: Inicializar o intervalo (quando aplic´avel)

Inicializar o intervalo [ℓ0, u0] e a ´arvore Tℓ0 = Tc (obtida no Passo 1.1).

Obter a ´arvore de suporte ponderada m´ınima Tu0 = (V, ATu0).

Se W (Tu0) > W , ent˜ao

n˜ao existe solu¸c˜ao, STOP. Caso contr´ario,

Tα = Tu0.

Calcular C(Tα) e P (Tα) e ir para o Passo 2. Passo 1.3: Obter um limite superior

Obter a ´arvore de suporte de peso m´ınimo Tw = (V, ATw).

Se W (Tw) > W , ent˜ao

n˜ao existe solu¸c˜ao, STOP. Caso contr´ario,

Tα = Tw.

Calcular C(Tα) e P (Tα).

Passo 2: Obter uma nova ´arvore

Calcular os valores ponderados pij = awij + bcij para cada arco (i, j) ∈ A. Obter a ´arvore de suporte ponderada m´ınima Tp = (V, ATp) e calcular C(Tp),

W (Tp) e P (Tp).

Passo 3: Atualiza¸c˜ao de limites Se W (Tp) ≤ W , ent˜ao

atualizar o LS, isto ´e, se C(Tp) ≤ C(Tα) substituir Tα por Tp. Caso contr´ario,

atualizar o LI, isto ´e, se C(Tp) ≥ C(Tβ) substituir Tβ por Tp.

Passo 4: Crit´erio de paragem

Se |P (Tα) − P (Tp)| ≤ tol, ent˜ao

Tα ´e a ´arvore correspondente `a solu¸c˜ao aproximada, STOP. Caso contr´ario,

No Passo 1.1 ´e obtida a ´arvore de suporte de custo m´ınimo Tc. Se esta n˜ao verificar a restri¸c˜ao de peso, ent˜ao foi encontrado um limite inferior para o valor do custo e Tβ = Tc. No caso de verifica¸c˜ao da restri¸c˜ao de peso significa que foi encontrada a solu¸c˜ao ´otima e o algoritmo termina. No Passo 1.3 ´e obtida a ´arvore de suporte de peso m´ınimo, Tw. Se esta n˜ao verificar a restri¸c˜ao de peso, ent˜ao n˜ao existe solu¸c˜ao e o algoritmo termina. Caso a restri¸c˜ao de peso seja verificada, ent˜ao foi encontrado um limite superior para o valor do custo e Tα = Tw.

O Passo 1.2 s´o ´e aplic´avel quando os limites inferior e superior forem inicializados tendo em conta o intervalo [ℓ0, u0], onde a ´arvore correspondente a ℓ0 ´e a ´arvore de suporte de custo m´ınimo (Tℓ0 = Tc) obtida no Passo 1.1 e para obter a ´arvore de suporte

correspondente a u0 ´e necess´ario calcular os valores ponderados pij = u0 wij+ cij, para cada arco (i, j) ∈ A, o parˆametro u0 depende do algoritmo utilizado e ser´a definido na pr´oxima sec¸c˜ao. Se a ´arvore de suporte ponderada m´ınima Tu0 verificar a restri¸c˜ao

de peso ´e obtido um limite superior para o valor do custo e Tα = Tu0 e neste caso

vamos para o Passo 2. Caso contr´ario, n˜ao existe solu¸c˜ao para o Problema WMST e o algoritmo termina.

No Passo 2 s˜ao determinados os valores ponderados pij = awij + bcij para cada arco (i, j) ∈ A e ´e obtida a ´arvore de suporte ponderada m´ınima Tp. Os valores dos parˆametros a e b que utilizamos para definir os valores ponderados pij v˜ao depender do algoritmo utilizado e ser˜ao definidos na pr´oxima sec¸c˜ao. No Passo 3 atualizam-se os limites, isto ´e, no caso da restri¸c˜ao de peso ser verificada e o custo da ´arvore Tp n˜ao ser superior ao custo da ´arvore Tα, atualizamos o valor do limite superior e subtitu´ımos Tα por Tp. Caso a restri¸c˜ao de peso seja violada e o custo da ´arvore Tp n˜ao seja inferior ao custo da ´arvore Tβ, atualizamos o valor do limite inferior e subtitu´ımos Tβ por Tp. Os Passos 2 e 3 s˜ao executados at´e que se verifique |P (Tα) − P (Tp)| ≤ tol, e quando tal acontece o algoritmo termina, sendo Tα a ´arvore correspondente `a solu¸c˜ao aproximada.

A complexidade do Algoritmo ALagB depende do algoritmo utilizado para a ob- ten¸c˜ao das sucessivas ´arvores de suporte e do n´umero de ´arvores que ´e poss´ıvel deter- minar.

Quanto ao algoritmo que determina as ´arvores de suporte, a sua complexidade ´e O(ϕ(m, n)) [5], onde a fun¸c˜ao ϕ(m, n) = m log(n) depende de duas vari´aveis, sendo elas o n´umero de arestas m = |E| e o n´umero de nodos n = |V | do grafo G = (V, E). No Passo 1 do Algoritmo ALagB, s˜ao obtidas duas ´arvores e para a obten¸c˜ao de cada

uma delas usamos um algoritmo que efetua O(ϕ(m, n)) opera¸c˜oes.

Se K for o n´umero total de ´arvores de suporte que se podem formar no grafo G, ent˜ao o algoritmo vai terminar ao fim de O(log(K)) itera¸c˜oes, pois o n´umero de ´arvores de suporte a determinar no pior dos casos ´e proporcional a K. Portanto, os Passos 2, 3 e 4 do algoritmo obtˆem-se fazendo O(log(K)) × O(ϕ(m, n)) opera¸c˜oes. Logo, no Algoritmo ALagB para obter os valores dos limites inferior e superior s˜ao necess´arias O(log(K) ϕ(m, n)) opera¸c˜oes.

4.3

Comportamento Geom´etrico do Algoritmo La-

grangeano Base para o Problema WMST

Para estudar o comportamento geom´etrico do algoritmo descrito na sec¸c˜ao an- terior consideramos um sistema de coordenadas cartesianas, onde o eixo horizontal representa os pesos e o eixo vertical os custos. Os pesos e os custos das ´arvores Tc e Tw podem ser representados como pontos com coordenadas A = (W (Tc), C(Tc)) e B = (W (Tw), C(Tw)) (ver Figura 4.2). A equa¸c˜ao da reta AB ´e da forma aW +bC = d, onde a = C(Tw) − C(Tc), b = W (Tc) − W (Tw) e d = W (Tc)C(Tw) − W (Tw)C(Tc).

Figura 4.2: Representa¸c˜ao geom´etrica dos pesos e dos custos das ´arvores Tc e Tw.

Como existe a restri¸c˜ao de peso, temos que introduzir na figura anterior a reta de equa¸c˜ao w = W (apresentada a vermelho nas Figuras 4.3, 4.4 e 4.5). Dessa introdu¸c˜ao

podem ocorrer trˆes situa¸c˜oes:

❼ A primeira situa¸c˜ao ocorre quando a ´arvore Tw n˜ao satisfaz a restri¸c˜ao de peso e ent˜ao n˜ao h´a solu¸c˜ao para o Problema WMST (Figura 4.3).

Figura 4.3: Representa¸c˜ao geom´etrica dos pesos e dos custos das ´arvores Tc e Tw e da reta w = W com W (Tw) > W .

Note-se que no caso de n˜ao existir nenhuma ´arvore com custo inferior a C(Tw) e W (Tw) = W , ent˜ao Tw ´e a ´arvore correspondente `a solu¸c˜ao ´otima.

❼ A segunda situa¸c˜ao ocorre quando a ´arvore Tc satisfaz a restri¸c˜ao de peso e ent˜ao conclu´ımos que Tc ´e a ´arvore correspondente `a solu¸c˜ao ´otima (Figura 4.4).

Figura 4.4: Representa¸c˜ao geom´etrica dos pesos e dos custos das ´arvores Tc e Tw e da reta w = W com W (Tc) ≤ W .

❼ A terceira e ´ultima situa¸c˜ao ocorre quando n˜ao se verificam as condi¸c˜oes anteriores (ver Figura 4.5). Nesta situa¸c˜ao pretendemos obter uma ´arvore de suporte cujo valor de custo se aproxime do valor ´otimo. Para a obter associamos novos valores pij a cada arco (i, j) ∈ A e obtemos uma ´arvore de suporte ponderada m´ınima Tp = (V, ATp), onde W (Tw) < W (Tp) < W (Tc) e C(Tc) < C(Tp) ≤ C(Tw).

Figura 4.5: Representa¸c˜ao geom´etrica dos pesos e dos custos das ´arvores Tc e Twe da reta w = W , onde W (Tw) < W < W (Tc).

Se o ponto (W (Tp), C(Tp)) correspondente `a ´arvore Tp pertence `a reta AB, ent˜ao isso significa que encontr´amos a solu¸c˜ao aproximada, que corresponde `a ´arvore Tp se esta for uma ´arvore admiss´ıvel, isto ´e, W (Tp) ≤ W .

Se o ponto (W (Tp), C(Tp)) correspondente `a ´arvore Tp n˜ao pertence `a reta AB e a ´arvore Tp for admiss´ıvel, ent˜ao substitu´ımos Tw por Tp e obtemos um novo valor para o limite superior, caso contr´ario substitu´ımos Tc por Tp e atualizamos o valor do limite inferior. Ap´os termos atualizado um dos limites, repetimos o Passo 2 do Algoritmo ALagB, ou seja, voltamos a obter uma nova ´arvore de suporte ponderada m´ınima Tp.

Saliente-se que as sucessivas ´arvores Tw que designamos no Algoritmo ALagB por Tα s˜ao sempre ´arvores admiss´ıveis, enquanto que as ´arvores Tc, que designamos no Algoritmo ALagB por Tβ, s˜ao sempre ´arvores n˜ao admiss´ıveis.

Recordamos que o objetivo ´e encontrar solu¸c˜oes admiss´ıveis com custo inferior ao da ´arvore Tw.

Documentos relacionados