Wolfe Aplicado ao Problema Combinatório de Job
Transcrição
Wolfe Aplicado ao Problema Combinatório de Job
Universidade Federal da Bahia Instituto de Matemática Curso de Pós-graduação em Matemática Dissertação de Mestrado Método de Decomposição de Dantzig-Wolfe aplicado ao problema combinatório de Job-Shop Azly Santos Amorim de Santana Salvador-Bahia Outubro 2003 Método de Decomposição de Dantzig-Wolfe aplicado ao problema combinatório de Job-Shop. Dissertação apresentada ao colegiado do curso de Pós-Graduação em Matemática da Universidade Federal da Bahia, como requisito parcial para obtenção do Tı́tulo de Mestre em Matemática Pura. Banca examinadora Profa . Dra Isamara Carvalho Alves (Orientadora). Prof. Dr. Isaac Costa Lázaro Prof. Dr. Jés de Jesus Fiais Cerqueira Santana, A. “Método de Decomposição de Dantzig-Wolfe aplicado ao problema combinatório de Job-shop” / Azly Santos Amorim de Santana. Salvador-Ba, 2003. Orientadora: Dra. Isamara Carvalho Alves (Universidade Federal da Bahia). Dissertação de Mestrado apresentada ao curso de Pós-graduacão em Matemática da UFBA, 91 páginas. Palavras-Chave:Métodos de Decomposição, Decomposição de Problemas Combinatórios, Método de Decomposição de Dantzig-Wolfe, Problemas de Seqüenciamento do tipo Job-Shop. A Deus, meus Pais e Mô. “Você é do tamanho do seus sonhos.” César Souza. Agradecimentos Nesta etapa da vida, algumas pessoas contribuı́ram para o meu crescimento profissional e espiritual. Agradeço com carinho aos meus pais pela incondicional credibilidade e apoio em todas as minhas decisões. A “Mô” pela confiança, paciência e amor. A Ana Rita e Simone por me fazer entender o verdadeiro conceito de amizade. Aos meus primeiros e eternos amigos acadêmicos Adriana (Di), Ana Paula (Paulinha), Abı́lio (Bilolão), Gilson (Ligeirinho), Luciano (Negão), Moema (Mó), Osvaldo (Junico) e Rogério (Mancha). Agradeço com muitas saudades os momentos de apoio e diversão aos queridos companheiros, Adriano (Didi), Alex (Pig), Andréa (Déa), Ariadne, Calitéia (Baixinha), Conceição (Ceiça), Claúdio (Mano), érica (Kinha), Gilmar (Tchê), Ivana (Mocó), Ismar (Dindo), Jorge (Gump), José Joaquim, Juceli (Jú), Laura (Gospel), Maurı́cio (Tio Mau), Odete (Amanda), Paulo (Nasci), Reinaldo (Amigo), Rosely (Rosy), Stela (Pró), Rui. Aos professores Bahiano, Enaldo, Elinalva, Isaac, Marco Antonio, pelo profissionalismo e caráter, ao professor Jés pela disponibilidade e sugestões e, em especial, a Isamara pela credibilidade e dedicada orientação. Finalmente, à secretária Tânia por ter sido sempre tão prestativa e a grande amiga Cı́ntia Lé que tanto torceu por este tı́tulo de mestre. vi Resumo Neste trabalho, é abordado o método de decomposição de Dantzig-Wolfe aplicado ao problema de seqüenciamento do tipo job-shop. Este problema tem como caracterı́stica principal sua complexidade computacional na categoria de um problema NP-difı́cil(Jonhson[16] e Zwaneveld[35]). Tais problemas estão sujeitos a um conjunto de restrições envolvendo as operações nos produtos e nas máquinas, cujo objetivo é diminuir o custo de produção. A metodologia aplicada consiste em decompor o problema de job-shop em blocos (i é, subproblemas), reduzindo um grande volume de cálculo central por cálculos locais. Estes subproblemas são resolvidos separadamente e as suas soluções são supervisionadas por um nı́vel coordenador denominado Problema Mestre. Desta forma, o Problema Mestre gerencia as soluções fazendo com que as combinações convexas destas gerem a solução do problema global. Sendo assim, a partir do problema de job-shop, podemos formular o Problema Mestre e os subproblemas correspondentes. Cada subproblema é associado ao conjunto de restrições de uma máquina e ao Problema Mestre está associado as restrições de acoplamento representadas pelas restrições de precedência nos produtos. Contudo, ocorre que o conjunto de soluções viáveis de cada subproblema é ilimitado e pode acontecer infactibilidade. Conseqüentemente, propomos algumas modificações que permitem a aplicabilidade do método aos problemas de seqüenciamento do tipo job-shop. Os resultados encontrados por meio de testes numéricos em problemas de pequeno porte mostraram que a convergência do método é possı́vel, desde que sejam adotados limites adequados para as variáveis do problema. PALAVRAS CHAVE: Métodos de Decomposição,Decomposição de Problemas Combinatórios, Método de Decomposição de Dantzig-Wolfe, Problemas de Seqüenciamento do tipo Job-Shop. Abstract This work, address the Dantzig-Wolfe decomposition method applied in job-shop scheduling problems. These problems are well known as NP-hard in the strong sense (Johnson [16] and Zwaneveld [35]) constrained by capacity and precedence constraints, whose objective is decreasing the manufacturing cost. The use of this method is justified by the block angular structure of the technological coefficients matrices. Hence, the applied methodology decomposes the original problem into blocks (subproblems) supervisioned by a coordinator level (master problem) decreasing a large volume of central calculus by several local calculus. These subproblems receive a set of parameters from the master problem and their solutions are sent to the master problem, which combines these with previous solutions in the optimal way and computes new prices. From the job-shop problem, the master problem can be modelled considering link constraints the precedence constraints and the each subproblem is associated with one machine. However, the viable solution set of each subproblem is unbounded and the method may converge to an unfeasible solution. Consequently, we propose an modification which will allow us the applicability of this method in the job-shop problem. The results obtained from numeric tests of lower dimensions showed us that the convergence of the method is possible since adequate limit are adopted is possible since adequate limits are adopted. KEY-WORDS: Decomposition Methods, Dantzig-Wolfe Decomposition Method,Job-Shop Scheduling Problems. Sumário Resumo vii Abstract viii Lista de Figuras xi Lista de Tabelas xiii Introdução 1 1 Método de Decomposição de Dantizg-Wolfe 3 1.1 Princı́pio da Decomposição de Dantzig-Wolfe . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Algumas considerações sobre o algoritmo de Dantzig-Wolfe . . . . . . . . . . . . . . . 11 1.3 Problema Mestre Restrito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.4 Estratégia alternativa para decompor o primal . . . . . . . . . . . . . . . . . . . . . . 12 1.5 Região Xi ilimitada 14 1.6 Limite inferior para o custo mı́nimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.7 Interpretação econômica do método . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.8 Exemplo numérico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Os Problemas de Job-Shop 2.1 2.2 3 27 Os problemas de fábrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.1 Os produtos e os critérios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.2 As máquinas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 O Problema de Job-Shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2.1 Formulação Matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.2.2 Métodos de Resolução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Método de Dantzig-Wolfe e o Problema de Job-Shop 3.1 Decomposição do Job-Shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix 37 37 Sumário 3.2 x 3.1.1 Modelagem Matemática . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.1.2 Método de Dantizg-Wolfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.1.3 Aplicação do método de Dantzig-Wolfe ao Job-Shop . . . . . . . . . . . . . . . 40 3.1.4 Região Xk ilimitada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Problemas Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.1 Problema Teste 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2.2 Problema Teste 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Conclusão 81 Apêndice 83 Referências Bibliográficas 86 Índice Remissivo 89 Lista de Figuras 1.1 Comportamento dos métodos de decomposição. . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Estrutura bloco-angular com restrições de acoplamento. . . . . . . . . . . . . . . . . . 5 1.3 Estrutura bloco-angular com variáveis de acoplamento. . . . . . . . . . . . . . . . . . . 5 1.4 Estrutura bloco-angular com restrições e variáveis de acoplamento. . . . . . . . . . . . 5 1.5 Região factı́vel do conjunto X1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.6 Região factı́vel do conjunto X2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.1 Grafo potencial-tarefa representando o exemplo do job-shop. . . . . . . . . . . . . . . . 32 2.2 Diagrama de Gantt representando duas soluções para o exemplo do job-shop. . . . . . 32 2.3 Grafo conjuntivo da solução S2 para o exemplo do job-shop. . . . . . . . . . . . . . . . 33 3.1 Convergência do método do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . . 64 3.2 Diagrama de Gantt representando as soluções encontradas do problema teste 1. . . . . 64 3.3 Convergência do método do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . . 79 3.4 Diagrama de Gantt representando as soluções encontradas do problema teste 2. . . . . 79 A.5 Direções e direções extremas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 xi Lista de Tabelas 1.1 Tabela do Método Simplex Revisado referente ao problema mestre. . . . . . . . . . . . 15 1.2 Tabela inicial do simplex revisado do problema mestre. . . . . . . . . . . . . . . . . . . 21 1.3 Entra na base a variável λ22 , sai λ12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.4 Entra na base a variável λ21 , sai s. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.5 Solução ótima do exemplo 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.6 Entra λ31 e sai λ11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.7 Solução ótima do exemplo 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.1 Dados do problema-exemplo de job-shop. . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.1 Tabela do simplex revisado do problema mestre. . . . . . . . . . . . . . . . . . . . . . 45 3.2 Dados do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.3 Tabela inicial do simplex revisado do P.M do problema teste 1. . . . . . . . . . . . . . 52 3.4 Entra na base a variável λ22 , sai s4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.5 Entra na base a variável λ32 , sai s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.6 Tabela final na iteração 1 do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . 55 3.7 Entra na base a variável λ33 , sai λ32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.8 Tabela final na iteração 2 do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . 58 3.9 Entra na base a variável λ34 , sai λ33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.10 Tabela final da iteração 3 do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . 61 3.11 Limites por iteração do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.12 Comparação das soluções do problema teste 1. . . . . . . . . . . . . . . . . . . . . . . 63 3.13 Dados do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.14 Tabela inicial do simplex revisado do P.M do problema teste 2. . . . . . . . . . . . . . 71 3.15 Entra λ32 , sai s2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.16 Entra λ12 ,sai λ11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 xii Lista de tabelas xiii 3.17 Entra λ22 , sai s1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.18 Tabela final na iteração 1 do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . 75 3.19 Entra λ23 ,sai λ22 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.20 Tabela final na iteração 2 do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . 76 3.21 Limites por iteração do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.22 Comparação das soluções do problema teste 2. . . . . . . . . . . . . . . . . . . . . . . 78 Introdução Em geral os métodos de decomposição consistem em decompor um problema inicial de grande porte em problemas com dimensões menores, denominados subproblemas (ou problemas escravos). Tais subproblemas são supervisionados por um nı́vel de coordenação denominado Problema Mestre (ou problema coordenador). O procedimento consiste de um conjunto de subproblemas independentes cuja função objetivo e/ou vetor dos recursos (composta dos multiplicadores simplex do problema mestre) são atualizados a cada ITERAÇÃO de acordo com os parâmetros recebidos do problema coordenador. Assim, a cada ITERAÇÃO, os subproblemas são resolvidos separadamente e, em seguida, enviam suas soluções ao Problema Mestre.Esta troca de informações entre o Problema Mestre e os subproblemas é realizada em um número finito de iterações, garantindo a convergência para o valor ótimo, ou um sub-ótimo, do problema global. Dentre os principais métodos de decomposição podemos citar: as técnicas da Relaxação Lagrangeana[17][19][27]; o método de Dantzig-Wolfe [10][27]; o método de Benders[5][18][27]; e o método de Rosen[27]. A aplicação desses métodos dependerá da estrutura matricial dos coeficientes que envolvem o problema. Este trabalho aborda, em particular, o método de decomposição de Dantzig-Wolfe. Este método é aplicado em problemas lineares de grandes dimensões onde a matriz de coeficientes possui uma estrutura especial do tipo bloco angular, isto é, um ou mais blocos independentes são acoplados por um conjunto de restrições. As restrições de acoplamento, juntamente com a propriedade que permite reescrever elementos de um conjunto convexo como combinação linear convexa dos seus pontos extremos, possibilita a formação de um problema equivalente com um número menor de restrições denominado Problema Mestre. Este problema é resolvido por meio do método simplex revisado ([4]). O procedimento de resolução tem uma interpretação econômica a qual diz que o problema mestre coordena as ações dos subproblemas enviando os valores dos multiplicadores do simplex associados aos recursos usados no problema. O problema de seqüenciamento do tipo job-shop é um problema combinatório conhecido Introdução 2 por sua complexidade na categoria de um problema NP-difı́cil (Johnson[16] e Zwaneveld [35]). Além disso, os coeficientes das suas restrições apresentam uma estrutura matricial bloco angular. Tais caracterı́sticas justificam a aplicação de um método de decomposição. Podemos então a partir do problema de job-shop, formular um problema equivalente em dois nı́veis conforme apresentado no método de Dantzig-Wolfe. Para isso, construiremos o problema mestre considerando como restrições de acoplamento as restrições de precedência (restrições nos produtos), e a cada conjunto de restrições de máquina associaremos um subproblema. No entanto, o conjunto de soluções viáveis é ilimitado e pode acontecer subproblemas infactı́veis. Conseqüentemente, são necessárias algumas modificações nos espaços de soluções para garantir a aplicabilidade do método ao problema de job-shop. Primeiramente, propomos a criação de limites relacionadas às variáveis envolvidas nas restrições de acoplamento a fim de limitar os conjuntos de soluções. Em seguida, efetuamos o ajuste das soluções obtidas para garantir a converg encia ao valor ótimo do problema global. O texto está organizado da seguinte forma: O Capı́tulo 1 começa descrevendo brevemente os métodos de decomposição e em quais casos podem ser utilizados. Em seguida, enfatizamos o método de decomposição de Dantzig-Wolfe, mostrando de que forma o mesmo é estruturado e quais as alterações necessárias para o caso no qual o conjunto de soluções é ilimitado. Além disso, mostramos como podemos determinar um limite inferior para a solução ótima do problema original bem como a interpretação econômica do método. O Capı́tulo 2 tem como objetivo definir o problema de job-shop e apresentar a formulação matemática adotada. apresentamos as restrições adotada para o job-shop e as suas principais caracterı́sticas, assim como a sua representação pelo grafo potencial-tarefa e pelo Diagrama de Gantt. Finalmente, no Capı́tulo 3, reescrevemos o método de Dantzig-Wolfe adaptando-o à notação adotada ao problema de job-shop e aplicando ajustes ao conjunto das soluções viáveis de forma tal que garanta a factibilidade do problema mestre e dos subproblemas. Concluı́mos apresentando testes numéricos e as respectivas análises que validam a aplicabilidade do método em problemas de pequenas dimensões. Capı́tulo 1 Método de Decomposição de Dantizg-Wolfe Em geral, os métodos de decomposição consistem em decompor um problema inicial de grande porte em problemas com dimensões menores, denominados subproblemas ( ou problemas escravos ) permitindo substituir um grande volume de cálculo central por cálculos locais. Tais subproblemas trabalham de forma paralela, seqüencial ou interativa, supervisionados por um nı́vel de coordenação, denominado problema mestre (ou problema coordenador). O problema mestre recebe informações dos subproblemas e altera, a cada iteração, os parâmetros que atualiza a função custo e/ou o vetor de recursos de cada subproblema, permitindo através de suas soluções uma aproximação para a solução ótima global, se esta existir. Na Figura 1.1, este processo é representado considerando o problema original particionado em p subproblemas, onde t1 , t2 , · · · , tp são as soluções locais dos correspondentes subproblemas e os λ0 s é o vetor-solução do problema mestre. PROBLEMA MESTRE t1 λ λ tp SUBPROBLEMA SUBPROBLEMA No 1 No p Figura 1.1: Comportamento dos métodos de decomposição. Princı́pio da Decomposição de Dantizg-Wolfe 4 Os métodos de decomposição são utilizados quando temos um/ou mais dos seguintes objetivos: • Reduzir a dimensão do problema quando o número de variáveis e/ou de restrições é muito elevado a fim de efetuar a resolução dos subproblemas de dimensões menores; • Hierarquizar um processo de decisão em vários nı́veis, onde cada unidade econômica possui uma unidade de controle que garante a coordenação entre os subsistemas dos nı́veis inferiores; • Descentralizar um problema de decisão decompondo-o em subproblemas com suficiente autonomia para tomar suas próprias decisões; • Particionar um problema com dados heterogêneos em subproblemas homogêneos; • Paralelizar de acordo com a evolução do material para o cálculo paralelo (multitarefa, multiprocessador). O Princı́pio da decomposição, consiste inicialmente em analisar a estrutura do problema e, a partir desta informação, fazer a escolha do método de decomposição mais adequado. Dentre os principais métodos clássicos de decomposição podemos citar: as técnicas da Relaxação Lagrangeana[17][19][27]; o método de Dantzig-Wolfe [10][27]; o método de Benders[5][18][27] e o método de Rosen[27]: (i) O método da Relaxação Lagrangeana e o de Dantzig-Wolfe são aplicados aos problemas que apresentam a matriz de coeficientes com a estrutura bloco-diagonal com restrições de acoplamento conforme apresentada na Figura 1.2; (ii) O método de Benders é aplicado aos problemas que apresentam a matriz de coeficientes com a estrutura bloco-angular com variáveis de acoplamento conforme a Figura 1.3; (iii) O método de Rosen é aplicados aos problemas que apresentam a matriz de coeficientes com a estrutura bloco-angular com restrições e variáveis de acoplamento conforme a Figura 1.4. Este trabalho enfatiza o método de Dantzig-Wolfe. Sendo assim, este capı́tulo aborda o algoritmo de decomposição de Dantzig-Wolfe considerando conjuntos de soluções limitados e ilimitados. Princı́pio da Decomposição de Dantizg-Wolfe RESTRIÇÕES DE ACOPLAMENTO { 5 A2 A1 AP B1 B2 BP Figura 1.2: Estrutura bloco-angular com restrições de acoplamento. { VARIA´VEIS DE ACOPLAMENTO B1 b1 b2 B2 bP BP Figura 1.3: Estrutura bloco-angular com variáveis de acoplamento. { VARIA´VEIS DE ACOPLAMENTO RESTRIÇÕES DE ACOPLAMENTO { A1 A2 AP B1 b0 b1 b2 B2 BP bP Figura 1.4: Estrutura bloco-angular com restrições e variáveis de acoplamento. 1.1 Princı́pio da Decomposição de Dantzig-Wolfe Consideremos o Programa Linear: min z = cx Sujeito a : (P L) Ax = b x≥0 cuja matriz dos coeficientes das restrições tem estrutura p-bloco angular, com p ≥ 1, na forma: A1 A2 · · · Ap B1 . A= B2 .. . Bp (1.1) Princı́pio da Decomposição de Dantizg-Wolfe 6 Notemos que qualquer programa linear pode ser visto nesta forma se for considerado p=1. Assim, particionando o conjunto de restrições em dois subconjuntos, de acordo com a matriz A, temos o (P L) (1.1) como segue min z = cx Sujeito (1.2) a: Â1 x = b1 (r1 restrições) (1.3) A2 x = b2 (r2 restrições) (1.4) x ≥ 0 (1.5) Assumiremos que o poliedro convexo (Ver definição no Apêndice) S2 = {x|A2 x = b2 , x ≥ 0} é limitado, e chamaremos o conjunto E = {x1 , · · · , xj , · · · , xr } dos r pontos extremos de S2 . Portanto, qualquer x ∈ S2 pode ser escrito como combinação convexa destes pontos extremos: r X x= λj xj (1.6) j=1 onde r X λj = 1, (1.7) λj ≥ 0; j = 1, · · · , r. (1.8) j=1 O problema original (1.2) - (1.5) deverá ser visto como segue: selecionemos, de todas as soluções de (1.4) e (1.5), aquelas que satisfazem (1.3) e minimize z. Substituindo (1.2) em (1.6) e (1.3), obtemos r X (Â1 xj )λj = b1 , (1.9) j=1 e z= r X (cxj )λj . (1.10) = Â1 xj , (1.11) = cxj , (1.12) j=1 Definindo, pj e fj Princı́pio da Decomposição de Dantizg-Wolfe 7 teremos o Programa Linear (1.2)-(1.5) na variável λj : r X min z = fj λj j=1 Sujeito a: r X pj λj = b1 j=1 r X λj = 1 j=1 λj ≥ 0; j = 1, · · · , r. (1.13) (1.14) (1.15) (1.16) Este novo problema (1.13)-(1.16), denominado Problema Mestre (PM), é equivalente ao problema original (1.2) - (1.5). O PM contém apenas (r1 + 1) restrições, enquanto que o problema original possuı́a (r1 + r2 ), significando assim uma considerável redução no número de restrições para r2 muito grande. Particularmente, a técnica do Método Simplex Revisado [4] é usado para resolver o PM. Veremos então como isto é feito considerando o coeficiente do custo relativo f¯j para a variável λj do seguinte modo: pj f¯j = fj − π − − − 1 ; (1.17) onde o vetor π = fB B −1 , para fB = cB xB , ou seja, π é o vetor dos multiplicadores do simplex. Agora, vamos particionar π: π = (π1 , π0 ) onde π1 é o vetor das variáveis duais correspondentes às restrições(1.14) e π0 é a variável dual correspondente à única restrição (1.15). Então, usando as definições (1.11) e (1.12) de fj e pj em f¯j podemos reescrevê-lo na forma, f¯j = (c − π1 Â1 )xj − π0 . (1.18) O critério usual do método simplex considera min f¯j = f¯s = (c − π1 Â1 )xs − π0 ; j (1.19) indicando desta forma a variável λs para entrar na base. Relembremos que xj é um ponto extremo de S2 , e notemos que f¯j é linear em xj . Sabendo-se que uma solução ótima de um programa linear convexo, cujo conjunto de restrições é limitado, sempre ocorre em um ponto extremo deste conjunto, notemos que a expressão (1.19) é equivalente ao subproblema definido como Princı́pio da Decomposição de Dantizg-Wolfe 8 min (c − π1 Â1 )x (1.20) Sujeito a : A2 x = b2 , (1.21) x ≥ 0. (1.22) Seja xs o ponto ótimo do subproblema (1.20) - (1.22) com valor objetivo f¯s . Se f¯s ≥ 0 significa que todos os custos relativos à base λj são não positivos, logo não podemos mais melhorar a solução do PM. Em decorrência, assumiremos que a solução ótima do problema original PL(1.1) é 0 x = r X λj xj (1.23) j=1 onde os xj ’s são pontos extremos de S2 correspondentes à base λj . Caso contrário, sef¯s < 0 ainda podemos melhorar a solução do PM. Daı́, λs entra na base s Â1 x é atualizada, pré-multiplicando-a pelo inverso da base de λj ,ou e a coluna correspondente 1 s Â1 x . Notemos que ys ≤ 0 não pode ocorrer visto seja B −1 , originando a nova coluna ys = B −1 1 que S2 foi assumido como limitado produzindo um problema mestre limitado. A variável λB a sair da base é determinada pela razão mı́nima usual, ou seja, deixa a base a variável λr onde o ı́ndice r é determinado como segue: b̄r b̄i = min { , yis > 0}; yrs 1≤i≤(m+1) yis (1.24) onde yrs é denominado elemento pivô. Com o pivoteamento, a base inversa,(B −1 ), as variáveis duais,(π), e o valor objetivo (z) são atualizados. Este procedimento torna-se bastante interessante se p > 1, isto é, se o problema resolvido tem a forma Princı́pio da Decomposição de Dantizg-Wolfe 9 min z = c1 x1 + c2 x2 + · · · + cp xp Sujeito a: A1 x1 + A2 x2 + · · · + Ap xp = b0 B1 x1 = b1 B2 x2 .. = b2 . = .. . (1.25) (1.26) Bp xp = bp x1 ≥ 0, x2 ≥ 0, · · · , xp ≤ 0. com o subproblema (1.20) - (1.22) p X (ci − π1 Â1 )xi min i=1 Sujeito a: Bi xi = bi , i = 1, · · · , p xi ≥ 0, i = 1, · · · , p. (1.27) (1.28) (1.29) (1.30) O objetivo (1.28) é uma soma separável em xi e as restrições (1.29) são independentes. Desta forma, este problema pode ser reduzido a p-subproblemas independentes, onde o i-ésimo subproblema pode ser representado como segue: min (ci − π1 Ai )xi . Sujeito a : (1.31) (1.32) Bi xi = bi , xi ≥ 0. (1.33) Adotando-se Xi = {xi |Bi xi = bi ; xi ≥ 0}, (1.34) o i-ésimo subproblema apresenta-se: min (ci − π1 Ai )xi . xi ∈Xi (1.35) Um algoritmo de dois nı́veis para resolver o problema de (1.25) - (1.27) deverá agora ser formulado com o problema mestre (1.13) - (1.16) no primeiro nı́vel e os subproblemas (1.31) - (1.33) Algoritmo de Dantzig-Wolfe 10 no segundo. Assumiremos que uma solução inicial do problema mestre é conhecida com a matriz base correspondente, B, e as variáveis duais π1 , π0 . Neste caso, o algoritmo de decomposição de Dantzig-Wolfe pode ser visto como segue: Algoritmo 1.1. Algoritmo de Decomposição de Dantzig-Wolfe 1. Usando as variáveis duais π1 , resolvemos cada subproblema i (1.31) - (1.33) obtendo as suas respectivas soluções xi (π1 ), e o valor ótimo objetivo, zi0 . Seja x(π1 ) = (x1 (π1 ), · · · , xp (π1 ))t . 2. Calculamos os valores dos custos relativos das variáveis λ0j s, f¯j (1.18), e escolhemos o mı́nimo entre eles: min f¯j = j p X zi0 − π0 ; (1.36) i=1 onde zi0 = min (ci − π1 Ai )xi . (1.37) Se este valor mı́nimo for um valor não negativo, ou seja , min f¯j ≥ 0, (1.38) significa que podemos parar o algoritmo, pois não existem mais candidatas a entrar na base. Assim, a solução ótima para (1.25) - (1.27) é x0 = r X λj xj , (1.39) j=1 onde xj são pontos extremos de S2 correspondentes à variável básica λj . 3. Se min f¯j < 0, construı́mos a coluna p X Ai xi (π1 ) i=1 1 (1.40) atualizada através da multiplicação pela inversa da antiga base, B −1 , e usando a operação pivô do simplex usual, obtemos uma nova base inversa e um novo vetor dos multiplicadores simplex (variáveis duais). Retornamos à 1 e repetimos todo o processo. Observações 11 Se o problema mestre é não degenerado[4], então cada iteração decresce z para um valor não nulo. Isto se deve ao fato que existe um número finito de bases possı́veis e nenhuma se repete. Sendo assim, o princı́pio da decomposição de Dantzig-Wolfe encontrará a solução ótima em um número finito de iterações. Observe que a solução ótima do problema original, x0 , não é necessariamente qualquer uma das soluções dos subproblemas. Por (1.39) temos que x0 é alguma combinação convexa de tais soluções. Portanto, o problema mestre não pode obter o ótimo do problema original simplesmente enviando os correspondentes custos π1 aos subproblemas. O problema mestre deverá combinar estas soluções para obter a solução global. 1.2 Algumas considerações sobre o algoritmo de Dantzig-Wolfe 1. Observamos que o seguinte algoritmo é uma implementação direta do método simplex revisado. Exceto o cálculo dos custos relativos f¯ij que é obtido resolvendo o subproblema i. Entretanto, o algoritmo converge em um número finito de iterações. 2. Em cada iteração, uma melhor solução básica factı́vel para o problema mestre, (1.47)-(1.53), é obtida ao introduzir a variável não básica λsj , gerada pela solução do subproblema, (1.55) - (1.57). Sendo assim, osubproblema fornece um ponto extremo xjs , que corresponde a uma f¯sj . coluna atualizada ysj 3. Em cada iteração um novo vetor dual é passado do problema mestre para o subproblema. A base ótima da última iteração é utilizada, a fim de atualizar a sua função, modificando seus custos. 4. Em cada iteração, o subproblema não precisa ser otimizado completamente. é necessário apenas que o corrente ponto extremo xjs satisfaça f¯sj ≤ 0. Neste caso λsj é candidato a entrar na base. 5. Se as restrições do problema mestre são desigualdades, então nós devemos verificar os custos das variáveis de folga que foram adicionadas resolvendo os subproblemas. Para as restrições i do problema mestre do tipo ≤ associada à variável de folga si , nós temos, e1 − 0 = π1 . fsi − zsi = (π1 , π0 ) 0 (1.41) Assim, para um problema de minimização uma variável de folga associada com a restrição do tipo ≤ é eleita a entrar na base se π1 > 0. ( Note que o critério de entrada é π1 < 0 para restrições do tipo ≥). Problema Mestre Restrito 12 6. Para darmos inı́cio ao método, deveremos partir de uma solução básica factı́vel inicial. Caso, esta solução não seja possı́vel ao ser acrescentado as variáveis de folga, devemos usar algum método para obter tal solução; como por exemplo o Método das Duas Fases ou do Big-M[4]. 1.3 Problema Mestre Restrito Como previamente formulado, o princı́pio da decomposição de Dantzig-Wolfe, resolve proble- ma de otimização em dois nı́veis. Ao nı́vel chamado Problema Mestre (1.13) - (1.16), é possı́vel apresentar uma nova formulação denominada de Problema Mestre Restrito. Tal problema apresenta além das colunas referente à variável de entrada, as colunas das variáveis que foram retiradas. Então o problema mestre restrito pode ser escrito na forma min f1 λ1 + · · · + fm λm + f λ Sujeito a: (1.42) (1.43) p λ + · · · + p λ + pλ = b 1 1 m m 0 (1.44) λ1 + · · · + λm + λ = 1 λ ≥ 0, i = 1, · · · , m, λ ≥ 0 (1.45) i 0 onde m = m1 + 1, os λi s são as variáveis básicas corrente e λ é a variável que está entrando na base. Assumindo que a variável λ tem um custo relativo f¯ < 0, se a base corrente é não degenerada, a variável que deixar a base terá um f¯ positivo, e portanto, a nova solução será ótima. O único caso no qual mais de uma iteração é necessária para passar o teste de otimalidade é quando a base corrente é degenerada e o elemento pivô, (1.24), na coluna de entrada é negativo. Neste caso, não é muito vantajoso resolver o problema na forma (1.42) - (1.45). 1.4 Estratégia alternativa para decompor o primal Uma outra forma de decompor o problema primal (1.25) - (1.27), alterando a forma do problema mestre (1.13) - (1.16), é considerar as soluções para o conjunto de restrições do subproblema i escritas como: xi = r X λij xji (1.46) j=1 com o xji ponto extremo de Xi (1.34); i = 1, 2, · · · , p. Então, é fácil verificar que o problema mestre resulta em Estratégia alternativa para decompor o primal 13 min p X r X fij λij (1.47) Sujeito a: p X r X pij λij = b0 (1.48) i=1 j=1 i=1 j=1 r X λij = 1, i = 1, 2, · · · , p, j=1 λij ≥ 0 onde fij pij = ci xji = Ai xji (1.49) (1.50) (1.51) (1.52) (1.53) Este novo problema apresenta algumas vantagens computacionais que podem ser vistas quando consideramos as soluções de (1.47) - (1.53) pelo método simplex revisado. Além disso, difere do problema mestre (1.13) - (1.16) obtido inicialmente, em dois aspectos: (1) particularmente, ele tem p linhas convexas;(2) cada subsistema Bi xi = bi , xi ≥ 0, é representado separadamente por um conjunto de variáveis λij . Sejam B uma matriz básica factı́vel (m1 + p) × (m1 + p) e π1 , π01 , · · · , π0p as variáveis duais para esta base, com π1 associado à restrição (1.48) e os π0i associados à restrição (1.49). Atualizando a coluna associada à λij , produzimos f¯ij = (ci − πAi )xji − π0i . (1.54) O problema encontrado para i fixo, min f¯ij , é equivalente a resolver o i-ésimo subproblema j min (ci − π1 Ai )xi (1.55) Sujeito a: (1.56) Bi xi = bi , xi ≥ 0. (1.57) Esses são os mesmos subproblemas conforme foram obtidos previamente em (1.31) - (1.33). O caso da região Xi ilimitada 14 Seja zi0 o valor objetivo minimal do subproblema (1.55) - (1.57) acima. Se f¯sj = min min f¯ij = min (zi0 − π0i ) ≥ 0 i j i (1.58) a solução corrente é ótima. Caso contrário, a coluna a entrar na base é aquela com min(zi0 − π0i ). i (1.59) Se o mı́nimo acima ocorre para i = se xjs (π1 ) é solução do subproblema s, a coluna correspon- As xjs (π1 ) dente à variável a entrar na base é dada por − − − − − , onde us é um vetor p-componente com us um na posição s e zeros nas outras. Esta nova coluna entra na base produzindo novos multiplicadores (π1 , π0 ). Colunas similares poderiam ter sido gerados das soluções de outros subproblemas. Seja m = m1 +p, definimos {pij } como as colunas da base corrente, e seja p∗1 , · · · , p∗p as colunas geradas das últimas soluções dos subproblemas correspondentes a λ∗1 , λ∗2 , · · · , λ∗p . O novo problema mestre restrito será 1.5 p p X X X min fij λij + fi∗ λ∗i = b0 i=1 j básico i=1 p p X X X p λ + p∗i λ∗i = b0 ij ij i=1 j básico i=1 X λij + λ∗i = 1; i = 1, 2, · · · , p j básico λij ≥ 0, i = 1, 2, · · · , p j = 1, 2, · · · , r λ∗i ≥ 0, i = 1, 2, · · · , p (1.60) (1.61) (1.62) (1.63) (1.64) Região Xi ilimitada Para um conjunto Xi = {xi |Bi xi = bi ; xi ≥ 0} ilimitado o algoritmo de decomposição de Dantzig-Wolfe deve ser modificado. Neste caso, os pontos de Xi serão representados como uma combinação linear convexa dos pontos extremos de Xi mais uma combinação linear não negativa das suas direções extremas (ver em Apêndice ). Em outras palavras, ∀xi ∈ Xi temos, O caso da região Xi ilimitada 15 r X λij xji + l X µik dki (1.65) λij = 1 (1.66) λij ≥ 0, j = 1, 2, · · · , r; i = 1, 2, · · · , p (1.67) µik ≥ 0, k = 1, 2, · · · , l; i = 1, 2, · · · , p (1.68) xi = j=1 k=1 r X j=1 onde x1i , x2i , · · · , xri são pontos extremos de Xi e d1i , d2i , · · · , dli são direções extremas de Xi . O problema original deverá ser transformado no chamado problema mestre nas variáveis λij e µik como segue: p X p X r l X X j (ci xi )λij + (ci dki )µik min i=1 j=1 i=1 k=1 Sujeito a: p X p X r l X X j (Ai xi )λij + (Ai dki )µik = b0 i=1 j=1 i=1 k=1 r X λij = 1; i = 1, 2, · · · , p j=1 λij ≥ 0, j = 1, 2, · · · , r; i = 1, 2, · · · , p µik ≥ 0, k = 1, 2, · · · , l; i = 1, 2, · · · , p. (1.69) (1.70) (1.71) (1.72) (1.73) Para resolver este problema (1.69)-(1.73) optamos por utilizar o método simplex revisado visto que o número de variáveis poderá ser muito grande dependendo da quantidade de pontos extremos e direções extremas. A fim de iniciarmos tal método, devemos ter uma solução básica factı́vel com a sua matriz base correspondente, B, as variáveis duais π1 correspondentes à restrição (1.70) e π0i −1 correspondente à restrição (1.71). Lembremos que π = (π1 , π01 , · · · , π0i , · · · , π0p ) = fB B , fB é o b0 , mostrado na Tabela 1.1. custo das variáveis básicas e b̄ = B −1 1 (π1 , π01 , · · · , π0i , · · · , π0p ) fB b̄ B −1 b̄ Tabela 1.1: Tabela do Método Simplex Revisado referente ao problema mestre. Relembremos que a solução é ótima para o problema original se os custos relativos das variáveis do problema mestre são todos não negativos, f¯ij ≥ 0 e f¯ik ≥ 0. Em particular, as condições O caso da região Xi ilimitada 16 de otimalidade devem satisfazer às seguintes condições: (i) λij não básica ⇒ 0 ≤ f¯ij = ci xji − π (ii) µik não básica ⇒ 0 ≤ f¯ik = ci dki − π Ai xji 1 Ai dki 0 = (ci − π1 Ai )xj − π0i i (1.74) = (ci − π1 Ai )dki (1.75) Devido ao elevado número de variáveis não-básicas, verificar as condições de otimalidade (1.74) - (1.75) é computacionalmente inviável. Portanto devemos determinar se as condições são válidas ou não resolvendo os subproblemas. Determinamos inicialmente o conjunto solução e o valor objetivo minimal zi0 , de cada subproblema i (1.31) - (1.33) e, em seguida, aplicamos o critério usual do método simplex (1.58) Suponhamos primeiramente que o valor da solução ótima do subproblema é ilimitada. Isto é possı́vel se somente se, uma direção extrema dks é encontrada tal que (cs − π1 As )dks < 0. Isto significa que a condição (1.75) foi violada. Portanto, a variável µsk é eleita a entrar na base. Neste caso, A dk s s é atualizada pré-multiplicando-a por B −1 e a coluna resultante é inserida na Tabela 1.1. 0 Assim, o método simplex revisado continua com uma próxima iteração. Consideremos agora a solução ótima limitada. Neste caso, (ci − π1 Ai )dki ≥ 0 ocorre para todas as direções extremas, então a condição necessária e suficiente (1.75) para que a solução seja limitada, é válida. Por outro lado observemos também a validade da equação (1.74). Sejam xjs um ponto extremo ótimo e f¯sj o objetivo ótimo para o subproblema s (1.31)-(1.33). Se f¯sj ≥ 0, a condição (1.74) é válida para o subproblema s, ou seja, pela otimalidade de xjs , para cada ponto extremo xji , temos f¯ij = (ci − π1 Ai )xji − π0i ≥ (cs − π1 As )xjs − π0s = f¯sj (1.76) e portanto, temos uma solução ótima do problema original. Caso contrário, se f¯sj < 0 então λsj é eleita a entrar na base. Isto é feito inserindo a coluna j As xs f¯sj −1 na Tabela 1.1, onde ysj = B − − − − − onde us é um vetor p-componente com um ysj us na posição s e zeros nas outras. é importante salientar que se o problema mestre apresentar outras variáveis explı́citas incluindo as variáveis de folga, então deveremos verificar os custos reduzidos destas variáveis antes de deduzirmos a otimalidade. Limite inferior para o custo mı́nimo 17 Em resumo, cada subproblema i é resolvido separadamente. Se o subproblema s produz uma solução ilimitada, então uma direção extrema dks encontrada, é candidata a entrar na base do problema mestre. Se o subproblema s produz um ponto ótimo limitado e f¯sj < 0, então a variável associada ao ponto extremo é candidato a entrar na base mestre. Se nenhuma dessas condições ocorre, então não existem candidatas a entrar na base do problema mestre, ou seja, temos o ótimo. Caso contrário, podemos aplicar a regra do f¯sj mais negativo dentre as variáveis candidatas a entrar na base mestre. Selecionando a candidata, atualizamos a coluna correspondente, fazemos os devidos pivoteamentos na tabela mestre e repetimos o processo com as outras candidatas. 1.6 Limite inferior para o custo mı́nimo Relembrando o Algoritmo de Dantzig-Wolfe(Seção 1.1) vimos que para satisfazermos o seu critério de parada tı́nhamos que efetuar muitos cálculos nas iterações. Este fato nos levaria a consumir muito tempo computacional quando o problema fosse de grande porte. Por esta razão, desenvolveremos um limite inferior para o valor objetivo da solução factı́vel do problema original, e portanto, um limite inferior do objetivo ótimo. Por outro lado, como o algoritmo de Dantzig-Wolfe gera pontos factı́veis que não pioram o valor objetivo pelo problema mestre, nós temos uma seqüencia de limites superiores não crescente. Então, devemos parar quando a diferença entre o objetivo do ponto factı́vel corrente e o limite inferior estiver dentro de uma tolerância aceitável. Isto não deverá fornecer o ponto ótimo verdadeiro, mas garantirá boas soluções factı́veis dentro de qualquer precisão desejável ao ótimo. Considere o problema mestre (1.47)-(1.53), reescrito abaixo; p X r X min z = fij λij i=1 j=1 Sujeito a: p X r X pij λij = b0 i=1 j=1 r X λij = 1, i = 1, 2, · · · , p, j=1 λij ≥ 0 (1.77) (1.78) (1.79) (1.80) (1.81) Limite inferior para o custo mı́nimo 18 onde (1.82) = ci xji fij = Ai xji pij (1.83) Multiplicando (1.78) pelos multiplicadores simplex π1 e (1.79) pelos multiplicadores π0i ,somando e subtraindo da equação (1.77), produzimos z − π1 b0 − X π0i = XX i i λij (fij − π1 pij − π0i ) (1.84) j O valor da expressão (fij − π1 pij − π0i ) na equação (1.84) é o custo relativo para λij , f¯ij . Resolvendo os subproblemas (1.55)- (1.57), calculamos min f¯ij para cada i. Como λij é não negativo, j f¯ij , poderá ser substituı́do por este valor minimal e portanto a equação (1.84) pode ser vista como a desigualdade (1.85) abaixo: z − π1 b0 − z − π1 b0 − X π0i ≥ XX i i X X π0i ≥ i i λij min f¯ij j j (min f¯ij ) j X λij (1.85) (1.86) j Substituindo (1.79) a desigualdade (1.86) torna-se: z ≥ X (min f¯ij ) + π1 b0 + j i X π0i (1.87) i Sabendo que (1.87) é válida para todos os valores de z obtido do problema mestre (1.77)(1.83), então valerá para o valor mı́nimo. Assim, min z ≥ X i (min f¯ij ) + π1 b0 + π0 ep j (1.88) onde ep é o vetor p-dimensional com componentes iguais ao valor um. A expressão (1.88) poderá ser escrito na forma mais compacta fazendo, b0 b 0 = cB B −1 = cB xB = zB (π1 , π0 ) ep ep (1.89) onde zB é o valor de z associado á base corrente, B. Portanto (1.88) torna-se: min z ≥ zB + p X i=1 definindo assim o limite inferior. (min fij ) j (1.90) Interpretação econômica do método 1.7 19 Interpretação econômica do método Considere um nı́vel central e um subnı́vel de uma organização descentralizada. O nı́vel p X central opera em um primeiro conjunto de restrições Ai xi = b0 , e o subnı́vel no segundo conjunto i=1 de restrições Bi xi = bi , i = 1, 2, · · · , p. Temos que b0 e bi deverá ser interpretado como recursos para o nı́vel central e subnı́vel, respectivamente. Durante o curso do algoritmo, informações são comunicadas de um nı́vel para o outro. O nı́vel central resolve o Problema mestre e como resultado, valores marginais π ou recursos centrais, são comunicados para os subnı́veis. O subnı́vel resolve os subproblemas nos quais a função objetivo incorpora os custos para utilização dos recursos centrais. O subnı́vel então sugere atividades xi para incorporar ao nı́vel central. Durante as iterações, nenhuma informação direta correspondente aos coeficientes nas restrições é comunicada entre o nı́vel central e o subnı́vel. Além disso, a informação do custo é comunicado do nı́vel central para o subnı́vel. Na maioria das aplicações, as restrições que não são de acoplamento formam a estrutura diagonal, nas quais as variáveis são agrupadas em blocos independentes. Isto significa que os subproblemas são separados em vários problemas independentes. Em um contexto econômico, a estrutura bloco angular reflete a divisão em múltiplos subnı́veis independentes, onde cada um comunica diretamente com o nı́vel central. 1.8 Exemplo numérico Para ilustrar o princı́pio da decomposição de Dantzig-Wolfe, consideremos o problema min −x1 − x2 − 2x3 − x4 (1.91) Sujeito a: x1 + 2x2 x1 + 2x1 + + 2x3 + x4 ≤ 40 3x2 ≤ 30 x2 ≤ 20 (1.92) (1.93) (1.94) Exemplo 20 x3 x3 xj + ≥ ≤ 10 x4 ≤ 10 x4 ≤ 15 0 (1.95) (1.96) (1.97) (1.98) j = 1, · · · , 4 Este problema tem a primeira restrição, (1.92), identificada como de acoplamento e dois blocos independentes, sendo o primeiro bloco formado pela segunda e terceira restrição (1.93) - (1.94) e o segundo bloco formado pela quarta, quinta e sexta restrição, (1.95), (1.96) e (1.97) respectivamente, cujas as regiões factı́veis são mostradas nas Figuras 1.5 e 1.6, respectivamente. x x 2 4 20 15 10 (5,10) 10 (10,5) (6,8) 10 30 x 10 15 1 x 3 Figura 1.6: Região factı́vel do conjunto X2 . Figura 1.5: Região factı́vel do conjunto X1 . Além disso, o problema pode ser decomposto em dois problemas menores, incluindo ao prop X r X blema mestre as restrições de convexidade λij = 1. Seja x1 e x2 soluções factı́veis para os i=1 j=1 p X p X r X i=1 i=1 j=1 blocos 1 e 2, respectivamente, escrevemos x = xi = λij xji , onde xji são pontos extremos do subproblema i. A função objetivo e as restrições de acoplamento são escritas como z = c1 x1 + c2 x2 A1 x1 + A2 x2 + s = b h onde c1 = (−1, −1), c2 = (−2, −1), A1 = i h i , A = 1 2 2 1 ,x1 = (x1 , x2 ),x2 = (x3 , x4 ), b = 40 2 e s = (s1 , s2 ) tal que s ≥ 0. O problema mestre é transformado em min z = X j (c1 xj1 )λ1j + X j (c2 xj2 )λ2j (1.99) Exemplo 21 Sujeito a: 2 X X (Ai xji )λij + s = b i=1 (1.100) j 2 X X λij = 1 (1.101) λij ≥ 0, i = 1, 2 (1.102) i=1 j Escolhendo x11 = x12 = (0, 0) e substituindo no problema mestre (1.99)-(1.102), devemos obter como solução básica inicial λ11 = λ21 = 1, s = 40. Assim, a tabela do simplex revisado é como segue: Variável básica Colunas do problema mestre s s λ11 λ11 λ12 −z 1 Constantes 40 1 λ12 1 1 1 −z 1 0 Tabela 1.2: Tabela inicial do simplex revisado do problema mestre. ITERAÇÃO 1 Os multiplicadores do simplex (variáveis duais) para o problema mestre estão contidos no topo da Tabela 1.2, os quais são todos nulos. Logo o primeiro conjunto de subproblemas é min z1 = −x1 − x2 Sujeito a: B1 x1 ≤ b1 onde B1 = 1 3 2 1 Exemplo 22 e min z2 = −2x3 + x4 Sujeito a: B2 x2 ≤ b2 onde 1 0 B2 = 0 1 1 1 com soluções ótimas: x21 = (6, 8) z10 = −14, x22 = (10, 5) z20 = −25. Os custos mı́nimos relativos são: min fˆx1 = z10 − π01 = −14 ≤ 0, min fˆx2 = z20 − π02 = −25 ≤ 0. Assim, temos associado a cada solução dos subproblemas uma coluna do problema mestre. As colunas correspondentes à solução corrente são: c1 x21 A1 x21 1 0 −14 22 = 1 0 c2 x22 A2 x22 e 0 1 −25 25 = 0 1 O problema mestre restrito decorrente do problema mestre corrente mais as novas colunas é como segue; min −14λ21 − 25λ22 (1.103) Sujeito a: 22λ21 + 25λ22 + s = 40 λ11 λ21 + λ12 + + λ22 = 1 = 1 (1.104) com todas variáveis não negativas. O problema (1.103)-(1.104) é resolvido pelo Método Simplex Revisado produzindo as Tabelas 1.3, 1.4 e 1.5 abaixo: Exemplo 23 Variável básica Colunas do problema mestre s s λ11 λ12 −z Constantes λ22 40 25 1 0 1 1 0 -25 1 λ11 1 λ12 1 −z Coluna de entrada 1 Tabela 1.3: Entra na base a variável λ22 , sai λ12 . Variável básica Colunas do problema mestre s s λ11 1 λ11 λ12 −z Constantes λ21 15 22 1 1 1 1 25 -14 -25 1 λ22 1 −z 25 Coluna de entrada 1 Tabela 1.4: Entra na base a variável λ21 , sai s. Variável básica Colunas do problema mestre s λ21 1 22 λ11 1 − 22 λ11 1 λ22 −z 14 22 λ12 −z Constantes 25 − 22 15 22 25 22 7 22 1 1 200 22 1 6 34 11 Tabela 1.5: Solução ótima do exemplo 1. a nova solução para o problema original é: x1 = λ11 x11 + λ21 x21 = 7 15 (0, 0) + (6, 8) 22 22 x2 = λ22 x22 = (10, 5) 368 . z = − 11 ITERAÇÃO 2 Novos multiplicadores simplex são encontrados na Tabela 1.5 µ ¶ 14 200 (π, π01 , π02 ) = − , 0, − . 22 22 (1.105) (1.106) (1.107) Exemplo 24 Esses são usados para formar novos custos para os subproblemas 14 8 6 (1, 2)]x1 = − x1 + x2 22 22 22 14 16 8 z2 = (c2 − πA2 )x2 = [(−2, −1) + (2, 1)]x2 = − x3 + − x4 22 22 22 z1 = (c1 − πA1 )x1 = [(−1, −1) + (1.108) (1.109) Minimizando z1 e z2 sobre o conjunto de restrições dos subsistemas obtemos a solução ótima: x31 = (10, 0) 80 z10 = − 22 (1.110) x22 = (10, 5) 200 z20 = − 22 (1.112) (1.111) (1.113) O novo problema mestre restrito ficará da forma min −14λ21 − 25λ22 − 10λ31 − 25λ32 (1.114) Sujeito a: 22λ21 + 25λ22 + 10λ31 + 25λ32 = 40 λ11 λ21 + + λ31 λ22 + λ32 = 1 = 1 (1.115) A solução ótima para o problema restrito é uma solução básica factı́vel para este problema, com base inversa dada no final da Tabela 1.5 da Iteração 1. A solução do problema (1.114) - (1.115) é apresentado nas Tabelas1.6 e 1.7. Variável básica Colunas do problema mestre s λ21 1 22 λ11 1 − 22 λ11 1 λ12 Constantes λ31 25 − 22 15 22 10 22 25 22 7 22 12 22 1 1 0 1 6 34 11 − 80 22 λ22 −z 14 22 Coluna de entrada 200 22 −z Tabela 1.6: Entra λ31 e sai λ11 . Exemplo 25 Variável básica Colunas do problema mestre s λ11 λ12 λ21 1 12 − 10 12 − 25 12 5 12 λ31 1 − 12 22 12 25 12 7 12 1 1 λ22 −z 4 12 80 12 −z 200 12 Constantes − 110 3 1 Tabela 1.7: Solução ótima do exemplo 2. A solução factı́vel corrente para o problema original (1.91)-(1.98) é ¶ µ 5 7 25 10 2 2 3 3 x1 = λ1 x1 + λ1 x1 = (6, 8) + (10, 0) = , 12 12 3 3 x2 = λ22 x22 = (10, 5) 110 z = − . 3 (1.116) (1.117) (1.118) ITERAÇÃO 3 Os novos multiplicadores do simplex (ver Tabela 1.7) e as funções objetivos dos subproblemas são µ (π, π01 , π02 ) = − 4 80 200 , , 12 12 12 ¶ (1.119) z1 = (c1 − πA1 )x1 = [(−1, −1) + 4 12 (1, 2)]x1 = − 23 x1 + − 31 x2 z2 = (c2 − πA2 )x2 = [(−2, −1) + 14 22 (2, 1)]x2 = − 43 x3 + − 32 x4 A solução ótima dos subproblemas é x41 = (6, 8) (1.120) ou x51 = (10, 0) 20 z10 = − 3 (1.121) x42 = (10, 5); 50 z20 = − 3 (1.123) min fˆx1 = z10 − π01 = 0 (1.125) min fˆx2 = z20 − π02 = 0 (1.126) 80 12 (1.127) min ĉs = −π01 = (1.122) (1.124) Exemplo 26 Visto que o valor de (1.125), (1.126) e (1.127) são não negativos, a solução corrente do problema mestre é ótima, e a solução ótima do problema original conforme (1.116) - (1.118), é dada por: 25 10 , ) 3 3 x2 = (x3 , x4 ) = (10, 5) 110 z = − . 3 x1 = (x1 , x2 ) = ( (1.128) (1.129) (1.130) Capı́tulo 2 Os Problemas de Job-Shop Os problemas de seqüenciamento do tipo job-shop são problemas combinatórios classificados NP-difı́cil[16]. Este problema de job-shop tem como dados: tarefas, restrições de potencialidade, recursos e função econômica. As tarefas podem ser ligadas por restrições de potencialidade . Estas englobam: (i) as restrições de sucessão , as quais significam, uma tarefa deve ser executada posteriormente a uma outra tarefa; (ii) as restrições de localização no tempo , as quais significam,uma tarefa deve ser concluı́da em uma determinada data ou sua execução não deve começar antes e nem finalizar após uma determinada data. Estas tarefas requerem certos recursos para a sua exe cução. Estes recursos, por sua vez, introduzem restrições disjuntivas no problema. Uma restrição disjuntiva aparecerá quando duas tarefas, utilizando um mesmo recurso, não puderem ser executadas simultaneamente. Enfim, deve-se programar as tarefas de forma a otimizar um determinado critério que será a minimização de uma determinada função econômica. De um ponto de vista industrial, num problema de fábrica, as tarefas (chamadas operações elementares) são reagrupadas em entidades chamadas trabalhos (ou jobs). Um problema de fábrica, em geral, contém um conjunto de máquinas distintas e cada trabalho é um conjunto de operações elementares, onde cada uma delas deve ser executada numa máquina diferente. Podemos distinguir três tipos de problemas de fábrica , segundo a natureza das restrições de precedência entre as operações de um mesmo trabalho[3]: (1) se as operações são independentes, tratase de um problema de open-shop ; (2) se as operações são ligadas por uma ordem, não necessariamente idêntica para todos os trabalhos, trata-se de um problema de job-shop ; (3) se as operações são ligadas Os problemas de fábrica 28 por uma mesma ordem para todos os trabalhos, trata-se de um problema de flow-shop . Em particular, trataremos o problema de job-shop cujas caracterı́sticas serão mostradas nas seções seguintes. 2.1 Os problemas de fábrica Nos problemas de fábrica, as tarefas são as operações elementares relativas à fabricação de um produto; elas necessitam para sua realização de um recurso principal chamado máquina. A fabricação de um produto é sempre denominado trabalho(job). Geralmente, as operações de um mesmo trabalho são organizadas em uma seqüência denominadas gama operatória , enquanto que as operações de trabalhos diferentes são independentes. Consideramos o caso no qual uma fábrica contém m máquinas distintas e n produtos. Cada n X produto Pi é um conjunto de ni operações elementares. Assim, existem n0 = ni operações na i=1 fábrica, cada uma delas tendo que ser executada, numa máquina diferente: a utilização de uma máquina k por uma operação j é denotada Mk (Oj ) = Mk ; Nós utilizamos as seguintes notações: • P = o conjunto de n produtos (trabalhos) Pi . • M = o conjunto de m máquinas Mk . • O = o conjunto de todas as operações(tarefas) Oj . 0 • O = O ∪ {O0 , Of im } = o conjunto de todas as operações (tarefas), incluindo as operações fictı́cias,O0 e Of im , que não são executadas em máquinas e não aparecem nos produtos. Estas operações devem ser executadas respectivamente, antes e após todas as operações Oj ∈ O. O 0 conjunto O contém n0 operações enquanto que O contém (n0 + 2) operações. 2.1.1 Os produtos e os critérios Os produtos podem chegar na fábrica numa mesma data ou de forma seqüenciada. Esta- mos falando respectivamente dos problemas estáticos e dinâmicos. Quando as datas de chegada dos produtos são conhecidas de forma determinada podemos impor ao produto Pi , • uma “data mais cedo (ri )” que representa o instante mais cedo de inı́cio de sua execução; O problema de Job-Shop 29 • uma “data mais tarde (di )” que representa o instante limite de fim de sua execução. A data de fim de execução para cada produto i é comumente denotada por Ci = max {Cj }, 1≤j≤ni onde Cj representa a data de fim de execução da operação j na gama operatória do produto i. 2.1.2 As máquinas As máquinas são recursos disjuntivos e assim, a execução das operações que utilizam a mesma máquina deve ser planejada de tal sorte que as máquinas tenham uma operação por vez para tratar. O seqüenciamento dos problemas de fábrica resulta freqüentemente na procura de seqüencias de operações sobre as máquinas. Consideramos o caso onde uma operação só pode ser executada numa única máquina (fábricas com máquinas especializadas ), e os casos particulares onde todas as operações são executadas numa única máquina existente na fábrica (fábricas com uma única máquina). Nas fábricas com máquinas especializadas, podemos distinguir três tipos de problemas de fábrica segundo a natureza das restrições de precedência entre as operações elementares de um mesmo trabalho denominados[31]: (1) open-shop,(2) job-shop e (3) flow-shop. O caso particular onde uma só máquina existe na fábrica problemas com uma máquina foi muito estudado na literatura [3]; a fabricação de cada produto é então reduzida a uma única operação denominada simplesmente tarefa. 2.2 O Problema de Job-Shop Consideremos os problemas de seqüenciamento do tipo job-shop constituı́dos por um conjunto M de m máquinas, um conjunto P de n produtos, um conjunto O de n0 operações: M = {Mk |k = 1, . . . , m} ; P = {Pi |i = 1, . . . , n} ; e O = {Oj |j = 1, . . . , n0 }. A utilização de uma máquina Mk por uma operação Oj é denotado por M (Oj ) = Mk . O número total de operações executado por uma máquina Mk é denotado por mk . A duração de execução de Oj em Mk , denominada de tempo operatório, é denotada pj . Durante este tempo, a máquina será O problema de Job-Shop 30 ocupada e todas as outras operações sobre a mesma máquina aguardarão a sua vez de processamento. Dessa forma, toda operação numa máquina terá uma data de inı́cio de execução denotada por tj . Esta data, calculada para cada operação numa mesma máquina, depende do instante de finalização da operação precedente. O instante de término para uma operação Oj é denotado Cj , onde Cj = tj + pj . Uma operação pode ser então caracterizada por seu produto, sua posição na gama operatória, sua máquina e sua duração de execução. A máquina deve ser ocupada durante um perı́odo de tempo conhecido a fim de processar a operação. A seguir apresentamos as principais caracterı́sticas de um produto Pi : • ni = número de operações. • Pi = {O1 ; O2 ; . . . ; Oni } = seqüência de operações (gama operatória). • pi = ni X pj = duração total de fabricação de Pi . j=1 • ri = instante mais cedo de lançamento para toda operação de Pi . • di = instante mais tarde do fim de execução para todas as operações de Pi . • Ci = instante para finalizar o processamento completo de Pi , onde Ci = max {Cj }. 1≤j≤ni Nos limitamos aos problemas de job-shop estáticos e determinı́sticos com máquinas especializadas. Dizemos que um problema é estático quando todos os seus dados são conhecidos a priori, e determinı́stico quando os tempos associados a cada operação são perfeitamente determinados. Dizemos que o problema é com máquinas especializadas quando possui uma lista de operações, para cada produto, e uma ordem de passagem nas máquinas, imposta inicialmente. As restrições do problema de job-shop estão relacionadas às possibilidades de utilização das máquinas e às ligações que podem existir entre as operações. As restrições que nós adotamos são as seguintes: • referentes às máquinas – As máquinas são independentes umas das outras, e estão disponı́veis durante todo o perı́odo do seqüenciamento. – Uma máquina não pode executar mais de uma operação em um determinado instante. A superposição de operações em uma mesma máquina é proibida. O problema de Job-Shop 31 – Não pode existir a preempção, isto é, uma operação em execução não pode ser interrompida pois todas possuem a mesma prioridade. • referentes aos produtos – Os produtos são independentes entre si e não existe uma ordem de prioridade entre eles. – Um produto deve passar por uma única máquina a cada vez, ou seja, cada operação de sua gama operatória deve passar por uma máquina diferente. – Na gama operatória de um produto, cada operação deve respeitar uma ordem de execução: a operação Oj+1 não pode ser iniciada antes do término de Oj . A fim de tornar mais compreensiva todas as definições vistas, apresentamos um exemplo de um problema de job-shop cujos dados são mostrados na Tabela 2.1. O critério de otimização deste problema é a n=4 m=3 n1 = n2 = n3 = 3 m1 = m2 = m3 = 4 produto operação duração máquina 1 1 3 2 1 2 3 3 1 3 1 1 2 4 3 3 2 5 2 2 2 6 3 1 3 7 1 2 3 8 4 1 3 9 4 3 4 10 4 1 4 11 3 2 4 12 2 3 Tabela 2.1: Dados do problema-exemplo de job-shop. minimização do tempo total de seqüenciamento (makespan): min {max Ci }. Devemos então determinar i a seqüência das operações em cada máquina, de tal sorte que ela seja a menor possı́vel respeitando todas as restrições do problema. Podemos também representar este problema de job-shop utilizando grafo potencial-tarefas G = (X , C ∪ D) onde X é o conjunto de nós do grafo associado a cada operação de um determinado produto, C representa o conjunto relativo aos arcos associados às restrições de precedência e D representa o conjunto dos arcos associados às restrições disjuntivas[31]. Desta forma, o problema acima, ficará ilustrado pelo grafo G como mostra a Figura 2.1. Na Figura 2.1, mostramos o grafo com o conjunto de arcos conjuntivos C representados pelas flechas contı́nuas e o conjunto dos arcos disjuntivos D representados pelas flechas pontilhadas. Estes O problema de Job-Shop 32 3 3 1 O1 O2 O3 3 2 3 O4 O5 O6 0 0 O0 1 4 4 O7 O8 O9 3 4 2 O11 O10 MAQUINA ´ 1 ´ MAQUINA 2 Ofin O12 ´ MAQUINA 3 Figura 2.1: Grafo potencial-tarefa representando o exemplo do job-shop. arcos disjuntivos representam as máquinas. Cada operação é representada por um nó. Os arcos que partem de cada nó são ponderados pela duração da operação correspondente. Os arcos que estão à origem do nó O0 são ponderados pelo instante do lançamento da primeira operação de cada produto. Os arcos que chegam ao nó Of im são ponderados pelo instante do término da última operação de cada produto. Neste exemplo, todos os produtos são lançados inicialmente ao instante 0[31]. Para representar a solução deste problema de job-shop utilizamos o diagrama de Gantt, que nos permite visualizar um seqüenciamento representando a ocupação das máquinas pelas operações em função do tempo[31]. Apresentamos, na Figura 2.2, duas soluções possı́veis para este problema num diagrama de Gantt. Observamos que todas as restrições do problema são respeitadas; não existe superposição entre as operações. Notemos que a solução S1 forneceu um comprimento do seqüenciamento maior que a solução S2 : Cmax1 À Cmax2 . Isto foi devido ao fato que, em S1 , encontramos muito mais tempo morto1 nas máquinas que em S2 . Estes tempos mortos são representados pelos espaços vazios de uma faixa antes do inı́cio da execução de alguma operação numa mesma máquina. M1 P1 P2 M2 P3 M3 P4 0 ~ S : Solucao 1 ´ C = 33 max1 33 tempo M1 P1 P2 M2 P3 P4 M3 0 13 ~ S : Solucao 2 ´ tempo C = 13 max2 Figura 2.2: Diagrama de Gantt representando duas soluções para o exemplo do job-shop. Na Figura 2.3, mostramos a solução S2 para o job-shop representada por um grafo conjuntivo. 1 Tempo morto de uma máquina é o tempo que esta fica ociosa aguardando alguma operação para execução. O problema de Job-Shop 33 3 3 1 O1 O2 O3 3 2 3 O4 O5 O6 1 4 4 O7 O8 O9 0 0 O0 3 4 2 O11 O10 MAQUINA 1 ´ Ofin O12 MAQUINA ´ 2 MAQUINA ´ 3 Figura 2.3: Grafo conjuntivo da solução S2 para o exemplo do job-shop. 2.2.1 Formulação Matemática Existem diversas propostas de formulações para problemas de seqüenciamento do tipo job- shop[31]. No entanto, utilizaremos o modelo matemático proposto por A.S.Manne[29]. A formulação em números inteiros proposta por Manne define uma nova variável para cada par ordenado de operações utilizando a mesma máquina. Esta variável em 0-1 se escreve yuv , tal que: 1, se Ov precede Ou sobre Mk yuv = 0, se O precede O sobre M . u v k Este modelo supõe também o conhecimento de uma borda superior BS da duração total do seqüenciamento. Esta borda pode ser a soma de todos os tempos operatórios das operações do problema: BS = n0 X pj . (2.1) j=1;j∈O sendo assim, as restrições do problema de job-shop podem ser expressas pelas equações: h ∀(j, j + 1) ∈ C (2.2) ≥ tu + pu − BS(yuv ), ∀(u, v) ∈ D (2.3) tu ≥ tv + pv − BS(1 − yuv ), ∀(v, u) ∈ D (2.4) tj+1 ≥ tj + pj , h tv h As restrições (2.2) representam as restrições de precedência ( restrições de produto) , por isso elas incluem todos os arcos conjuntivos pertencentes ao conjunto C . As restrições (2.3) e (2.4) representam as restrições disjuntivas restrições de máquina(restrições de capacidade das máquinas), ou seja, ela representa todos os pares de arcos disjuntivos pertencentes ao conjunto D. Lembremos que os conjuntos C e D constituem o grafo potencial tarefa G visto na Seção 2.2. Neste modelo, para cada par de restrições disjuntivas, apenas uma delas é ativada. Assim, quando arbitramos Ou antes de Ov , O problema de Job-Shop 34 yuv vale 0. Conseqüentemente a restrição (2.4) é desativada já que tu ≥ tv + pv − BS, pois da forma que BS foi definido (2.1), faria com que a operação tu tivesse um tempo de inı́cio elevado, ou mais especificamente, ele seria igual ou maior que BS menos a duração da operação v. Matematicamente terı́amos: tu ≥ tv + p v − n0 X pj , (2.5) j=1 tornando assim a equação (2.5) inviável, pois o tempo de inı́cio da operação v teria que aumentar bastante não oferecendo assim uma minimização no tempo total de produção. Enquanto que a restrição (2.3) é ativada já que torna-se tv ≥ tu + p u . Consideremos como objetivo, min X (2.6) tj j onde tj determina o tempo de inı́cio da operação j. 2.2.2 Métodos de Resolução Os algoritmos de resolução para os problemas de seqüenciamento do tipo job-shop são basea- dos em métodos clássicos da otimização combinatória métodos exatos que buscam a solução ótima, ou são simplesmente algoritmos aproximados (heurı́sticos) que não garantem a otimalidade da solução, mas permitem o tratamento dos problemas de grande porte em um tempo razoável. O objetivo dos métodos exatos é encontrar, em um tempo de cálculo menor possı́vel, a solução ótima do problema. Para os problemas de job-shop, isto é um desafio devido à sua natureza combinatória que o classifica como um problema NP-difı́cil[16]. Dentre os métodos de resolução exata mais eficientes para os problemas de job-shop, temos o método de separação e avaliação(Branch and Bound)[9]. O princı́pio de um método heurı́stico é encontrar, em um tempo polinomial, a melhor possı́vel solução viável[i.e., sub-ótimo para o job-shop [7]. Os mais utilizados são os métodos heurı́sticos seriais que utilizam os algoritmos de lista para construir, de modo progressivo, os seqüenciamentos sem atraso no processamento nas máquinas. Estes tipos de seqüenciamentos são tais que uma máquina não pode estar parada enquanto existir, no mı́nimo, uma operação para ser processada. Da literatura [7], podemos citar os algoritmos de lista mais conhecidos: regra EDD (Earliest Dead Date), regra SPT (Shortest Processing Time) e regra FIFO (First in First O problema de Job-Shop 35 Out). Atualmente, existem numerosos algoritmos heurı́sticos para resolver o job-shop: (1) as heurı́sticas construtivas [1][11][30] são baseadas sobre as operações ou sobre as máquinas, sendo que as soluções obtidas estão muito distantes do valor ótimo; (2) as heurı́sticas melhoradas que quando aplicadas aos problemas de grande dimensão, tornam-se muito lenta e menos eficazes. As mais conhecidas são os métodos tabu [20][21][34][11][22], os recursos simulados[23][32] e os algoritmos genéticos[8][12]; (3) redes neurais e inteligência artificial. Estas técnicas são cada vez mais utilizadas pelos especialistas da área de pesquisa operacional que tratam os problemas de seqüenciamento do tipo job-shop[6][24][26]. Podemos ainda citar os métodos de decomposição, os quais buscam encontrar a solução do problema original através da resolução dos seus subproblemas. Conhecidos da literatura, temos os métodos clássicos de decomposição e os métodos de decomposição espacial. Os métodos clássicos de decomposição em programação matemática para resolver os problemas combinatórios possuem como base o princı́pio da relaxação lagrangeana[27],[17]. Aplicado aos problemas de job-shop, destacamos os trabalhos de Fisher, M.L.[13][14][15]. Fisher, em um primeiro tempo, utilizou os multiplicadores de Lagrange para dualizar as restrições de recursos (máquinas) formando o problema de Lagrange no qual as restrições de produtos aparecem explicitamente, enquanto que as de máquinas estão presentes apenas na função de Lagrange. Conseqüentemente, os subproblemas eram constituı́dos pelas restrições de produtos, e o problema mestre era encarregado de verificar a factibilidade das restrições de máquinas determinando assim os multiplicadores de Lagrange. Mais tarde, Fisher [15] propôs uma metodologia que efetua um tipo de relaxação lagrangeana (surrogate duality relaxation). Isto significa que a relaxação era obtida substituindo certas restrições do problema por uma combinação linear ponderada destas mesmas restrições. Vale observar que a diferença em relação à clássica relaxação lagrangeana reside no fato que as restrições agregadas e ponderadas não são eliminadas e adicionadas à função objetivo. Em suma, o interesse nesta metodologia é mais teórico que prático já que as bordas obtidas são melhores que aquelas obtidas pela relaxação lagrangeana clássica. Os métodos de decomposição espacial são aplicados aos problemas de job-shop com várias máquinas e consistem em formar sub-problemas de job-shop reagrupando máquinas e produtos. Em geral, os produtos são agrupados em famı́lias e as máquinas em células de fabricação de tal sorte que os produtos de uma mesma famı́lia sejam fabricados essencialmente, por máquinas de uma célula principal e utilizam de forma excepcional as máquinas de outras células. As operações dos produtos que são executadas por máquinas que não fazem parte da célula principal são denominadas elementos residuais ou excepcionais. Sendo assim, apesar do job-shop ter sido decomposto, os subproblemas continuam O problema de Job-Shop 36 interligados pelos elementos residuais. Esta filosofia de decomposição aparece sob os conceitos da tecnologia de grupos[24][25]. Mais recentemente, surgiu a metodologia de Alves, I. [2] que propõe a resolução do problema de job-shop utilizando a decomposição espacial junto à decomposição clássica. Neste procedimento, utiliza-se a tecnologia de grupos a fim de particionar o problema de job-shop e, em seguida, a técnica da relaxação lagrangeana é utilizada para resolver os subproblemas coordenados por um problema mestre. O problema mestre é formado pelas restrições de acoplamento resultantes dos elementos residuais. Desta forma, as restrições contendo os elementos excepcionais não são desprezadas do problema. Elas são enviadas a um nı́vel coordenador enquanto que as demais restrições formam os subproblemas. Ou seja, cada famı́lia de produto correspondente à sua célula principal constitui um subproblema que será resolvido independente dos outros. Utilizando a técnica clássica de decomposição da relaxação lagrangeana acoplada à tecnologia de grupos, podemos observar que os subproblemas resultantes conservam um número maior de restrições, isto é, eles se aproximam mais do problema original pois as restrições de produtos (ou de máquinas) relaxadas são apenas aquelas que contém os elementos residuais. Isto garante de forma mais eficiente, a factibilidade das soluções locais dos subproblemas. A fim de tornar a convergência mais rápida desta metodologia, Ramos, A. [31] propôs o ajuste de alguns parâmetros do método do subgradiente quando utilizado para resolver o problema mestre. No capı́tulo seguinte apresentaremos o método de decomposição de Dantzig-Wolfe aplicado ao problema de job-shop. Capı́tulo 3 Método de Dantzig-Wolfe e o Problema de Job-Shop Os capı́tulos anteriores descrevem o método de decomposição de Dantzig-Wolfe e o problema de seqüenciamento do tipo Job-Shop. Neste capı́tulo, utilizaremos o método de Dantzig-Wolfe como descrito no Capı́tulo 1 para resolver um particular problema de job-shop conforme Capı́tulo 2. Assumiremos como restrições de acoplamento as restrições de precedência e associado a cada máquina Mk um subproblema k. Contudo, acontece a ausência de limites inferiores e/ou superiores de algumas variáveis quando tratamos as restrições de precedência como acoplamento. Desta forma, adotaremos novos limites de modo a compensar tal perda. A fim de verificar a aplicabilidade do método de Dantzig-Wolfe ao job-shop, apresentamos alguns exemplos numéricos e as respectivas análises. Além disso, abordamos de que forma tratamos um problema de job-shop sem introduzir estes novos limites, ou seja, no caso do conjunto de soluções ser ilimitados. 3.1 3.1.1 Decomposição do Job-Shop Modelagem Matemática Relembremos, do Capı́tulo 2, que o modelo matemático adotado para o problema de job-shop tem como base o modelo de A.S. Manne [29], descrito da seguinte forma: min n0 X j=1 tj (3.1) Método de Dantzig-Wolfe e o Problema de Job-Shop 38 Sujeito a: (3.2) tj+1 ≥ tj + pj , tv ∀(j, j + 1) ∈ C ≥ tu + pu − BS(yuv ), tu ≥ tv + pv − BS(1 − yuv ), BS = yuv 1, = 0, n X ∀(u, v) ∈ D (3.3) ∀(v, u) ∈ D pj (3.4) j=1 se Ov precede Ou sobre Mk (3.5) se Ou precede Ov sobre Mk . As restrições (3.2) representam as restrições de precedência (restrições de produto), as restrições (3.3) - (3.5) representam as restrições de capacidade (restrições de máquina), e a variável tj determina o tempo de inı́cio da execução da operação j. 3.1.2 Método de Dantizg-Wolfe Como descrito no Capı́tulo 1, o método de decomposição de Dantzig-Wolfe consiste de dois nı́veis de resolução os quais a cada iteração, trocam informações até chegar ao valor ótimo ou fornecer soluções próximas ao ótimo do problema original. Relembremos o algoritmo da decomposição de Dantzig-Wolfe. Consideremos o seguinte Programa Linear, p X min z = ci xi (3.6) i=1 Sujeito a : p X (3.7) Ai xi = b0 i=1 (3.8) xi ∈ Xi onde assumiremos, inicialmente, o conjunto Xi = {xi |Bi xi = bi , xi ≥ 0} limitado e chamaremos Ei = {x1i , x2i , · · · , xri } o conjunto dos pontos extremos de Xi , i = 1, · · · , p. Assim, podemos escrever X λij xji (3.9) λij = 1 (3.10) λij ≥ 0; j = 1, · · · , r. (3.11) xi = j r X j=1 Método de Dantzig-Wolfe e o Problema de Job-Shop 39 Substituindo (3.9)- (3.11) em (3.6)- (3.8), o problema original poderá ser transformado no problema mestre(PM) na variável λij p r X X min z = (ci xji )λij j=1 i=1 Sujeito a : p r X X (Ai xji )λij = b0 (3.12) (3.13) j=1 i=1 r X λij = 1 (3.14) λij ≥ 0 (3.15) j=1 i = 1, · · · , p (3.16) j = 1, · · · , r onde = ci xji fij pij = Ai xji (3.17) (3.18) No problema mestre (3.12) - (3.18) aplicaremos o método simplex revisado[4], onde o critério usual pede para resolvermos o seguinte subproblema: zi0 = min (ci − π1 Ai )xi xi ∈Xi (3.19) Analisaremos o critério min (zi0 − π0i ) ≥ 0 (1.58), sendo π1 e π0i as variáveis duais associadas i às restrições (3.13) e (3.15) respectivamente e definiremos qual variável entra na base ou se a solução corrente do problema mestre (3.12)- (3.18) é ótima. Neste caso, a solução ótima do problema original (3.19) - (3.23) é dada pela expressão: x0 = X λij xji (3.20) j onde os xji ’s são pontos extremos de Xi correspondentes à base referente à λij . Caso contrário, ainda podemos melhorar a solução do problema mestre, escolhendo a variável associada ao custo f¯is (1.58) a entrar na base do atual sistema do PM. A seguir apresentaremos de que forma esta metodologia é aplicada ao problema de job-shop, incluindo as possı́veis modificações que seriam feitas na modelagem. Método de Dantzig-Wolfe e o Problema de Job-Shop 3.1.3 40 Aplicação do método de Dantzig-Wolfe ao Job-Shop Consideremos o problema de seqüenciamento do tipo job-shop (3.1) - (3.5) e as restrições de acoplamento como sendo as restrições de precedência (3.2). Suponhamos, inicialmente, que o problema foi particionado em k subproblemas independentes onde cada um destes possuem nk tarefas associadas à máquina Mk . Assim, podemos reescrever o modelo matemático do problema de job-shop da seguinte maneira: min τ k ≥0 p X τk (3.21) k=1 Sujeito a: k [τj+1 ≥ τjr + pj ∀(j, j + 1) ∈ C e (k 6= r) k [τuk ≥ τvk + pv − BS(yuv ) k [τvk ≥ τuk + pu − BS(1 − yuv ) BS = k yuv n X ∀(u, v) ∈ Dk ; Mk ∈ M ∀(u, v) ∈ Dk ; Mk ∈ M pj (3.22) (3.23) (3.24) j=1 1, = 0, se Ovk precede Ouk sobre Mk se Ouk precede Ovk sobre Mk (3.25) onde τ k = (tk1 , tk2 , · · · , tknk ) e cada componente tki representa o tempo inicial da tarefa i do bloco k. Uma outra forma de apresentarmos o problema de job-shop (3.21) - (3.25) seguindo a formulação (3.6)-(3.8) seria como segue: min τ k ≥0 p X τk (3.26) k=1 Sujeito a: p X Ak τ k ≥ p0 (3.27) k=1 τk ∈ Xk ; k = 1, 2, · · · , p (3.28) Chamaremos Xk o conjunto dos τ k que satisfazem as restrições (3.23)-(3.25) e seja Ek = {τ1k , τ2k , · · · , τrk } o conjunto dos pontos extremos de Xk . Ocorre que o conjunto Xk define um conjunto ilimitado. Observamos que ao tratarmos as restrições de precedência como acoplamento, acontece a ausência dos limites inferior e superior para as variáveis tki pertencentes a estas restrições. Desta forma, ao encontrarmos uma solução local para cada subproblema k, provavelmente, essas soluções não irão satisfazer as restrições de precedência globais(3.2). Por estas razões, devemos inserir limites Método de Dantzig-Wolfe e o Problema de Job-Shop 41 para estas variáveis, a fim de eliminar a infactibilidade global destas soluções locais, como também limitar a região factı́vel. Portanto, para k = 1, 2, · · · , p e para Xk limitado, τ k da forma: τk = p X r X λij τjk (3.29) λkj = 1; (3.30) λkj ≥ 0, k = 1, 2, · · · , p j = 1, 2, · · · , r (3.31) k=1 j=1 r X j=1 Utilizamos, inicialmente, o seguinte padrão para estes limites: LIki = LSk(i−1) e LSki = BS − n0 X pl (3.32) l=i onde LIki e LSki são, respectivamente, os limites inferior e superior do tempo de inı́cio da operação tki . Assim, temos LIki ≤ tki ≤ LSki . (3.33) Pensando no problema de job-shop, podemos relacionar o limite LIki ao rik , representando assim o instante mais cedo de inı́cio da execução operação Oik e o limite LSki acrescentado as duração da variável tki , ao dki , representando o instante limite do fim da execução da operação Oik . Logo, temos; rik ≤ tki ≤ dki (3.34) Desta forma, ao aplicarmos o método de Dantzig-Wolfe teremos abaixo o problema mestre (3.35)- (3.38) e o k-ésimo subproblema (3.41)-(3.43). Problema Mestre min τ k ≥0 p r X X fkj λkj (3.35) j=1 k=1 Sujeito a: p X r X qkj λkj ≥ p0 k=1 j=1 p X r X (3.36) λkj = 1 (3.37) λkj ≥ 0; k = 1, 2, · · · , p; j = 1, 2, · · · , r (3.38) k=1 j=1 onde qkj = Ak τkj , k = 1, 2, · · · , p; j = 1, 2, · · · , r fkj = ck τkj , k = 1, 2, · · · , p; j = 1, 2, · · · , r (3.39) (3.40) Algoritmo de Dantzig-Wolfe aplicado ao Job-Shop 42 p0 - vetor das durações das operações precedentes na gama operatória, ck - vetor com nk componentes iguais a unidade. Subproblema k min (ck − π1 Ak )τ k Sujeito a: (3.41) τ k ∈ Xk (3.42) LIki ≤ tki ≤ LSki (3.43) Consideremos o nosso problema de job-shop (3.26) - (3.28): p X τk min k=1 Sujeito a: p X Ak τ k ≥ p0 k=1 τ k ∈ Xk . (3.44) (3.45) (3.46) Do problema mestre formulado (3.35)-(3.40), teremos que partir da sua solução básica inicial. é importante ressaltar que o sistema (3.36) é de desigualdades do tipo ≥, portanto o vetor das variáveis de folga deve ser inserido no problema mestre e ser representado como s = (s1 , s2 , · · · , si , · · · , sm ), cujo i-ésimo componente corresponde a i-ésima restrição. Todavia, não é possı́vel determinar uma solução viável ao acrescentar tais variáveis. Sendo assim, recorremos a algum método para obter tal solução, como por exemplo no método de Duas Fase ou Big-M (Lasdon[27],Bazaraa[4]). Através deste procedimento conseguimos obter uma solução básica inicial e conseqüentemente, a matriz básica correspondente, B, as variáveis duais π1 e π0 . Neste caso, o algoritmo de Dantzig-Wolfe aplicado ao problema de job-shop, pode ser visto da seguinte forma: Algoritmo de Dantzig-Wolfe aplicado ao Job-Shop 43 Algoritmo 3.1. Algoritmo de Dantzig-Wolfe aplicado ao job-shop 1. Usando as variáveis duais π1 obtidas do problema mestre, resolvemos cada subproblema k (3.41)-(3.43) obtendo as suas respectivas soluções τ k (π1 ), e o valor ótimo objetivo, zk0 . Seja τ (π1 ) = (τ 1 (π1 ), · · · , τ p (π1 ))t . 2. Calculemos os valores dos custos relativos das variáveis λ0kj s, f¯kj (1.18), e determinemos: min min f¯kj = min (zk0 − π0k ) = f¯vj . k j k onde zk0 = min (ck − π1 Ak )τ k . Sujeito a: τ k ∈ Xk LIik ≤ tki ≤ LSik (3.47) (3.48) (3.49) (3.50) (3.51) Se min f¯kj ≥ 0, (3.52) k significa que nós podemos parar, pois não existem mais candidatos a entrar na base. Assim, a solução ótima para (3.21) - (3.25) é τ0 = p X k=1 τk = p X r X λkj τjk , (3.53) k=1 j=1 onde τjk são pontos extremos de Xk correspondentes à variável básica λkj . 3. Se min (zk0 − π0k ) ≤ 0, construı́mos a coluna k Av τ v (π1 ) (3.54) uv atualizada através da multiplicação pela inversa da antiga base, B −1 , e usando a operação pivô do método simplex usual, obtemos uma nova base inversa e um novo vetor dos multiplicadores simplex(variáveis duais). Algoritmo de Dantzig-Wolfe aplicado ao Job-Shop 44 4. Utilizamos as soluções corrente dos subproblemas para reajustar os respectivos limites(3.33), ou seja, estes limites serão ajustados a cada iteração de acordo com a solução precedente, da seguinte forma: (iter) 1. LIki (inter) 2. LSki (iter−1) = LSk(i−1) + pi−1 (iter−1) = LSki (iter) − (LIki (iter−1) − LIki (iter−1) limites da iteração corrente e LIki (iter) ) onde, LIki (iter−1) e LSki (inter) e LSki são os são limites da iteração anterior. Retornamos a 1. 3.1.4 Região Xk ilimitada Como já descrito no Capı́tulo 1 na seção (1.5), para Xk ilimitado, o método de Dantzig-Wolfe admite alterações em conseqüência de uma nova combinação para seus elementos τk . Esta seção fará uma abordagem teórica de tais possı́veis alterações para o caso do problema de job-shop. Seja Xk um conjunto ilimitado dos τ k que satisfazem as restrições (3.23) - (3.25). Neste caso, ∀τ k ∈ Xk serão representados como segue: p X r X (3.55) λkj = 1 (3.56) λkj ≥ 0, j = 1, 2, · · · , r; k = 1, 2, · · · , p (3.57) µks ≥ 0, s = 1, 2, · · · , l; k = 1, 2, · · · , p. (3.58) = k=1 j=1 λkj τjk p X l X µsj dks τk + k=1 s=1 p r XX k=1 j=1 onde τ1k , τ2k , · · · , τrk são pontos extremos de Xk e dk1 , dk2 , · · · , dks são direções extremas de Xk . O problema original deverá ser transformado no chamado problema mestre nas variáveis λkj e µks como segue: Algoritmo de Dantzig-Wolfe aplicado ao Job-Shop 45 p X p X r l X X k min (ck τj )λkj + (ck dks )µks k=1 j=1 k=1 s=1 Sujeito a: p p X r l X XX (Ak τjk )λkj + (Ak dks )µks ≥ p0 k=1 j=1 k=1 s=1 p X r X λkj = 1 j=1 k=1 λkj ≥ 0, k = 1, 2, · · · , p; j = 1, 2, · · · , r µks ≥ 0, k = 1, 2, · · · , p; s = 1, 2, · · · , l. (3.59) (3.60) (3.61) (3.62) Optaremos novamente em aplicar o Método Simplex Revisado, lembrando que o número de variáveis poderá ser muito grande, a depender da quantidade de pontos extremos e direções extremas. Iniciaremos com uma solução básica factı́vel e com a matriz base correspondente, B, as variáveis duais π1 e π0i correspondente á restrição (3.60) e á restrição (3.60), respectivamente. Lembremos que b 0 , π = (π1 , π01 , · · · , π0k , · · · , π0p ) = fB B −1 , fB é o custo das variáveis básicas λB e b̄ = B −1 1 mostrado na Tabela 3.1. (π1 , π01 , · · · , π0k , · · · , π0p ) fB b̄ B −1 b̄ Tabela 3.1: Tabela do simplex revisado do problema mestre. A solução é ótima para o problema original se os custos relativos de todas as variáveis do problema mestre são não-negativas, f¯kj ≥ 0 e f¯ks ≥ 0 para todas as variáveis não-básicas. Em particular, as condições de otimalidade devem satisfazer as seguintes condições: Ak τjk k ¯ (i) λkj não básica ⇒ 0 ≤ fkj = ck τj − π 1 Ak dks (ii) µks não básica ⇒ 0 ≤ f¯ks = ck τjk − π 0 = (ck − πAk )τjk − π0k (3.63) = (ck − πAk )dks (3.64) Assim, devemos verificar se essas condições são satisfeitas ou não. Determinamos inicialmente o conjunto solução e o valor objetivo minimal zk0 , de cada subproblema k(3.41) - (3.43) e, em seguida, aplicamos o critério usual do método simplex (3.52). Se min min f¯kj = min (zk0 − π0k ) ≥ 0, k j k (3.65) Problema Teste 1 46 a solução corrente é ótima. Caso contrário, a coluna para entrar na base é aquela com min (zk0 − π0k ). k (3.66) Suponhamos primeiramente que o valor da solução ótima do subproblema é ilimitada. Isto é possı́vel se somente se for encontrada uma direção extrema dvj tal que (ck − πAk )dsv < 0, significando que (3.64) foi violada. Portanto, a variável µvs é eleita a entrar na base. Neste caso, a condição v A d v s é atualizada pré-multiplicando por B −1 e a coluna resultante é inserida na Tabela (3.1). 0 Assim, o método simplex revisado continua com uma próxima iteração. Consideremos a solução ótima sendo limitada. Neste caso, (ck − πAk )dks ≥ 0 para todas as direções extremas, valendo a equação (3.64). Agora, observaremos se a equação (3.63) é válida. Seja τjv um ponto extremo ótimo e considere o objetivo ótimo f¯vj , para o subproblema v. Se f¯vj ≥ 0, então pela otimalidade de τvk , para cada ponto extremo τjk , temos (ck − π1 Ak )τjk − π0k ≥ (cv − π1 Av )τjv − π0v = f¯vj ≥ 0 (3.67) e portanto, a condição (3.63) é satisfeita e temos uma solução ótima do problema original (3.1) - (3.5). f¯vj na Caso contrário, a variável λvj é eleita a entrar na base. Isto é feito inserindo a coluna yvj j Av τv −1 Tabela 3.1, onde yvj = B − − − − − onde uv é um vetor p-componente com um na posição v uv e zeros nas outras. 3.2 3.2.1 Problemas Testes Problema Teste 1 Considere o seguinte problema teste de job-shop, cujos dados são mostrados na Tabela 3.2. Problema Teste 1 47 produto operação duração máquina 1 1 3 1 1 2 2 2 1 3 1 3 2 4 1 1 2 5 3 3 2 6 4 2 Tabela 3.2: Dados do problema teste 1. De acordo com o Modelo Matemático (3.1)-(3.5) o problema da Tabela 3.2 é da forma: min 6 X (3.68) tj j=1 Sujeito a: − t1 − + t2 − t2 + t3 t4 + t6 ≥ 3 ≥ 2 + t5 ≥ 1 − t5 ≥ 3 3 − 14y14 13 + 14y14 2 − 14y26 10 + 14y26 1 − 14y35 11 + 14y35 − t1 + t4 ≥ + t1 − t4 ≥ ti ≥ − t2 + t6 ≥ + t2 − t6 ≥ y14 , y26 0 , i , = − t3 + t5 ≥ + t3 − t5 ≥ y35 1, ∈ 2, − − − {0, 1} ··· , 6 (3.69) (3.70) (3.71) Além disso, adotamos inicialmente os limites inferior (LIi ) e superior (LSi ), a fim de eliminar a infactibilidade e limitar o conjunto das soluções viáveis do problema. LIi ≤ ti ≤ LSi , (3.72) onde LIi = LS(i−1) n0 X LSi = BS − pl . l=i (3.73) (3.74) Problema Teste 1 48 Desta forma, pensando no problema de job-shop, podemos relacionar o limite LIi ao ri , representando assim o instante mais cedo de inı́cio da execução da operação Oi e o limite LSi adicionado à duração pi , representando o instante limite do fim da execução da operação Oi , di = LSi + pi . Logo temos: 0 ≤ t1 ≤ 8 8 ≤ t2 ≤ 11 11 ≤ t3 ≤ 13 0 ≤ t4 ≤ 6 6 ≤ t5 ≤ 7 8 ≤ t6 ≤ 10 (3.75) Porém, reescrevendo o problema (3.68)-(3.75) conforme notação adotada na Seção 3.1.3, teremos: 2 X min t1i + i=1 2 X t2i 2 X + i=1 t3i (3.76) i=1 Sujeito a: t11 − − + t21 − t21 + t31 t12 + t22 ≥ 1 − ≥ 3 t12 ≥ + t11 − t12 ≥ − t21 + t22 ≥ + t21 − t22 ≥ tki ≥ 0 − t31 + t32 ≥ + t31 − t32 ≥ 3 y12 , , ∀i = ; ∈ 0 ≤ t11 ≤ 8 8 ≤ t21 ≤ 11 11 ≤ t31 ≤ 13 0 ≤ t12 ≤ 6 6 ≤ t32 ≤ 7 ≤ t22 ≤ 10 8 − − − 2, (3.77) 3 − 1 14y12 13 + 1 14y12 2 − 2 14y12 10 + 2 14y12 1 − 3 14y12 11 + 3 14y12 (3.78) (3.79) {0, 1} k = 1, 2 t31 + 2 y12 ≥ t31 t11 , 3 + − 1 y12 ≥ 3 (3.80) (3.81) Problema Teste 1 49 ou seja, min c1 τ 1 + c2 τ 2 + c3 τ 3 S.a: A1 τ 1 + A2 τ 2 + A3 τ 3 τ1 ∈ X1 ; τ2 ∈ X2 ; τ3 ∈ X3 ; ≥ p0 onde, −1 0 A1 = 0 0 τ1 = (t1 , t4 ) = (t11 , t12 ) τ2 = (t2 , t6 ) = (t21 , t22 ) τ3 = (t3 , t5 ) = (t31 , t32 ) p0 = (3, 2, 1, 3) 0 0 −1 0 1 ; −1 A2 = 0 0 0 0 0 1 0 1 A3 = 0 0 ; 0 0 1 −1 X1 − região formada pelas restrições (3.88) - (3.92) que compõem o Subproblema 1 abaixo, sendo que as restrições (3.90)- (3.91) são alteradas a cada iteração. X2 − região formada pelas restrições (3.97) - (3.101) que compõem o Subproblema 2 abaixo, sendo que as restrições (3.99)- (3.100) são alteradas a cada iteração. X3 − região formada pelas restrições (3.106) - (3.110) que compõem o Subproblema 3 abaixo, sendo que as restrições (3.108)- (3.109) são alteradas a cada iteração. O problema mestre é apresentado como segue: min z= r X (c1 τj1 )λ1j j=1 S.a: r X j=1 (A1 τj1 )λ1j + r X (c2 τj2 )λ2j r X + j=1 + r X (A1 τj1 )λ2j (c3 τj3 )λ3j (3.82) j=1 + j=1 r X (A1 τj1 )λ3j − s = p0 (3.83) j=1 r X λ1j ≥ 1 ; λ1j ≥ 0 (3.84) λ2j ≥ 1 ; λ2j ≥ 0 (3.85) λ3j ≥ 1 ; λ3j ≥ 0 (3.86) j=1 r X j=1 r X j=1 Problema Teste 1 50 onde s = (s1 , s2 , s3 , s4 )t . Resolveremos os subproblemas (3.87)- (3.92), (3.96)- (3.101) e (3.105)-(3.110): PASSO INICIAL Subproblemas Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.87) Sujeito a: 1 −t11 + t12 ≥ 3 − 14y12 (3.88) 1 t11 − t12 ≥ −13 + 14y12 (3.89) 0 ≤ t11 ≤ 8 (3.90) 0 ≤ t12 ≤ 6 (3.91) 1 y12 ∈ {0, 1} (3.92) Solução: τ11 = (1, 0) (3.93) z01 = 1 (3.94) 1 y12 =1 (3.95) Subproblema 2 - Máquina 2 min z2 = c2 τ 1 = t21 + t22 (3.96) Sujeito a: 2 t21 − t22 ≥ 2 − 14y12 (3.97) 2 −t21 + t22 ≥ −10 + 14y12 (3.98) 8 ≤ t21 ≤ 11 (3.99) 8 ≤ t22 ≤ 10 (3.100) 2 y12 ∈ {0, 1} (3.101) Problema Teste 1 51 Solução: τ12 = (8, 10) (3.102) z02 = 18 (3.103) 2 y12 =0 (3.104) Subproblema 3 - Máquina 3 min z2 = c3 τ 3 = t31 + t32 (3.105) Sujeito a: 3 −t31 + t32 ≥ 1 − 14y12 (3.106) 3 t31 − t32 ≥ −11 + 14y12 (3.107) 11 ≤ t31 ≤ 13 (3.108) 6 ≤ t32 ≤ 7 (3.109) 3 y12 ∈ {0, 1} (3.110) Solução: τ13 = (11, 6) (3.111) z03 = 17 (3.112) 3 y12 =1 (3.113) Com as soluções (3.93),(3.102) e (3.111) dos Subproblemas 1,2,3, respectivamente, obtemos o problema mestre (3.114)-(3.118) como segue: min z = (c1 τ11 )λ1j + (c2 τ12 )λ21 (3.114) (c3 τ13 )λ31 + S.a: (A1 τ11 )λ11 + (A2 τ12 )λ21 + (A3 τ13 )λ31 − s = p0 (3.115) λ11 ≥ 1 ; λ11 ≥ 0 (3.116) λ21 ≥ 1 ; λ21 ≥ 0 (3.117) λ31 ≥ 1 ; λ31 ≥ 0 (3.118) No entanto, ao acrescentarmos as variáveis de folga, não é possı́vel encontrar uma solução básica inicial. Portanto, aplicaremos o método de duas fases([4]) ao problema mestre (3.114)-(3.118). Assim, a tabela inicial do método simplex revisado, Tabela 3.3, é a seguinte: Problema Teste 1 52 Variável básica Colunas do problema mestre s1 s1 s2 s3 s4 λ11 λ21 λ31 −z Constantes 1 s2 4 1 1 s3 1 s4 5 1 λ11 1 1 λ21 1 1 λ31 1 1 −z -1 -18 -17 1 1 -36 Tabela 3.3: Tabela inicial do simplex revisado do P.M do problema teste 1. Conseqüentemente, π = (π1 , π01 , π02 , π03 ) = fB B −1 = (cB τ B )B −1 π = (0, 0, 0, 0, 1, 18, 17) (3.119) ITERAÇÃO 1 Relembremos que a partir desta iteração, novos limites são aplicados a cada tarefa a fim de obtermos uma melhor aproximação à solução do problema original (3.76)-(3.80). Consideramos a solução da iteração anterior e reajustamos os limites inferiores de cada tarefa de acordo com as restrições de precedência. Proporcionalmente, ajustamos os limites superiores, conforme procedimento do algoritmo 3.1 no item 2. Desta forma, considerando a variável dual (3.119) e as novas restrições temos: Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.120) Sujeito a: 1 −t11 + t12 ≥ 3 − 14y12 (3.121) 1 t11 − t12 ≥ −13 + 14y12 (3.122) 0 ≤ t11 ≤ 1 (3.123) t12 = 0 (3.124) 1 y12 ∈ {0, 1} (3.125) Problema Teste 1 53 Solução: τ21 = (1, 0) (3.126) z01 = 1 (3.127) 1 y12 =1 (3.128) Subproblema 2 - Máquina 2 min z2 = c2 τ 2 = t21 + t22 (3.129) Sujeito a: 2 t21 − t22 ≥ 2O14y12 (3.130) 2 −t21 + t22 ≥ −10 + 14y12 (3.131) 4 ≤ t21 ≤ 7 (3.132) 5 ≤ t22 ≤ 8 (3.133) 2 y12 ∈ {0, 1} (3.134) Solução: τ22 = (4, 6) (3.135) z02 = 10 (3.136) 2 y12 =0 (3.137) Subproblema 3 - Máquina 3 min z2 = c3 τ 3 = t31 + t32 (3.138) Sujeito a: 3 −t31 + t32 ≥ 1 − 14y12 (3.139) 3 t31 − t32 ≥ −11 + 14y12 (3.140) 9 ≤ t31 ≤ 11 (3.141) 1 ≤ t32 ≤ 2 (3.142) 3 y12 ∈ {0, 1} (3.143) Solução: τ23 = (9, 1) (3.144) z03 = 10 (3.145) 3 y12 =1 (3.146) Problema Teste 1 54 Assim teremos: z10 − π01 = 1 − 1 = 0 (3.147) z20 − π02 = 10 − 18 = −8 (3.148) z30 − π03 = 10 − 17 = −7 (3.149) Portanto λ22 e λ32 são candidatas a entrar na base visto que seus custos reduzidos são não negativos (≤ 0). Tomamos inicialmente λ22 pois z20 − π02 = −8 < −7. Isto é mostrado na seguinte seqüência de Tabelas 3.4, 3.5 e 3.6. Além disso, o limite inferior(LI) para o ótimo do problema proposto (3.76) - (3.81) é dado por 36 − 15 = 21 e o limite superior(LS) é 36. Variável básica Colunas do problema mestre s1 s1 s2 s3 s4 λ11 λ21 λ31 −z 1 s2 1 s3 1 s4 1 λ11 1 λ21 1 λ31 1 −z -1 -18 -17 1 Coluna de entrada Constantes λ22 4 4 1 -4 5 0 1 6 1 0 1 1 1 0 -36 -8 Tabela 3.4: Entra na base a variável λ22 , sai s4 . Variável básica Colunas do problema mestre s1 s1 s2 s3 λ22 s2 s3 1 1 λ22 Constantes λ32 − 32 10 3 2 3 2 3 5 3 25 3 λ21 −z 5 1 1 6 − 16 1 0 5 6 1 6 1 1 −104 3 -7 1 6 1 − 61 1 λ31 −z λ31 1 λ11 λ21 λ11 Coluna de entrada 1 4 3 -1 -18 -17 1 Tabela 3.5: Entra na base a variável λ32 , sai s2 . Problema Teste 1 55 Variável básica Colunas do problema mestre s1 λ32 1 2 − 25 − 18 25 16 5 λ32 3 25 2 25 1 5 s3 3 − 25 2 − 25 24 5 λ22 1 50 9 50 1 5 λ21 1 − 50 9 − 50 λ31 3 − 25 2 − 25 −z 21 25 142 75 s1 s3 1 λ22 λ11 λ11 λ21 λ31 −z 1 1 4 5 1 4 5 1 -1 Constantes -18 -17 1 − 499 15 Tabela 3.6: Tabela final na iteração 1 do problema teste 1. Da Tabela 3.6 podemos determinar a solução corrente do problema proposto (3.76) - (3.81): λ11 τ11 = 1.(1, 0) = λ21 τ12 = 4 5 .(8, 10) λ22 τ22 = 1 5 .(4, 6) λ31 τ13 = 4 5 .(11, 6) λ32 τ23 = 1 5 .(9, 1) (1, 0) 40 = ( 32 5 , 5 ) = ( 45 , 65 ) (3.150) 24 = ( 44 5 , 5 ) = ( 95 , 15 ) ou seja, τ 1 = λ11 τ11 = (1, 0) 46 τ 2 = λ21 τ12 + λ22 t22 = ( 36 5 , 5 ) (3.151) τ 3 = λ31 τ 3 + λ32 t32 = ( 53 5 , 5). 53 46 Assim, τ = (t1 , t2 , t3 , t4 , t5 , t6 ) = (1, 36 5 , 5 , 0, 5, 5 ) e z = 33 ITERAÇÃO 2 Conforme Tabela 3.6, π = (0, − 21 142 , 0, − , 1, 18, 17). 25 75 (3.152) Atualizando as funções objetivo e calculando os novos limites de cada subproblema temos: Problema Teste 1 56 Subproblema 1 - Máquina 1 min z1 = (c1 − π1 A1 )τ 1 = t11 + t12 (3.153) Sujeito a: 1 −t11 + t12 ≥ 3 − 14y12 (3.154) 1 t11 − t12 ≥ −13 + 14y12 (3.155) 0 ≤ t11 ≤ 1 (3.156) t12 = 0 (3.157) 1 ∈ {0, 1} y12 (3.158) Solução: τ31 = (1, 0) (3.159) z01 = 1 (3.160) 1 y12 =1 (3.161) Subproblema 2 - Máquina 2 4 2 217 2 t1 + t2 25 75 (3.162) 2 t21 − t22 ≥ 2 − 14y12 (3.163) 2 −t21 + t22 ≥ −10 + 14y12 (3.164) 4 ≤ t21 ≤ 7 (3.165) 5 ≤ t22 ≤ 8 (3.166) 2 y12 ∈ {0, 1} (3.167) min z2 = c2 τ 2 = Sujeito a: Solução: τ32 = (4, 6) (3.168) z02 = 18 (3.169) 2 y12 =0 (3.170) Problema Teste 1 57 Subproblema 3 - Máquina 3 46 3 67 3 t1 − t2 25 75 (3.171) 3 −t31 + t32 ≥ 1 − 14y12 (3.172) 3 t31 − t32 ≥ −11 + 14y12 (3.173) 9 ≤ t31 ≤ 11 (3.174) 1 ≤ t32 ≤ 2 (3.175) 3 ∈ {0, 1} y12 (3.176) min z3 = (c3 − π3 A3 )τ 3 = Sujeito a: Solução: (3.177) τ33 = (9, 1) 1175 75 (3.178) 3 y12 =1 (3.179) z03 = Considerando as soluções (3.159),(3.168),(3.177) e as variáveis duais da expressão (3.152) temos os seguintes custos reduzidos: z10 − π01 = 1 − 1 = 0 (3.180) z20 − π02 = 18 − 18 = 0 1175 100 4 z30 − π03 = − 17 = − =− 75 75 3 (3.181) (3.182) Observamos que z10 − π01 = z20 − π03 = 0, conforme o custo reduzido (3.180) e (3.181). Portanto, de acordo com (3.182), λ33 é a única variável a entrar na base(ver Tabela 3.6 e 3.8). O novo limite inferior é dado por 499 15 − 4 3 = 479 15 = 31, 93 e o superior é 499 15 = 33, 26 Problema Teste 1 58 Variável básica Colunas do problema mestre s1 λ32 1 2 − 25 λ32 3 25 s3 3 − 25 λ22 1 50 s1 s3 1 λ22 λ11 Constantes λ33 18 − 25 16 5 0 2 25 1 5 1 2 − 25 24 5 0 9 50 1 5 0 1 0 4 5 0 1 4 5 0 -17 − 499 15 − 43 λ11 λ21 λ31 Coluna de Entrada −z 1 λ21 1 − 50 9 − 50 λ31 3 − 25 2 − 25 −z 21 25 142 75 1 -1 -18 1 Tabela 3.7: Entra na base a variável λ33 , sai λ32 . Variável básica Colunas do problema mestre s1 λ33 1 2 25 − 18 25 16 5 λ33 3 25 2 25 1 5 s3 3 − 25 2 − 25 24 5 λ22 1 50 9 50 1 5 λ21 1 − 50 9 − 50 λ31 3 − 50 2 − 25 −z 1 2 s1 s3 1 λ22 λ11 λ11 λ21 λ31 −z 1 Constantes 1 4 5 1 4 5 1 -1 -18 -17 1 -33 Tabela 3.8: Tabela final na iteração 2 do problema teste 1. Temos da Tabela 3.8 a seguinte solução para o problema proposto (3.76) - (3.81): λ11 τ11 = 1.(1, 0) = λ21 τ12 = 4 5 .(8, 10) λ22 τ22 = 1 5 .(4, 6) λ31 τ13 = 4 5 .(11, 6) λ33 τ33 = 1 5 .(9, 1) (1, 0) 125 = ( 25 4 , 16 ) = ( 78 , 21 16 ) (3.183) 24 = ( 44 5 , 5 ) = ( 95 , 15 ) ou seja, a mesma solução da Iteração 3, conforme dados abaixo: τ 1 = λ11 τ11 = (1, 0) 46 τ 2 = λ21 τ12 + λ22 τ22 = ( 36 5 , 5 ) τ 3 = λ31 τ 3 + λ33 τ33 = ( 53 5 , 5) 53 46 τ = (t1 , t2 , t3 , t4 , t5 , t6 ) = (1, 36 5 , 5 , 0, 5, 5 ) (3.184) Problema Teste 1 59 Nesta iteração temos como limite inferior 33 − 1 = 32 e limite superior 33. ITERAÇÃO 3 De acordo com a Tabela 3.8, π = (0, −1, 0, −2, 1, 18, 17) e considerando as soluções (3.159), (3.168) e (3.177) os subproblemas 1, 2 e 3 continuam sujeitos as mesmas restrições que a Iteração 2, visto que as soluções não alteraram. Segue-se: Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.185) Sujeito a: 1 −t11 + t12 ≥ 3 − 14y12 (3.186) 1 t11 − t12 ≥ −13 + 14y12 (3.187) 0 ≤ t11 ≤ 1 (3.188) t12 = 0 (3.189) 1 y12 ∈ {0, 1} (3.190) Solução: τ41 = (1, 0) (3.191) z01 = 1 (3.192) 1 y12 =1 (3.193) Subproblema 2 - Máquina 2 min z2 = c2 τ 2 = 3t22 (3.194) Sujeito a: 2 t21 − t22 ≥ 2 − 14y12 (3.195) 2 −t21 + t22 ≥ −10 + 14y12 (3.196) 4 ≤ t21 ≤ 7 (3.197) 5 ≤ t22 ≤ 8 (3.198) 2 y12 ∈ {0, 1} (3.199) Solução: (3.200) τ42 = (4, 6) (3.201) z02 = 18 (3.202) 2 y12 =0 (3.203) Problema Teste 1 60 Subproblema 3 - Máquina 3 min z2 = c3 τ 3 = 2t31 − t32 (3.204) Sujeito a: 3 −t31 + t32 ≥ 1 − 14y12 (3.205) 3 t31 − t32 ≥ −11 + 14y12 (3.206) 9 ≤ t31 ≤ 11 (3.207) 1 ≤ t32 ≤ 2 (3.208) 3 ∈ {0, 1} y12 (3.209) Solução: (3.210) τ43 = (9, 2) (3.211) z02 = 16 (3.212) 3 y12 =0 (3.213) Portanto teremos: z10 − π01 = 1 − 1 = 0 (3.214) z20 − π02 = 18 − 18 = 0 (3.215) z30 − π03 = 16 − 17 = −1 (3.216) Como z10 − π01 = z20 − π02 = 0, então λ34 é a única candidata a entrar na base. Variável básica Colunas do problema mestre s1 λ34 Constantes λ34 1 2 25 18 − 25 16 5 18 25 λ34 3 25 2 25 1 5 23 25 s3 3 − 25 2 − 25 24 5 27 25 λ22 1 50 9 50 1 5 9 − 50 1 0 λ21 1 − 50 9 − 50 4 5 9 50 λ31 3 − 50 2 − 25 4 5 2 25 −z 1 2 -33 -1 s1 s3 1 λ22 λ11 λ11 λ21 λ31 −z Coluna de entrada 1 1 1 -1 -18 -17 1 Tabela 3.9: Entra na base a variável λ34 , sai λ33 . Problema Teste 1 61 Variável básica Colunas do problema mestre s1 λ34 1 4 − 23 − 18 23 70 23 λ34 3 23 2 23 5 23 s3 6 − 23 4 − 23 105 23 λ22 1 23 9 46 11 46 s1 s3 λ22 1 λ11 λ11 λ21 λ31 −z 1 λ21 1 − 23 9 − 46 λ31 3 − 23 2 − 23 −z 26 − 23 − 48 23 1 35 46 1 18 23 1 -1 Constantes -18 -17 1 − 754 23 Tabela 3.10: Tabela final da iteração 3 do problema teste 1. Conforme a Tabela 3.10 π = (0, − 26 48 , 0, − , 1, 18, 17). 23 23 (3.217) Além disso, pela mesma razão da Iteração 3 os subproblemas estão sujeitos às mesmas restrições. Portanto, segue os subproblemas com as funções objetivo atualizadas: ITERAÇÃO 4 Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.218) Sujeito a: 1 −t11 + t12 ≥ 3 − 14y12 (3.219) 1 t11 − t12 ≥ −13 + 14y12 (3.220) 0 ≤ t11 ≤ 1 (3.221) t12 = 0 (3.222) 1 y12 ∈ {0, 1} (3.223) Solução: τ51 = (1, 0) (3.224) z01 = 1 (3.225) 1 y12 =1 (3.226) Problema Teste 1 62 Subproblema 2 - Máquina 2 min z2 = c2 τ 2 = − 3 2 71 2 t1 + t2 23 23 (3.227) Sujeito a: 2 t21 − t22 ≥ 2 − 14y12 (3.228) 2 −t21 + t22 ≥ −10 + 14y12 (3.229) 4 ≤ t21 ≤ 7 (3.230) 5 ≤ t22 ≤ 8 (3.231) 2 ∈ {0, 1} y12 (3.232) Solução: (3.233) τ52 = (4, 6) (3.234) z02 = 18 (3.235) 2 y12 =0 (3.236) Subproblema 3 - Máquina 3 49 3 25 3 t1 − t2 23 23 (3.237) 3 −t31 + t32 ≥ 1 − 14y12 (3.238) 3 t31 − t32 ≥ −11 + 14y12 (3.239) 9 ≤ t31 ≤ 11 (3.240) 1 ≤ t32 ≤ 2 (3.241) 3 y12 ∈ {0, 1} (3.242) min z2 = c3 τ 3 = Sujeito a: Solução: (3.243) τ53 = (9, 2) (3.244) z02 = 17 (3.245) 3 y12 =0 (3.246) Assim, os custos reduzidos z10 − π01 = z20 − π02 = z30 − π03 = 0, não ocorrendo candidatas a entrar na base significa que chegamos na solução ótima. Notemos que o limite inferior da solução ótima do problema proposto (3.76)-(3.81) é o mesmo valor da sua solução corrente: 754 23 −0= 754 23 = 32, 78. Problema Teste 1 63 Deste modo, a solução ótima para o problema proposto (3.76)-(3.81): λ11 τ11 = 1.(1, 0) = λ21 τ12 = 35 46 .(8, 10) λ22 τ22 = 11 46 .(4, 6) λ31 τ13 = 18 23 .(11, 6) λ34 τ43 = 5 23 .(9, 2) (1, 0) 175 = ( 140 23 , 23 ) = 33 ( 22 23 , 23 ) (3.247) 108 = ( 198 23 , 23 ) = 10 ( 45 23 , 23 ) ou seja, τ 1 = λ11 τ11 = (1, 0) (3.248) 162 208 , ) 23 23 243 118 = λ31 τ 3 + λ34 τ43 = ( , ) 23 23 τ 2 = λ21 τ12 + λ22 τ22 = ( (3.249) τ3 (3.250) 243 208 118 Assim τ 0 = (t1 , t2 , t3 , t4 , t5 , t6 , t7 ) = (1, 162 23 , 23 , 0, 23 , 23 ) e z = 754 23 = 32, 78 é o vetor ótimo e a valor ótimo respectivamente. A Tabela 3.11 mostra, a cada iteração o limite inferior(LI) e o limite superior(LS) para a solução ótima do problema proposto(3.76)-(3.81) considerando os limites adotados para as variáveis (ver algoritmo 3.1). Enquanto que a Tabela 3.12 indica o valor ótimo para o problema original (3.68) - (3.71) sem os limites adotados, o valor ótimo para o problema proposto (3.76)- (3.81) e o seu valor ótimo ao aplicarmos o método de resolução de Dantzig-Wolfe incluindo o ajuste dos limites LIi (3.73) e LSi (3.74). Iteração LS LI 1 36 21 2 33,26 31,93 3 33 32 4 32,78 32,78 Tabela 3.11: Limites por iteração do problema teste 1. Valor ótimo sem limite 18 Valor ótimo com limite 36 Valor ótimo encontrado 32,78 Tabela 3.12: Comparação das soluções do problema teste 1. Problema Teste 1 64 33,26 e dos limites inferiores Progresso dos valores da função objetivo Valores da função objetivo ( Primal ) 36 33 32,78 32 31,93 Limites inferiores ( Dual ) 21 1 2 3 4 Iteração Figura 3.1: Convergência do método do problema teste 1. M1 P1 P2 M2 M3 0 10 ~ S : Solucao 1 ´ C max1 =10 33 tempo M1 P1 P2 M2 M3 14 0 ~ S : Solucao 2 ´ tempo C max2 = 14 M 1 P M 2 P M 3 1 2 10 Solucao S : C =10 max 3 Figura 3.2: Diagrama de Gantt representando as soluções encontradas do problema teste 1. Analisando os valores expressos nas Tabelas 3.11 e 3.12, notamos que o ”valor ótimo encontrado“ é um limitante inferior para o ”o valor ótimo sem limite”do problema proposto inicial (3.76)-(3.81) e um limitante superior para o ”valor ótimo sem limite”do problema original (3.68)(3.71). Podemos então concluir que apesar do valor ótimo encontrado para os problemas criados a partir do problema original, é possı́vel determinar limitantes inferior e superior para o valor ótimo global. Porém, devemos adotar limites adequados que contornem a infactibilidade e limite a região factı́vel sem causar importantes alterações no espaços de soluções do problema original. Isto significa Problema Teste 2 65 dizer que quanto melhor forem os limites adotados para as variáveis do problema original, os limitantes estarão mais próximo do valor ótimo global original. 3.2.2 Problema Teste 2 Considere o seguinte problema de job-shop, cujos dados são mostrados na Tabela 3.13. produto operação duração máquina 1 1 5 1 1 2 2 2 1 3 3 3 2 4 2 2 2 5 1 1 3 6 3 2 3 7 2 3 Tabela 3.13: Dados do problema teste 2. Conforme o Modelo Matemático (3.1)-(3.5) o problema da Tabela 3.13 apresenta-se da seguinte forma: min 7 X (3.251) tj j=1 Sujeito a: − t1 + t5 + t2 − t2 + − t3 t4 − t6 + t7 ≥ 5 ≥ 2 ≥ 2 ≥ 3 5 − 18y15 17 + 18y15 − t1 + t5 ≥ + t1 − t5 ≥ − (3.252) Problema Teste 2 66 + t2 − t4 ≥ − t2 + t4 ≥ + t2 − t6 ≥ − t2 + t6 ≥ + t4 − t6 ≥ − t4 + t6 ≥ y15 , y24 ti ≥ 0 , , + t3 − t7 ≥ − t3 + t7 ≥ y26 i , = y46 1, , 2, y37 ··· , ∈ − − − − 2 − 18y24 16 + 18y24 3 − 18y26 16 + 18y26 3 − 18y46 16 + 18y46 2 − 18y37 15 + 18y37 (3.253) (3.254) {0, 1} (3.255) 7 Determinando os limites conforme expressões (3.73) e (3.74) temos: 0 ≤ t1 ≤ 8 8 ≤ t2 ≤ 13 13 ≤ t3 ≤ 15 0 ≤ t4 ≤ 15 15 ≤ t5 ≤ 17 0 ≤ t6 ≤ 13 13 ≤ t7 ≤ 16 (3.256) Porém, reescrevendo o problema original (3.251)-(3.256) conforme notação adotada na Seção 3.1.3, teremos: min 2 X t1i + i=1 3 X t2i + i=1 2 X t3i (3.257) i=1 Sujeito a: − t11 + t12 + t21 − t21 + − t31 t22 − t23 + t32 ≥ 5 ≥ 2 ≥ 2 ≥ 3 (3.258) Problema Teste 2 67 − t11 + t12 ≥ + t11 − t12 ≥ + t21 − t22 ≥ − t21 + t22 ≥ + t21 − t23 ≥ − t21 + t23 ≥ 1 y12 tki + t22 − t23 ≥ − t22 + t23 ≥ 2 y12 , ≥ 0 2 y13 , , ∀i , ; + t31 − t32 ≥ − t31 + t32 ≥ 2 y23 3 y12 , t11 ≤ 8 8 ≤ t21 ≤ 13 13 ≤ t31 ≤ 15 0 ≤ t22 ≤ 15 15 ≤ t12 ≤ 17 0 ≤ t22 ≤ 13 ≤ t32 ≤ 16, 13 min c1 τ 1 + c2 τ 2 + c3 τ 3 S.a: + A2 τ 2 + A3 τ 3 τ1 ∈ X1 ; τ2 ∈ X2 ; τ3 ∈ X3 ; − − − {0, 1} 1 18y12 17 + 1 18y12 2 − 2 18y12 16 + 2 18y12 3 − 2 18y13 16 + 2 18y13 3 − 2 18y23 16 + 2 18y23 2 − 3 18y12 15 + 3 18y12 (3.259) (3.260) (3.262) ou seja, A1 τ 1 − − (3.261) k = 1, 2, 3 ≤ 0 ∈ − 5 ≥ p0 onde, τ1 = (t1 , t5 ) = (t11 , t12 ) τ2 = (t2 , t4 , t6 ) = (t21 , t22 , t23 ) τ3 = (t3 , t7 ) = (t31 , t32 ) p0 = (5, 2, 2, 3) Problema Teste 2 68 −1 0 A1 = 0 0 0 0 1 0 1 ; −1 A2 = 0 0 0 0 0 −1 0 0 −1 0 0 1 A3 = 0 0 ; 0 0 0 1 X1 − região formada pelas restrições (3.269)-(3.273) que compõem o Subproblema 1 abaixo, sendo que as restrições (3.271) - (3.272) são alteradas a cada iteração. X2 − região formada pelas restrições (3.278)-(3.289) que compõem o Subproblema 2 abaixo, sendo que as restrições (3.284)- (3.286) são alteradas a cada iteração. X3 − região formada pelas restrições (3.295)-(3.299) que compõem o Subproblema 3 abaixo, sendo que as restrições (3.297)- (3.298) são alteradas a cada iteração. O problema mestre é apresentado como segue: min z= r X (c1 τj1 )λ1j + j=1 S.a: r X (A1 τj1 )λ1j j=1 r X (c2 τj2 )λ2j r X + j=1 + r X (A1 τj1 )λ2j (c3 τj3 )λ3j (3.263) j=1 + j=1 r X (A1 τj1 )λ3j − s = p0 (3.264) j=1 r X λ1j ≥ 1 ; λ1j ≥ 0 (3.265) λ2j ≥ 1 ; λ2j ≥ 0 (3.266) λ3j ≥ 1 ; λ3j ≥ 0 (3.267) j=1 r X j=1 r X j=1 onde s = (s1 , s2 , s3 , s4 )t . Resolvendo os subproblemas (3.268)- (3.273), (3.277)- (3.289) e (3.294)-(3.299): PASSO INICIAL Subproblemas Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.268) Sujeito a: 1 −t11 + t12 ≥ 5 − 18y12 (3.269) 1 t11 − t12 ≥ −17 + 18y12 (3.270) Problema Teste 2 69 0 ≤ t11 ≤ 8 (3.271) 15 ≤ t12 ≤ 17 (3.272) 1 y12 ∈ {0, 1} (3.273) Solução: τ11 = (0, 15) (3.274) z01 = 15 (3.275) 1 =0 y12 (3.276) Subproblema 2 - Máquina 2 min z2 = c2 τ 1 = t21 + t22 + t23 (3.277) Sujeito a: 2 t21 − t22 ≥ 2 − 18y12 (3.278) 2 −t21 + t22 ≥ −16 + 18y12 (3.279) 2 t21 − t23 ≥ 3 − 18y13 (3.280) 2 −t21 + t23 ≥ −16 + 18y13 (3.281) 2 t22 − t23 ≥ 3 − 18y23 (3.282) 2 −t22 + t23 ≥ −16 + 18y23 (3.283) 8 ≤ t21 ≤ 13 (3.284) 0 ≤ t22 ≤ 15 (3.285) 0 ≤ t23 ≤ 13 (3.286) 2 y12 ∈ {0, 1} (3.287) 2 y13 ∈ {0, 1} (3.288) 2 y23 ∈ {0, 1} (3.289) Solução: τ12 = (8, 0, 2) (3.290) z02 = 10 (3.291) 2 y12 =0 (3.292) 2 2 y13 = y23 =1 (3.293) Problema Teste 2 70 Subproblema 3 - Máquina 3 min z2 = c3 τ 3 = t31 + t32 (3.294) Sujeito a: 3 t31 − t32 ≥ 2 − 18y12 (3.295) 3 −t31 + t32 ≥ −15 + 18y12 (3.296) 13 ≤ t31 ≤ 15 (3.297) 13 ≤ t32 ≤ 16 (3.298) 3 ∈ {0, 1} y12 (3.299) Solução: τ13 = (15, 13) (3.300) z03 = 28 (3.301) 3 y12 =0 (3.302) Com as soluções (3.274),(3.290) e (3.300) dos Subproblemas 1,2,3, respectivamente, obtemos o problema mestre (3.303)-(3.307) como segue: min z = (c1 τ11 )λ1j + (c2 τ12 )λ21 (3.303) (c3 τ13 )λ31 + S.a: (A1 τ11 )λ11 + (A2 τ12 )λ21 + (A3 τ13 )λ31 − s = p0 (3.304) λ11 ≥ 1 ; λ11 ≥ 0 (3.305) λ21 ≥ 1 ; λ21 ≥ 0 (3.306) λ31 ≥ 1 ; λ31 ≥ 0 (3.307) Aplicando o Método de Duas Fases([4]) ao problema mestre (3.303)-(3.307) obtemos a solução básica inicial como mostra a Tabela 3.14. Conseqüentemente, π = (π1 , π01 , π02 , π03 ) = fB B −1 = (cB τ B )B −1 π = (0, 0, 0, 0, 15, 10, 28) (3.308) ITERAÇÃO 1 Relembremos que a partir desta iteração, novos limites são aplicados a cada tarefa a fim de obtermos uma melhor aproximação para a solução do problema original (3.251)-(3.255). Relembremos Problema Teste 2 71 Variável básica Colunas do problema mestre s1 s1 s2 s2 s3 s4 λ11 λ21 λ31 −z 1 Constantes 3 1 5 s3 1 13 s4 1 λ11 10 1 λ21 1 1 λ31 1 1 −z -15 -10 -28 1 1 -53 Tabela 3.14: Tabela inicial do simplex revisado do P.M do problema teste 2. que tomemos a solução da iteração anterior e reajustamos os limites inferiores de cada tarefa de acordo com as restrições de precedência. Proporcionalmente, ajustamos os limites superiores, conforme procedimento do algoritmo (3.1) no item 2. Desta forma, considerando a variável dual (3.308) e as novas restrições temos: Subproblema 1 - Máquina 1 min z1 = c1 τ 1 = t11 + t12 (3.309) Sujeito a: 1 −t11 + t12 ≥ 5 − 18y12 (3.310) 1 t11 − t12 ≥ −17 + 18y12 (3.311) t11 = 0 (3.312) 2 ≤ t12 ≤ 4 (3.313) 1 y12 ∈ {0, 1} (3.314) Solução: INFACTÍVEL (3.315) Observemos que a solução do Subproblema 1 é infactı́vel. Isto ocorre ao considerarmos as restrições (3.312) e (3.313), não satisfazendo assim as restrições de máquina (3.310) e (3.311). Reajustamos novamente os limites, substituindo a restrição (3.313) pela restrição 2 ≤ t12 ≤ 6. (3.316) Problema Teste 2 72 A nova solução é dada como: τ22 = (0, 5) (3.317) z01 = 5 (3.318) 1 y12 =0 (3.319) Subproblema 2 - Máquina 2 min z2 = c2 τ 2 = t21 + t22 + t23 (3.320) Sujeito a: 2 t21 − t22 ≥ 2 − 18y12 (3.321) 2 −t21 + t22 ≥ −16 + 18y12 (3.322) 2 t21 − t23 ≥ 3 − 18y13 (3.323) 2 −t21 + t23 ≥ −16 + 18y13 (3.324) 2 t22 − t23 ≥ 3 − 18y23 (3.325) 2 −t22 + t23 ≥ −16 + 18y23 (3.326) 5 ≤ t21 ≤ 8 (3.327) t22 = 0 (3.328) t23 = 2 (3.329) 2 y12 ∈ {0, 1} (3.330) 2 y13 ∈ {0, 1} (3.331) 2 y23 ∈ {0, 1} (3.332) Solução: (3.333) τ22 = (5, 0, 2) (3.334) z02 = 7 (3.335) 2 y12 =1 (3.336) 2 2 y13 = y23 =0 (3.337) Problema Teste 2 73 Subproblema 3 - Máquina 3 min z2 = c3 τ 3 = t31 + t32 (3.338) Sujeito a: 3 t31 − t32 ≥ 2 − 18y12 (3.339) 3 −t31 + t32 ≥ −15 + 18y12 (3.340) 12 ≤ t31 ≤ 14 (3.341) 5 ≤ t32 ≤ 8 (3.342) 3 ∈ {0, 1} y12 (3.343) Solução: (3.344) τ23 = (12, 5) (3.345) z02 = 17 (3.346) 3 y12 =0 (3.347) z10 − π01 = 5 − 15 = −10 (3.348) z20 − π02 = 7 − 10 = −3 (3.349) z30 − π03 = 17 − 28 = −11 (3.350) Assim teremos: Portanto λ32 , λ12 e λ22 são candidatas a entrar na base visto que seus custos reduzidos são não negativos (≤ 0). Tomamos inicialmente λ32 pois z30 − π03 = −11 < −10 < −3. Isto é mostrado na seguinte seqüência de Tabelas 3.15, 3.16, 3.17 e 3.18. Notemos que o limite inferior(LI), para o ótimo do problema proposto (3.257) - (3.262) é dado por 53 − 24 = 29 e o limite superior é 53. Problema Teste 2 74 Variável básica Colunas do problema mestre s1 s1 s2 s3 s4 λ11 λ21 λ31 −z Coluna de entrada Constantes λ32 3 0 5 12 13 0 10 5 1 0 1 0 1 1 -53 -11 1 s2 1 s3 1 s4 1 λ11 1 λ21 1 λ31 1 −z -15 -10 -28 1 Tabela 3.15: Entra λ32 , sai s2 . Variável básica Colunas do problema mestre s1 s1 λ32 s3 s4 λ11 λ21 λ31 −z Coluna de entrada Constantes λ12 3 0 5 12 0 13 5 95 12 0 1 1 1 0 7 12 0 −581 12 -10 1 1 12 λ32 s3 1 −5 12 s4 1 λ11 1 λ21 1 λ31 −1 12 −z 11 12 1 -15 -10 -28 1 Tabela 3.16: Entra λ12 ,sai λ11 . Variável básica Colunas do problema mestre s1 s1 λ32 λ32 s4 λ12 λ21 λ31 −z Constantes λ22 3 5 5 12 −5 12 1 1 12 s3 s4 s3 Coluna de entrada 1 −5 12 -5 1 λ12 1 λ21 1 λ31 −1 12 −z 11 12 1 -5 -10 -28 1 8 0 95 12 1 12 1 0 1 1 7 12 5 12 −461 12 -3 Tabela 3.17: Entra λ22 , sai s1 . Da Tabela 3.18 podemos determinar a solução corrente do problema proposto (3.257) - (3.262): λ12 τ21 = 1.(0, 5) = λ21 τ12 = 2 5 .(8, 0, 2) (0, 5) 4 = ( 16 5 , 0, 5 ) (3.351) Problema Teste 2 75 Variável básica Colunas do problema mestre λ22 λ22 1 5 λ32 1 12 λ32 s4 λ12 λ31 −z 1 12 Constantes 2 3 1 1 − 60 λ21 3 5 s3 s4 s3 5 − 12 -5 8 188 15 1 λ12 1 λ21 − 51 λ31 −1 12 −1 12 −z 3 5 11 12 1 2 5 1 1 3 1 -5 -10 -28 1 −2197 60 Tabela 3.18: Tabela final na iteração 1 do problema teste 2. λ22 τ22 = 3 5 .(5, 0, 2) = (3, 0, 65 ) λ31 τ13 = 1 3 .(15, 13) = (5, 13 3 ) λ32 τ23 = 2 3 .(12, 5) = (3.352) (8, 10 3 ) ou seja, τ 1 = λ12 τ21 = 1.(0, 5) = (0, 5) τ 2 = λ21 τ12 + λ23 t23 = ( 31 5 , 0, 2) (3.353) τ 3 = λ31 τ 3 + λ32 t32 = (13, 23 3 ). 23 Assim, τ = (t1 , t2 , t3 , t4 , t5 , t6 , t7 ) = (0, 31 5 , 13, 0, 5, 2, 3 ) e z = 508 15 = 33, 86. ITERAÇÃO 2 Conforme Tabela 3.18, π = (− 35 , − 11 12 , 0, 0, 5, 10, 28) e atualizando as funções objetivo de cada subproblema teremos: 2 min z1 = (c1 − π1 A1 )τ 1 = t11 + t12 5 41 min z2 = (c2 − π2 A2 )τ 2 = t21 + t22 + t23 60 23 3 min z3 = (c3 − π3 A3 )τ = t31 + t32 12 Cada subproblema estará sujeito às mesmas restrições da iteração anterior, visto que as soluções dos mesmos não alteraram. Assim, temos como solução: τ31 = (0, 5) 1 =0 y12 z10 = 5 2 = y 2 = 0; y 2 = 1 z 0 = τ32 = (5, 0, 2) y12 13 23 2 τ33 = (12, 5) 3 =0 y12 65 12 z30 = 28 (3.354) Problema Teste 2 76 Daı́ determinamos os custos reduzidos: z10 − π01 = 5 − 5 = 0 65 55 z20 − π02 = − 10 = − 12 12 0 z3 − π03 = 28 − 28 = 0 (3.355) (3.356) (3.357) Observamos que z10 − π01 = z30 − π03 = 0, conforme o custo reduzido (3.355) e (3.357). Portanto, de acordo com (3.356), λ23 entra na base(ver Tabela 3.18 e 3.20). O novo limite inferior é dado por Variável básica − 55 12 1922 60 = = 32, 03. Colunas do problema mestre λ22 λ32 λ22 1 5 λ32 1 12 1 12 1 − 60 5 − 12 s3 s3 s4 2197 60 s4 1 λ11 λ21 λ31 −z Coluna de entrada Constantes λ23 3 5 1 2 3 0 -5 1 λ12 1 λ21 − 15 λ31 −1 12 −1 12 −z 3 5 11 12 1 1 -5 -10 -28 1 8 0 188 15 0 1 0 2 5 0 1 3 0 2197 60 − 55 12 Tabela 3.19: Entra λ23 ,sai λ22 . Variável básica Colunas do problema mestre λ23 λ23 1 5 λ32 1 12 λ32 s4 λ21 λ31 −z 1 12 Constantes 2 3 1 1 − 60 λ11 3 5 s3 s4 s3 5 − 12 λ12 -5 8 188 15 1 1 λ21 − 51 λ31 −1 12 −1 12 −z 91 60 11 12 1 2 5 1 1 3 1 -5 -10 -28 1 −508 15 Tabela 3.20: Tabela final na iteração 2 do problema teste 2. Problema Teste 2 77 Temos da Tabela 3.20 a seguinte solução para o problema proposto (3.251) - (3.262): λ12 t12 = 1.(0, 5) = (0, 5) λ21 t21 = 2 5 .(8, 0, 2) 4 = ( 16 5 , 0, 5 ) λ23 t23 = 3 5 .(5, 0, 2) = (3, 0, 65 ) λ31 t31 = 1 3 .(15, 13) = (5, 13 3 ) λ32 t32 = 2 3 .(12, 5) = (3.358) (8, 10 3 ) ou seja, τ 1 = λ12 t12 = (0, 5) τ 2 = λ21 t21 + λ23 t23 = ( 31 5 , 0, 2) (3.359) τ 3 = λ31 t31 + λ32 t32 = (13, 23 3 ) z= 508 15 . ITERAÇÃO 3 11 De acordo com a Tabela 3.20, π = (− 23 12 , − 12 , 0, 0, 5, 10, 28). Segue-se: 31 min z1 = (c1 − π1 A1 )τ 1 = − t11 + t12 60 8 min z2 = (c2 − π2 A2 )τ 2 = t21 + t22 + t23 5 23 3 min z3 = (c3 − π3 A3 )τ = t31 + t32 . 12 Da mesma forma que na iteração anterior, cada subproblema está sujeito às mesmas restrições, fornecendo os seguintes resultados: τ31 = (0, 5) 1 =0 y12 z10 = 5 2 = y 2 = 0; y 2 = 1 z 0 = 10 τ32 = (5, 0, 2) y12 13 23 2 τ33 = (12, 5) 3 =0 y12 (3.360) z30 = 28 z10 − π01 = 5 − 5 = 0 (3.361) z20 − π02 = 10 − 10 = 0 (3.362) z30 − π03 = 28 − 28 = 0 (3.363) Como z10 − π01 = z20 − π02 = z30 − π03 = 0 então não existem mais candidatas a entrar na base. Logo, a solução corrente é ótima. Notemos que o limite inferior da solução ótima do problema proposto (3.251)-(3.262) é o mesmo valor da solução corrente: 508 15 −0= 508 15 = 33, 86. Problema Teste 2 78 Deste modo temos a seguinte solução ótima para o problema proposto (3.76)-(3.262): λ12 t12 = 1.(0, 5) = (0, 5) λ21 t21 = 2 5 .(8, 0, 2) 4 = ( 16 5 , 0, 5 ) λ23 t23 = 3 5 .(5, 0, 2) = (3, 0, 65 ) λ31 t31 = 1 3 .(15, 13) = (5, 13 3 ) λ32 t32 = 2 3 .(12, 5) = (3.364) (8, 10 3 ) 23 3 3 3 ou seja, τ 1 = (0, 5), τ 2 = λ21 t21 + λ23 t23 = ( 31 5 , 0, 2) e τ = λ31 t + λ32 t2 = (13, 3 ). 23 Assim τ 0 = (t1 , t2 , t3 , t4 , t5 , t6 , t7 ) = (0, 31 5 , 13, 0, 5, 2, 3 ) e z = 508 15 é o valor ótimo e a solução ótima. Relembremos que a Tabela 3.21 mostra o limite inferior(LI) e o limite superior(LS) a cada iteração, para a solução ótima do problema proposto(3.257)-(3.255) atualizando os limites das variáveis a cada direção(ver algoritmo 3.1). Enquanto que a Tabela 3.22 indica o valor ótimo no caso do problema original(3.251)-(3.255) sem os limites adotados, o valor ótimo para o problema (3.257)-(3.262) e o valor ótimo encontrado ao aplicarmos o método de resolução de Dantzig-Wolfe incluindo os limites. Iteração LS LI 1 53 29 2 36, 61 32, 03 3 32, 86 32, 86 Tabela 3.21: Limites por iteração do problema teste 2. Valor ótimo sem limite 24 Valor ótimo com limite 53 Valor ótimo encontrado 32, 86 Tabela 3.22: Comparação das soluções do problema teste 2. 79 Valores da função objetivo ( Primal ) 53 36,61 e dos limites inferiores Progresso dos valores da função objetivo Problema Teste 2 32,86 32,03 29 Limites inferiores ( Dual ) 1 2 3 Iteração Figura 3.3: Convergência do método do problema teste 2. M1 P1 P2 M2 M3 0 10 ~ S : Solucao 1 ´ C max1 =10 33 tempo M1 P1 P2 M2 M3 14 0 ~ S : Solucao 2 ´ tempo C max2 = 14 M 1 P M 2 P M 3 1 2 10 Solucao S : C =10 max 3 Figura 3.4: Diagrama de Gantt representando as soluções encontradas do problema teste 2. Do mesmo modo que o Problema Teste 1, verificamos que a solução encontrada ao final do método ainda não é a melhor solução para o problema de job-shop(3.251)-(3.255). Além disso, é possı́vel verificar na Figura 3.3 a convergência do método e melhores valores para a função objetivo a cada iteração. Observamos ainda os limitantes para o ótimo do problema proposto (3.257)-(3.262). Analisando os valores expressos nas Tabelas 3.21 e 3.22 vemos que a solução ótima encontrada é um limitante inferior para o problema proposto (3.257)-(3.262) e um limitante superior para o problema original (3.251)-(3.255). Além disso, notemos que neste caso conseguimos contornar a infactibilidade através do ajuste no limite (3.313) por (3.316). Este fato mostra a importância em determinar limites adequados que contornem a infactibilidade a fim de obtermos uma solução mais Problema Teste 2 próxima do valor ótimo. 80 Conclusão Neste trabalho abordamos o método de decomposição de Dantzig-Wolfe que propõe a decomposição de um problema linear de grande dimensão em subproblemas de dimensões menores e mais fáceis de serem resolvidos, supervisionados por um problema coordenador. Deste ponto de vista, como os problemas d seqüenciamento do tipo job-shop são problemas combinatórios de grande dimensão e portanto, difı́ceis de serem resolvidos, podemos utilizar o Método de Decomposição de Dantzig-Wolfe a fim de determinar a solução ótima, ou sub-ótima. Sendo assim, propomos a decomposição de um particular problema de seqüenciamento do tipo job-shop em k subproblemas independentes associados a cada máquina Mk , e formulamos o problema coordenador considerando as restrições de precedência como de acoplamento. Tais considerações fazem com que as variáveis das restrições de acoplamento, envolvidas em cada subproblema, limites sem limites inferior e/ou superior. Isto acarreta em conjuntos de soluções ilimitadas. Além disso, pode ocorrer que algumas soluções dos subproblemas não satisfaçam as restrições de precedências. Sendo assim, sugerimos a criação de limites, que ajustados a cada iteração, garantem a limitação das regiões viáveis de cada subproblema, a factibilidade do problema mestre e/ou subproblemas, e a obtenção de soluções mais próximas do valor ótimo do problema original. Portanto, o problema proposto criado a partir do problema original é diferenciado pelas restrições limitantes das variáveis envolvidas nas restrições de acoplamento. Como tais limites são determinados baseados numa borda superior, a região de soluções viáveis do problema original está contida na região do problema proposto. Em conseqüência, a solução do problema proposto é um limitante superior para a solução do problema original. Porém, quando aplicamos o método de Dantzig-Wolfe ao problema proposto e ajustamos os limites das variáveis a cada iteração, a solução ótima converge para valores próximos à solução ótima do problema original. Este resultado é importante pois podemos utilizar a solução ótima obtida pelo Método de Dantzig-Wolfe como um limitante superior para a solução do problema original. Este limitante é de Conclusão 82 grande interesse no desenvolvimento de métodos por Separação e Avaliação,(Branch and Bound). Tendo em vista que a proposta deste trabalho é viabilizar a aplicabilidade do método de Dantzig-Wolfe em problemas de job-shop, os limites adotados têm importância fundamental. Assim, é necessário a criação de procedimentos que determinem limites mais eficientes que forneçam um valor ótimo do problema proposto mais próximo do ótimo do problema original. Além disso, como inicialmente os conjuntos de restrições dos subproblemas representam regiões ilimitadas, podemos aplicar o método de Dantzig-Wolfe considerando as direções extremas do conjunto de soluções viáveis do problema, modificando assim a formulação do problema mestre e os critérios de otimalidade. Estudos mais aprofundados devem ser feitos de modo a determinar tais direções e garantir quais das mesmas converge para o valor ótimo, ou uma melhor solução, do problema original. Apêndice Este anexo abordará conceitos e teoremas utilizados no decorrer deste trabalho, a fim de proporcionar um melhor entendimento do mesmo. A.1 Definição. Um conjunto X em E n (espaço vetorial de dimensão n) é chamado um se dado qualquer dois pontos x1 e x2 em X, então λx1 + (1 − λ)x2 ∈ X, para cada λ ∈ [0, 1]. A.2 Definição. Qualquer ponto da forma λx1 + (1 − λ)x2 ∈ X para cada λ ∈ [0, 1] é chamada de x1 e x2 . Assim, a convexidade de X pode ser interpretada geometricamente como, a cada par de pontos x1 e x2 em X o segmento de reta que os liga, ou a combinação convexa dos dois pontos, devem pertencer a X. A.3 Definição. Um ponto x em um conjunto convexo X é chamado de de X, se x não pode ser representado como uma combinação convexa de dois pontos distintos em X, ou seja, se x = λx1 + (1 − λ)x2 com λ ∈ (0, 1) e x1 , x2 ∈ X. A.4 Definição. O raio é uma coleção de pontos da forma {x0 + λ · d; λ ≥ 0}, onde d é um vetor não nulo. x0 é chamado o e d é a . A.5 Definição. Em um conjunto convexo, um vetor não nulo d é chamado , se para cada x0 em um conjunto, o raio x0 + λd; λ ≥ 0 também pertence ao conjunto. Deste modo, um conjunto limitado, não possui direção. Considerando o conjunto poliedral X = {x|Ax ≤ b, x ≥ 0}. Então um vetor não nulo d é uma direção de X se, e somente se, A(x + λd) ≤ b x + λd ≥ 0, Apêndice 84 para λ ≥ 0 e x ∈ X. Visto que x ∈ X, então Ax ≤ b e a primeira desigualdade acima vale para um λ ≥ 0 arbitrariamente grande se, e somente se, Ad ≤ 0. Da mesma maneira, x + λd ≥ 0 é não negativo para um λ ≥ 0 arbitrariamente grande se, e somente se, d ≥ 0, d 6= 0 e Ad ≤ 0. De forma similar, se X = {x|Ax = b, x ≥ 0} 6= ∅, ao vetor d é direção de X se, e somente se, d ≥ 0, d 6= 0 e Ad = 0. A mesma idéia de ponto extremo, se estende para , ou seja, uma direção de um conjunto convexo é extrema , quando não pode ser representada como uma combinação positiva de duas direções distintas do conjunto. Dois vetores, d1 e d2 , são ditos distintos se d1 não pode ser representado como um múltiplo de d2 . Já caracterizamos acima a direção de X como vetores d satisfazendo as condições d ≥ 0, d 6= 0 e Ad ≤ 0. Geometricamente, isto é chamado de sistema homogêneo, definindo um cone poliedral, também conhecido como cone recessão, obtido pela translação dos hiperplanos definidos em X, de forma paralela a eles mesmo até passar sobre a origem. A fim de eliminar duplicações, essas direções deverão ser normalizadas, de forma conveniente. Deste modo utilizaremos a norma |d1 | + · · · + |dn | = 1, nos dando a nova restrição d1 + · · · + dn = 1, visto que d ≥ 0. Portanto, o conjunto D = {Ad ≤ 0, 1d = 1, d ≥ 0}, caracteriza o conjunto de de X, onde 1 é um desses vetores. Assim, as direções extremas de X são exatamente os pontos extremos de D. A.6 Teorema. Seja X = {x : Ax ≤ 0, x ≥ 0} um conjunto (poliedral) não vazio. Então o conjunto de pontos extremos é não vazio e tem um número finito de pontos, chamados x1 , x2 , · · · , xk . Além disso, o conjuntos de direções extremas é vazio se, e somente se, X é limitado. Se X não é limitado, então o conjunto de direções extremas é não vazio e tem um número finito de vetores, chamados d1 , d2 , · · · , dl . Entretanto, x ∈ X se, e somente se, pode ser representado como uma combinação convexa de x1 , x2 , · · · , xk [i.e., do conjunto de pontos extremos] mais uma combinação linear não negativa de d1 , d2 , · · · , dl [i.e.,conjunto de direções extremas], ou seja, Apêndice 85 x2 ou d 2 2 conjunto X 3 1 restrição de normalizacão Conjunto D 2 3 x 1 ou d 1 1 Figura A.5: Direções e direções extremas x = k X j=1 k X λj xj + l X µj dj (A.365) j=1 λj = 1 (A.366) λj ≥ 0, j = 1, 2, · · · , k (A.367) µj ≥ 0, j = 1, 2, · · · , l (A.368) j=1 Ver demonstração em [4] Referências Bibliográficas [1] Adams J.; Balas E. et Zawack D. (1988)“ The shifting bottleneck procedure for the job-shop scheduling ”, Management Science, vol.34, No.3, 391-401. [2] Alves, Isamara C. (2000) “Application de la Technologie de Groupes et de la Relaxation Lagrangienne au Probléme D‘Ordennancement de Type Job-Shop”,Tese de Doutorado,Université Blaise Pascal. [3] Baker K. R. (1974)“Introduction to Sequencing and Scheduling ”, Wiley, New York. [4] Bazaraa, Mokhtar S. (1990) Jarvis, John J. e Sherali, Hanif D. “Linear Programming and Network Flows”: Woley. [5] Benders J.F. (1962)“Partitioning procedures for solving mixed-variables programming problems”, Num. Math., vol.4 , 238-252. [6] Bensana E. (1987)“ Utilisation de Techniques d’Intelligence Artificielle pour l’Ordonnancement d’Atelier ”, Tese de Doutorado, Ecole Nationale Supérieure de l’Aéronautique et de l’Espace. [7] Blazewicz J. et al. (1996)“Scheduling Computer Manufacturing Process”, Springer-Vertag, Berlin. [8] Caux C.; Pierreval H. e Portmann M.C. (1990)“ Les algorithmes génétiques et leur application aux problèmes d’ordonnancement ”, Journées d’étude “ Ordonnancement et entre- prise ”, 5-45, 16-17/Juin, Toulouse. [9] Carlier J.; Pinson E. (1987)“A branch and bound method for the job-shop problem”, Technical Report Institut de Mathématiques Appliquées, Université de Angers. [10] Dantzig e Wolfe, P. (1960) “The Decomposition Algorithm for Linear Programs”, Econometrica, vol.29, No.4, 767-778. 86 Referências Bibliográficas 87 [11] Dell’Amico M. et Trubian M. (1993)“ Applying tabu-search to the job-shop scheduling problem ”, Annals of Operations Research, vol.41, 231-252. [12] Falkenauer E. et Bouffouix S. (1991)“ A genetic algorithm for job-shop ”, IEEE International Conference on Robotics and Automation, Sacramento, California. [13] Fisher, M. L. (1973) “Optimal solution of scheduling problems using Lagrange multipliers: parte I”, Oper. Res, Vol21,1114-1127. [14] Fisher, M. L. (1973) “Optimal solution of scheduling problems using Lagrange multipliers: parte II”, In: Syposum on the theory of scheduling and its Applications, Springer, Bertin, 294-318. [15] Fisher, M.L.; Lageweg, B.J.; Lenstra, J.K.; Kan A.H.G.R. (1983) “Surrogate Duality Relaxation for job shop scheduling”, Discrete Applied Mathematics. Vol.5,65-75. [16] Garey; M.R.Johnson, D. S.; (1976) “The Complexity of Flowshop and jobshop scheduling”, Mathematics of operation Research, vol.1, 117-129. [17] Geoffrion A.M. (1970) “Elements of large-scale mathematical programming Part I ”, Management Science, vol.16 No.11, 652-675. [18] Geoffrion, A.M.(1972)“Generalized Benders Decomposition”, Journal of Optimization Theory and Applications, vol.10, No.4, 237-260. [19] Geoffrion, A.M.(1974)“Lagrangean Relaxation For Interger Programming”, Mathematical Programming Study. [20] Glover F. (1989)“ Tabu search, part1”, ORSA Journal on Computing, vol.1, No.3, 190-260. [21] Glover F. (1990)“ Tabu search, part2”, ORSA Journal on Computing, vol.2, No.1, 4-32. [22] Hertz A. et Widmer M. (1994)“ La méthode tabou appliquée aux problèmes d’ordonnancement ”, Journées d’étude “ Ordonnancement et entre prise ”, 97-125, 16-17/Juin, Toulouse. [23] Kirkpatrick S. (1984)“ Optimization by simulated annealing : Quantitative studies ”, Journal of Statistical Physics, vol.34, No.5-6, 975-986. [24] Kusiak A. (1989)“ Knowledge -based systems in manufacturing ”, Taylor & Francis, New York. [25] Lemonias H. (1990)“Ordonnancement d’atelier à tâches, une approche par décomposition”, Tese de Doctorado, IMAG-Grenoble. [26] Lopez P. (1991)“ Approche énergétique pour l’ordonnancement de tâches sous contraintes de temps et de ressources ”, Tese de Doutorado de l’Université Paul Sabatier, Toulouse. Referências Bibliográficas 88 [27] Lasdon L.S. (1970) “Optimization Theory for Large Systems”, McMillan Co.. [28] Tind J. (1998) “Decomposition Principle of Linear Programming”, University of Copenhagem, Denmark. [29] Thompson, Geral L.; Muth, John F. (1963) “Industrial scheduling”, Garnegie Institute of Technology ,187-191. [30] Panwalkar S.S. et Iskander W. (1977)“ A survey of scheduling rules ”, Operations Research, vol.25, No.1, January-February, 45-61. [31] Ramos, Alex D. (2002) “Método do subgradiente aplicado ao Job-Shop decomposto pela Técnologia de Grupo e Relaxação Lagrangeana. Dissertação de Mestrado, Universidade Federal da Bahia [32] Siarry P. (1994)“ La méthode du récuit simulé théorie et applications ”, Journées d’étude “ Ordonnancement et entreprise ”, 47-67, 16-17/Juin, Toulouse. [33] Singer, M. (1999) “Decomposition methodos for large job shops”, Jornal Elsevier Science Ltda. [34] Van Laarhoven P.J.M.; Aarts E.H.L. et Lenstra J.K. (1992)“ Job-shop scheduling by simulated annealing ”, Operations Research, vol. 40, No.1, 113-126. [35] Zwaneveld, C.M.; Van Wassenhove, L.N.;Strusevich, V.A.; Sevast Janov, S.V.; Potts, C.N. (1995) “The two-stage assembly scheduling problem: Complexty and approximation”, Operation Research, vol.43, 1995. Index Algoritmo de Decomposição de Dantzig-Wolfe, Branch and Bound, 34 10 da Relaxação Lagrangeana, 4 de Benders, 4 combinação convexa, 83 de Dantzig-Wolfe, 4 conjunto convexo, 83 de Rosen, 4 data de separação e avaliação, 34 mais cedo, 28 heurı́stico, 34 mais tarde, 29 métodos diagrama de Gantt, 32 exatos, 34 direção heurı́sticos seriais, 34 de um conjunto, 83 ponto extremo, 83 do raio, 83 Problema extrema, 84 de job-shop, 29 direções recessão, 84 Mestre, 7 elemento Mestre Restrito, 12 pivô, 8 problema coordenador, 3 fábricas de flow-shop, 28 com máquinas especializadas, 29 de job-shop, 27 com uma única máquina, 29 de open-shop, 27 gama operatória, 28 escravo, 3 Grafo mestre, 3 potencial-tarefa, 32 NP-difı́cil, 34 problema com uma máquina, 29 Interpretação econômica, 19 problemas Limite inferior, 17 de fábrica, 27 makespan, 31 raio, 83 método restrições 89 Referências Bibliográficas de localização no tempo, 27 de máquina, 33 de potencialidade, 27 de precedência, 33 de produto, 33 disjuntivas, 27, 33 do problema de job-shop, 30 dÏ sucessão, 27 subproblemas, 3 tecnologia de grupos, 36 vértice do raio, 83 90 Universidade Federal da Bahia-UFBa Instituto de Matemática/Depto. de Matemática Campus de Ondina, Av. Adhemar de Barros s/n, CEP:40170-110 www.im.ufba.br/hpinst/mestrado