agregação de uma abordagem “win-win” à modelagem multi
Transcrição
agregação de uma abordagem “win-win” à modelagem multi
AGREGAÇÃO DE UMA ABORDAGEM “WIN-WIN” À MODELAGEM MULTI-OBJETIVO Hélcio Vieira Junior TESE SUBMETIDA AO CORPO DOCENTE DA COORDENAÇÃO DOS PROGRAMAS DE PÓS-GRADUAÇÃO DE ENGENHARIA DA UNIVERSIDADE FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE MESTRE EM CIÊNCIAS EM ENGENHARIA DE PRODUÇÃO. Aprovada por: ______________________________________ Prof. Marcos Pereira Estellita Lins, D.Sc. ______________________________________ Prof. Virgílio José Martins Ferreira Filho, D.Sc. ______________________________________ Prof. Luiz Flavio Autran Monteiro Gomes, Ph.D. ______________________________________ Prof. Michal Gartenkraut, Ph.D. RIO DE JANEIRO, RJ – BRASIL DEZEMBRO DE 2003 VIEIRA JUNIOR, HÉLCIO Agregação de uma Abordagem “WIN-WIN” à Modelagem Multi-Objetivo [Rio de Janeiro] 2003 VII, 92 p. 29,7 cm (COPPE / UFRJ, M.Sc., Engenharia de Produção, 2003) Tese – Universidade Federal do Rio de Janeiro, COPPE 1. Metodologia para resolução de problemas MOLP 2. Algoritmo Afim Escala Primal 3. Pareto Race I. COPPE / UFRJ II. Título (série) ii À minha amada esposa Nathália, cujo amor, suporte e compreensão permitiram que eu alçasse mais este degrau na vida. iii Resumo da Tese apresentada à COPPE / UFRJ como parte dos requisitos necessários para a obtenção do grau de Mestre em Ciências (M.Sc.) AGREGAÇÃO DE UMA ABORDAGEM “WIN-WIN” À MODELAGEM MULTI-OBJETIVO Hélcio Vieira Junior Dezembro / 2003 Orientador: Marcos Pereira Estellita Lins Programa: Engenharia de Produção Este trabalho tem como objetivo propor uma metodologia que auxilie o Tomador de Decisão (DM) a obter a solução não dominada preferida em problemas de Programação Linear Multi-Objetivo. Para tanto, a metodologia proposta vale-se de duas fases. Na primeira fase, um algoritmo inédito de Pontos Interiores baseado no algoritmo Afim Escala Primal é utilizado. Tal algoritmo possibilita obter a solução não dominada inicial através de um uma seqüência de pontos localizados no interior do politopo das restrições. Ao percorrer este caminho, o DM não necessita realizar a árdua tarefa de estabelecer trade-off’s entre as Funções Objetivo (FO’s). Esta característica da fase um, na qual todas as FO’s têm seus valores sempre crescentes a cada iteração, é denominada WIN-WIN. Após a obtenção da solução não dominada inicial, caso o DM deseje continuar a busca, o método de comprovada eficiência denominado Pareto Race é utilizado na segunda fase. Um exemplo numérico, no qual foi estudada a distribuição orçamentária realizada pela Força Aérea Brasileira por suas Unidades Aéreas, é apresentado com o objetivo de ilustrar a metodologia proposta. iv Abstract of Thesis presented to COPPE / UFRJ as a partial fulfillment of the requirements for the degree of Master of Science (M.Sc.) AGGREGATING A WIN-WIN APPROACH WITH THE MULTIPLE OBJECTIVE MODEL Hélcio Vieira Junior December / 2003 Adviser: Marcos Pereira Estellita Lins Department: Production Engineering The objective of this work is to purpose a methodology that is able to help the Decision Marker (DM) on the nondominated solution obtainment in Multiple Objective Linear Programming (MOLP) problems. The proposed methodology uses two phases. In the first phase, an unpublished Interior Point algorithm that is based in the AffineScaling Primal algorithm is used. Such algorithm obtains the first nondominated solution through a sequence of points located in the interior of the polytope. Going through this path, the DM does not have to establish trade off among the Objectives Functions (OF’s). This characteristic of the phase one, where all the OF’s have their values always increasing, is called WIN-WIN. After obtaining the first nondominated solution, in case the DM wishes to continue the search, the efficient method called Pareto Race is used in the phase two. A numerical example, in which the sharing of the budget made by the Brazilian Air Force among their Air Units was studied, is presented in order to illustrate the proposed methodology. v ÍNDICE Capítulo ........................................................................................................... Página I. Introdução..........................................................................................................1 I.1. Comentários Iniciais ............................................................................1 I.2. Estrutura do Trabalho ..........................................................................3 II. Histórico............................................................................................................4 III. Definições, Notações e Ferramentas ...............................................................7 III.1. Definições e Notações.......................................................................7 III.2. Ferramentas .....................................................................................11 IV. Método Afim Escala Primal.............................................................................14 IV.1. Embasamento de Programação Não Linear.....................................14 IV.2. Algoritmos Afins ...............................................................................24 IV.3. O Algoritmo Afim Escala Primal........................................................25 IV.4. Um Exemplo Numérico.....................................................................29 V. Método Pareto Race........................................................................................32 V.1. Conceito de Não Dominância............................................................32 V.2. Comentários Iniciais Sobre o Método Pareto Race ...........................34 V.3. Função Escalarizante........................................................................35 V.4. O Método Pareto Race......................................................................37 V.5. Um Exemplo Numérico......................................................................39 VI. O Algoritmo Proposto .....................................................................................55 VI.1. Comentários Iniciais .........................................................................55 VI.2. O Algoritmo .....................................................................................57 VI.3. Obtenção do Vetor Viável Inicial.......................................................64 VI.4. Comentários Sobre o Algoritmo........................................................66 VII. Um Exemplo Numérico..................................................................................69 VII.1. Descrição do Problema ...................................................................69 VII.2. Aplicação da Metodologia Proposta ................................................74 VIII. Conclusão ....................................................................................................87 IX. Bibliografia......................................................................................................90 vi “Para ser grande sê inteiro, nada teu exagera ou exclui, ... e sê todo em cada coisa põe quanto és no mínimo que fazes. Assim em cada lago a tua lua brilha porque alta vive!” Fernando Pessoa vii CAPÍTULO I INTRODUÇÃO I.1. Comentários Iniciais “Se existe uma área da ciência de gerenciamento / pesquisa operacional que é excitante e desafiadora, mas assustadora, com decepções e armadilhas, ela é a Otimização Multi-Critério. Este campo é fascinante porque ele é claramente uma arte assim como uma ciência” (Steuer,1989). Arbel (1993a) propôs o uso de um algoritmo de pontos interiores para a solução de problemas de Programação Linear Multi-Objetivo – MOLP (Multiple Objective Linear Programming). Tal algoritmo foi aperfeiçoado diversas vezes pelo autor (Arbel, 1993b, 1994, 1996, 2001), e permite a obtenção de um ponto localizado na fronteira não dominada através de uma seqüência de pontos situados no interior do politopo das restrições. Uma das grandes vantagens, se não a maior, desta metodologia é que as soluções apresentadas ao Tomador de Decisão – DM (Decision Maker), tem seus valores sempre crescentes a cada iteração, não sendo necessária a árdua tarefa de estabelecer trade-offs (vide item V.1) entre as diversas funções objetivo. Apesar das diversas melhorias implementadas no algoritmo, o mesmo ainda encontra um óbice: ao atingir a fronteira não dominada, se o DM ainda não estiver satisfeito com a solução apresentada, o algoritmo não provê meios de continuar a busca, sendo necessário o reinício de todo o procedimento. Korhonen e Laakso (1986a, 1986b) propuseram uma abordagem visual na resolução de problemas MOLP. Esta abordagem foi implementada em um programa denominado Pareto Race (Korhonen e Wallenius, 1988). Tal algoritmo permitiu a busca da solução preferida pelo DM, percorrendo toda a fronteira não dominada. Os autores, porém, não sugeriram nenhum procedimento que auxiliasse a definição de um ponto de início da busca, o que em problemas de grande instância, isto é, problemas MOLP com quantidade muito grande de dados a serem tratados, pode ser muito prejudicial ao DM, visto que a fronteira a ser percorrida é muito extensa. Um dos próprios autores do Pareto Race (Korhonen et al, 1990) discutiu sobre o problema do rápido grau de convergência (parada prematura) em métodos interativos nos quais ao DM são apresentadas apenas soluções não dominadas. Kahneman e Tversky (1979) sugeriram uma teoria com uma explicação plausível para o problema da parada 1 prematura: pessoas sobrevalorizam as perdas e subvalorizam os ganhos. Em problemas MOLP de grande instância, mesmo com a abordagem sugerida por Korhonen e Wallenius (1998), o problema da parada prematura pode vir a ocorrer se o início da busca na fronteira não dominada não se iniciar em um ponto próximo ao ponto final preferido pelo DM. O objetivo deste trabalho é propor um algoritmo para a resolução de problemas de Programação Linear Multi-Objetivo que agregue as duas abordagens acima comentadas (pontos interiores e Pareto Race), adicionando os aspectos positivos de cada uma e eliminando as deficiências inerentes a cada abordagem, quais sejam: Método Aspecto positivo Aspecto negativo Pontos Interiores Pareto Race Obtenção de uma solução na fronteira Possibilidade de vasculhar toda não dominada que, ou seja a preferida fronteira não dominada na busca pelo DM, ou esteja próxima àquela. da solução preferida pelo DM. O algoritmo não provê meios de O algoritmo não provê um ponto continuar a busca após atingir a inicial fronteira não dominada. solução preferida pelo DM. de busca próximo à Resumindo, o algoritmo proposto neste trabalho possibilita obter, via algoritmo de pontos interiores, uma solução localizada na fronteira não dominada que, ou seja a preferida pelo DM, ou esteja próxima àquela, e, caso não seja a preferida pelo DM, que a busca possa ser continuada, vasculhando a fronteira com o método Pareto Race. Na obtenção da solução inicial localizada na fronteira não dominada, o DM não é obrigado a realizar a complexa tarefa de estabelecer trade-off’s entre as funções objetivo, pois os valores das mesmas são sempre crescentes. Após obter a solução inicial, caso ainda não satisfeito, o DM poderá continuar a busca na fronteira não dominada, porém, a partir deste ponto, o mesmo deverá sempre estabelecer um tradeoff entre as FO´s, pois para aumentar o valor de uma, obrigatoriamente outra deverá ter seu valor diminuído. 2 I.2. Estrutura do Trabalho Este trabalho é organizado como se segue: no capítulo dois, é apresentado um histórico da abordagem de pontos interiores e dos problemas MOLP; no capítulo três, são abordadas algumas definições, notações e ferramentas necessárias para o restante do trabalho; o quarto capítulo discute o método Afim Escala Primal de pontos interiores; no capítulo cinco, discute-se o método Pareto Race; o capítulo seis trata do algoritmo proposto por este trabalho; um estudo de caso, no qual o algoritmo proposto é utilizado para a resolução de um problema MOLP, é discutido no capítulo sete; no capítulo oito, apresenta-se uma conclusão juntamente com indicações de trabalhos futuros. 3 CAPÍTULO II HISTÓRICO O problema da Programação Linear (PL) consiste na otimização de uma função matemática conhecida como função objetivo. Esta otimização nada mais é que a obtenção, ou do maior valor possível (maximização), ou do menor valor possível (minimização) para a função objetivo. Os valores que as variáveis assumem, ao otimizarem a função objetivo, devem satisfazer várias outras funções matemáticas conhecidas como restrições. A união destas restrições forma um conjunto convexo. Os primórdios da PL datam de 1928, quando John Von Newman publicou o teorema central da Teoria dos Jogos. Entretanto, foi apenas durante a Segunda Guerra Mundial que a PL se consolidou. Naquela ocasião, um grupo de cientistas foi chamado pela Força Aérea Americana para solucionar problemas orçamentários e de planejamento militar com técnicas matemáticas. Dantzig (1963), um dos cientistas recrutados, veio a formular o método SIMPLEX em 1947. A idéia central do método SIMPLEX é percorrer os vértices do politopo formado pelas restrições até alcançar a solução que otimiza a função objetivo. O método SIMPLEX reinou absoluto até Khachiyan (1979) criar o Algoritmo das Elipsóides. Este algoritmo tem como conceito a obtenção de uma trajetória no interior do politopo das restrições para a busca da solução ótima, diferentemente do método SIMPLEX, que tem a sua trajetória pelo exterior do mesmo politopo. O método das Elipsóides resolveu um importante aspecto teórico da PL: ele demonstrou que o problema da PL pode ser resolvido com um número de operações aritméticas limitado por um polinômio no tamanho do problema, evidenciando com isto que problemas de PL não mais seriam classificados apenas como NP e sim no importante sub-conjunto de NP conhecido como P. Apesar de possuir uma teoria muito importante, o método das Elipsóides provou ser excessivamente lento com problemas da vida real. Nos anos compreendidos entre 1979 e 1984, a ciência conviveu com dois métodos: o método SIMPLEX que possuía complexidade exponencial, mas que para problemas da vida real tinha desempenho excelente, e o método das Elipsóides, que possuía complexidade polinomial, mas que era ineficiente para problemas da vida real. 4 Com a publicação de seu algoritmo, Karmarkar (1984) conseguiu baixar muito a complexidade teórica do método das Elipsóides, ao obter como limite superior para o número de operações aritméticas O(n3.5 L) . Inicialmente com Khachiyan (1979), e posteriormente com Karmarkar (1984), o método de pontos interiores nasceu, vindo trazer nova luz para a área de PL. No ano de 1985, o método Afim Escala Primal foi redescoberto simultaneamente por Barnes (1986), Vanderbei et al (1986) e por Cavalier e Soyster (1985). O método já existia há vinte anos, publicado por Dikin (1967) e era desconhecido. Este método é uma simplificação radical da abordagem de Karmarkar (1984). Como visto acima, nos últimos cinqüenta anos, a PL mono-objetivo foi exaustivamente estudada. No entanto, métodos de auxílio à decisão mono-objetivo refletem uma era anterior e mais simples que a vivida atualmente. O mundo tem-se tornado mais complicado e, com o advento da tecnologia da informação, problemas importantes da vida real raramente demonstram ter apenas um objetivo. Mais do que nunca, os DM’s necessitam de ferramentas que os auxiliem na tomada de decisão ao avaliarem múltiplas alternativas de acordo com múltiplos critérios. A PL mono-objetivo teve de se adaptar a esta nova realidade, migrando, a partir do início dos anos setenta, para o que conhecemos como MOLP. A Tomada de Decisão Multi-Critério - MCDM (Multiple Criteria Decision Making) é formada pela Análise de Decisão Multi-Atributo (Multiattribute Decision Analysis) e pela Otimização Multi-Critério (Multiple Criteria Optimization). Enquanto a Análise de Decisão Multi-Atributo é, freqüentemente, aplicada a problemas com menor número de alternativas em um ambiente de incerteza, a Otimização Multi-Critério é utilizada em problemas determinísticos nos quais o número de alternativas é muito grande. Segundo Steuer (1989), a Análise de Decisão Multi-Atributo tem sido mais aplicada na resolução de problemas de política pública tais como localização de usinas nucleares, aeroportos, tipos de programas de reabilitação de drogados, etc..., enquanto a Otimização Multi-Critério tem sido utilizada em problemas com menos controvérsias nos negócios e / ou no governo, tais como planejamento de refinarias de óleo, planejamento da produção de fábricas, seleção de portfólio (carteira de títulos), gerenciamento ambiental, transportes, etc... A principal ferramenta da Otimização Multi-Critério é a MOLP. Em problemas MOLP, a interação com o DM é fundamental, visto a não existência de uma solução ótima, e sim uma solução preferida pelo DM. O momento 5 em que ocorre a interação com o DM versus a otimização em si, nos permite classificar os métodos MOLP em três classes: Articulação a priori das preferências (a priori à otimização); Articulação progressiva das preferências (durante ou em seqüência com a otimização); Articulação a posteriori das preferências. Na articulação a priori das preferências, o DM é questionado sobre qual valor o mesmo atribui a cada função objetivo a ser otimizada. Esta valoração das funções objetivo é conhecida como função utilidade. Após a obtenção da função utilidade, a otimização é realizada. O grande óbice desta classe de algoritmos é que, na maioria absoluta dos casos, o DM não tem conhecimento de tal função utilidade, ou seja, o DM não sabe qual valor atribuir a cada função objetivo. Na articulação a posteriori das preferências, a otimização é realizada, e ao DM são apresentadas todas as soluções não dominadas. O representante mais famoso desta classe de algoritmos é o SIMPLEX Multi-Objetivo. O maior problema desta classe de algoritmos é que, em problemas de grande instância, o DM fica perdido em meio a tantas soluções não dominadas, vindo a ocorrer o problema da parada prematura comentado anteriormente. Na articulação progressiva das preferências, o DM interage com o algoritmo à medida que fornece suas preferências a cada iteração, o que possibilita ao mesmo (DM) a chegada a uma solução preferida mesmo sem o conhecimento explícito da função utilidade. Os algoritmos da classe articulação progressiva das preferências são conhecidos como algoritmos interativos e são considerados como os melhores e de interface mais amigável com o DM. Os métodos de pontos interiores e Pareto Race, assim como a metodologia proposta por este trabalho, pertencem a esta classe. Os algoritmos interativos se iniciaram com o método STEM proposto por Benayoun et al (1971). Os métodos que se seguiram ao STEM, e que foram anteriores aos dos pontos interiores e Pareto Race abordados neste trabalho, foram os propostos por Geoffrion et al (1972): GDF procedure; Zionts e Wallenius (1976); Steuer (1977): Interval Criterion Weights; e Steuer (1983): Interactive Weighted Sums. Para uma excelente abordagem sobre tais métodos, consultar Steuer (1989). 6 CAPÍTULO III DEFINIÇÕES, NOTAÇÕES E FERRAMENTAS III.1. Definições e Notações Veremos a seguir algumas definições e notações utilizadas neste trabalho: III.1.1. A expressão se e somente se é denotada por sss. III.1.2. Uma matriz quadrada B é dita singular sss det( B ) = 0 . Se det( B ) ≠ 0 a matriz B é dita não singular. III.1.3. A transposta de uma matriz B ∈ R i x j é denotada por B T . A matriz B T é obtida pela troca das linhas pelas respectivas colunas da matriz B , ou seja: bi j = bTj i , ∀ i ∈ I e ∀ j ∈ J . III.1.4. A inversa de uma matriz B ∈ R i x j é denotada por B −1 . A matriz B −1 pré ou pós multiplicada pela matriz B resulta na matriz identidade: B −1 B = BB −1 = I Uma matriz B ∈ R i x j só possuirá inversa se for não singular. III.1.5. A norma euclidiana de um vetor x ∈ R n é denotada por || x || , e equivale a: n || x || = xT x = (∑ xi2 ) i =1 III.1.6. Uma transformação linear A : R n → R m definida em R n com valores em R m , é representada por uma matriz A ∈ R m x n . III.1.7. O espaço imagem de A é definido como: I ( A) = { y ∈ R m | y = Ax, x ∈ R n } I ( A) corresponde ao conjunto de todas as combinações lineares das colunas da matriz A . 7 III.1.8. O espaço nulo de A é definido como: N ( A) = { x ∈ R n | Ax = 0} N ( A) corresponde ao conjunto de pontos de R n que são mapeados na origem. III.1.9. O rank de uma transformação linear A é representado por r ( A) e corresponde à dimensão de seu espaço imagem, que é igual ao número de colunas (ou linhas) linearmente independentes. A matriz é de rank máximo se r ( A) = min{m, n} . A menos que o contrário seja dito, trabalharemos sempre em R , com n matrizes em R m x n de rank máximo, ou seja, a matriz A possui linhas linearmente independentes. Caso a matriz A tenha linhas dependentes, supomos que as redundâncias serão eliminadas de modo a reduzir o número de linhas a r ( A) . III.1.10. A matriz p x n , na qual as linhas são os gradientes das p funções objetivo, é chamada matriz objetivo e é denotada por C . III.1.11 O conjunto viável de um problema de PL é chamado de espaço de decisão, e é definido por: S = {x ∈ R n | Ax = b, x ≥ 0} . III.1.12 A imagem do espaço de decisão S pela(s) função(ões) objetivo(s) é chamado de espaço objetivo, e é definido por: Z = {z ∈ R k | z = Cx, x ∈ S} . III.1.13. Um ponto x ∈ R n é um ponto interior de um problema de PL sss x ∈ S e x >0. III.1.14. Um vetor h ∈ R n é uma direção viável a partir de x ∈ S sss existir λ > 0 tal que para qualquer λ ∈ [0, λ ], x + λ h ∈ S . III.1.15. Se uma função tem derivada parcial contínua de primeira ordem em um conjunto, nós denotamos isto como: f ∈ C 1 . Em geral, se uma função tem derivada parcial contínua de ordem p , isto é denotado por: f ∈ C p . 8 III.1.16 Se f ∈ C 1 é uma função real em R n , o gradiente de f é definido por: ∂f ( x ) ∂f ( x) ∂f ( x) , ,..., ∇f ( x ) = ∂x2 ∂xn ∂x1 III.1.17 Se f ∈ C 2 é uma função real em R n , a Hessiana de f em x é definida pela matriz simétrica n x n: ∂ 2 f ( x) ∇ 2 f ( x) = ∂xi ∂x j III.1.18 Fórmula de Taylor: para uma função definida em um intervalo aberto T ⊂ R diferenciável até a ordem conveniente, pode-se escrever a fórmula de Taylor, para x + h ∈ T : f ( x + h) = f ( x ) + ∇f ( x )T h + ... + 1 p ∇ f ( x)T h p + Op ( x, h) p! onde: h p +1 ∇ ( p +1) f ( x + θ h) , para algum θ ∈ [0,1] . O p ( x, h) = ( p + 1)! A expressão acima ( O p ( x, h) ) serve para limitar o erro da aproximação desejada. Por exemplo: se desejamos a aproximação linear de uma função, basta pegarmos os dois primeiros termos da fórmula de Taylor e teremos como erro desta aproximação linear o resultado da expressão O p ( x, h) , com o valor de p = 1 ; da mesma forma, para a aproximação quadrática, basta pegarmos os três primeiros termos da fórmula de Taylor e utilizarmos um p = 2 na expressão do erro da aproximação. III.1.19 O complemento ortogonal de um subespaço U = {x | x = Av, v ∈ R n } é { y | yA = 0} . A notação disto é y ⊥ U . 9 III.1.20 MOLP – Multiple Objective Linear Program – Programação Linear MultiObjetivo: é definida como: max {C1 x = z1} max {C2 x = z2 } ... max {C p x = z p } SA.: Ax ≤ b x≥0 ou, simplificadamente: max z = Cx SA.: x ∈ S III.1.21 Métrica L p : Uma métrica em R n é a função distância que associa a cada par de vetores x, y ∈ R n um escalar || x − y || ∈ R e é definida por: 1 n p || x − y || p = ∑ | xi − yi | p p ∈ {1, 2,3,...} i =1 || x − y ||∞ = Max {| xi − yi |} i =1,2, ... , n A métrica L∞ é chamada de métrica de Tchebycheff ou distância de Tchebycheff. III.1.22 A notação que será utilizada para o tableau do SIMPLEX será a seguinte: Variaveis Variaveis básicas cj ( AB )−1 A b ( AB ) −1 b c − ( cB )T ( AB ) −1 A −(cB )T ( AB ) −1 b 10 III.2. Ferramentas A seguir algumas ferramentas que terão utilidade no decorrer do trabalho são esplandas: III.2.1. Um vetor v ∈ R n é ortogonal a I ( AT ) sss v ∈ N ( A) . o Prova: v ⊥ I ( AT ) sss v ⊥ AiT , i = 1, ... , m , onde Ai representa as linhas de A . Esta última relação é equivalente a Ai v = 0, i = 1, ... , m , ou Av = 0 , o que completa a prova. Deste fato conclui-se que R n é a soma direta dos subespaços N ( A) e I ( AT ) , isto é, dado qualquer vetor w ∈ R n , ele pode ser escrito como: w = wN + wI , onde wN ∈ N ( A) e wI ∈ I ( AT ) . III.2.2. A matriz AAT é não singular. o Prova: Por absurdo suponha que para algum y ≠ 0, AAT y = 0 . Multiplicando esta expressão à esquerda por y T : y T AAT y = 0, ou ( AT y )T ( AT y ) = 0 . Esta última expressão é equivalente a || AT y || = 0 , ou ainda a AT y = 0 . Isto é impossível uma vez que as colunas de AT são linearmente independentes (veja III.1.9), completando, assim, a prova. III.2.3. wI = AT ( AAT ) −1 Aw . o Prova: Sabemos que o vetor w pode ser decomposto em: w = wN + wI Como wI ∈ I ( AT ) , existe y ∈ R m tal que wI = AT y , e então: w = wN + AT y . Multiplicando à esquerda pela matriz A : Aw = AwN + AAT y 11 Como, por definição, AwN = 0 (vide III.1.8): Aw = AAT y E, como a matriz AAT é não singular (vide III.2.2), a mesma possui uma inversa, que pré- multiplicará a expressão anterior: ( AAT ) −1 Aw = ( AAT )−1 AAT y ( AAT ) −1 Aw = I y . ( AAT ) −1 Aw = y ou y = ( AAT ) −1 Aw Substituindo a expressão acima em wI = AT y completamos a prova. III.2.4. wN = Pw , onde P = I − AT ( AAT )−1 A . o Prova: w = wN + wI pode ser escrito como wN = w − wI . Substituindo wI = AT ( AAT ) −1 Aw na expressão acima temos: wN = w − AT ( AAT )−1 Aw Colocando w em evidência, completamos a prova: wN = [ I − AT ( AAT )−1 A]w . A matriz P é a matriz de projeção sobre o espaço nulo de A . III.2.5. Se x é um ponto interior, a direção h ∈ R n é viável a partir de x sss h ∈ N ( A) . o Prova: Se h ∈ R n é viável a partir de x , então x + h ∈ S . A expressão acima é idêntica a: A( x + h) = b . Aplicando a propriedade distributiva: Ax + Ah = b . Como x é um ponto interior, Ax = b , logo Ah = 0 , o que é equivalente a h ∈ N ( A) . 12 III.2.6. Considere um ponto x ∈ S e uma direção h ∈ R n viável a partir de x , então: Se h ≥ 0 então x + λ h é viável para qualquer λ ≥ 0 ; Senão, o maior valor de λ tal que x + λ h ∈ S é dado por: λ = min{− o xi | hi < 0, i = 1, ..., n} hi Prova: Como h ∈ N ( A) (vide item III.2.5), então para qualquer λ ∈ R tem-se que A( x + λ h) = b . Se h ≥ 0 , então para qualquer λ ≥ 0, x + λ h ≥ 0 , demonstrando a primeira parte. Se alguma componente de h é negativa, então o maior λ vai ser determinado pela primeira entre essas componentes a anular-se. A cada componente i = 1, ..., n associa-se um valor: λ i = sup{λ | xi + λ hi ≥ 0} Se hi < 0 então xi + λ i hi = 0 e conseqüentemente λ i = − xi . O maior hi passo agora que garante a viabilidade é min i =1, ... ,n λ i , o que é equivalente à expressão: λ = min{− xi | hi < 0, i = 1, ..., n} . hi 13 CAPÍTULO IV MÉTODO AFIM ESCALA PRIMAL IV.1. Embasamento de Programação Não Linear Algoritmos para a resolução de problemas de PNL (Programação Não Linear) definem, a cada iteração, um problema fácil de ser resolvido. Problemas fáceis são aqueles que possuem tanto a região viável como a função objetivo simples. Este problema fácil é obtido tomando uma aproximação linear da função objetivo do problema original de PNL em torno do último ponto viável disponível, e escolhendo uma região fácil sobre a qual essa aproximação é minimizada. Esta região fácil recebe o nome de região de confiança. Um dos problemas considerados fáceis é a minimização de uma função linear em uma bola: Minimizar {g T h | || h || ≤ 1} Cauchy (1821) provou em seu trabalho, que: | xy | ≤ || x ||.|| y || (desigualdade de Cauchy-Schwarz); e | xy | = || x ||.|| y || sss x = α y para algum escalar α . Obteremos, caso os vetores x e y sejam não nulos, que: xy | xy | ≤ 1 ou −1 ≤ ≤1 || x || . || y || || x || . || y || Logo, a solução para o problema de minimização em uma bola é obtida imediatamente: g T h ≥ − || g ||.|| h || Como a igualdade só é valida se h = α g , o mínimo da função acima ocorrerá para α = −1 , ou seja, se g e h forem colineares em sentidos opostos. A fim de preservar a restrição || h || ≤ 1 , deveremos normalizar o vetor resultante h : h=− g || g || Isto é chamado de direção de máximo declive. 14 Algoritmos para o problema: Min f ( x) SA.: x ∈ R n geram, a partir de um ponto inicial x0 , sucessivamente, os pontos: xk +1 = xk + λ h, k ≥ 0 nos quais o ponto xk +1 é obtido através de um deslocamento (passo) de tamanho λ na direção h . Como nos interessam direções descendentes, i.e., direções h de tal modo que: f ( xk + h) < f ( xk ) e, como os seguintes problemas são equivalentes: Min f ( x) SA.: x ∈ R n ≡ Min f ( x + h) SA.: h ∈ R n a solução ideal pode ser obtida calculando-se a direção h através de: Min f ( x + h) SA.: h ∈ R n Dado um ponto x ∈ R n , no qual a função f ( x + h) é diferenciável, a sua aproximação linear pela Fórmula de Taylor (vide III.1.18) é: f ( x + h ) ≅ f ( x ) + ∇ f ( x )T h Como o termo f ( x ) é constante (em relação a h ), podemos eliminá-lo, obtendo o seguinte sub-problema: Min ∇f ( x)T h SA.: h ∈ R n “Observe que, devido à linearidade da função objetivo relativamente a h , a não ser que x seja um ponto estacionário ( ∇f ( x ) = 0 ), este problema não possui solução finita. Ora, queremos apenas uma direção, seu comprimento não importando, visto que se determinará ulteriormente um deslocamento sobre ele a partir de x (o passo λ ). Pode-se assim definir o sub-problema de obtenção de uma direção:” (Oliveira, 1989) 15 Min ∇f ( x)T h SA.: || h ||≤ 1 h ∈ Rn Vemos que este problema nada mais é do que a minimização de uma função linear sobre uma bola, com solução conhecida: a direção de máximo declive: h=− ∇f ( x ) || ∇f ( x) || Gonzaga (1989) menciona que “este resultado é bem conhecido, e é fundamental em otimização: a direção de máximo declive de uma função é a direção oposta ao gradiente. Isto foi descoberto por Cauchy na primeira metade do século passado, e foi na realidade a motivação para a formalização do conceito de gradiente. A construção é ilustrada na figura 4.1: uma função não linear é representada por suas curvas de nível. A aproximação linear tem curvas de nível retas, e x + h é o minimizador da aproximação linear na bola. A direção de máximo declive é h ”. x x+h Figura 4.1 A minimização na bola gera uma direção normalizada. Não é mandatória e, muitas vezes, não é apropriada a utilização de direções normalizadas em algoritmos de busca. Utiliza-se, em vez disto, como direção de máximo declive: h = − g = −∇f ( x) A utilização da direção de máximo declive pode ser observada através do seguinte exemplo: Max Z = 2 x1 + x2 S . A.: x ≥ 0 16 (4.1) Na figura 4.2 abaixo, temos o ponto inicial arbitrário aT = ( 5, 000 3, 000 ) e o vetor gradiente cT = ( 2,000 1, 000 ) plotados, assim como a região de confiança (a maior circunferência centrada no ponto inicial restrita ao primeiro quadrante) e as curvas de níveis correspondentes aos valores que a FO assume: x2 Z = 13, 000 Z = 6, 292 c a b x1 Figura 4.2 O ponto resultante da minimização da FO através da direção de máximo declive é bT = ( 2,317 1, 658 ) . Observemos que a utilização da direção de máximo declive proporcionou um considerável progresso na minimização da FO, porém, tal progresso foi muito mais acentuado no eixo horizontal do que no eixo vertical. Um progresso maior poderia ser alcançado se o ponto inicial estivesse na mesma distância de todos os eixos. Isto poderá ser facilmente conseguido através de uma operação de mudança de variáveis (mudança de escala): h = D −1h , onde D = diag ( d1 , ... , d n ) e di > 0, i = 1, ..., n . Realizando a mudança de escala no problema (4.1) temos: o ponto a é obtido −1 5,000 0, 000 5, 000 1, 000 através de a = D a = , e o vetor gradiente c = 0, 000 3, 000 3, 000 1, 000 −1 5, 000 0, 000 2, 000 10, 000 . Observemos na figura 4.3 o = 0, 000 3, 000 1, 000 3, 000 através de c = Dc = problema anterior no espaço escalado: 17 x2 c a b x1 Figura 4.3 O ponto obtido minimizando o novo gradiente c através da direção de máximo declive foi: b = ( 0, 042 T 0, 713) . Re-escalando o ponto b novamente para o espaço T T original, temos: b = ( Db) = ( 0, 211 2,138 ) . Podemos observar a mecânica deste procedimento no espaço original através da figura 4.4 abaixo: x2 Z = 13, 000 Z = 6, 292 Z = 2, 560 c a b b x1 Figura 4.4 18 Notemos que, através da mudança de escala, conseguimos uma redução maior no valor da FO. O que a mudança de escala realmente fez foi realizar a minimização utilizando como região de confiança, no lugar de uma bola, um elipsóide com eixos coincidentes com os eixos coordenados. Chamaremos esta figura de elipsóide simples. Neste caso, o elipsóide é determinado por uma forma quadrática com hessiana diagonal: hT DDh ≤ 1, onde D = diag (d1 , ... , d n ) e di > 0, i = 1, ..., n . Os eixos coincidem com os eixos coordenados e seus comprimentos valem 1 di . Olhando o problema no sentido oposto, i.e., em vez de transformar a região viável original (bola) em um elipsóide, iremos transformar o elipsóide em uma bola. O problema de minimização de uma função linear nesta região: min g T h SA.: hT DDh ≤ 1 é facilmente resolvido por uma mudança de variáveis (mudança de escala) h = Dh , o que resulta em: min g T D −1 h T SA.: h h ≤ 1 A mudança de escala transformou a elipsóide em uma bola, cuja solução é conhecida: a direção de máximo declive. Logo, a solução para o problema modificado é: h=− g , onde g = D −1 g || g || No espaço original, a direção resultante é: h = D −1 h h = − D −1 D −1 g || D −1 g || Que, sem a normalização, fica: h = − D −2 g 19 Esta estratégia, segundo Arbel (1993c), pode ser definida como: “o politopo original é transformado a cada iteração em outro politopo, no qual o passo corrente é dado, e então re-transformado novamente em seu formato original no fim daquele passo”. Os problemas fáceis vistos acima (minimização de uma função linear em uma bola mxn e em um elipsóide) quando restritos a um hiperplano, isto é, Ax = b , onde A ∈ R , correspondem às soluções anteriores projetadas no nulo de A : Minimização em uma bola: Min g T h SA.: Ah = 0 || h ||≤ 1 o problema acima tem como solução: h=− o gN , onde g N = Pg || g N || Prova: Como g = g N + g I , onde g N ∈ N ( A) e g I ⊥ N ( A) , podemos escrever g T h como: g T h = g TN h + g TI h Para qualquer direção viável h ∈ N ( A) , temos que g TI h = 0 e, dessa forma: g T h = g TN h O problema original é equivalente a minimizar g TN h em uma bola de raio unitário, com solução conhecida: gN . || g N || Sem a normalização, teremos como solução: h = − g N = − Pg Dado um ponto x ∈ R n , no qual a função f ( x + h) é diferenciável, a minimização de sua aproximação linear f ( x) + ∇f ( x)T h na bola de raio unitário restrita a um hiperplano é (sem normalização): h = − P∇f ( x) 20 Minimização em uma elipsóide: min g T h SA.: Ah = 0 hT DDh ≤ 1 que com a mudança de escala h = Dh fica: T min g h SA.: Ah = 0 || h ||≤ 1 onde g = D −1 g e A = AD −1 A solução não normalizada é dada pela projeção no nulo de A ( PA ) : h = − PA g que, no espaço original, equivale a: h = − D −2 PA g Dado um ponto x ∈ R n , no qual a função f ( x + h) é diferenciável, a minimização de sua aproximação linear f ( x) + ∇f ( x)T h no elipsóide restrito a um hiperplano é (sem normalização): h = − D −2 PA∇f ( x ) A idéia exposta acima pode ser mais facilmente observada através da figura 4.5 abaixo, onde o vetor gradiente cT = (1 1 2 ) e a projeção do mesmo (linha pontilhada) no hiperplano x1 + x2 + x3 = 1 estão plotados: x2 1 c x3 1 1 Figura 4.5 21 x1 Veremos, a seguir, o mais antigo e um dos mais importantes algoritmos para PNL: o método de Cauchy. Este método também é conhecido por método de máximo declive e utiliza a cada iteração a direção de máximo declive: Dado um ponto inicial x 0 : • k := 0 • Repetir: o h := −∇f ( x k ) ⇒ Achar uma direção de busca através da direção de máximo declive. o Fazer uma busca unidirecional a partir de x k na direção h , obtendo solução λ ⇒ Tal busca unidirecional objetiva encontrar o tamanho do passo a ser dado na direção h , de modo a preservar que: f ( xk + λh) < f ( xk ) o x k +1 := x k + λ h o k := k + 1 o Se || h ||< ε , para uma precisão ε dada: parar o algoritmo. O método de Cauchy em um problema restrito a um hiperplano Ax = b é idêntico ao algoritmo acima, sendo a direção de busca h := − P∇f ( x k ) . O método de Cauchy restrito a um hiperplano com mudanças de escala (regiões de confiança elipsoidais) utiliza como direção de busca h := − D −2 PA∇f ( x k ) e é o algoritmo no qual o método Afim Escala Primal se baseia. Um ponto que merece esclarecimentos é a busca unidirecional: devido ao fato de que iremos trabalhar com funções objetivo lineares e de que as curvas de níveis de funções lineares são retas, podemos concluir que uma direção h que seja inicialmente descendente, será sempre descendente, diferentemente do que ocorre com funções não lineares. Tal fato pode ser observado na figura 4.6 abaixo: 22 h1 Z1 = 20 Z 2 = 20 C D h2 B E Z1 = 10 Z 2 = 10 A Figura 4.6 onde temos plotadas as curvas de níveis de duas FO’s: a da esquerda ( Z1 ) uma FO não linear e a da direita ( Z 2 ) uma FO linear. Observemos que na FO não linear, partindo do ponto A na direção h1 , os valores que a FO assume são decrescentes até o ponto C , quando então passam a ser crescentes. No ponto B , temos o mínimo valor que a FO atinge a partir de A na direção h1 . Na FO linear, temos que, partindo do ponto D na direção h2 , o valor da função objetivo sempre decresce. O ponto E é o ultimo ponto que, partindo de D na direção h2 , ainda permanece dentro da região viável. Como em FO’s lineares devemos apenas nos preocupar em não sairmos da região viável, uma boa busca unidirecional para problemas lineares pode ser o teste da razão visto no item III.2.6. 23 IV.2. Algoritmos Afins Algoritmos Afins são os algoritmos que geram pontos no conjunto viável S , em contraste com o algoritmo de Karmarkar (1984), que gera pontos em uma região maior (o cone gerado por S ). Estes algoritmos realizam buscas em direções de máximo declive sobre o conjunto viável S e utilizam mudanças de escala, o que é o mesmo que utilizar regiões de confiança elipsoidais. A escolha da direção da busca e a determinação de um novo ponto por um processo de busca unidirecional é que determinarão em qual sub-classe dos Algoritmos Afins o algoritmo em questão se enquadrará. Os Algoritmos Afins são divididos em: • Algoritmo Afim Escala Primal; • Algoritmo Afim Escala Dual; • Método de Barreiras; e • Algoritmo Afim Polinomial. Para este trabalho foi escolhido o Algoritmo Afim Escala Primal. O motivo da escolha não foi por este ser o melhor em sua classe, e, sim, pela simplicidade de compreensão e de implementação. Para uma abordagem mais profunda sobre os demais algoritmos da classe Algoritmos Afins, consultar Gonzaga (1989). 24 IV.3. O Algoritmo Afim Escala Primal Este algoritmo é o mais simples de sua classe. “Foi publicado em russo por Dikin (1967) e permaneceu desapercebido até recentemente, quando foi redescoberto por várias pessoas independentemente. Um fato interessante é que a demonstração de convergência assintótica publicada por Dikin (1974) é melhor que as posteriores, pois tem menos hipóteses. O Algoritmo Afim Escala Primal usa como critério a própria função custo, e necessita de um procedimento heurístico na determinação do passo” (Gonzaga, 1989). Vale mencionar também que, segundo Gonzaga (1989), o algoritmo de Dikin (1967) era conhecido e utilizado por Karmarkar (1984) anteriormente à publicação de seu método de pontos interiores. Assumiremos que um ponto inicial interior x0 é disponível e que o conjunto viável é limitado. Consideraremos o problema de programação linear na sua forma padrão descrita abaixo: min cT x SA.: Ax = b x≥0 onde x ∈ R n , b ∈ R m e a matriz A tem dimensão m x n. O algoritmo inicia seu processo interativo de uma solução x0 que é tanto interior quanto viável; isto é: Ax0 = b, x0 > 0 Os passos do algoritmo procuram achar um vetor h , que mova da solução corrente em uma direção decrescente para uma nova solução xnew , enquanto mantém a viabilidade; isto é: Axnew = b cT xnew ≤ cT x0 25 Sendo a relação entre as soluções corrente e nova: xnew = x0 + h concluímos que: Ah = 0 (4.2) cT h ≤ 0 (4.3) A condição (4.2) requer que o vetor h esteja no nulo de A . Para que isto ocorra, utilizaremos o operador de projeção visto no item III.2.4. : P = I n − AT ( AAT )−1 A Para a condição (4.3), utilizando como direção de busca h = − Pc , observamos que: cT h = −cT Pc = −cT P 2 c = − || Pc ||2 ≤ 0 Isto só é válido devido ao fato do operador de projeção P ser simétrico e 2 idempotente ( P = P ). Como visto anteriormente, a região de confiança mais apropriada é a elipsóide, e a matriz escalarizante D é definida através da seguinte matriz n x n: D = diag ( xi1 , xj2 ,..., xjn ) onde xii é o i ésimo componente da solução corrente x0 . Utilizando a transformação: x1 = D −1 x0 nós transformamos a região de confiança elipsoidal em uma bola. Esta operação (mudança de escala) converte o problema original para o seguinte problema escalado: min c1T x1 SA.: A1 x1 = b x1 ≥ 0 onde A1 = AD e c1 = Dc 26 Como a região de confiança do problema acima foi transformada de um elipsóide restrito a um hiperplano em uma bola restrita a um hiperplano, a direção de busca, como visto anteriormente, é dada por: h := − P∇f ( x k ) Projetando o gradiente da função objetivo (o vetor de custo escalado c1 ) no espaço nulo de A1 obtemos o vetor h1 : T T −1 h1 = − Pc 1 1 = −[ I n − A1 ( A1 A1 ) A1 ] c1 = −[ I n − AT DT ( ADAT DT )−1 AD]Dc = − D[ I n − AT ( AD 2 AT )−1 AD2 ]c = − D[c − AT ( AD 2 AT )−1 AD2 c ] e utilizando a relação entre o espaço escalado e o espaço original dada por: h = Dh1 temos que o vetor h no espaço original é dado por: h = − D 2 [c − AT ω ] onde ω = [( AD 2 AT ) −1 AD 2 c ] (4.4) sendo ω a estimativa do vetor dual. A nova solução será dada por: xnew = x + ρ λ h sendo : 0 < ρ < 1 x(ik −1) λ = min − i , ∀ hki < 0, 1 ≤ i ≤ n hk k = nº da iteração (4.5) Conforme abordado no item III.2.6, o teste da razão mede o maior comprimento do passo até alguma variável anular-se. O tamanho do passo que previne a violação das restrições é a variável λ . A variável ρ é usada para especificar a proporção do tamanho do passo em relação com o tamanho máximo possível do passo. Para podermos continuar o processo nas demais iterações, é necessário que o ponto resultante da iteração corrente esteja no interior do ortante, isto é, seja interior (veja III.1.13). Para tanto, este algoritmo toma um passo um pouco menor que λ (que zeraria alguma componente do vetor, fazendo com que o ponto xnew 27 ficasse localizado na fronteira do politopo, não sendo então um ponto interior), reduzido por um fator heurístico ρ , da ordem de 80%. Se o ponto resultante não for interior, i.e., alguma das suas componentes for nula, a matriz D não será inversível, o que impede a continuidade do processo iterativo. O mecanismo de parada do algoritmo será quando a norma do vetor h ficar menor que uma precisão dada: gap = || h || ≤ precisão Este algoritmo, segundo Gonzaga (1989), tem sido utilizado para a resolução, com uma precisão de dez casas decimais, de problemas com milhares de restrições e variáveis em cerca de trinta iterações. 28 IV.4. Um Exemplo Numérico Consideremos o seguinte problema: Max 2 x1 + x2 SA.: − 4 x1 + 5 x2 ≤ 20 2 x1 + 7 x2 ≤ 49 8 x1 + 15 x2 ≤ 120 13x1 + 9 x2 ≤ 117 x1 , x2 ≥ 0 cuja solução ótima é o vértice (0,000; 9,000). A região viável do problema está diagramada na figura 4.7: x2 x1 Figura 4.7 Reproduziremos, a seguir, a primeira iteração do problema pelo método de pontos interiores Afim Escala Primal: Utilizando como ponto inicial o vetor: x 0 = (1, 000 1, 000 19, 000 40, 000 97, 000 95, 000 ) T −4, 000 5, 000 2, 000 7, 000 Faremos A = 8, 000 15, 000 13, 000 9, 000 1, 000 0, 000 0, 000 0, 000 29 0, 000 1, 000 0, 000 0, 000 0, 000 0, 000 1, 000 0, 000 0, 000 0, 000 ; 0, 000 1, 000 Faremos cT = ( −2, 000 1, 000 0, 000 0, 000 Faremos D = 0, 000 0, 000 0, 000 Como: −1, 000 0, 000 0, 000 0, 000 0, 000 ) ; 0, 000 0, 000 0, 000 0, 000 0, 000 1,000 0, 000 0,000 0, 000 0, 000 0, 000 19, 000 0,000 0, 000 0, 000 ; 0, 000 0, 000 40, 000 0, 000 0, 000 0, 000 0, 000 0,000 97, 000 0, 000 0, 000 0, 000 0,000 0, 000 95, 000 h = − D 2 [c − AT ω ] onde ω = [( AD 2 AT ) −1 AD 2 c ] 0,008 -0,006 Temos: ω = ; -0,003 -0,004 1,883 0,918 2,944 Temos: h = ; -10,189 -28,828 -32,737 Como: xnew = x + ρ λ h sendo : 0 < ρ < 1 x(ik −1) , ∀ hki < 0, 1 ≤ i ≤ n i hk λ = min − k = nº da iteração Temos: λ = min {h 1 1 > 0; h12 > 0; h13 > 0; 3,926; 3,365; 2,902} = 2,902 ; 30 E, utilizando um ρ = 0,800 , temos: xnew 5,371 3,130 25,834 . = 16,346 30,076 19,000 Os valores da variável xnew nas demais iterações está explicitado na tabela abaixo: 0 1 2 3 4 5 6 x1 1,000 5,371 6,861 7,901 8,747 8,942 8,978 8,995 8,998 9,000 x2 1,000 3,130 2,667 1,503 0,301 0,060 0,027 0,005 0,003 0,000 x3 19,000 25,834 34,109 44,088 53,484 55,466 55,778 55,952 55,978 56,000 x4 40,000 16,346 16,607 22,676 29,402 30,696 30,856 30,973 30,986 31,000 x5 97,000 30,076 25,103 34,245 45,516 47,565 47,773 47,962 47,978 48,000 x6 95,000 19,000 3,800 0,760 0,585 0,217 0,043 7 8 Iteração 9 0,021 0,004 0,000 Tabela 4.1 O valor de ρ foi mantido em ρ = 0,800 até um gap menor que 1, 000e −4 , quando foi mudado para ρ = 1, 000 (no nosso exemplo na 8ª iteração). Na figura 4.8, temos a região viável e os valores de xnew nas diversas iterações plotados: x2 x1 Figura 4.8 31 CAPÍTULO V MÉTODO PARETO RACE V.1. Conceito de Não Dominância Como visto em III.1.20, problemas MOLP têm a seguinte forma: max z = Cx SA.: x ∈ S À exceção do caso em que exista um ponto na região viável S que maximize simultaneamente todas as funções objetivo, sempre teremos que vasculhar o espaço de tradeoffs ou espaço de trocas existente entre as diversas funções objetivo. Ilustraremos isto com o seguinte exemplo: Max x1 Max x2 (5.1) SA.: 2 x1 + x2 ≤ 10 x1 , x2 ≥ 0 x2 figura 5.1 x1 Este problema, diagramado na figura 5.1, não possui um ponto que maximize as duas funções objetivo simultaneamente, pois o ponto ( 5, 000 32 0, 000 ) maximiza a FO1 com o valor 5,000, e o ponto ( 0, 000 10, 000 ) maximiza a FO2 com o valor 10,000. Logo, o DM possui um espaço de trocas entre as duas funções objetivo, que, no nosso exemplo, está situado na linha que une os dois pontos de máximo individuais. No nosso exemplo, é fácil verificar que o ponto (1, 000 7, 000 ) , que possui como valores das FO1 e FO2, respectivamente, 1,000 e 7,000, tem valores das FO1 e FO2 menores que de algum outro ponto [por exemplo: o ponto (1, 250 7, 500 ) , com valores de 1,250 e 7,500 para as FO1 e FO2]. O ponto (1, 000 7, 000 ) é chamado de dominado, pois possui valores das funções objetivo menores que outro ponto viável; o ponto (1, 250 7, 500 ) é chamado de não dominado, pois não existe outro ponto viável que possua valores de todas as funções objetivo maiores ou iguais e pelo menos um maior que os seus. Podemos formalizar este conceito como: o O ponto x1 domina x 2 sss: z [x11 ,x12 ,...,x1n ] ≥ z [x12 ,x22 ,...,x 2n ] para todo z|z ∈ C , e z [x11 ,x12 ,...,x1n ] > z [x12 ,x22 ,...,x2n ] para algum z|z ∈ C . o Um ponto x 3 é chamado de não dominado se não existir outro ponto x 4 que domine x 3 . O conjunto formado por todos os pontos não dominados é chamado de Fronteira Não Dominada. Partindo do ótimo individual da FO1 ( 5, 000 0, 000 ) , para aumentar o valor da FO2 de zero para 7,500, tivemos que diminuir o valor da FO1 de 5,000 para 1,250; continuando do ponto (1, 250 ( 0, 000 7, 500 ) para o ponto do ótimo individual da FO2 10, 000 ) , para aumentar o valor da FO2 de 7,500 para 10,000, tivemos que diminuir o valor da FO1 de 1,250 para zero: isto é o chamado tradeoff (ou troca), pois para aumentar uma FO, obrigatoriamente deveremos diminuir outra. Observemos que os pontos ( 5, 000 0, 000 ) , (1, 250 7, 500 ) e ( 0, 000 10, 000 ) são todos não dominados. É de imediata conclusão o fato de que os únicos pontos que interessam ao DM são os localizados na fronteira não dominada. 33 V.2. Comentários Iniciais Sobre o Método Pareto Race “A idéia deste método [como descrito em Korhonen e Laakso (1986a)] é interativamente projetar um segmento de linha aberto do espaço objetivo na superfície não dominada de Z . Esta projeção na superfície não dominada é obtida utilizando uma Função Escalarizante (Achievement Scalarizing Function) e programação paramétrica do RHS (Right Hand Side). O método antecipa o uso da computação gráfica na apresentação interativa da solução. O método é designado para o seguinte problema de Programação Linear / Não Linear Multi-Objetivo: max { f1 ( x ) = z1 } max { f 2 ( x ) = z2 } ... max { f k ( x ) = z k } SA.: x ∈ S Se a função utilidade do DM é pseudo-côncava, e S é formado por restrições lineares e é limitado, a necessária e suficiente condição existe para determinar se um dado ponto é ótimo.” (Steuer, 1989) 34 V.3. Função Escalarizante O termo Função Escalarizante (Achievement Scalarizing Function) foi retirado do trabalho de Wierzbicki (1980, 1982, 1983). Das diversas funções escalarizantes propostas no estudo de Wierzbicki, existem aquelas que minimizam a distância a um ponto de referência. Este ponto de referência representa os níveis que o DM aspira para cada função objetivo, ou seja, os valores que o DM gostaria que cada FO atingisse, mesmo que tais valores não sejam viáveis. O Pareto Race utiliza, como função escalarizante, uma variação da distância de Tchebycheff (vide III.1.21): || x − y ||∞ = Max {| xi − yi |} i =1,2, ... , n Utilizemos como ponto de referência no espaço objetivo o ponto b ∈ R k . Este ponto pode ou não ser viável, isto é, pertencer ou não a Z . Façamos w um vetor de pesos. A função escalarizante tipo Tchebycheff é dada por: b − Cj x s (b, x, w) = Max j w j Wierzbicki (1980, 1982, 1983) provou que a minimização da função escalarizante tipo Tchebycheff acrescida de uma pequena perturbação, nos leva a uma solução não dominada: p bj − C j x Min s (b, x, w) = Min Max − C x ε ∑ k k =1 w j SA.: Ai x ≤ bi , i ∈ R x≥0 onde, ε é um escalar muito pequeno maior que zero, i ∈ R o conjunto das m metas inflexíveis (restrições) e j ∈ G o conjunto das p metas flexíveis (funções objetivo). 35 Para melhor compreensão da função escalarizante, vejamos o problema MOLP da figura 5.2, que é idêntico ao problema (5.1) anterior. Se tomarmos o ponto ( 2, 000 3, 000 ) como vetor de aspirações e ( 2, 000 1, 000 ) como vetor de pesos, obteremos, com a função escalarizante tipo Tchebycheff, como resposta o ponto ( 3, 200 3, 600 ) , que está localizado na fronteira não dominada. Se tomarmos o ponto ( 4, 000 8, 000 ) como vetor de aspirações e o vetor de pesos (1, 000 1, 000 ) , obteremos, com a mesma função escalarizante tipo Tchebycheff, o ponto ( 2, 000 6, 000 ) como resposta. x2 x1 figura 5.2 Observemos que o vetor de pesos w , na verdade, nada mais é do que a direção com que o vetor de aspirações é projetado na fronteira não dominada. 36 V.4. O Método Pareto Race No lugar de projetar o vetor de aspirações b no conjunto de soluções não dominadas N , pode-se projetar a semi-reta b + td em N , onde t é a velocidade ou tamanho do passo, e d a direção, obtendo como função escalarizante: p b j + td j − C j x ε Min s (b, x, w) = Min Max − Ck x ∑ wj k =1 SA.: Ai x ≤ bi , i ∈ R x≥0 Ao introduzir uma variável y ∈ R , podemos reescrever a formulação acima como: p Min s (b, x, w) = Min y − ε ∑ Ck x k =1 SA.: Ai x ≤ bi , i∈ R y≥ b j + td j − C j x wj , j ∈G x≥0 y∈R novamente, pode-se reescrever a mesma formulação como: p Min y − ε ∑ Ck x k =1 SA.: Ai x ≤ bi , i∈ R C j x + w j y ≥ b j + td j , j ∈ G x≥0 y∈R 37 Como a variável y é livre, para efeitos computacionais, a mesma é reescrita como y = y + − y − , com y + , y − ≥ 0 . Temos, assim, a formulação final do Pareto Race: p Min y + − y − − ε ∑ Ck x k =1 + − SA.: C j x + w j y − w j y ≥ b j + td j , j ∈ G Ai x ≤ bi , (5.2) i∈R x, y + , y − ≥ 0 onde, ε é um escalar muito pequeno maior que zero, i ∈ R o conjunto das m metas inflexíveis (restrições) e j ∈ G o conjunto das p metas flexíveis (funções objetivo). A idéia é que “a partir de níveis de aspiração para os valores das funções objetivo, especificados inicialmente pelo decisor, é construída uma direção de referência (direção que, partindo de um ponto admissível no espaço dos objetivos, oferece uma variação nos valores das funções objetivos que está de acordo com as preferências do decisor). Esta direção de referência é então projetada sobre o conjunto de soluções eficientes, gerando uma trajetória (subconjunto de soluções eficientes) que é apresentada ao decisor. O decisor pode assim percorrer a fronteira eficiente, controlando a direção do movimento (privilegiando diferentes funções objetivo) e a velocidade (obtendo soluções mais ou menos próximas umas das outras) como se estivesse conduzindo um automóvel (daí a denominação de Pareto Race) sobre essa superfície”. (Climaco et al, 1996) 38 V.5. Um Exemplo Numérico Esta sub-seção foi baseada no exemplo numérico constante no trabalho de Climaco et al (1996). Consideremos o seguinte MOLP: Max z1 = x1 Max z 2 = x2 Max z3 = SA.: x3 x1 + x2 + x3 ≤ 5 x1 + 3 x2 + x3 ≤ 9 3 x1 + 4 x2 ≤ 16 x1 , x2 , x3 ≥ 0 Cuja região viável S está diagramada na figura 5.3 abaixo: x2 x3 x1 Figura 5.3 O primeiro passo no método Pareto Race é questionar o DM sobre os seus níveis de aspirações para as funções objetivo. Neste exemplo, o mesmo forneceu como resposta 6,000, 5,000 e 5,000. Logo após, devemos questionar o DM sobre o intervalo de variação que os níveis de aspirações podem sofrer. Deve-se esclarecer ao DM que estes intervalos de variação são apenas indicativos, 39 podendo acontecer de os valores das funções objetivo não estarem nos respectivos intervalos. No nosso exemplo, o DM informou [4,500; 7,000], [2,500; 6,000] e [2,000; 6,000]. De posse destes dados, temos como vetor resultante: bT = ( 6, 000 5, 000 5, 000 5, 000 9, 000 16,000 ) no qual as três primeiras componentes referem-se às aspirações do DM para as metas flexíveis (funções objetivo) e as três últimas, ao RHS (Right Hand Side) das metas inflexíveis (restrições). O vetor de pesos w condiciona implicitamente a importância relativa de cada função objetivo através de: ∆bk , se k ∈ G wk := se k ∈ R 0, Inicialmente, faremos o vetor de referência d , que controla a direção do movimento, igual ao vetor w , logo: 7, 000 − 4,500 2,500 6, 000 − 2, 500 3,500 6, 000 − 2, 000 4, 000 d =w = = 0,000 0, 000 0, 000 0,000 0,000 0, 000 Posteriormente, o vetor d será normalizado pela constante s = ∑d k iniciais . No nosso exemplo s = 2,500 + 3,500 + 4, 000 + 0,000 + 0, 000 + 0, 000 = 10, 000 . Temos, assim, o seguinte problema: Min y + − y − − 0,001( x1 + x2 + x3 ) SA.: + 2,500 y + − 2,500 y − ≥ 6, 000 + 2,500t x1 + 3,500 y + − 3,500 y − ≥ 5, 000 + 3,500t x2 x3 + 4, 000 y + − 4, 000 y − ≥ 5, 000 + 4, 000t + x2 + x3 ≤ 5, 000 x1 + 3, 000 x2 + x3 ≤ 9, 000 x1 3, 000 x1 + 4, 000 x2 + ≤ 16, 000 − x1 , x2 , x3 , y , y ≥ 0 40 Introduzindo as variáveis de folga S1 , S2 ,..., S6 , e fazendo inicialmente t = 0, 000 , temos como solução ótima do PL acima a base X1 , X 2 , X 3 , Y + , S5 , S6 , com tableau Simplex ótimo: X1 X2 X3 Y+ S1 Y− S2 S3 S4 S5 S6 b X 1 1,000 0,000 0,000 0,000 0,000 -0,750 0,250 0,250 0,250 0,000 0,000 3,250 X 2 0,000 1,000 0,000 0,000 0,000 0,350 -0,650 0,350 0,350 0,000 0,000 1,150 X 3 0,000 0,000 1,000 0,000 0,000 0,400 0,400 -0,600 0,400 0,000 0,000 0,600 Y + 0,000 0,000 0,000 1,000 -1,000 -0,100 -0,100 -0,100 -0,100 0,000 0,000 1,100 S5 0,000 0,000 0,000 0,000 0,000 -0,700 1,300 -0,700 -1,700 1,000 0,000 1,700 S6 0,000 0,000 0,000 0,000 0,000 0,850 1,850 -2,150 -2,150 0,000 1,000 1,650 c j 0,000 0,000 0,000 0,000 0,000 0,100 0,100 0,100 0,110 0,000 0,000 -1,050 Observemos que os valores de X não estão compreendidos nos intervalos de variação previamente fornecidos pelo DM ([4,500; 7,000], [2,500; 6,000] e [2,000; 6,000]). Procedemos à atualização de tais intervalos: [3,250; 7,000], [1,150; 6,000] e [0,600; 6,000]. Estes valores são sempre atualizados, caso algum componente da nova solução achada não pertença ao respectivo intervalo. O intervalo de variação de t que mantém a base ótima, quando se altera o lado direito das metas de b para b + td , é calculado pela análise de sensibilidade: xB = B −1 (b + td ) na qual xB é o vetor das variáveis básicas e B −1 a matriz inversa da base. Se variarmos de t para t + θ , teremos: xB (θ ) = xB + θ B −1d que, para garantir a viabilidade do primal, deverá ser maior ou igual a zero: xB (θ ) ≥ 0 41 obtemos com isto o intervalo [t − t1; t + t2 ] , onde t − t1 e t + t2 são, respectivamente, o menor e o maior valor que obedecem à restrição xB (θ ) ≥ 0 . No nosso exemplo: X1 X 2 X3 xB = + = B −1 (b + td ) Y S5 S6 0,750 -0,350 -0,400 xB = 0,100 0,700 -0,850 -0,250 0,650 -0,400 0,100 -1,300 -1,850 -0,250 -0,350 0,600 0,100 0,700 2,150 0,250 0,350 0,400 -0,100 -1,700 -2,150 0,000 0,000 0,000 0,000 1,000 0,000 0,000 6, 000 2,500 0,000 5, 000 3,500 0,000 5, 000 4, 000 . + t. 0,000 5, 000 0, 000 0,000 9, 000 0, 000 1,000 16,000 0, 000 3,250 + 0, 000.t 3,250 + 0, 000.t 0, 000 1,150 + 0, 000.t 1,150 + 0, 000.t 0, 000 0, 600 + 0, 000.t 0, 600 + 0, 000.t 0, 000 . Como xB (θ ) ≥ 0 : xB = xB = ≥ 1,100 + 0, 000.t 1,100 + 0, 000.t 0, 000 1,700 + 0, 000.t 1,700 + 0, 000.t 0, 000 1,650 + 1, 000.t 1,650 + 1, 000.t 0, 000 Como t = 0, 000 , t ∈ [t − t1 ; t + t2 ] , e o espaço de variação de t que satisfaz a restrição xB (θ ) ≥ 0 é t ∈ [ −1,100; + ∞ ] , temos que t1 = 1,100 e t2 = +∞ . V.5.1 Mudança de direção obrigatória Como t2 = +∞ , não é possível prosseguir a busca na direção atual. Neste caso, o DM é questionado sobre nova direção para continuar a busca. Suponhamos que o DM deseje melhorar a FO3. O vetor d3 é alterado, utilizando a fórmula: 42 di = d i + σ ( LSi − LI i ) onde : d = vetor novo d = vetor original σ = constante igual a 0,5 (valor recomendado pelos autores do método) LSi = limite superior do intervalo de variação LI i = limite inferior do intervalo de variação No nosso exemplo: d3 = 4, 000 + 0, 500(6, 000 − 0, 600) = 6, 700 O vetor d será normalizado de modo que ∑d i = s , pela seguinte fórmula: s di = di . m+ p , i = 1, 2,..., m + p ∑dj j =1 onde d = vetor novo d = vetor original no nosso exemplo s = 10, 000 , logo: di = d i . 10, 000 , i = 1, 2,... , 6 2,500 + 3, 500 + 6, 700 obteremos, então, como novo vetor d : d T = (1,969 2, 756 5, 276 0, 000 0, 000 0, 000 ) O vetor w também deve ser atualizado. É importante notar que, quando o ponto de referência se situa na fronteira não dominada, ou fora dela, ou seja, y + ≥ 0, 000 e y − = 0, 000 , os valores de w são inversamente proporcionais à importância das FO, isto é, quanto menor o valor de wi , maior importância terá a i ésima FO. No nosso exemplo: desejamos melhorar a FO3, logo teremos que diminuir o valor de w3 . Os autores do método recomendam dividir wi por (1 + σ ) , ou seja, por 1, 500 , logo: w3 = 4, 000 = 2, 667 1, 500 43 Procedendo novamente à normalização (idêntica à realizada para o vetor d ), temos como novo vetor w : wT = ( 2,885 4, 038 3, 077 0, 000 0, 000 0, 000 ) O ponto de referência é atualizado com o valor das funções objetivo da última solução, gerando o novo vetor b : b = ( 3, 250 1,150 0, 600 5, 000 9, 000 16, 000 ) O que gera, novamente, o seguinte problema de PL: Min y + − y − − 0,001( x1 + x2 + x3 ) SA.: + 2,885 y + − 2,885 y − ≥ 3, 250 + 1,969t x1 + 4, 038 y + − 4, 038 y − ≥ 1,150 + 2, 756t x2 x3 + 3, 077 y + − 3, 077 y − ≥ 0, 600 + 5, 276t + x2 + x3 ≤ 5, 000 x1 + 3, 000 x2 + x3 ≤ 9, 000 x1 3, 000 x1 + 4, 000 x2 ≤ 16, 000 x1 , x2 , x3 , y + , y − ≥ 0 Cujo tableau Simplex ótimo, para t = 0, 000 , é: X1 X2 X3 Y+ Y− S1 S2 S3 S4 S5 S6 b X 1 1,000 0,000 0,000 0,000 0,000 -0,712 0,289 0,289 0,289 0,000 0,000 3,250 X 2 0,000 1,000 0,000 0,000 0,000 0,404 -0,596 0,404 0,404 0,000 0,000 1,150 X 3 0,000 0,000 1,000 0,000 0,000 0,308 0,308 -0,692 0,308 0,000 0,000 0,600 Y + 0,000 0,000 0,000 1,000 -1,000 -0,100 -0,100 -0,100 -0,100 0,000 0,000 0,000 S5 0,000 0,000 0,000 0,000 0,000 -0,808 1,192 -0,808 -1,808 1,000 0,000 1,700 S6 0,000 0,000 0,000 0,000 0,000 0,519 1,519 -2,481 -2,481 0,000 1,000 1,650 c j 0,000 0,000 0,000 0,000 0,000 0,100 0,100 0,100 0,110 0,000 0,000 0,050 44 Calculando o intervalo de variação de t para o qual a base ótima se mantém, temos: X1 X 2 X3 xB = + = B −1 (b + td ) Y S5 S6 0,712 -0,404 -0,308 xB = 0,100 0,808 -0,519 -0,289 0,596 -0,308 0,100 -1,192 -1,519 -0,289 -0,404 0,692 0,100 0,808 2,481 0,289 0,404 0,308 -0,100 -1,808 -2,481 0,000 0,000 0,000 0,000 1,000 0,000 0,000 3, 250 1,969 0,000 1,150 2, 756 0,000 0, 600 5, 276 . + t. 0,000 5, 000 0, 000 0,000 9, 000 0, 000 1,000 16,000 0, 000 3, 250 − 0,916t 0, 000 1,150 − 1, 282t 0, 000 0, 600 + 2,199t 0, 000 xB = ≥ 0, 000 + 1, 000t 0, 000 1, 700 + 2, 564t 0, 000 1, 650 + 7,878t 0, 000 Como t = 0, 000 , t ∈ [t − t1 ; t + t2 ] , e o espaço de variação de t que satisfaz a restrição xB (θ ) ≥ 0 é t ∈ [0, 000; 0,897] , temos que t1 = 0, 000 e t2 = 0,897 . A partir deste ponto, o DM pode melhorar a FO3 com a velocidade que lhe convier. Os autores do Pareto Race estabelecem, como default de ∆t , a constante β = 10−4 . No nosso exemplo, o DM desejou uma velocidade ∆t = 0, 020 . Para t = 0, 020 , a solução é calculada como se segue: X 1 3, 250 − 0, 916.0, 020 3,232 X 2 1,150 − 1, 282.0, 020 1,124 X 3 0, 600 + 2,199.0, 020 0,644 xB = + = = Y 0, 000 + 1, 000.0, 020 0,020 S5 1, 700 + 2,564.0, 020 1,751 S6 1, 650 + 7,878.0, 020 1,808 45 Prosseguindo nesta direção, com incrementos ∆t = 0, 020 temos: t=0,020 t=0,040 t=0,060 t=0,080 … t=0,897 X1 3,232 3,213 3,195 3,177 2,428 X2 1,124 1,099 1,073 1,047 0,000 X3 0,644 0,688 0,732 0,776 2,572 Y+ 0,020 0,040 0,060 0,080 0,897 S5 1,751 1,803 1,854 1,905 4,000 S6 1,808 1,965 2,123 2,280 8,716 Quando t atinge o valor limite superior, que no nosso exemplo é 0,897, é alcançada uma aresta do politopo das restrições (uma variável básica tem valor zero) e, para continuar na mesma direção, isto é, incrementando o valor da FO3, é necessária uma mudança de base. V.5.2 Mudança de base (a direção atual é mantida) Ao aplicar o Dual-Simplex na linha pivô X 2 (variável básica com valor igual a zero), temos o seguinte teste da razão: Teste da razão S1 Y− S2 S3 S4 c min j | aij < 0, 000 aij = 0, 000 aij > 0, 000 0,168 aij > 0, 000 aij > 0, 000 aij Logo, a variável que entra no lugar da X 2 é a S 2 , ficando como base ótima: X 1 , S 2 , X 3 , Y + , S5 , S6 . 46 Quando calculamos o intervalo de variação de t para o qual a base ótima se mantém, temos: X1 S 2 X3 xB = + = B −1 (b + td ) Y S5 S6 0,516 0,677 -0,516 xB = 0,168 0,000 -1,548 0,000 -0,484 0,484 0,000 0,000 3, 250 1, 969 -1,000 0,677 -0,677 0,000 0,000 1,150 2, 756 0,000 0,484 0,516 0,000 0,000 0, 600 5, 276 . + t. 0,000 0,168 -0,168 0,000 0,000 5, 000 0, 000 0,000 0,000 -1,000 1,000 0,000 9, 000 0, 000 0,000 1,452 -1,452 0,000 1,000 16, 000 0, 000 3,806 − 1,537t 0, 000 -1,929 + 2,150t 0, 000 1,194+1,537t 0, 000 xB = ≥ -0,193+1,215 t 0, 000 4,000+0,000t 0, 000 4,581 + 4,611t 0, 000 Como t = 0,897 , t ∈ [t − t1 ; t + t2 ] , e o espaço de variação de t que satisfaz a restrição xB (θ ) ≥ 0 é t ∈ [0,897; 2, 477 ] , temos que t1 = 0, 000 e t2 = 1,580 . Para o valor mínimo de t = 0,897 , temos a seguinte solução: ( X1 X2 X 3 ) = ( 2, 428 0, 000 2,572 ) Observemos que os valores de X 1 e X 2 não estão compreendidos nos intervalos de variação anteriores: [3,250; 7,000] e [1,150; 6,000]. Logo, os mesmos são atualizados para, respectivamente: [2,428; 7,000] e [0,000; 6,000]. 47 Suponhamos que o DM deseje aumentar a velocidade, por exemplo, para ∆t = 0, 030 . A seguinte seqüência de soluções é então gerada para o DM: t=0,897 t=0,927 t=0,957 … t=1,047 X1 2,428 2,382 2,336 2,197 S2 0,000 0,065 0,129 0,323 X3 2,572 2,618 2,664 2,803 Y+ 0,897 0,933 0,970 1,079 S5 4,000 4,000 4,000 4,000 S6 8,716 8,855 8,993 9,408 Suponhamos que, apesar de o DM poder vasculhar a fronteira não dominada nesta direção (aumentando Z 3 ) até o valor de t = 2, 477 , no ponto t = 1, 047 , o mesmo (DM) desejou mudar de direção, aumentando o valor da segunda função objetivo, que atualmente está com valor zero. V.5.3 Mudança de direção voluntária Atualizando o intervalo de variação da FO1, temos os seguintes intervalos: [2,197; 7,000], [0,000; 6,000], e [0,600; 7,000]. Como o DM deseja aumentar Z 2 , é necessário um incremento na componente correspondente à Z 2 no vetor direção d e uma diminuição da mesma componente no vetor de pesos w : d 2 = d2 + σ ( LSi − LI i ) = 2, 756 + 0,500(6, 000 − 0, 000) = 5, 756 w2 = w2 1,500 = 4, 038 48 1,500 = 2, 692 Após a normalização, temos: 1, 514 4, 428 4, 058 d = , 0, 000 0, 000 0, 000 3,333 3,111 3,555 w= 0, 000 0, 000 0, 000 O ponto de referência é atualizado com os valores da última solução: bT = ( 2,197 0, 000 2,803 5, 000 9, 000 16, 000 ) Resolve-se o seguinte problema considerando t = 0, 000 : Min y + − y − − 0, 001( x1 + x2 + x3 ) SA.: + 3,333 y + − 3,333 y − ≥ 2,197 + 1,514t x1 + 3,111y + − 3,111 y − ≥ 0, 000 + 4, 428t x2 x3 + 3,555 y + − 3,555 y − ≥ 2,803 + 4, 058t + x2 + x3 ≤ 5, 000 x1 + 3, 000 x2 + x3 ≤ 9, 000 x1 3, 000 x1 + 4, 000 x2 ≤ 16, 000 x1 , x2 , x3 , y + , y − ≥ 0 Cujo Tableau Simplex Ótimo é o seguinte: X1 X2 X3 Y+ Y− S1 S2 S3 S4 S5 S6 b X 1 1,00 0,000 0,000 0,000 0,000 -0,667 0,333 0,333 0,333 0,000 0,000 2,197 X 2 0,00 1,000 0,000 0,000 0,000 0,311 -0,689 0,311 0,311 0,000 0,000 0,000 X 3 0,00 0,000 1,000 0,000 0,000 0,356 0,356 -0,644 0,356 0,000 0,000 2,803 Y + 0,00 0,000 0,000 1,000 -1,000 -0,100 -0,100 -0,100 -0,100 0,000 0,000 0,000 S5 0,00 0,000 0,000 0,000 0,000 -0,622 1,378 -0,622 -1,622 1,000 0,000 4,000 S6 0,00 0,000 0,000 0,000 0,000 0,755 1,755 -2,245 -2,245 0,000 1,000 9,409 c j 0,00 0,000 0,000 0,000 0,000 0,100 0,100 0,100 0,101 0,000 0,000 0,005 49 Fazendo a análise de sensibilidade, temos que: X1 X2 X xB = +3 = B −1 (b + td ) Y S5 S6 0,667 -0,311 -0,356 xB = 0,100 0,622 -0,755 -0,333 -0,333 0,333 0,000 0,000 2,197 1, 514 0,689 -0,311 0,311 0,000 0,000 0, 000 4, 428 -0,356 0,644 0,356 0,000 0,000 2,803 4, 058 . + t. 0,100 0,100 -0,100 0,000 0,000 5, 000 0, 000 -1,378 0,622 -1,622 1,000 0,000 9, 000 0, 000 -1,755 2,245 -2,245 0,000 1,000 16, 000 0, 000 2,197 − 1,819t 0, 000 0,000 + 1,317t 0, 000 2,803+0,503t 0, 000 xB = ≥ 0,000+1,000t 0, 000 4,000 − 2,633t 0, 000 9,409 + 0,191t 0, 000 Como t = 0, 000 , t ∈ [t − t1 ; t + t2 ] , e o espaço de variação de t que satisfaz a restrição xB (θ ) ≥ 0 é t ∈ [0, 000; 1, 208] , temos que t1 = 0, 000 e t2 = 1, 208 . Mantendo a mesma velocidade ∆t = 0, 030 , as seguintes soluções são apresentadas ao DM: t=0,000 t=0,030 t=0,060 X1 2,197 2,142 2,088 1,433 X2 0,000 0,040 0,079 0,553 X3 2,803 2,818 2,833 3,014 Y+ 0,000 0,030 0,060 0,420 S5 4,000 3,921 3,842 2,894 S6 9,409 9,415 9,420 9,489 50 … t=0,420 V.5.4 Fixando o valor de uma FO Suponhamos que, neste ponto ( t = 0, 420 ), o DM deseje continuar nesta direção (aumentando Z 2 ) mas não deseje que o valor de Z1 diminua, ou seja, o DM quer fixar Z1 = 1, 433 . Para tanto, devemos fazer a componente correspondente àquela FO nos vetores w e d igual a zero: wi = 0, 000; d i = 0, 000 onde i é o índice da FO fixada No nosso exemplo, faremos: 0, 000 4, 428 4, 058 d = 0, 000 0, 000 0, 000 0, 000 3,111 3, 555 w= 0, 000 0, 000 0, 000 que, após a normalização, ficará: 0, 000 5, 218 4, 782 d = 0, 000 0, 000 0, 000 0,000 4,667 5,333 w= 0,000 0,000 0,000 Atualizando novamente o intervalo de variação da FO1, obteremos: [1,433; 7,000] 51 Teremos, assim, o seguinte PPL: Min y + − y − − 0, 001( x1 + x2 + x3 ) SA. : + 0, 000 y + − 0, 000 y − ≥ 1, 433 + 0, 000t x1 + 4, 667 y + − 4, 667 y − ≥ 0,553 + 5, 218t x2 x3 + 5,333 y + − 5,333 y − ≥ 3, 014 + 4, 782t + x2 + x3 ≤ 5, 000 x1 + 3, 000 x2 + x3 ≤ 9, 000 x1 3, 000 x1 + 4, 000 x2 ≤ 16, 000 x1 , x2 , x3 , y + , y − ≥ 0 Cujo Tableau Simplex Ótimo é o seguinte: X1 X2 X3 Y+ Y− S1 S2 S3 S4 S5 S6 b X 1 1,000 0,000 0,000 0,000 0,000 -1,000 0,000 0,000 0,000 0,000 0,000 1,433 X 2 0,000 1,000 0,000 0,000 0,000 0,467 -0,533 0,467 0,467 0,000 0,000 0,553 X 3 0,000 0,000 1,000 0,000 0,000 0,533 0,533 -0,467 0,533 0,000 0,000 3,014 Y + 0,000 0,000 0,000 1,000 -1,000 -0,100 -0,100 -0,100 -0,100 0,000 0,000 0,000 S5 0,000 0,000 0,000 0,000 0,000 -0,933 1,067 -0,933 -1,933 1,000 0,000 2,894 S6 0,000 0,000 0,000 0,000 0,000 1,133 2,133 -1,867 -1,867 0,000 1,000 9,489 c j 0,000 0,000 0,000 0,000 0,000 0,100 0,100 0,100 0,101 0,000 0,000 0,005 Fazendo a análise de sensibilidade, teremos que: X1 X2 X xB = +3 = B −1 (b + td ) Y S5 S6 52 1,000 -0,467 -0,533 xB = 0,100 0,933 -1,133 0,000 0,000 0,000 0,000 0,000 1, 433 0, 000 0,533 -0,467 0,467 0,000 0,000 0,553 5, 218 4, 782 -0,533 0,467 0,533 0,000 0,000 3, 014 . + t. 0,100 0,100 -0,100 0,000 0,000 5, 000 0, 000 0, 000 -1,067 0,933 -1,933 1,000 0,000 9, 000 -2,133 1,867 -1,867 0,000 1,000 16, 000 0, 000 1,433 + 0,000t 0, 000 0,553 + 0,551t 0, 000 3,014 − 0,551t 0, 000 xB = ≥ 0,000+1,000t 0, 000 2,894 − 1,102t 0, 000 9,489 − 2,204t 0, 000 Como t = 0, 000 , t ∈ [t − t1 ; t + t2 ] , e o espaço de variação de t que satisfaz a restrição xB (θ ) ≥ 0 é t ∈ [0, 000; 2, 626] , temos que t1 = 0, 000 e t2 = 2, 626 . Mantendo a mesma velocidade ∆t = 0, 030 , as seguintes soluções são apresentadas ao DM: t=0,000 t=0,030 t=0,060 X1 1,433 1,433 1,433 1,433 X2 0,553 0,570 0,586 1,082 X3 3,014 2,998 2,981 2,485 Y+ 0,000 0,030 0,060 0,960 S5 1,000 2,861 2,828 1,836 S6 1,000 9,423 9,357 7,373 Supondo que o DM ache ( Z1 Z2 … t=0,960 Z3 ) = (1, 433 1, 082 2, 485 ) uma boa solução, o processo termina. A trajetória das soluções apresentadas ao DM, neste nosso exemplo, no espaço objetivo, está diagramada na figura 5.4 abaixo: 53 Z2 (1,433; 1,082; 2,485) (3,250; 1,150; 0,600) (1,433; 0,553; 3,014) (2,197; 0,000; 2.803) Z3 (2,428; 0,000; 2,572) Z1 Figura 5.4 V.5.5 Comentários Finais Na análise de sensibilidade, que determina os limites de variação que t pode ter, deveremos utilizar: t + min{∆t ; t2 }, se ∆t > 0 t= t + max{∆t ; −t1}, se ∆t < 0 Se t2 = ∞ ou então t1 = 0, 000 e ∆t < 0, 000 , é alcançado o limite do politopo naquela direção; logo, o DM deverá ser questionado sobre nova direção. Se t2 = 0, 000 e ∆t > 0, 000 , significa que não é possível avançar na direção atual sem que haja mudança de base. Após a mudança de base, deve-se atualizar o intervalo [t − t1 ; t + t2 ] . Para liberar novamente uma FO fixada anteriormente, deve-se fazer: wi := ∆bi ; di := ∆bi onde i é o índice da FO fixada 54 CAPÍTULO VI O ALGORITMO PROPOSTO VI.1. Comentários Iniciais Como visto no capítulo anterior, o método Pareto Race é uma excelente ferramenta para a busca da solução final preferida pelo DM. Ao possibilitar vasculhar toda a fronteira não dominada de uma maneira bastante intuitiva ao DM, pois a única interação necessária é a definição de qual FO deverá ter seu valor aumentado e de quanto deverá ser este aumento, o método cumpre sua finalidade de maneira muito eficiente e eficaz. O escopo deste trabalho é proporcionar um auxílio ao método Pareto Race, possibilitando a obtenção do ponto inicial localizado na fronteira não dominada o mais próximo possível da solução final preferida pelo DM. Como, via de regra, o DM não conhece a fronteira não dominada, o mesmo não tem idéia de qual ponto não dominado a primeira iteração do Pareto Race irá gerar a partir dos seus níveis de aspirações. Na verdade, o DM não tem juízo se seus níveis de aspirações são viáveis, se não são viáveis, ou mesmo da distância em que os mesmos se encontram da fronteira não dominada. Devido a esta ignorância da fronteira não dominada pelo DM, o ponto inicial gerado pelo Pareto Race pode e, provavelmente, irá estar localizado muito distante da solução final preferida. Como comentado no capítulo primeiro (Introdução), o problema da parada prematura é aquele no qual o DM se satisfaz com uma solução diferente da solução final que o mesmo escolheria, se tivesse perfeito conhecimento de toda a fronteira não dominada, ou seja, o DM resolve parar a busca da solução final preferida antes da obtenção da solução final preferida ótima (aquela que o DM escolheria se tivesse prévia e total ciência da fronteira não dominada). Caso a busca da solução final preferida seja iniciada em um ponto muito distante da mesma, o problema da parada prematura poderá ocorrer. A metodologia proposta por este trabalho objetiva, primeiramente, auxiliar o DM ao facilitar o seu trabalho no estabelecimento de trade off’s entre as FO’s, pois, em uma fase inicial, esta necessidade não existe; este trabalho tem, como escopo secundário, a diminuição da probabilidade da existência do problema da parada 55 prematura, uma vez que, ao fornecer um ponto localizado na fronteira não dominada mais próximo da solução final preferida ótima, esta probabilidade fica diminuta. A idéia da metodologia proposta por este trabalho é a resolução do problema de programação linear inicial do Pareto Race pelo método dos pontos interiores, em vez do método SIMPLEX. Devido à geometria do algoritmo proposto, podemos observar que a seqüência de pontos gerados pelo método dos pontos interiores possui os valores das FO’s crescentes durante quase todo o seu percurso, não havendo a árdua necessidade de o DM estabelecer trade off’s entre as mesmas. Ao aproximar-se da fronteira não dominada, esta característica denominada WIN-WIN, na qual todas as FO’s possuem seus valores crescentes, não mais existe como via de regra, havendo possibilidade da existência de trade-off’s entre as FO’s. Como vantagem do método dos pontos interiores, temos que, durante a maior parte de sua trajetória no interior do politopo, a característica WIN-WIN é predominante. A fase um do algoritmo proposto gera, após um numero variável de iterações do método dos pontos interiores, uma solução intermediária (localizada no interior do politopo das restrições, ou seja, uma solução dominada) que é apresentada ao DM. Já na primeira solução intermediária, o DM poderá observar a relação existente entre os valores das FO’s e, assim, intuir se haverá necessidade ou não de mudar o vetor de crescimento. Ao atingir a fronteira não dominada, caso o DM não esteja satisfeito com a solução apresentada, a busca poderá ser continuada através do método Pareto Race. 56 VI.2. O Algoritmo Para um problema MOLP do tipo: max {C1 x = z1} max {C2 x = z2 } ... max {C p x = z p } SA.: Ai x ≤ bi , i = 1, 2, ..., m x≥0 onde C ∈ R pxn , x ∈ R n , z ∈ R p , A ∈ R mxn e b ∈ R m . Os seguintes passos da metodologia proposta deverão ser seguidos: Fase 1: Pontos Interiores 1. Inicialização: 1.1. Obter o ponto interior viável inicial x (como obter tal ponto será discutido adiante). 1.2. Fazer R o conjunto das m metas inflexíveis (restrições) e G o conjunto das p metas flexíveis (funções objetivo). 1.3. Solicitar ao DM a velocidade que lhe convêm, e fazer ∆t = velocidade; 2. Formular o seguinte PPL de acordo com os dados referentes ao problema: p Min y + − y − − ε ∑ Ck x k =1 SA.: C j x + w j y + − w j y − − S F = b j , j ∈ G Ai x + S I = bi , (6.1) i∈ R x, y + , y − , S F , S I ≥ 0 onde: ε é um escalar muito pequeno maior que zero; C é a matriz dos coeficientes das metas flexíveis; w é o vetor de pesos; S F são as variáveis de folga das metas flexíveis; A é a matriz dos coeficientes das metas inflexíveis; e S I são as variáveis de folga das metas inflexíveis. 57 2.1. Fazer o vetor φ igual aos valores que as FO’s assumem com o vetor x : φ j = C j x , ∀ j ∈ G 2.2. Fazer φ igual a 50% do valor médio esperado das FO’s. 2.3. Fazer o vetor de pesos w igual a: φ , se k ∈ G . wk := 0,000, se k ∈ R 2.4. Fazer as componentes do vetor b iguais a: 2.4.1. as p primeiras componentes são denominadas vetor de aspirações e tem o valor igual ao vetor φ ; e 2.4.2. as m últimas componentes referem-se ao RHS - Right Hand Side ( bi ) das metas inflexíveis. 2.5. Calcular o vetor κ de modo que: κ i = { bi − Ai x | i ∈ R} 2.6. Fazer o ponto inicial: x 0 = ( xT y+ S IT y− ( T T SFT ) = x κ T 1, 000 1, 000 eT ) T onde e é um vetor unitário de dimensão adequada. 2.7. Fazer a matriz A = n componentes; C 0 w −w −I A I 0 0 é ( p x n ou n x p ); e I 0 uma , onde 0 é um vetor nulo composto por 0 matriz nula de dimensão adequada é uma matriz identidade de dimensão adequada ( p x p ou n x n ). 2.8. Fazer c o vetor gradiente da função objetivo do PPL (6.1): p c = ∇( y − y − ε ∑ Ck x ) + − k =1 2.9. Fazer v = 1 o contador do número de iterações do método de pontos interiores; fazer π = 1 o contador de soluções intermediárias e fazer mud = S . 58 2.10. Fazer o vetor inicial de soluções intermediárias sol1 = φ . 3. Resolver o PPL (6.1) pelo método dos pontos interiores: 3.1. Loop: 3.1.1. Fazer os componentes do vetor de crescimento µ iguais a: µ j = 1, 000, j = 1, 2,..., p 3.1.2. Se mud = S : 3.1.2.1. apresentar o vetor de crescimento µ , os valores das FO’s (vetor sol π ) e questionar o DM se o mesmo deseja mudar o vetor de crescimento. Caso positivo, atualizar o vetor de crescimento µ e normalizar o mesmo de acordo com o seguinte: µ i = µi . p , i = 1, 2,..., p p ∑µ j =1 j onde µ = vetor crescimento normalizado µ = vetor crescimento original 3.1.2.2. Atualizar o vetor b de acordo com o seguinte: b j = C j x v −1 + µ j ∆t 3.1.2.3. Fazer y − = 1, 000 (componente de x v −1 ); 3.1.2.4. Fazer y + (componente de x v −1 ) o menor inteiro positivo que atenda às restrições: C j x v−1 + ( y + − 1) w − b j > 0, ∀ j ∈ G y + ≥ 2, 000 3.1.2.5. Atualizar o vetor S F (componente de x v −1 ) de modo que: b j − C j x v −1 − ( y + − 1) w + S F j = 0, 000, ∀ j ∈ G 3.1.2.6. Fazer mud = N ; 59 xiv −1 , se i = 3.1.3. Fazer D uma matriz diagonal, onde dij = 0, 000, se i ≠ T j . j T 3.1.4. Fazer: hv = − D 2 [c − A ω v ] , onde ω v = [( AD 2 A )−1 AD 2 c] . 3.1.5. Fazer: x v = x v −1 + ρ λ h v , 0 < ρ < 1 onde xi( v−1) (v) λ min = − ( v ) , ∀ hi < 0, 1 ≤ i ≤ n hi Utilizar inicialmente um ρ = 0,100 . 3.1.6. Fazer: gap v =|| hv || . 3.1.7. Se ( y − )v ≥ ( y + )v fazer: π = π +1 ; x v = x v −1 ; sol π = Cx v ; mud = S . 3.1.8. Se gap v > 1, 000e −4 e sol πj ≥ sol πj −1 , ∀ j ∈ G , fazer v = v + 1 e retornar ao início do loop. 3.1.9. Se gap v ≤ 1, 000e −4 ou então sol πj < sol πj −1 , ∀ j ∈ G , parar o loop, fazer π = π + 1 e sol π = Cx v . 60 Fase 2: Pareto Race 4. Inicialização: 4.1. Fazer as componentes do vetor b iguais a: 4.1.1. as p primeiras componentes referem-se aos valores das p funções objetivo obtidas na última iteração da fase um; e 4.1.2. as m últimas ao RHS (Right Hand Side) das metas inflexíveis (restrições). 4.2. Fazer os intervalos de variação dos níveis de aspirações iguais a: LS j = b j + φ 2, 000 , ∀ j∈G LI j = b j − φ 2, 000 , ∀ j ∈ G 4.3. Fazer: ∆b j = φ , ∀ j ∈ G . 4.4. Fazer os vetores de direção d e de pesos w iguais a: ∆b k , se k ∈ G . wk := d k := 0, 000, se k ∈ R 5. Formular o seguinte PPL de acordo com os dados referentes ao problema: p + − Min y − y − ε ∑ Ck x k =1 SA.: C j x + w j y + − w j y − ≥ b j + td j , j ∈ G Ai x ≤ bi , + (6.2) i∈ R − x, y , y ≥ 0 6. Resolver o PPL (6.2) pelo método Pareto Race: 6.1. Fazer s = ∑w k iniciais 6.2. Resolver o PPL (6.2) pelo método SIMPLEX para t = 0, 000 e apresentar as soluções ao DM. Caso o mesmo esteja satisfeito com as soluções finalizar o algoritmo. 61 6.3. Loop um: 6.3.1. Atualizar, se necessário, os intervalos de variação dos níveis de aspirações, caso os valores atuais das FO’s não estejam compreendidos nestes intervalos, e fazer ∆b j = LS j − LI j , ∀ j ∈ G . 6.3.2. Caso o DM não esteja satisfeito com as soluções, questionar o mesmo sobre qual FO deverá ter seu valor aumentado ou fixado, fazer i =qual FO terá o valor aumentado/fixado, solicitar ao DM a velocidade que lhe convêm, e fazer ∆t = velocidade; 6.3.2.1. Caso o DM deseje fixar o valor de alguma FO fazer: wi = 0, 000; d i = 0, 000 onde i é o índice da FO fixada 6.3.2.2. Caso contrário (o DM deseja aumentar o valor de alguma FO): 6.3.2.2.1. Alterar o vetor d utilizando a seguinte fórmula: di = d i + 0,500∆bi onde : d = vetor novo d = vetor original ∆bi = intervalo de variação dos níveis de aspirações 6.3.2.2.2. Alterar o vetor w utilizando a seguinte fórmula: wi = wi 1,500 6.3.3. Normalizar os vetores d e w pela seguinte fórmula: s vi = vi . m + p ∑v j =1 , i = 1, 2,..., m + p j onde v = vetor d ou w normalizado v = vetor d ou w original 62 6.3.4. Atualizar o vetor b com os valores das funções objetivo da última solução e os vetores w e d com os valores normalizados calculados acima; 6.3.5. Resolver o PPL (6.2) pelo método SIMPLEX para t = 0, 000 ; 6.3.6. Calcular o intervalo de variação de t para o qual a base se mantém ótima pela seguinte fórmula: B −1 (b + td ) ≥ 0, 000 e achar o intervalo de variação [t − t1 ; t + t2 ] . 6.3.7. Se t2 = ∞ ou então t1 = 0, 000 e ∆t < 0, 000 , é alcançado o limite do politopo naquela direção; logo, o DM deverá ser questionado sobre nova direção. Se t2 = 0, 000 e ∆t > 0, 000 , significa que não é possível avançar na direção atual sem que haja mudança de base. Após a mudança de base, deve-se atualizar o intervalo [t − t1 ; t + t2 ] . 6.3.8. Loop dois: t + min{∆t ; t2 }, se ∆t > 0, 000 t + max{∆t ; −t1}, se ∆t < 0, 000 6.3.8.1. Fazer t = 6.3.8.2. Apresentar a solução xB = B −1 (b + td ) ao DM. Caso o mesmo esteja satisfeito com a solução, ou então deseje mudar a direção de busca, ou então t = limite superior do intervalo [t − t1 ; t + t2 ] : terminar o loop dois; caso contrário fazer t = t e reiniciar o loop dois. 6.3.9. Caso o DM esteja satisfeito com a solução terminar o loop um; caso contrário reiniciar o loop um. 6.4. Fim. 63 VI.3. Obtenção do Vetor Viável Inicial De posse dos dados do problema e após a modelagem matemática do mesmo, deve-se verificar qual das duas possibilidades abaixo retrata a realidade do nosso PPL: o O PPL está na forma padrão: Ax ≤ b ; ou o O PPL não está na forma padrão: ∃ Ai x ≥ bi e/ou ∃ Ai x = bi tal que i ∈ R . Caso o PPL esteja na forma padrão, a solução inicial x fica trivial: x i = ε * onde ε * é um valor pequeno comparado com a dimensão do problema. Caso o PPL não esteja na forma padrão: adicionando uma variável y * ao PPL original, somando ao RHS das restrições tipo maior ou igual um valor pequeno ε * , e fazendo o vetor β de modo que: β i = bi − Aiε * − ε * , i ∈ {restrições ≤ } β i = b j − Aj ε * + 2ε * , j ∈ {restrições ≥ } β i = b j - Aj ε , (6.3) j ∈ {restrições = } * formulamos o seguinte PPL auxiliar: n Min My * + ∑ xi i =1 SA.: Ai x + S Ii + β i y * = bi , i ∈ {restrições ≤ } Aj x − S I j + βi y* = b j + ε * , j ∈ {restrições ≥ } A j x + β y *i = b j , xk − S Ik +m + ε * y * = ε * , j ∈ {restrições = } k = {1, 2,..., n} y* , S I ≥ 0 onde M é um número muito grande 64 (6.4) Tal PPL auxiliar pode ser resolvido tanto pelo SIMPLEX quanto pelo método T T dos pontos interiores. Utilizando como ponto inicial x 0 = ( xT S IT y * ) = (ε ε 1) , que é T tanto interior quanto viável, estaremos aptos a resolver o PPL auxiliar pelo método dos pontos interiores. O vetor ε tem todas as suas componentes ε i = ε * e possui dimensão adequada. A solução ótima do PPL auxiliar, resolvido tanto pelo SIMPLEX quanto pelo método dos pontos interiores, nos fornecerá o ponto inicial x . 65 VI.4. Comentários Sobre o Algoritmo Como comentado anteriormente, a idéia central da metodologia proposta é a resolução da primeira iteração do Pareto Race pelo método de pontos interiores. Para tanto, na fase um, durante a inicialização, o DM é questionado sobre a velocidade que lhe convém. Tal velocidade será a média dos acréscimos que as FO’s sofrerão a cada solução intermediária. Convém ressaltar ao DM que esta velocidade é apenas um indicativo, não sendo uma medida fixa e rígida. Durante as várias soluções intermediárias que lhe serão apresentadas, o mesmo (DM) irá notar que os acréscimos sofridos pelas FO’s terão seus valores próximos à velocidade estabelecida na inicialização. O DM será também questionado sobre o valor médio esperado das FO’s. Este valor será utilizado para a determinação do vetor de pesos w . Caso o DM não tenha idéia sobre tal valor, uma alternativa é realizar a otimização de uma FO escolhida aleatoriamente. Fazendo x* a solução ótima desta FO escolhida aleatoriamente, teremos como valor médio esperado das FO’s a média dos valores que todas as FO’s assumem com este vetor ótimo x* . Durante as diversas interações do algoritmo com o DM, o mesmo é apresentado ao vetor de crescimento e é questionado se deseja modificá-lo ou não. Tal vetor de crescimento é o indicativo ao DM de quanto será o aumento individual das FO’s na próxima solução intermediária que lhe será apresentada. Ao aumentar (ou diminuir) uma componente do vetor de crescimento, a FO correspondente àquele aumento (ou diminuição), terá o acréscimo do seu valor na próxima iteração maior (ou menor) do que teria se não houvesse tal aumento (ou diminuição) no vetor de crescimento. Como o vetor de crescimento é normalizado, a média dos aumentos será próxima ao valor da velocidade estabelecida durante a inicialização. Se o DM estabelecer o vetor de crescimento unitário (todos componentes iguais a um), isto significará que o mesmo deseja que todas as FO’s tenham crescimento similar e o valor destes crescimentos será igual ao valor da velocidade ( ∆t ). Caso o DM deseje, por exemplo, que a FO1 tenha o dobro do crescimento das demais, o mesmo deverá estabelecer o vetor de crescimento como: µ = ( 2 1 1 ... 1) e, na próxima solução intermediária, o acréscimo da FO1 será aproximadamente o dobro do acréscimo sofrido pelas demais FO’s, e a média dos acréscimos será igual à velocidade. 66 Após o estabelecimento do vetor de crescimento, um novo vetor de aspirações ( b j ) é gerado através do valor atual das FO’s somadas aos acréscimos (vetor de crescimento vezes velocidade). Deste modo, a fase um irá sempre oferecer um ponto no espaço de decisão que é dominado, e questionar o DM sobre a direção na qual um passo de tamanho aproximadamente igual à velocidade será dado. Após tal passo ser dado, o novo ponto gerado é apresentado ao DM e o ciclo recomeça. Esta geometria, que proporciona a característica WIN-WIN, durante quase todo caminho no interior do politopo, está ilustrada na figura 6.1 abaixo, onde a cruz representa a solução intermediária gerada pela iteração anterior, o X representa o vetor de aspirações gerado pela iteração corrente e o representa o vetor de aspirações gerado pela iteração anterior. Observemos que na iteração Z, o vetor de aspirações gerado se encontra após a fronteira não dominada; logo, a solução gerada na iteração [ será um ponto não dominado, terminando assim a fase um. X Y Z [ Figura 6.1 Um ponto que merece atenção é o seguinte: se o vetor de aspirações é um ponto dominado, na solução ótima do PPL a componente da solução ótima y − terá seu valor maior do que a componente y + . O mecanismo de parada das iterações do método Afim Escala Primal se baseia nisto. Caso y − > y + , isto significará que a solução gerada pela atual iteração, estará localizada entre o vetor de aspirações e a fronteira não dominada. Quando detectado tal fato, o algoritmo pára e mostra a solução anterior ao DM. Após o estabelecimento do novo vetor de crescimento, um novo vetor de aspirações é gerado e o ciclo irá se repetir. Ao proceder deste modo, o algoritmo prossegue até que o vetor de aspirações gerado se encontre além da fronteira não dominada. Outro ponto que merece atenção é o valor da variável ρ : na descrição formal do algoritmo, ele foi fixado em ρ = 0,100 . Este valor proporcionará passos muito pequenos, o que fará com que a próxima solução intermediária a ser gerada possa estar bem próxima do vetor de aspirações. Isto, porém, acarretará um 67 esforço computacional maior, requerendo um número muito grande de iterações do método Afim Escala Primal. Uma maneira de se contrapor a isto é elevar o valor de ρ e, quando a solução gerada estiver próxima ao valor do vetor de aspirações, diminuí-lo novamente. O algoritmo termina quando o gap , que determina se a solução ótima foi alcançada, ficar abaixo do limite de 1, 000e −4 , ou então se ocorrer decréscimo em alguma FO. Como para o estabelecimento de trade-off’s entre FO’s o método Pareto Race se mostra muito mais eficiente que o de Pontos Interiores, caso tal fato ocorra (decréscimo em alguma FO), a fase um é finalizada, passando-se à fase seguinte: o método Pareto Race. O ponto final gerado pelo método de pontos interiores não pertence à fronteira não dominada, mas está muito próximo da mesma. Modificando o valor do vetor de aspirações para a solução final gerada pelo método de pontos interiores, e resolvendo o PPL pelo SIMPLEX, chegaremos à solução não dominada inicial do Pareto Race. Caso o DM deseje continuar a busca, o método Pareto Race será utilizado. Ressaltase que, a partir deste ponto, para cada aumento em uma FO, outra deverá obrigatoriamente ter seu valor decrescido. 68 CAPÍTULO VII UM EXEMPLO NUMÉRICO VII.1. Descrição do Problema A Força Aérea Brasileira (FAB), anualmente, na ocasião do recebimento da dotação orçamentária aprovada pelo Congresso Brasileiro, necessita distribuir seus recursos por suas diversas unidades. Grande parte destes recursos destina-se à manutenção do treinamento das Unidades Aéreas. Abordaremos, nesta seção, um exemplo de como a adoção da metodologia proposta por este trabalho pode ser utilizada para auxiliar na distribuição orçamentária descrita no parágrafo anterior. Para tanto, faremos uma simplificação, com fins didáticos, do problema real da FAB: só realizaremos a distribuição orçamentária dentro da sub-divisão da FAB chamada FAE III. A FAE III é o órgão responsável pela parte operacional da FAB e nela encontram-se os esquadrões de caça, ataque e reconhecimento aéreo. Outra simplificação adotada é a assunção de que o custo da hora de vôo é fixo e de que o treinamento de uma equipagem aérea (piloto) pode ser medido apenas pela quantidade de horas voadas. No nosso exemplo, estudaremos a distribuição do esforço aéreo dentre nove tipos de aeronaves: • Aviação de Caça: aeronaves F-5E e F-103E; • Aviação de Ataque: aeronaves T-27, AT-26 e A-1; • Aviação de Reconhecimento: aeronaves C-98A, R-95, R-35 e R-99. Para o nosso exemplo, utilizaremos o seguinte índice para as diferentes aeronaves: 1. F-5E 6. C-98A 2. F-103 7. R-95 3. T-27 8. R-35 4. AT-26 9. R-99 5. A-1 69 Foi estipulado por órgãos competentes do Comando da Aeronáutica que a capacitação individual dos pilotos seja medida pelas seguintes aproximações lineares da curva de aprendizado: f1 ( x) = 0,569 x − 6, 423 f 2 ( x ) = 0,814 x − 22,093 f3 ( x ) = 0,324 x + 9, 259 f 4 ( x ) = 0,343 x + 8,039 f5 ( x) = 0,343 x + 8,039 f 6 ( x) = 0, 297 x + 11,017 f 7 ( x ) = 0, 479 x − 0,685 f8 ( x ) = 0,479 x − 0,685 f9 ( x ) = 0, 479 x − 0,685 onde x é a quantidade de horas voadas. As funções capacitação acima descritas estão plotadas nas figuras abaixo: f ( x) f2 ( x) f1 ( x) x Figura 7.1 – Aviação de Caça 70 f ( x) f3 ( x ) f 4 ( x) e f5 ( x) x Figura 7.2 – Aviação de Ataque f ( x) f 7 ( x ), f8 ( x )e f9 ( x) f 6 ( x) x Figura 7.3 – Aviação de Reconhecimento Consideraremos que a distribuição de horas dentro do Esquadrão se dará uniformemente, isto é, todos os pilotos voarão as mesmas quantidades de horas; logo, 71 a capacitação de uma Unidade Aérea será igual à capacitação de um integrante da mesma. Também foi estipulado pelos órgãos competentes que a capacitação mínima de uma equipagem aérea é de 30% e a máxima é de 100%, assim como a máxima diferença de treinamento admissível entre as unidades de caça e de ataque é de 10% dentro da mesma aviação. Considerando fixos os custos da hora de vôo, temos as seguintes funções custo para as diversas aeronaves: • g1 ( x) = 25,570 x • g 6 ( x) = 1,000 x • g 2 ( x) = 49,780 x • g 7 ( x ) = 3,035 x • g3 ( x ) = 6,153 x • g8 ( x ) = 5,165 x • g 4 ( x ) = 28,682 x • g9 ( x ) = 8,859 x • g5 ( x) = 47,668 x A função custo da hora de vôo foi calculada pela multiplicação do custo real da hora de vôo pelo número de pilotos da unidade, ou seja, os valores acima discriminados representam quanto custa para que todos os pilotos daquela aeronave realizem uma hora de vôo. Devido ao sigilo do assunto, os valores da função custo foram normalizados pelo menor resultado da multiplicação mencionada acima. O número de pilotos, assim como os valores reais da hora de vôo, por motivos de segurança, foram omitidos. Para o nosso exemplo, simularemos que, da dotação orçamentária recebida pela FAB, a mesma destinou para o treinamento aéreo $32.000,00. Observemos que este valor representa o montante real dividido pelo menor valor da multiplicação do custo real da hora de vôo pelo número de pilotos da unidade dentre as diversas aviações. 72 Simularemos, também, que existem quatro objetivos almejados pelo alto escalão de DM’s da FAB: • Maximizar o treinamento da Terceira Força Aérea como um todo; • Maximizar o treinamento da Aviação de Caça; • Maximizar o treinamento da Aviação de Ataque; • Maximizar o treinamento da Aviação de Reconhecimento. Isto pode ser formulado matematicamente como: 9 Max z1 = ∑ f (x ) k =1 k k 9 f ( x ) + f 2 ( x2 ) Max z2 = 1 1 2 f ( x ) + f 4 ( x4 ) + f5 ( x5 ) Max z3 = 3 3 3 f ( x ) + f 7 ( x7 ) + f8 ( x8 ) + f9 ( x9 ) Max z4 = 6 6 4 9 SA.: ∑g k =1 k ( xk ) ≤ 32000 | f1 ( x1 ) − f 2 ( x2 ) | ≤ 10% | f3 ( x3 ) − f 4 ( x4 ) | ≤ 10% | f3 ( x3 ) − f5 ( x5 ) | ≤ 10% | f 4 ( x4 ) − f5 ( x5 ) | ≤ 10% f k ( xk ) ≥ 30%, ∀ k ∈ {1,2,...,9} f k ( xk ) ≤ 100%, ∀ k ∈ {1,2,...,9} onde: xk = quantidade de horas voadas por piloto na aeronave k . 73 VII.2. Aplicação da Metodologia Proposta Fase 1: Pontos Interiores O primeiro passo é a obtenção do ponto interior viável inicial x . Para tanto, o seguinte PPL auxiliar é formulado: n Min My * + ∑ xi i =1 SA.: Ai x + S Ii + β i y * = bi , i ∈ {restrições ≤ } Aj x − S I j + βi y* = b j + ε * , j ∈ {restrições ≥ } A j x + β y *i = b j , xk − S Ik +m + ε * y * = ε * , j ∈ {restrições = } (7.1) k = {1, 2,..., n} y* , S I ≥ 0 onde M é um número muito grande Ao fazer ε * igual a um e calcular o vetor β através da seguinte fórmula: β i = bi − Aiε * − ε * , i ∈ {restrições ≤ } β i = b j − Aj ε * + 2ε * , j ∈ {restrições ≥ } β i = b j - Aj ε * , (7.2) j ∈ {restrições = } obteremos: β T = (31823,089 7,799 10, 201 7,799 10,201 9,000 9,000 6, 425 24,425 67,086 66,914 66,914 67,371 66,086 66,086 66,086 65,757 65, 229 278,000 266,000 266,000 298,000 208,000 208,000 208,000 185,000 148,000) Fazendo o ponto inicial do PPL auxiliar igual à: T T T x 0 = ( x S I y * ) = (ε * ε * 1) e resolvendo o seguinte PPL auxiliar: 74 9 Min 1000 y * + ∑ xk k =1 9 SA.: ∑g k =1 k ( xk ) + S I1 + 31823,089 y * = 32000 f1 ( x1 ) − f 2 ( x2 ) + S I2 + 7,799 y * = 10% f 2 ( x2 ) − f1 ( x1 ) + S I3 + 10,201 y * = 10% f 3 ( x3 ) − f 4 ( x4 ) + S I4 + 7,799 y * = 10% f 4 ( x4 ) − f 3 ( x3 ) + S I5 + 10, 201 y* = 10% f 3 ( x3 ) − f5 ( x5 ) + S I6 + 9,000 y* = 10% f 5 ( x5 ) − f 3 ( x3 ) + S I7 + 9,000 y * = 10% f 4 ( x4 ) − f5 ( x5 ) + S I8 + 6, 425 y * = 10% f5 ( x5 ) − f 4 ( x4 ) + S I9 + 24,425 y * = 10% k +9 + β k + 9 y * = 30% + 1%, k = {1,2, ... ,9} k +18 + β k +18 y * = 100%, k = {1,2, ... ,9} f k ( xk ) − S I f k ( xk ) + S I xk − S I k + 27 + y * = 1, k = {1, 2, ... ,9} obteremos o seguinte ponto inicial para a fase um: T-27 67, 086 AT-26 66, 914 A-1 66, 914 C-98 67,371 x = R-95 = 66, 086 R-35 66, 086 R-99 66, 086 F-5E 65, 757 F-103 65, 229 Solicitar ao DM a velocidade que lhe convém. Simularemos que o mesmo desejou ∆t = 10 . Formular o seguinte PPL: p Min y + − y − − ε ∑ Ck x k =1 SA.: C j x + w j y + − w j y − − S F = b j , j ∈ G Ai x + S I = bi , x, y + , y − , S F , S I ≥ 0 75 i∈ R (7.3) FAe III 31, 000 31, 000 Ataque = Fazer o vetor φ = C x = . Reconhecimento 31, 000 Caça 31, 000 Questionando o DM sobre o valor médio que o mesmo acredita que as FO’s venham a atingir, obteremos φ = 80, 000 * 50% = 40, 000 . Fazer o vetor de pesos w igual a: φ = 40, 000, se k ∈ G . wk := se k ∈ R 0, 000, Calcular o vetor κ de modo que: κ i = { bi − Ai x | i ∈ R} κ T = (20355,150 10, 000 10, 000 10, 000 10, 000 10, 000 10, 000 10, 000 10, 000 3, 086 2,914 2,914 3,371 2, 086 2, 086 2, 086 1,757 1, 229 212,914 201, 086 201, 086 232, 629 143,914 143,914 143, 914 121, 243 84, 771) Fazer o ponto inicial: x 0 = ( xT S IT y+ y− ( T T SFT ) = x κ T 1, 000 1, 000 eT ) T Fazer v = 1 o contador do número de iterações do método de pontos interiores; fazer π = 1 o contador de soluções intermediárias e fazer mud = S . Fazer o vetor inicial de soluções intermediárias: FAe III 31, 000 Ataque 1 = 31, 000 . sol = φ = Reconhecimento 31, 000 Caça 31, 000 FAe III 1, 000 1, 000 Ataque = Fazer: µ 1 = . Reconhecimento 1, 000 Caça 1, 000 76 Apresentar o vetor de crescimento µ , os valores das FO’s (vetor sol1 ) e questionar o DM se o mesmo deseja mudar o vetor de crescimento. No nosso exemplo, o DM não quis modificar o vetor de crescimento µ . Atualizar o vetor b de acordo com o seguinte: 31,000 1,000 41,000 31,000 1,000 41,000 v −1 b j = C j x + µ j ∆t = + *10,000 = 31,000 1,000 41,000 31,000 1,000 41,000 Fazer y + (componente de x v −1 ) o menor inteiro positivo que atenda às restrições: C j x v−1 + ( y + − 1) w − b j > 0, ∀ j ∈ G y + ≥ 2, 000 No nosso exemplo: y + = 2, 000 . Atualizar o vetor S F (componente de x v −1 ) de modo que: b j − C j x v −1 − ( y + − 1) w + S Fj = 0, 000, ∀ j ∈ G 30, 000 30, 000 No nosso exemplo: S F = . 30, 000 30, 000 Fazer mud = N . A formulação (7.3), com os valores numéricos do nosso exemplo, fica, na forma matricial: 77 Ataque Reconhecimento Caça Variáveis de Folga das Metas Inflexíveis T-27 AT-26 A-1 C-98 R-95 R-35 R-99 F-5E F-103 Pesos S I1 S I 2 S I 3 S I 4 S I 5 S I 6 S I 7 S I8 S I 9 S I10 S I11 S I12 S I13 S I14 S I15 S I16 S I17 S I18 S I19 S I 20 S I 21 S I 22 S I 23 S I 24 S I 25 S I 26 S I 27 y + y − V. Folga M. Flex. RHS S F1 S F2 S F3 S F4 b FAE III 0,04 0,04 0,04 0,03 0,05 0,05 0,05 0,06 0,09 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 40,00-40,00-1,00 0,00 0,00 0,00 40,357 Ataque 0,11 0,11 0,11 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 40,00-40,00 0,00 -1,00 0,00 0,00 32,554 Reconhe. 0,00 0,00 0,00 0,07 0,12 0,12 0,12 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 40,00-40,00 0,00 0,00 -1,00 0,00 38,759 Caça 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,28 0,41 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 40,00-40,00 0,00 0,00 0,00 -1,00 55,258 Recursos 6,15 28,68 47,67 1,00 3,03 5,17 8,86 25,57 49,78 1,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 32000,00 10% ataque 0,32 -0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,001,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 8,78 10% ataque -0,32 0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 11,22 10% ataque 0,32 0,00 -0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 8,78 10% ataque -0,32 0,00 0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 11,22 10% ataque 0,00 0,34 -0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 10,00 10% ataque 0,00 -0,34 0,34 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 10,00 10% caça 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -0,57 0,81 0,000,00 0,00 0,00 0,00 0,00 0,00 -1,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 5,67 10% caça 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -0,57 0,81 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 25,67 min 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 min 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 64,00 64,00 min 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 -1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 max 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 280,00 max 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 268,00 max 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 268,00 max 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 300,00 max 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 210,00 max 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 210,00 max 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,000,00 0,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 210,00 max 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 187,00 max 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 0,00 0,00 0,00 0,00 0,00 0,00 150,00 FO -4 -1e -1e -4 -1e -4 -1e -4 -1e -4 -1e -4 -1e -4 -1e -4 -1e -4 0,000,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 1,00 -1,00 0,00 0,00 0,00 0,00 78 O ponto inicial x 0 ficará: T x 0 =(67,086 66,914 66,914 67,371 66,086 66,086 66,086 65,757 65,229 20355,150 10,000 10,000 10,000 10,000 10,000 10,000 10,000 10,000 3,086 2,914 2,914 3,371 2,086 2,086 2,086 1,757 1,229 212,914 201,086 201,086 232,629 143,914 143,914 143,914 121,243 84,771 2,000 1,000 30,000 30,000 30,000 30,000) Observemos que o vetor b j na formulação matricial está com os valores diferentes do estipulado anteriormente. Isto se deve aos valores dos termos livres b das funções capacitação ( f ( x) = ax + b ), cujo somatório foi subtraído do valor estipulado anteriormente. Resolvendo, com o valor de ρ = 0,100 , as diversas iterações pelo método dos pontos interiores, até que ( y − )v ≥ ( y + )v , obteremos o seguinte ponto no espaço objetivo: FAe III 38, 790 38, 779 Ataque = sol 2 = Reconhecimento 38, 646 Caça 39, 096 Apresentando o vetor de crescimento µ , os valores das FO’s (vetor sol 2 ) e questionando o DM se o mesmo deseja mudar o vetor de crescimento, o mesmo respondeu que desejaria que Aviação de Caça tivesse um crescimento três vezes maior e que a Aviação de Ataque tivesse um crescimento duas vezes maior que as demais. Isto nos leva ao seguinte vetor de crescimento: FAe III 1, 000 2, 000 Ataque 2 = µ = Reconhecimento 1, 000 Caça 3, 000 Que depois de normalizado ficará: T µ = ( 0,571 1,143 0,571 1,714 ) 79 Atualizando o vetor b j teremos: 38, 790 0,571 44,505 38, 779 1,143 50, 207 v −1 b j = C j x + µ j ∆t = + *10 = 38, 646 0,571 44,361 39, 096 1, 714 56, 238 Fazendo y − = 1 e calculando o valor de y + , obteremos y + = 2 . Atualizando S F teremos que: S FT = ( 34, 286 28,571 34, 286 22,857 ) . Resolvendo, com o valor de ρ = 0,100 , as diversas iterações pelo método dos pontos interiores, até que ( y − )v ≥ ( y + )v , obteremos o seguinte ponto no espaço objetivo: FAe III 52, 614 53,510 Ataque = sol 3 = Reconhecimento 47,820 Caça 60,859 Prosseguindo desta maneira, listaremos a seguir apenas os vetores de crescimento fornecidos pelo DM, o vetor b j gerado, assim como a solução intermediária: 1, 000 2, 000 3 µ = 1,500 3, 000 57,947 64,176 bj = 55,820 76,859 69,185 70, 029 4 sol = 61, 436 83, 414 1, 000 1, 200 4 µ = 1,100 0,900 78, 708 81, 457 bj = 71,912 91,986 82,603 82,178 5 sol = 77, 490 93, 465 1, 000 2, 000 5 µ = 1, 000 2, 000 89, 269 95,511 bj = 84,157 106, 798 82,584 85,109 6 sol = 73, 783 96, 400 80 O mecanismo de parada da sol 6 foi o gap < 1,000e −4 , e não ( y − )v ≥ ( y + )v ; logo, a fase um termina. Notemos que o mecanismo de término da fase um poderia também ter sido o fato de que tanto a FO1 quanto a FO3 tiveram seus valores decrescidos em relação à solução intermediária anterior. A partir deste ponto, ao iniciar a fase dois, existirá a necessidade do estabelecimento de trade-off’s entre as FO’s. A gráfico 7.1 ilustra os valores das soluções intermediárias apresentadas ao DM. Observemos que a característica WIN-WIN esteve presente em quase toda a fase um. A existência total ou parcial da característica WIN-WIN, durante a fase um, dever-se-á ao vetor crescimento fornecido pelo DM na última interação com o algoritmo. Se houver mudança considerável no vetor de aspirações, a característica WIN-WIN não existirá no ultimo passo dado pela fase um. Gráfico 7.1 81 Fase 2: Pareto Race Inicialmente, atualizamos as componentes do vetor b j com os valores assumidos pela última solução intermediária da fase um: FAe III 82, 584 85,109 Ataque = bj = Reconhecimento 73, 783 Caça 96, 400 Fazendo os limites de variação superior e inferior igual à: LS j = b j + φ 2, 000 , ∀ j∈G LI j = b j − φ 2, 000 , ∀ j ∈ G teremos: LS LI FAe III 102,584 62,584 Ataque 105,109 65,109 Reconhecimento 93,783 53,783 Caça 116,400 76,400 Fazer: ∆b k , se k ∈ G wk := d k := 0, 000, se k ∈ R 82 Formular o seguinte PPL: p Min y + − y − − ε ∑ Ck x k =1 SA.: C j x + w j y + − w j y − ≥ b j + td j , j ∈ G Ai x ≤ bi , (7.4) i∈ R x, y + , y − ≥ 0 Que resolvido pelo SIMPLEX para t = 0, 000 nos fornecerá o primeiro ponto localizado na fronteira não dominada: FAe III 82,597 85,122 Ataque 7 = sol = Reconhecimento 73, 796 Caça 96, 412 Observemos que a sol 7 está bem próxima da sol 6 . Questionando o DM se o mesmo está satisfeito com a solução, o mesmo diz que desejaria que a FO2 (Ataque) tivesse seu valor aumentado e que a velocidade seria ∆t = 0, 020 . Para tanto, os vetores w e d , já normalizados, ficarão: 43, 636 35,556 29, 091 53,333 w= e d = 43, 636 35,556 43, 636 35,556 Atualizar o vetor b j com os valores da sol 7 . Resolvendo o PPL (7.4) com os vetores w e b j atualizados, faremos a seguinte análise de sensibilidade: B −1 (b + td ) ≥ 0, 000 que nos fornecerá o seguinte intervalo de variação: [t − t1; t + t2 ] = [0, 000; 0, 064] 83 Prosseguindo nesta direção, com incrementos ∆t = 0, 020 teremos: t=0,000 t=0,020 t=0,040 t=0,060 t=0,064 FAe III 82,597 82,405 82,213 82,021 81,978 Ataque 85,122 85,422 85,722 86,023 86,089 Reconhecimento 73,796 73,358 72,919 72,481 72,384 Caça 96,412 95,974 95,535 95,097 95,000 Neste ponto é atingida uma aresta do politopo. Para continuar nesta direção, realizaremos uma mudança de base, que, no nosso exemplo, é a troca da variável S I8 pela S I26 . Computando a nova base e realizando novamente a análise de sensibilidade, obteremos: [t − t1; t + t2 ] = [0, 064; 0,385] Prosseguindo nesta direção, com incrementos ∆t = 0, 020 teremos: t=0,064 t=0,084 t=0,104 t=0,124 FAe III 81,978 81,766 81,553 81,340 Ataque 86,089 86,374 86,659 86,944 Reconhecimento 72,384 71,923 71,461 71,000 Caça 95,000 94,539 94,077 93,616 Neste ponto, o DM desejou fixar o valor da FO2 e aumentar o da FO3. Isto nos gerou os seguintes vetores normalizados: 60, 000 44,912 0, 000 e d = 0, 000 w= 40, 000 70,175 60, 000 44,912 84 Atualizemos o vetor b j com os valores da última solução. Resolvendo o PPL (7.4) com os vetores w e b j atualizados, teremos a seguinte análise de sensibilidade: [t − t1; t + t2 ] = [ 0, 000; 0,363] Prosseguindo nesta direção, com incrementos ∆t = 0, 020 teremos: t=0,000 t=0,020 t=0,040 … t=0,100 FAe III 81,340 81,565 81,789 82,462 Ataque 86,944 86,944 86,944 86,944 Reconhecimento 71,000 71,633 72,266 74,166 Caça 93,616 93,359 93,101 92,330 Supondo que o DM esteja satisfeito com tal resultado, a busca é encerrada. Os valores que as variáveis naturais assumem na solução preferida são: T-27 260, 285 AT-26 220, 237 A-1 220, 237 C-98 300, 000 x = R-95 = 210, 000 R-35 140, 469 R-99 64, 000 F-5E 182,308 F-103 134, 434 85 Os valores que a função capacitação assumem na solução preferida são: T-27 93, 611 AT-26 83, 611 A-1 83, 611 C-98 100, 000 f ( x) = R-95 = 100, 000 R-35 66, 663 R-99 30, 000 F-5E 97,330 F-103 87,330 FAe III 82, 462 86,944 Ataque = f ( x) = Reconhecimento 74,166 Caça 92,330 86 CAPÍTULO VIII CONCLUSÃO Foi proposta por este trabalho uma abordagem para a resolução de problemas de Programação Linear Multi-Objetivo que une duas correntes bem distintas: a de Pontos Interiores e a Abordagem Visual denominada Pareto Race. Com o objetivo de sanar as deficiências de cada abordagem, assim como de realçar seus pontos fortes, a metodologia por nós sugerida utiliza-se de duas fases. Na primeira fase, um algoritmo inédito de Pontos Interiores, cuja principal vantagem é a característica WIN-WIN durante a maior parte da trajetória pelo interior do politopo, guia o DM para a fronteira não dominada de maneira fácil e muito intuitiva, pois a única interação que o DM tem que fazer é explicitar o vetor de crescimento. Tal vetor de crescimento é o indicativo de quão maior ou menor será o crescimento de uma FO em relação às demais. Após a obtenção de um ponto localizado na fronteira não dominada, caso o DM deseje prosseguir na busca da solução preferida, o método Pareto Race será utilizado na fase dois da metodologia proposta. Para uma melhor compreensão da dinâmica proposta, uma pequena introdução foi feita no capítulo primeiro. Nesta introdução, o objetivo do trabalho foi enunciado, assim como a estrutura que o texto iria seguir. No capítulo segundo, um pequeno sumário tanto do histórico da abordagem Multi-Objetivo quanto da metodologia de Pontos Interiores foi realizado. Neste sumário, foi possível observar quão moderna é a abordagem proposta por este trabalho. Para facilitar o trabalho do leitor, foram reunidas, no capítulo terceiro, todas as Notações, Definições e Ferramentas utilizadas neste texto. As demonstrações matemáticas não triviais necessárias para o perfeito entendimento da mecânica utilizada pelo algoritmo proposto, foram reunidas na sub-seção chamada de Ferramentas. A metodologia para a resolução de problemas de Programação Linear denominada Pontos Interiores foi discutida no quarto capítulo. Especificadamente, o algoritmo Afim Escala Primal, o escolhido dentre os vários de Pontos Interiores disponíveis, foi extensivamente explorado neste capítulo. Para os leitores não familiarizados com Programação Não Linear, que é a base do algoritmo Afim Escala Primal, uma pequena introdução ao assunto foi feita no sub-capítulo IV.1. 87 A Abordagem Visual para problemas MOLP foi estudada no capítulo quinto, onde, além da descrição formal do algoritmo, um extenso exemplo numérico foi apresentado. Finalmente, nos capítulos sexto e sétimo, a metodologia proposta por este trabalho foi formalmente apresentada, assim como um exemplo numérico da sua utilização. No exemplo numérico, foi realizado um estudo da distribuição orçamentária realizada pela Força Aérea Brasileira. Como o objetivo primeiro da nossa proposta é facilitar o trabalho do DM na obtenção da solução preferida, o estudo detalhado do algoritmo feito no capítulo sétimo demonstrou que o mesmo (objetivo primeiro) foi alcançado. Ao explorar a característica WIN-WIN, o trabalho do DM foi facilitado pela não existência da necessidade do estabelecimento de trade-off’s entre as FO’s. Caso após a obtenção da primeira solução não dominada, o DM deseje continuar a busca, trade-off’s deverão ser feitos entre as FO’s, porém, pelo fato da existência explicita ou implícita da função utilidade na mente do DM, esta função utilidade deixa sua marca nas diversas interações do DM com a fase um do algoritmo: a definição do vetor de crescimento. Logo, a primeira solução não dominada estará próxima da solução preferida final. Adicionalmente ao objetivo primário, nossa metodologia proporciona uma menor possibilidade da existência do problema da parada prematura. Ao fornecer uma solução não dominada próxima à solução preferida final, a probabilidade da ocorrência de tal problema fica reduzida, pois a parte da busca realizada com trade-off’s fica diminuta. Podemos concluir da análise da metodologia proposta que: • A mesma fornece uma solução localizada na fronteira não dominada: subentende-se que um DM racional não irá se interessar por soluções dominadas; • Ao utilizar uma geometria na qual a característica WIN-WIN é predominante, a fase um do algoritmo facilita o trabalho do DM: é sabido e extensivamente discutido na literatura que uma das tarefas mais árduas ao DM é o estabelecimento de trade-off’s entre FO’s. Ao possibilitar a obtenção da solução não dominada inicial por uma metodologia que não exige esta penosa tarefa, o DM tem seu trabalho facilitado; 88 • O algoritmo proposto possibilita a pesquisa de toda a fronteira não dominada: ao utilizar-se do bem conhecido e provado Pareto Race na sua fase dois, o algoritmo proposto consegue prover o DM de uma ferramenta útil e de fácil utilização para a busca da solução preferida; • A metodologia sugerida diminui a probabilidade da ocorrência do problema da parada prematura: tal problema ocorre quando ao DM é exigida uma quantidade grande de trade-off’s entre as FO’s. Ao utilizarse da fase um para a obtenção da solução não dominada inicial, o algoritmo possibilita a redução do tamanho da busca a ser realizada com o Pareto Race. Ao restringir a quantidade de trade-off’s solicitados ao DM, a possibilidade da ocorrência do problema da parada prematura fica minimizada. Como trabalhos futuros, temos: • A implementação da metodologia proposta em um programa computacional; • A realização de estudos de sensibilidade nos resultados gerados; • A validação da metodologia ora proposta através da aplicação exaustiva da mesma em diversos ambientes e com diferentes DM’s; • A realização de análises comparativas do algoritmo proposto com outros algoritmos existentes; • A aplicação do algoritmo proposto em contextos mais amplos; • A análise de desempenho computacional do algoritmo proposto com a substituição do método Afim-Escala Primal por outros métodos de pontos interiores mais modernos, como, por exemplo, os da classe de trajetória central (barreira passos curtos e barreira passos longos). 89 CAPÍTULO IX BIBLIOGRAFIA ARBEL, A., 1993a, “An Interior Multiobjective Linear Programming Algorithm”, Computers & Operations Research, n. 20, pp. 723-735. ARBEL, A., 1993b, “A Weighted-Gradient Approach to Multi-Objective Linear Programming Problems Using the Analytic Hierarchy Process”, Mathematical Computations and Modelling, Vol. 17, n. 4/5, pp. 27-39. ARBEL, A., 1993c, Exploring Interior-Point Linear Programming: Algorithms and Software. London, The MIT Press. ARBEL, A., 1994, “Anchoring points and cones of opportunities in interior multiobjective linear programming problems”, Journal of the Operational Research Society, n. 45, pp. 83-96. ARBEL, A., KORHONEN, P., 1996, “Using aspiration levels in an interactive interior multiobjective linear programming algorithm”, European Journal of Operational Research, n. 89, pp. 193-201. ARBEL, A., KORHONEN, P., 2001, “Using objective values to start multiple objective linear programming algorithms”, European Journal of Operational Research, n. 128, pp. 587-596. BARNES, E. R., 1986, “A Variation on Karmarkar’s Algorithm for Solving Linear Programming Problems”, Mathematical Programming, n. 36, pp.174-182. BENAYOUN, R., MONTGOLFIER, J., TERGNY, J., LARITCHEV, O., 1971, “Linear Programming with Multiple Objective Functions: Step Method (STEM)”, Mathematical Programming, Vol. 1, n. 3, pp. 366-375. CAUCHY, A. L., 1821, Cours D’Analyse de L’École Royale Polytechinque, 1.: Analyse Algebrique. Paris, Imprim. Royale. CAVALIER, T., SOYSTER, A., 1985, Some Computational Experience and a Modification of the Karmarkar Algorithm. The Pennsylvania State University, ISME Working Paper, pp. 85-105. CLIMACO, J., ANTUNES, C. H., ALVES, M. J., 1996, Programação Linear Multiobjectivo – Métodos Interactivos, “Software” e Aplicações. Coimbra, Secção de Textos da Faculdade de Economia da Universidade de Coimbra. 90 DANTZIG, G. B., 1963, Linear Programming and Extensions. Princeton, Princeton University Press. DIKIN, I. I., 1967, “Iterative solution of problems of linear and quadratic programming”, Soviet Mathematics Doklady, n. 8, pp. 674-675. DIKIN, I. I., 1974, “On the speed of an iterative process”, Upravlyaemye Sistemi, n. 12, pp. 54-60. GEOFFRION, A. M., DYER, J. S., FEINBERG, A., 1972, “An Interactive Approach for Multicriterion Optimization, with an Application to the Operation of an Academic Department”, Management Science, Vol. 19, n. 4, pp. 357-368. GONZAGA, C. C., 1989, Algoritmos de Pontos Interiores para Programação Linear. Rio de Janeiro, Instituto de Matemática Pura e Aplicada do CNPq. KAHNEMAN, D., THERSKY, A., 1979, “Prospect theory: An analysis of decisions under risk”, Econometrica, n. 47, pp. 262-291. KARMARKAR, N., 1984, “A new polynomial time algorithm for linear programming”, Combinatorica, n. 4, pp.373-395. KHACHIYAN, L. G., 1979, “A polynomial algorithm for linear programming”, Soviet Mathematical Doklady, n. 20, pp. 191-194. KORHONEM, P., LAAKSO, J., 1986a, “A Visual Interactive Method for Solving the Multiple Criteria Problem”, European Journal of Operational Research, n. 24, pp. 277-287. KORHONEM, P., LAAKSO, J., 1986b, “Solving Generalized Goal Programming Problems Using a Visual Interactive Approach”, European Journal of Operational Research, n. 26, pp. 355-363. KORHONEM, P., MOSKOWITZ, H., WALLENIUS, J., 1990, “Choice Behavior in Interactive Multiple Criteria Decision Making”, In: Annals of Operations Research, n. 23, pp. 161-179. KORHONEM, P., WALLENIUS, J., 1988, “A Pareto Race”, Naval Research Logistics, n. 35, pp. 615-623. OLIVEIRA, P. R., 1989, Introdução à programação não linear. Rio de Janeiro, Gráfica da UFRJ / Coordenação do Programa de Pós Graduação em Engenharia. STEUER, R. E., 1977, “An Interactive Multiple Objective Linear Programming Procedure”, TIMS Studies in the Management Science, n. 6, pp. 225-239. 91 STEUER, R. E., 1989, Multiple Criteria Optimization: Theory, Computation, and Application. Reprinted ed, Malabar, Robert E. Krieger Publishing Company. STEUER, R. E., CHOO, E. U. 1983, “An Interactive Weighted Tchebycheff Procedure for Multiple Objective Programming ”, Mathematical Programming, Vol. 26, n. 1, pp. 326-344. VANDERBEI, R. J., MEKETON, M. J., FREEDMAN, B. A., 1986, “A Modification of Karmarkar’s Linear Programming Algorithm”, Algorithmica, n. 1, pp. 395-407. WIERZBICKI, A. P., 1980, “The Use of Reference Objectives in Multiobjective Optimization”, In: Fandel, G., Gal, T., Multiple Objective Decision Making, Theory and Application, New York, Springer-Verlag. WIERZBICKI, A. P., 1982, “A Mathematical Basis for Satisficing Decision Making”, Mathematical Modelling, Vol. 3, n. 5, pp. 391-405. WIERZBICKI, A. P., 1983, “Critical Essay on the Methodology of Multiobjective Analysis”, Regional Science and Urban Economics, Vol. 13, n. 1, pp. 5-29. ZIONTS, S., WALLENIEUS, J., 1976, “An Interactive Programming Method for Solving the Multiple Criteria Problem”, Management Science, Vol. 22, n. 6, pp. 652-663. 92